The current network-script, ifup-ovs does not work well if you enable DHCP on the OVS. It will work if we name the bridge alphabetically greater than the underlying physical interfaces. Even then, it will do multiple DHCP attempts slowing down the boot up process.
This patch is my attempt to allow DHCP on an OVS. It is probably not a good solution and I am open to suggestions. Signed-off-by: Gurucharan Shetty <gshe...@nicira.com> --- rhel/README.RHEL | 8 ++++++++ rhel/etc_sysconfig_network-scripts_ifup-ovs | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletions(-) diff --git a/rhel/README.RHEL b/rhel/README.RHEL index 3e682b3..eed8831 100644 --- a/rhel/README.RHEL +++ b/rhel/README.RHEL @@ -62,6 +62,14 @@ IPADDR=A.B.C.D NETMASK=X.Y.Z.0 HOTPLUG=no +Enable DHCP on the bridge(Needs OVSBOOTPROTO instead of BOOTPROTO): + +DEVICE=ovsbridge0 +ONBOOT=yes +DEVICETYPE=ovs +TYPE=OVSBridge +OVSBOOTPROTO="dhcp" +HOTPLUG=no Adding physical eth0 to ovsbridge0 described above: diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs b/rhel/etc_sysconfig_network-scripts_ifup-ovs index 7074c07..33c0b49 100755 --- a/rhel/etc_sysconfig_network-scripts_ifup-ovs +++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs @@ -36,17 +36,24 @@ fi case "$TYPE" in OVSBridge) ovs-vsctl -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} - ${OTHERSCRIPT} ${CONFIG} ${2} + if [ "x${2}" = "xpost" ]; then + if [ "x$OVSBOOTPROTO" = "xdhcp" ]; then + export BOOTPROTO="dhcp" + fi + ${OTHERSCRIPT} ${CONFIG} + fi ;; OVSPort) /sbin/ifup "$OVS_BRIDGE" ${OTHERSCRIPT} ${CONFIG} ${2} ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} + /sbin/ifup "$OVS_BRIDGE" "post" ;; OVSIntPort) /sbin/ifup "$OVS_BRIDGE" ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA} ${OTHERSCRIPT} ${CONFIG} ${2} + /sbin/ifup "$OVS_BRIDGE" "post" ;; OVSBond) /sbin/ifup "$OVS_BRIDGE" @@ -55,6 +62,7 @@ case "$TYPE" in done ovs-vsctl -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} ${OTHERSCRIPT} ${CONFIG} ${2} + /sbin/ifup "$OVS_BRIDGE" "post" ;; *) echo $"Invalid OVS interface type $TYPE" -- 1.7.2.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev