Merge "Automate OVS bridge creation for multiple mappings"
This commit is contained in:
@@ -536,3 +536,19 @@ setup, with small modifications for the interface mappings.
|
|||||||
LB_PHYSICAL_INTERFACE=eth0
|
LB_PHYSICAL_INTERFACE=eth0
|
||||||
PUBLIC_PHYSICAL_NETWORK=default
|
PUBLIC_PHYSICAL_NETWORK=default
|
||||||
LB_INTERFACE_MAPPINGS=default:eth0
|
LB_INTERFACE_MAPPINGS=default:eth0
|
||||||
|
|
||||||
|
Creating specific OVS bridges for physical networks
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
When using the Open vSwitch ML2 mechanism driver, it is possible to
|
||||||
|
have multiple Open vSwitch bridges meant for physical networking be
|
||||||
|
automatically created by setting the ``OVS_BRIDGE_MAPPINGS`` to a list of
|
||||||
|
physical network to bridge name associations with the following syntax:
|
||||||
|
|
||||||
|
::
|
||||||
|
OVS_BRIDGE_MAPPINGS=net1name:bridge1name,net2name:bridge2name,<...>
|
||||||
|
|
||||||
|
Also, ``OVS_BRIDGE_MAPPINGS`` has precedence over ``PHYSICAL_NETWORK`` and
|
||||||
|
``OVS_PHYSICAL_BRIDGE``, meaning that if the former is set, the latter
|
||||||
|
ones will be ignored. When ``OVS_BRIDGE_MAPPINGS`` is not set, the other
|
||||||
|
variables will still be evaluated.
|
||||||
|
@@ -37,6 +37,7 @@ function neutron_plugin_configure_l3_agent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function neutron_plugin_configure_plugin_agent {
|
function neutron_plugin_configure_plugin_agent {
|
||||||
|
local mappings_array mapping phys_bridge
|
||||||
# Setup integration bridge
|
# Setup integration bridge
|
||||||
_neutron_ovs_base_setup_bridge $OVS_BRIDGE
|
_neutron_ovs_base_setup_bridge $OVS_BRIDGE
|
||||||
_neutron_ovs_base_configure_firewall_driver
|
_neutron_ovs_base_configure_firewall_driver
|
||||||
@@ -58,9 +59,15 @@ function neutron_plugin_configure_plugin_agent {
|
|||||||
# complex physical network configurations.
|
# complex physical network configurations.
|
||||||
if [[ "$OVS_BRIDGE_MAPPINGS" == "" ]] && [[ "$PHYSICAL_NETWORK" != "" ]] && [[ "$OVS_PHYSICAL_BRIDGE" != "" ]]; then
|
if [[ "$OVS_BRIDGE_MAPPINGS" == "" ]] && [[ "$PHYSICAL_NETWORK" != "" ]] && [[ "$OVS_PHYSICAL_BRIDGE" != "" ]]; then
|
||||||
OVS_BRIDGE_MAPPINGS=$PHYSICAL_NETWORK:$OVS_PHYSICAL_BRIDGE
|
OVS_BRIDGE_MAPPINGS=$PHYSICAL_NETWORK:$OVS_PHYSICAL_BRIDGE
|
||||||
|
fi
|
||||||
|
|
||||||
# Configure bridge manually with physical interface as port for multi-node
|
if [[ "$OVS_BRIDGE_MAPPINGS" != "" ]]; then
|
||||||
_neutron_ovs_base_add_bridge $OVS_PHYSICAL_BRIDGE
|
IFS=',' read -a mappings_array <<< "$OVS_BRIDGE_MAPPINGS"
|
||||||
|
for mapping in "${mappings_array[@]}"; do
|
||||||
|
phys_bridge=`echo $mapping | cut -f 2 -d ":"`
|
||||||
|
# Configure bridge manually with physical interface as port for multi-node
|
||||||
|
_neutron_ovs_base_add_bridge $phys_bridge
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
if [[ "$OVS_BRIDGE_MAPPINGS" != "" ]]; then
|
if [[ "$OVS_BRIDGE_MAPPINGS" != "" ]]; then
|
||||||
iniset /$Q_PLUGIN_CONF_FILE ovs bridge_mappings $OVS_BRIDGE_MAPPINGS
|
iniset /$Q_PLUGIN_CONF_FILE ovs bridge_mappings $OVS_BRIDGE_MAPPINGS
|
||||||
|
Reference in New Issue
Block a user