- logger -t scripts-vif "Adding ${vif} to ${bridge} with address ${address}"
-
- vid=
- if [ -e "/etc/openvswitch/br-$bridge" ]; then
- . "/etc/openvswitch/br-$bridge"
- if [ -n "$VLAN_SLAVE" -a -n "$VLAN_VID" ]; then
- bridge=$VLAN_SLAVE
- vid="--add=vlan.$vif.tag=$VLAN_VID"
- fi
- fi
+ logger -t scripts-vif "Adding ${dev} to ${bridge} with address ${address}"
+
+ ${IP} link set "${dev}" down || logger -t scripts-vif "Failed to ip link set ${dev} down"
+ ${IP} link set "${dev}" arp off || logger -t scripts-vif "Failed to ip link set ${dev} arp off"
+ ${IP} link set "${dev}" multicast off || logger -t scripts-vif "Failed to ip link set ${dev} multicast off"
+ ${IP} link set "${dev}" address "${address}" || logger -t scripts-vif "Failed to ip link set ${dev} address ${address}"
+ ${IP} addr flush "${dev}" || logger -t scripts-vif "Failed to ip addr flush ${dev}"
+
+ case $NETWORK_MODE in
+ bridge)
+ ${BRCTL} setfd "${bridge}" 0 || logger -t scripts-vif "Failed to brctl setfd ${bridge} 0"
+ ${BRCTL} addif "${bridge}" "${dev}" || logger -t scripts-vif "Failed to brctl addif ${bridge} ${dev}"
+ ;;
+ vswitch)
+ 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
+
+ $vsctl add-port $bridge $dev $vif_details
+ ;;
+ esac
+
+ ${IP} link set "${dev}" up || logger -t scripts-vif "Failed to ip link set ${dev} up"
+}