Browse code

Introduce PUBLIC_BRIDGE_MTU variable to set br-ex MTU

This variable can be used to accommodate for underlying infrastructure
that does not provide full 1500-sized traffic, or maybe instead gives
access to Jumbo frames.

Conflicts:
lib/neutron_plugins/linuxbridge_agent
lib/neutron_plugins/openvswitch_agent
lib/neutron_plugins/services/l3

Change-Id: I38a80bac18673a30842a7b997d0669fed5aff976
Related-Bug: #1603268
(cherry picked from commit 7b5c7dce53ab9e9778d1d72fcbbed565bfce65bd)
(cherry picked from commit b07859072124fe2ced61bd8a44f3d21cfe5a3f48)

Ihar Hrachyshka authored on 2016/07/16 03:17:13
Showing 4 changed files
... ...
@@ -599,6 +599,15 @@ function create_disk {
599 599
     fi
600 600
 }
601 601
 
602
+
603
+# set_mtu - Set MTU on a device
604
+function set_mtu {
605
+    local dev=$1
606
+    local mtu=$2
607
+    sudo ip link set mtu $mtu dev $dev
608
+}
609
+
610
+
602 611
 # Restore xtrace
603 612
 $XTRACE
604 613
 
... ...
@@ -171,6 +171,7 @@ PROVIDER_SUBNET_NAME=${PROVIDER_SUBNET_NAME:-"provider_net"}
171 171
 # Define the public bridge that will transmit traffic from VMs to the
172 172
 # physical network - used by both the OVS and Linux Bridge drivers.
173 173
 PUBLIC_BRIDGE=${PUBLIC_BRIDGE:-br-ex}
174
+PUBLIC_BRIDGE_MTU=${PUBLIC_BRIDGE_MTU:-1500}
174 175
 
175 176
 # Use flat providernet for public network
176 177
 #
... ...
@@ -48,6 +48,7 @@ function neutron_plugin_configure_dhcp_agent {
48 48
 
49 49
 function neutron_plugin_configure_l3_agent {
50 50
     sudo brctl addbr $PUBLIC_BRIDGE
51
+    set_mtu $PUBLIC_BRIDGE $PUBLIC_BRIDGE_MTU
51 52
     iniset $Q_L3_CONF_FILE DEFAULT external_network_bridge
52 53
     iniset $Q_L3_CONF_FILE DEFAULT l3_agent_manager neutron.agent.l3_agent.L3NATAgentWithStateReport
53 54
 }
... ...
@@ -102,11 +102,16 @@ function _neutron_ovs_base_configure_l3_agent {
102 102
         sudo ip link set $Q_PUBLIC_VETH_EX up
103 103
         sudo ip addr flush dev $Q_PUBLIC_VETH_EX
104 104
     else
105
-        _neutron_ovs_base_add_bridge $PUBLIC_BRIDGE
105
+        _neutron_ovs_base_add_public_bridge
106 106
         sudo ovs-vsctl br-set-external-id $PUBLIC_BRIDGE bridge-id $PUBLIC_BRIDGE
107 107
     fi
108 108
 }
109 109
 
110
+function _neutron_ovs_base_add_public_bridge {
111
+    _neutron_ovs_base_add_bridge $PUBLIC_BRIDGE
112
+    set_mtu $PUBLIC_BRIDGE $PUBLIC_BRIDGE_MTU
113
+}
114
+
110 115
 function _neutron_ovs_base_configure_nova_vif_driver {
111 116
     :
112 117
 }