1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

Bond devices can have any name the user configures, so

when checking link status for an interface, first
check if this interface is in fact a bond device
(by the precense of a /proc/net/bonding/IFACE file)
and use that file for checking status.

Othervise assume ib* is an infiniband interface which we donnt know how
to check, or otherwise it is an ethernet interface and ethtool should
hopefully work.

(This used to be ctdb commit 8cc6c5de3d7abb0b72eaa6e769e70963b02d84cb)
This commit is contained in:
Ronnie Sahlberg 2009-12-09 11:33:04 +11:00
parent 3ca3f4c771
commit 50820f9e18

View File

@ -142,18 +142,23 @@ case "$1" in
INTERFACES=`for IFACE in $INTERFACES ; do echo $IFACE ; done | sort | uniq`
for IFACE in $INTERFACES ; do
# These interfaces are sometimes bond devices
# When we use VLANs for bond interfaces, there will only
# be an entry in /proc for the underlying real interface
REALIFACE=`echo $IFACE |sed -e 's/\..*$//'`
[ -f /proc/net/bonding/$REALIFACE ] && {
grep -q 'Currently Active Slave: None' /proc/net/bonding/$REALIFACE && {
echo "ERROR: No active slaves for bond device $REALIFACE"
exit 1
}
grep -q '^MII Status: up' /proc/net/bonding/$REALIFACE || {
echo "ERROR: public network interface $REALIFACE is down"
exit 1
}
exit 0;
}
case $IFACE in
ethX*|bond*)
IFACE=`echo $IFACE |sed -e 's/\....$//'`
grep -q 'Currently Active Slave: None' /proc/net/bonding/$IFACE && {
echo "ERROR: No active slaves for bond device $IFACE"
exit 1
}
grep -q '^MII Status: up' /proc/net/bonding/$IFACE || {
echo "ERROR: public network interface $IFACE is down"
exit 1
}
;;
ib*)
# we dont know how to test ib links
;;