|
@ -37,7 +37,7 @@ proto_bonding_init_config() { |
|
|
|
|
|
|
|
|
proto_config_add_string "bonding_policy" |
|
|
proto_config_add_string "bonding_policy" |
|
|
proto_config_add_string "link_monitoring" |
|
|
proto_config_add_string "link_monitoring" |
|
|
proto_config_add_string "slaves" |
|
|
|
|
|
|
|
|
proto_config_add_array "slaves" |
|
|
proto_config_add_string "all_slaves_active" |
|
|
proto_config_add_string "all_slaves_active" |
|
|
|
|
|
|
|
|
proto_config_add_string "min_links" |
|
|
proto_config_add_string "min_links" |
|
@ -66,6 +66,28 @@ proto_bonding_init_config() { |
|
|
proto_config_add_string "use_carrier" |
|
|
proto_config_add_string "use_carrier" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
proto_bonding_add_slave() { |
|
|
|
|
|
local slave=$1 |
|
|
|
|
|
local idx=$2 |
|
|
|
|
|
local cfg=$3 |
|
|
|
|
|
local link=$4 |
|
|
|
|
|
|
|
|
|
|
|
if [ ! -e "/sys/class/net/$slave" ]; then |
|
|
|
|
|
echo "$cfg" "No slave device $slave found" |
|
|
|
|
|
proto_notify_error "$cfg" NO_DEVICE |
|
|
|
|
|
proto_block_restart "$cfg" |
|
|
|
|
|
return |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
ip link set dev "$slave" down |
|
|
|
|
|
|
|
|
|
|
|
sleep 1 |
|
|
|
|
|
|
|
|
|
|
|
echo "+$slave" > /sys/class/net/"$link"/bonding/slaves |
|
|
|
|
|
|
|
|
|
|
|
ip link set dev "$slave" up |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
proto_bonding_setup() { |
|
|
proto_bonding_setup() { |
|
|
local cfg="$1" |
|
|
local cfg="$1" |
|
|
local link="bonding-$cfg" |
|
|
local link="bonding-$cfg" |
|
@ -157,24 +179,7 @@ proto_bonding_setup() { |
|
|
# Add slaves to bonding interface |
|
|
# Add slaves to bonding interface |
|
|
local slaves |
|
|
local slaves |
|
|
json_get_vars slaves |
|
|
json_get_vars slaves |
|
|
|
|
|
|
|
|
for slave in $slaves; do |
|
|
|
|
|
|
|
|
|
|
|
if [ "$(cat /proc/net/dev |grep "$slave")" == "" ]; then |
|
|
|
|
|
echo "$cfg" "No slave device $slave found" |
|
|
|
|
|
proto_notify_error "$cfg" NO_DEVICE |
|
|
|
|
|
proto_block_restart "$cfg" |
|
|
|
|
|
return |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
ifconfig "$slave" down |
|
|
|
|
|
|
|
|
|
|
|
sleep 1 |
|
|
|
|
|
|
|
|
|
|
|
echo "+$slave" > /sys/class/net/"$link"/bonding/slaves |
|
|
|
|
|
|
|
|
|
|
|
ifconfig "$slave" up |
|
|
|
|
|
done |
|
|
|
|
|
|
|
|
json_for_each_item proto_bonding_add_slave slaves "$cfg" "$link" |
|
|
|
|
|
|
|
|
[ -n "$all_slaves_active" ] && echo "$all_slaves_active" > /sys/class/net/"$link"/bonding/all_slaves_active |
|
|
[ -n "$all_slaves_active" ] && echo "$all_slaves_active" > /sys/class/net/"$link"/bonding/all_slaves_active |
|
|
|
|
|
|
|
|