xenserver: Make Open vSwitch disable itself in "bridge" mode.
authorBen Pfaff <blp@nicira.com>
Tue, 4 May 2010 17:20:58 +0000 (10:20 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 4 May 2010 17:20:58 +0000 (10:20 -0700)
When /etc/xensource/network.conf contains the word "bridge", the system
is supposed to use the Linux bridge, not Open vSwitch.  This commit makes
OVS honor this setting, which until now it has mainly ignored.

Reported-by: Reid Price <reid@nicira.com>
xenserver/etc_init.d_openvswitch
xenserver/usr_sbin_brctl

index 2ce9e7743e7c9e980bdc73fb0843174cc9f015db..a15ab2b416199ce4838cd9e231e0bb81405d047b 100755 (executable)
 . /etc/xensource-inventory
 test -e /etc/sysconfig/openvswitch && . /etc/sysconfig/openvswitch
 
+NETWORK_MODE=$(cat /etc/xensource/network.conf)
+if test "$NETWORK_MODE" = bridge; then
+    echo "Open vSwitch disabled (/etc/xensource/network.conf is 'bridge')" >&2
+    exit 0
+fi
+
 # General config variables in /etc/sysconfig/openvswitch
 if test "$PRODUCT_VERSION" = "5.5.0"; then
     # XenServer 5.5.0 needs ovs-brcompatd and /proc/net simulation.
index 2035a4f622302042e5946e238a70069955c8ebc4..7fecc56480390c14219d9aaba28ee4db94a249b7 100755 (executable)
@@ -1,6 +1,6 @@
 #! /usr/bin/python
 #
-# Copyright (c) 2009 Nicira Networks.
+# Copyright (c) 2009, 2010 Nicira Networks.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -99,6 +99,15 @@ def cmd_show():
             print "\t\t\t\t\t\t\t%s" % port
 
 def main():
+    # Check the network configuration mode.
+    try:
+        network_mode = read_first_line_of_file('/etc/xensource/network.conf')
+        if network_mode == 'bridge':
+            delegate()
+    except:
+        # File probably doesn't exist
+        pass
+
     # Parse the command line.
     try:
         options, args = getopt.gnu_getopt(sys.argv[1:],