daed39e878
checked in (request 35384) OBS-URL: https://build.opensuse.org/request/show/35384 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=36
72 lines
1.9 KiB
Diff
72 lines
1.9 KiB
Diff
Index: xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/tools/hotplug/Linux/network-bridge
|
|
+++ xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
|
|
@@ -191,6 +191,28 @@ antispoofing () {
|
|
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
|
|
}
|
|
|
|
+find_active_vlans() {
|
|
+ local netdev=$1
|
|
+ local vlan
|
|
+ local vlans
|
|
+ vlans=""
|
|
+ for vifcfg in /etc/sysconfig/network/ifcfg-vlan* ; do
|
|
+ vlan=${vifcfg/*\/ifcfg-}
|
|
+ if [ "$vlan" = "vlan*" ]; then
|
|
+ continue
|
|
+ fi
|
|
+ . $vifcfg
|
|
+ etherdevice="$ETHERDEVICE"
|
|
+ if [ -x /sbin/getcfg-interface ]; then
|
|
+ etherdevice=$(/sbin/getcfg-interface "$ETHERDEVICE")
|
|
+ fi
|
|
+ if [ "$ETHERDEVICE" = "$netdev" ] || [ "$etherdevice" = "$netdev" ] ; then
|
|
+ link_exists "$vlan" && vlans="$vlans $vlan"
|
|
+ fi
|
|
+ done
|
|
+ echo "$vlans"
|
|
+}
|
|
+
|
|
# Usage: show_status dev bridge
|
|
# Print ifconfig and routes.
|
|
show_status () {
|
|
@@ -219,6 +241,9 @@ op_start () {
|
|
return
|
|
fi
|
|
|
|
+ vlans=$(find_active_vlans "${netdev}")
|
|
+ for vlan in $vlans ; do ifdown $vlan ; done
|
|
+
|
|
create_bridge ${tdev}
|
|
|
|
preiftransfer ${netdev}
|
|
@@ -246,6 +271,8 @@ op_start () {
|
|
add_to_bridge2 ${bridge} ${pdev}
|
|
do_ifup ${bridge}
|
|
|
|
+ for vlan in $vlans ; do ifup $vlan ; done
|
|
+
|
|
if [ ${antispoof} = 'yes' ] ; then
|
|
antispoofing
|
|
fi
|
|
@@ -259,6 +286,9 @@ op_stop () {
|
|
return
|
|
fi
|
|
|
|
+ vlans=$(find_active_vlans "${netdev}")
|
|
+ for vlan in $vlans ; do ifdown $vlan ; done
|
|
+
|
|
transfer_addrs ${bridge} ${pdev}
|
|
if ! ifdown ${bridge}; then
|
|
get_ip_info ${bridge}
|
|
@@ -274,6 +304,8 @@ op_stop () {
|
|
ip link set ${pdev} down
|
|
ip link set ${pdev} name ${netdev}
|
|
do_ifup ${netdev}
|
|
+
|
|
+ for vlan in $vlans ; do ifup $vlan ; done
|
|
}
|
|
|
|
# adds $dev to $bridge but waits for $dev to be in running state first
|