network-interfaces: Bonding fixes

This commit is contained in:
William A. Kennington III 2014-10-04 18:37:00 -07:00
parent 93eb325004
commit f1572d37c3

View File

@ -778,7 +778,9 @@ in
path = [ pkgs.ifenslave pkgs.iproute ]; path = [ pkgs.ifenslave pkgs.iproute ];
script = '' script = ''
# Remove Dead Interfaces # Remove Dead Interfaces
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}" ip link set "${n}" down >/dev/null 2>&1 || true
ifenslave -d "${n}" >/dev/null 2>&1 || true
ip link del "${n}" >/dev/null 2>&1 || true
ip link add name "${n}" type bond ip link add name "${n}" type bond
@ -786,25 +788,25 @@ in
while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done; while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done;
# Set the miimon and mode options # Set the miimon and mode options
${optionalString (v.lacp_rate != null)
"echo \"${v.lacp_rate}\" > /sys/class/net/${n}/bonding/lacp_rate"}
${optionalString (v.miimon != null) ${optionalString (v.miimon != null)
"echo ${toString v.miimon} > /sys/class/net/${n}/bonding/miimon"} "echo ${toString v.miimon} > /sys/class/net/${n}/bonding/miimon"}
${optionalString (v.mode != null) ${optionalString (v.mode != null)
"echo \"${v.mode}\" > /sys/class/net/${n}/bonding/mode"} "echo \"${v.mode}\" > /sys/class/net/${n}/bonding/mode"}
${optionalString (v.lacp_rate != null)
"echo \"${v.lacp_rate}\" > /sys/class/net/${n}/bonding/lacp_rate"}
${optionalString (v.xmit_hash_policy != null) ${optionalString (v.xmit_hash_policy != null)
"echo \"${v.xmit_hash_policy}\" > /sys/class/net/${n}/bonding/xmit_hash_policy"} "echo \"${v.xmit_hash_policy}\" > /sys/class/net/${n}/bonding/xmit_hash_policy"}
# Bring up the bridge and enslave the specified interfaces # Bring up the bond and enslave the specified interfaces
ip link set "${n}" up ip link set "${n}" up
${flip concatMapStrings v.interfaces (i: '' ${flip concatMapStrings v.interfaces (i: ''
ifenslave "${n}" "${i}" ifenslave "${n}" "${i}"
'')} '')}
''; '';
postStop = '' postStop = ''
ip link set "${n}" down ip link set "${n}" down >dev/null 2>&1 || true
ifenslave -d "${n}" ifenslave -d "${n}" >/dev/null 2>&1 || true
ip link delete "${n}" ip link del "${n}" >/dev/null 2>&1 || true
''; '';
}); });