Add new resource OS::Neutron::ProviderNet for provider networks

Registered by Rabi Mishra

OS::Neutron::Net resource should allow for creating all kinds of networks.

a. FLAT
b. VLAN
c. GRE/VXLAN
d. L3 router external network

Neutron Client commands..

FLAT Network:

neutron net-create --provider:physical_network=ph-eth1 --provider:network_type=flat <networkName>

VLAN Provider Network - Routable:

neutron net-create --provider:physical_network=ph-eth1 --provider:network_type=vlan --provider:segmentation_id=100 <networkName>

GRE Network:

neutron net-create --provider:network_type=gre --provider:segmentation_id=100 <networkName>

L3 router External Network:

neutron net-create --provider:network_type=local --router:external=True public <networkName>

 I assume we would need the following additional properties

"provider:network_type"
"provider:physical_network"
"provider:segmentation_id"

Update 1:
---------------
Rather than modifying the OS::Neutron::Net, a new resource OS::Neutron::ProviderNet added based on Neutron API Provider Extension.

http://docs.openstack.org/api/openstack-network/2.0/content/provider_ext.html

Blueprint information

Status:
Complete
Approver:
Steve Baker
Priority:
Medium
Drafter:
Rabi Mishra
Direction:
Approved
Assignee:
Rabi Mishra
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
Rabi Mishra
Completed by
Rabi Mishra

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/neutron-net-resource-add-provider-network,n,z

Add ability to create provider networks (vlan,gre,flat).

Provider Networks Neutron API Extension is an attribute extension
which adds the following set of attributes to the network resource:

provider:network_type - Specifies the nature of the physical network
mapped to this network resource. Examples are flat, vlan, or gre.

provider:physical_network - Identifies the physical network on top of
which this network object is being implemented.

provider:segmentation_id - Identifies an isolated segment on the
physical network.

"OS::Neutron::ProviderNet" resource leverages these extensions to
implements heat neutron resource type for provider networks.

Addressed by: https://review.openstack.org/72454

(therve) Can you explain why we need a new resource for this?

(ramishra) I'm sure everyone is familiar of the neutron concepts, However a little background of the concept would possibly help clarify the decision.

There are two categories of networks that can be created within Neutron

-Provider Networks
-Tenant Networks

Provider networks are networks that map directly to an existing physical network in the data center. They are routable by default and don't need to be attached to a virtual router and don't use the l3 agent . Useful network types in this category are flat and vlan.

This is implemented in neutron as an extension of the existing network resource as mentioned earlier. There is some confusion as they are created using the same network resource in neutron. Having said that, provider:physical_network is a mandatory attribute to create a provider network.

 My initial thought was to add the properties to the existing "OS::Neutron::Net" resource. Then thought (I had a brief discussion with shrady on IRC for this), it's better to separate them to different resource as they are different, with the existing resource representing tenant networks and "OS::Neutron::ProviderNet" representing Provider Networks.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.