In real cloud production environment, there are many hosts, which can access external network, which may not. Some have enough NICs to work for different networks, while some are lack of NICs.
For instance, an external network, provider:network_type is ``vlan``, provider:physical_network is ``external``, provider:segmentation_id is ``4000``.
While tenant network, provider:network_type is ``vlan``, provider:physical_network is ``user``, provider:segmentation_id is ``1000-3000``.
So for neutron's limitation, in one single host, you have to add two ovs-bridges which are mapping external->br-ex, user->br-usr。While br-ex add physical port eth0, and br-usr and eth1.
But, in real world, these vlans can work in same physical nic, and physical hosts may be lack of NICs, which means, Neutron should allow set bridge mapping like this:
{"external": br-vlan, "user": br-vlan}
Then, for those hosts with only one NIC (or one bond NIC), can work for both physical types of network.
You may say, may be we can set one network with two types of "provider:physical_network". One single network is currently type uniq. This will be a bit more complicated than the former solution. This needs not only neutron-server side DB model changes, but also agent side change. While the former may only need agent side change to allow set that mappings.
In real cloud production environment, there are many hosts, which can access external network, which may not. Some have enough NICs to work for different networks, while some are lack of NICs.
For instance, an external network, provider: network_ type is ``vlan``, provider: physical_ network is ``external``, provider: segmentation_ id is ``4000``.
While tenant network, provider: network_ type is ``vlan``, provider: physical_ network is ``user``, provider: segmentation_ id is ``1000-3000``.
So for neutron's limitation, in one single host, you have to add two ovs-bridges which are mapping external->br-ex, user->br-usr。While br-ex add physical port eth0, and br-usr and eth1.
But, in real world, these vlans can work in same physical nic, and physical hosts may be lack of NICs, which means, Neutron should allow set bridge mapping like this:
{"external": br-vlan, "user": br-vlan}
Then, for those hosts with only one NIC (or one bond NIC), can work for both physical types of network.
You may say, may be we can set one network with two types of "provider: physical_ network" . One single network is currently type uniq. This will be a bit more complicated than the former solution. This needs not only neutron-server side DB model changes, but also agent side change. While the former may only need agent side change to allow set that mappings.
Any ideas?