Comment 17 for bug 1314887

Revision history for this message
Brian Turek (brian-turek) wrote :

[Impact]

The documentation included in both upstream Open vSwitch (ovs) 2.0.2 and the version distributed by Ubuntu states that it supports configuring ovs using /etc/network/interfaces (see /usr/share/doc/openvswitch-switch/README.Debian). Moreover, /etc/init.d/openvswitch-switch contains the necessary logic to support parsing /etc/network/interfaces but that logic is completely missing in the Upstart /etc/init/openvswitch-switch.conf script.

The result of this issue is a user can properly configure their network in /etc/network/interfaces, test it with ifup/ifdown, reboot, and have no network configured with the machine comes back up. If the user is unaware that Upstart is being used and not classic init.d scripts, a manual call using /etc/init.d/openvswitch-switch works as expected. Without boot integration, users can't easily use Open vSwitch to configure their "main" interface and have a system work on boot.

The fix in this thread basically adds support for using the normal config files (/etc/network/interfaces and /etc/network/interfaces.d/*) to configure the network on boot.

[Test Case]

After running `apt-get install -y openvswitch-switch`, add a stanza to /etc/network/interfaces like the following:

allow-ovs br0
iface br0 inet static
    ovs_type OVSBridge
    address 172.16.0.1
    network 255.255.255.0

Try `ifup br0` and `ifdown br0` and notice how the interface is correctly controlled. Try `/etc/init.d/openvswitch-switch restart` and note how the interface comes up. Reboot the machine and note how br0 is not correctly configured.

[Regression Potential]

This problem is recognized by the user community (see http://www.opencloudblog.com/?p=240, http://blog.scottlowe.org/2012/08/17/installing-kvm-and-open-vswitch-on-ubuntu/, etc) and people have been manually patching their systems for years to get the desired capability. It's conceivable people's odd ways of fixing this problem could conflict with the potential patch. Double ifup'ing or ifdown'ing an interface shouldn't break any systems but error messages may be emitted.

The other unlikely issue is that users have interfaces correctly configured in /etc/network/interfaces and are deliberately depending on the interfaces *not* coming up on boot. This patch would cause these boot-dormant interfaces to come up unexpectedly but, again, I think this problem unlikely.

[Other Info]

This patch aligns the boot behavior both with what's expected and what the documentation states.