When ifdown isn't executed (system didn't shut down properly), the interfaces remain in the openvswitch's database. For the internal ports or devices that are available when openvswitch service starts that's not an issue.
However, ovs-vsctl won't do anything for devices created later (Linux vlan devices for instance) since they are already in the database. That leaves a inconsistency behind because they will be left out of the kernel's datapath. The ifup/ifdown will operate only on configured interfaces, so this patch fixes the issue by deleting the interface from the database before attempt to configure it. Signed-off-by: Flavio Leitner <f...@redhat.com> --- rhel/etc_sysconfig_network-scripts_ifup-ovs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs b/rhel/etc_sysconfig_network-scripts_ifup-ovs index 05f70f6..478c5c3 100755 --- a/rhel/etc_sysconfig_network-scripts_ifup-ovs +++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs @@ -117,7 +117,11 @@ case "$TYPE" in OVSPort) ifup_ovs_bridge ${OTHERSCRIPT} ${CONFIG} ${2} - ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} + # The port might be already in the database but not yet + # in the datapath. So, remove the stale interface first. + ovs-vsctl -t ${TIMEOUT} \ + -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \ + -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE" ;; OVSIntPort) -- 2.1.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev