Package: ifupdown-extra
Version: 0.13
Severity: normal
Tags: patch
When using a bonding interface (e.g. with ifenslave), check-network-cable
will fail, as ethtool does not support bonding
-- System Information:
Debian Release: squeeze/sid
APT prefers karmic-updates
APT policy: (500, 'karmic-updates'), (500, 'karmic-security'), (500,
'karmic')
Architecture: i386 (i686)
Kernel: Linux 2.6.31-20-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ifupdown-extra depends on:
ii bind9-host [h 1:9.6.1.dfsg.P1-3ubuntu0.3 Version of 'host' bundled with
BIN
ii iproute 20090324-1 networking and traffic control
too
ii iputils-arpin 3:20071127-1build1 Tool to send ICMP echo requests
to
ii iputils-ping 3:20071127-1build1 Tools to test the reachability
of
ii net-tools 1.60-23ubuntu1 The NET-3 networking toolkit
ii netcat 1.10-38 TCP/IP swiss army knife --
transit
ii netcat-tradit 1.10-38 TCP/IP swiss army knife
Versions of packages ifupdown-extra recommends:
ii ethtool 6+20090307-1 display or change Ethernet
device
ifupdown-extra suggests no packages.
-- no debconf information
--
Man is the only animal that laughs and weeps, for he is the only animal that
is struck with the difference between what things are and what they ought to
be.
- William Hazlitt
Ohad Lutzky
diff -git a/if-up-scripts/check-network-cable b/if-up-scripts/check-network-cable index e31da56..a48682c 100755
--- a/if-up-scripts/check-network-cable
+++ a/if-up-scripts/check-network-cable
@@ -105,6 +105,21 @@ check_status() {
return $status
}
+check_bond_status() {
+ status=1
+ for slave_iface in `cat /sys/class/net/$IFACE/bonding/slaves`; do
+ # Use "true" to silence slaves.
+ OUTPUT="true" IFACE="$slave_iface" check_status
+ status=$?
+ if [ $status -eq 0 ] ; then
+ # One functional slave will suffice
+ return 0
+ fi
+ done
+ $OUTPUT "WARNING: Initialising bond $IFACE which does not have link on any slave"
+ return $status
+}
+
if [ -z "$IFACE" ] ; then
echo "ERROR: Variable IFACE not set in environment" >&2
exit 1
@@ -118,6 +133,12 @@ case "$IFACE" in
exit 1
fi
;;
+ bond*)
+ check_bond_status
+ if [ $? -ne 0 ] && [ "$ABORT_NO_LINK" = "yes" ] ; then
+ exit 1
+ fi
+ ;;
*) ;;
esac
exit 0