X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=xenserver%2Fetc_xensource_scripts_vif;h=aebb4ccdac59771dbf03b81b66f5a6f6de173070;hb=f304568eaa5a160ebc2031b84abc3337771612b2;hp=fcf13a690244673f282e38e3c8d3e6b05b05a52a;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch diff --git a/xenserver/etc_xensource_scripts_vif b/xenserver/etc_xensource_scripts_vif index fcf13a69..aebb4ccd 100755 --- a/xenserver/etc_xensource_scripts_vif +++ b/xenserver/etc_xensource_scripts_vif @@ -14,6 +14,7 @@ # Keep other-config/ keys in sync with device.ml:vif_udev_keys cfg_mod="/root/vswitch/bin/ovs-cfg-mod" +dump_vif_details="/root/vswitch/scripts/dump-vif-details" service="/sbin/service" TYPE=`echo ${XENBUS_PATH} | cut -f 2 -d '/'` @@ -86,12 +87,17 @@ add_to_bridge() ${IP} link set "${vif}" address "${address}" || logger -t scripts-vif "Failed to ip link set ${vif} address ${address}" ${IP} addr flush "${vif}" || logger -t scripts-vif "Failed to ip addr flush ${vif}" + local vif_details=$($dump_vif_details $DOMID $DEVID) + if [ $? -ne 0 -o -z "${vif_details}" ]; then + logger -t scripts-vif "Failed to retrieve vif details for vswitch" + fi + $cfg_mod -F /etc/ovs-vswitchd.conf \ --del-match="bridge.*.port=$vif" \ --del-match="vlan.$vif.[!0-9]*" \ --del-match="port.$vif.[!0-9]*" \ --add="bridge.$bridge.port=$vif" \ - $vid -c + $vid $vif_details -c $service vswitch reload ${IP} link set "${vif}" up || logger -t scripts-vif "Failed to ip link set ${vif} up" @@ -122,9 +128,10 @@ remove) xenstore-rm "${HOTPLUG}/hotplug" vif=vif${DOMID}.${DEVID} logger -t scripts-vif "${vif} has been removed" - $cfg_mod -vANY:console:emer -F /etc/ovs-vswitchd.conf \ - --del-match="bridge.*.port=${vif}" \ + $cfg_mod -vANY:console:emer -F /etc/ovs-vswitchd.conf \ + --del-match="bridge.*.port=${vif}" \ --del-match="vlan.${vif}.[!0-9]*" \ --del-match="port.${vif}.[!0-9]*" -c + $service vswitch reload ;; esac