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 2ce9e77..a15ab2b 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 2035a4f..7fecc56 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:],