diff options
author | Roy Marples <roy@marples.name> | 2008-09-18 22:24:58 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-09-18 22:24:58 +0000 |
commit | 2de401bca120f445d803f996e883d2e4da5d379d (patch) | |
tree | becda1c9b61a967b3a7e6bad04257b62f2bc683b /net/bonding.sh | |
parent | e368a4b4f89648713a5ff587b4c2eef3f32df05b (diff) |
Enable bonding via sysfs, #104 thanks to Wolfram Schlich
Diffstat (limited to 'net/bonding.sh')
-rw-r--r-- | net/bonding.sh | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/net/bonding.sh b/net/bonding.sh index 69de32aa..99a85170 100644 --- a/net/bonding.sh +++ b/net/bonding.sh @@ -4,7 +4,6 @@ bonding_depend() { before interface macchanger - program /sbin/ifenslave } _config_vars="$_config_vars slaves" @@ -53,7 +52,7 @@ bonding_pre_start() # Must force the slaves to a particular state before adding them for IFACE in ${slaves}; do _delete_addresses - _up + _down done ) @@ -62,7 +61,13 @@ bonding_pre_start() # finally add in slaves eoutdent - /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null + if [ -d /sys/class/net ]; then + for s in ${slaves}; do + echo "+${s}" >/sys/class/net/"${IFACE}"/bonding/slaves + done + else + /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null + fi eend $? return 0 #important @@ -84,7 +89,13 @@ bonding_stop() eindent einfo "${slaves}" eoutdent - /sbin/ifenslave -d "${IFACE}" ${slaves} + if [ -d /sys/class/net ]; then + for s in ${slaves}; do + echo -"${s}" > /sys/class/net/"${IFACE}"/bonding/slaves + done + else + /sbin/ifenslave -d "${IFACE}" ${slaves} + fi # reset all slaves ( |