Browse code

Set datapath to $OVS_DATAPATH_TYPE for bridges

This change extends devstack to configure the br-ex,
br-<phy> and Xenserver's br-$GUEST_INTERFACE_DEFAULT
datapaths when OVS_DATAPATH_TYPE is set.

Change-Id: I71e590de86e7526e8423140463752d6b3ad14214
Closes-Bug: #1416444

Waldemar Znoinski authored on 2015/05/08 01:14:21
Showing 2 changed files
... ...
@@ -59,7 +59,7 @@ function neutron_plugin_configure_plugin_agent {
59 59
         OVS_BRIDGE_MAPPINGS=$PHYSICAL_NETWORK:$OVS_PHYSICAL_BRIDGE
60 60
 
61 61
         # Configure bridge manually with physical interface as port for multi-node
62
-        sudo ovs-vsctl --no-wait -- --may-exist add-br $OVS_PHYSICAL_BRIDGE
62
+        _neutron_ovs_base_add_bridge $OVS_PHYSICAL_BRIDGE
63 63
     fi
64 64
     if [[ "$OVS_BRIDGE_MAPPINGS" != "" ]]; then
65 65
         iniset /$Q_PLUGIN_CONF_FILE ovs bridge_mappings $OVS_BRIDGE_MAPPINGS
... ...
@@ -92,7 +92,7 @@ function neutron_plugin_configure_plugin_agent {
92 92
         # Set up domU's L2 agent:
93 93
 
94 94
         # Create a bridge "br-$GUEST_INTERFACE_DEFAULT"
95
-        sudo ovs-vsctl --no-wait -- --may-exist add-br "br-$GUEST_INTERFACE_DEFAULT"
95
+        _neutron_ovs_base_add_bridge "br-$GUEST_INTERFACE_DEFAULT"
96 96
         # Add $GUEST_INTERFACE_DEFAULT to that bridge
97 97
         sudo ovs-vsctl add-port "br-$GUEST_INTERFACE_DEFAULT" $GUEST_INTERFACE_DEFAULT
98 98
 
... ...
@@ -16,13 +16,21 @@ function is_neutron_ovs_base_plugin {
16 16
     return 0
17 17
 }
18 18
 
19
+function _neutron_ovs_base_add_bridge {
20
+    local bridge=$1
21
+    local addbr_cmd="sudo ovs-vsctl --no-wait -- --may-exist add-br $bridge"
22
+
23
+    if [ "$OVS_DATAPATH_TYPE" != "" ] ; then
24
+        addbr_cmd="$addbr_cmd -- set Bridge $bridge datapath_type=${OVS_DATAPATH_TYPE}"
25
+    fi
26
+
27
+    $addbr_cmd
28
+}
29
+
19 30
 function _neutron_ovs_base_setup_bridge {
20 31
     local bridge=$1
21 32
     neutron-ovs-cleanup
22
-    sudo ovs-vsctl --no-wait -- --may-exist add-br $bridge
23
-    if [[ $OVS_DATAPATH_TYPE != "" ]]; then
24
-        sudo ovs-vsctl set Bridge $bridge datapath_type=${OVS_DATAPATH_TYPE}
25
-    fi
33
+    _neutron_ovs_base_add_bridge $bridge
26 34
     sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge
27 35
 }
28 36
 
... ...
@@ -93,7 +101,7 @@ function _neutron_ovs_base_configure_l3_agent {
93 93
         sudo ip link set $Q_PUBLIC_VETH_EX up
94 94
         sudo ip addr flush dev $Q_PUBLIC_VETH_EX
95 95
     else
96
-        sudo ovs-vsctl -- --may-exist add-br $PUBLIC_BRIDGE
96
+        _neutron_ovs_base_add_bridge $PUBLIC_BRIDGE
97 97
         sudo ovs-vsctl br-set-external-id $PUBLIC_BRIDGE bridge-id $PUBLIC_BRIDGE
98 98
     fi
99 99
 }