This commit is contained in:
committed by
Git OBS Bridge
parent
614a20ee4e
commit
750b94deb2
@@ -1,64 +1,47 @@
|
||||
Index: xen-3.1-testing/tools/examples/network-bridge
|
||||
Index: xen-3.2-testing/tools/examples/network-bridge
|
||||
===================================================================
|
||||
--- xen-3.1-testing.orig/tools/examples/network-bridge
|
||||
+++ xen-3.1-testing/tools/examples/network-bridge
|
||||
@@ -160,6 +160,21 @@ antispoofing () {
|
||||
iptables -A FORWARD -m physdev --physdev-in ${vif0} -j ACCEPT
|
||||
}
|
||||
|
||||
+# Find the netdev that is associated with the bridge by matching MAC addresses.
|
||||
+find_bridged_netdev () {
|
||||
+ local bridge=$1
|
||||
+
|
||||
+ bmac=`ip link show ${bridge} | grep 'link\/ether' | sed -e 's/.*ether \(..:..:..:..:..:..\).*/\1/'`
|
||||
+ for i in `ls /sys/class/net/${bridge}/brif` ; do
|
||||
+ mac=`ip link show ${i} | grep 'link\/ether' | sed -e 's/.*ether \(..:..:..:..:..:..\).*/\1/'`
|
||||
+ if [ "${bmac}" = "${mac}" ] && [ ! "${bridge}" = "${i}" ] ; then
|
||||
+ netdev=${i}
|
||||
+ return 0
|
||||
+ fi
|
||||
+ done
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
# Usage: show_status dev bridge
|
||||
# Print ifconfig and routes.
|
||||
show_status () {
|
||||
@@ -201,9 +216,10 @@ using netloop.nloopbacks=<N> on the doma
|
||||
|
||||
create_bridge ${bridge}
|
||||
|
||||
- if link_exists "$vdev"; then
|
||||
+ preiftransfer ${netdev}
|
||||
+ . /etc/sysconfig/network/ifcfg-${netdev}
|
||||
+ if [ ! "$BONDING_MASTER" = yes ] && link_exists "$vdev"; then
|
||||
mac=`ip link show ${netdev} | grep 'link\/ether' | sed -e 's/.*ether \(..:..:..:..:..:..\).*/\1/'`
|
||||
- preiftransfer ${netdev}
|
||||
transfer_addrs ${netdev} ${vdev}
|
||||
if ! ifdown ${netdev}; then
|
||||
# If ifdown fails, remember the IP details.
|
||||
@@ -222,6 +238,13 @@ using netloop.nloopbacks=<N> on the doma
|
||||
add_to_bridge ${bridge} ${vif0}
|
||||
add_to_bridge2 ${bridge} ${pdev}
|
||||
do_ifup ${netdev}
|
||||
+ elif [ "$BONDING_MASTER" = yes ]; then
|
||||
+ ip link set ${bridge} arp on
|
||||
+ add_to_bridge ${bridge} ${vif0}
|
||||
+ ip link set ${vif0} up
|
||||
+ add_to_bridge2 ${bridge} ${netdev}
|
||||
+ transfer_addrs ${netdev} ${bridge}
|
||||
+ transfer_routes ${netdev} ${bridge}
|
||||
else
|
||||
ip link set ${bridge} arp on
|
||||
ip link set ${bridge} multicast on
|
||||
@@ -266,6 +289,10 @@ op_stop () {
|
||||
ip link set ${pdev} name ${netdev}
|
||||
do_ifup ${netdev}
|
||||
else
|
||||
+ if [ ${netdev} = ${bridge} ]; then
|
||||
+ find_bridged_netdev ${bridge}
|
||||
+ fi
|
||||
+ ip link set dev ${vif0} down
|
||||
transfer_routes ${bridge} ${netdev}
|
||||
ip link set ${bridge} down
|
||||
--- xen-3.2-testing.orig/tools/examples/network-bridge
|
||||
+++ xen-3.2-testing/tools/examples/network-bridge
|
||||
@@ -230,6 +230,9 @@ op_start () {
|
||||
return
|
||||
fi
|
||||
|
||||
+ local bonded=""
|
||||
+ [ -e /sys/class/net/${netdev}/bonding ] && bonded="yes"
|
||||
+
|
||||
vlans=$(find_active_vlans "${netdev}")
|
||||
for vlan in $vlans ; do ifdown $vlan ; done
|
||||
|
||||
@@ -243,13 +246,27 @@ op_start () {
|
||||
ip link set ${netdev} down
|
||||
ip addr flush ${netdev}
|
||||
fi
|
||||
- ip link set ${netdev} name ${pdev}
|
||||
- ip link set ${tdev} name ${bridge}
|
||||
|
||||
- setup_bridge_port ${pdev}
|
||||
+ if [ "x${bonded}" = "xyes" ]
|
||||
+ then
|
||||
+ ip link set ${tdev} name ${bridge}
|
||||
+ ln -sf /etc/sysconfig/network/ifcfg-${netdev} /etc/sysconfig/network/ifcfg-${pdev}
|
||||
+ ifup ${pdev}
|
||||
+ local gw=`ip route show dev ${pdev} | fgrep default | sed 's/default via //'`
|
||||
+ ip addr flush ${pdev}
|
||||
+ rm -f /etc/sysconfig/network/ifcfg-${pdev}
|
||||
+ brctl addif ${bridge} ${pdev}
|
||||
+ ip link set ${bridge} up
|
||||
+ [ -n "$gw" ] && ip route add default via ${gw}
|
||||
+ else
|
||||
+ ip link set ${netdev} name ${pdev}
|
||||
+ ip link set ${tdev} name ${bridge}
|
||||
+
|
||||
+ setup_bridge_port ${pdev}
|
||||
|
||||
- add_to_bridge2 ${bridge} ${pdev}
|
||||
- do_ifup ${bridge}
|
||||
+ add_to_bridge2 ${bridge} ${pdev}
|
||||
+ do_ifup ${bridge}
|
||||
+ fi
|
||||
|
||||
for vlan in $vlans ; do ifup $vlan ; done
|
||||
|
||||
|
Reference in New Issue
Block a user