rhel: support persistent mac addresses on OVS bridges
authorLars Kellogg-Stedman <lars@redhat.com>
Fri, 23 May 2014 21:14:35 +0000 (17:14 -0400)
committerBen Pfaff <blp@nicira.com>
Tue, 27 May 2014 15:47:01 +0000 (08:47 -0700)
This patch adds support for RHEL-derived systems (RHEL/CentOS/Fedora)
for setting the persistent MAC address of an OVS bridge via the MACADDR
setting in the interface configuration file.

Without this change, when an administrator provides MACADDR in the
interface configuration file that address will be set in ifup-eth using
the "ip link set" command.  While this appears to work, any operation
that updates the OVS configuration will cause the MAC address to revert.

Persistent MAC addresses must be set using ovs-vsctl.

(Resubmitted with whitespace and grammar corrections)

Signed-off-by: Lars Kellogg-Stedman <lars@redhat.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Flavio Leitner <fbl@redhat.com>
rhel/etc_sysconfig_network-scripts_ifup-ovs

index 3ad86ff..ffebb20 100755 (executable)
@@ -85,6 +85,14 @@ case "$TYPE" in
                        OVSBRIDGECONFIGURED="yes"
                fi
 
+               # If MACADDR is provided in the interface configuration file,
+               # we need to set it using ovs-vsctl; setting it with the "ip"
+               # command in ifup-eth does not make the change persistent.
+               if [ -n "$MACADDR" ]; then
+                       ovs-vsctl -t ${TIMEOUT} -- set bridge "$DEVICE" \
+                               other-config:hwaddr="$MACADDR"
+               fi
+
                # When dhcp is enabled, the assumption is that there will be a port to
                # attach (otherwise, we can't reach out for dhcp). So, we do not
                # configure the bridge through rhel's ifup infrastructure unless