diff options
author | William A. Kennington III <william@wkennington.com> | 2014-10-04 17:57:51 -0700 |
---|---|---|
committer | William A. Kennington III <william@wkennington.com> | 2014-10-04 17:59:10 -0700 |
commit | 93eb325004e8db6d6307067c8db921ddfad4727b (patch) | |
tree | 7fdb7e08d915b6b4247ffd65f0c20b9cb0ab3426 /nixos | |
parent | 9e5825ba8ec2c515a2b54b6f1e81362bef3d3833 (diff) |
network-interface: Add extra bond options
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/tasks/network-interfaces.nix | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index a2423a2bd304..4ed8d79bd652 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -345,10 +345,20 @@ in interfaces = mkOption { example = [ "enp4s0f0" "enp4s0f1" "wlan0" ]; - type = types.listOf types.string; + type = types.listOf types.str; description = "The interfaces to bond together"; }; + lacp_rate = mkOption { + default = null; + example = "fast"; + type = types.nullOr types.str; + description = '' + Option specifying the rate in which we'll ask our link partner + to transmit LACPDU packets in 802.3ad mode. + ''; + }; + miimon = mkOption { default = null; example = 100; @@ -364,7 +374,7 @@ in mode = mkOption { default = null; example = "active-backup"; - type = types.nullOr types.string; + type = types.nullOr types.str; description = '' The mode which the bond will be running. The default mode for the bonding driver is balance-rr, optimizing for throughput. @@ -373,6 +383,16 @@ in ''; }; + xmit_hash_policy = mkOption { + default = null; + example = "layer2+3"; + type = types.nullOr types.str; + description = '' + Selects the transmit hash policy to use for slave selection in + balance-xor, 802.3ad, and tlb modes. + ''; + }; + }; }; @@ -766,10 +786,14 @@ in while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done; # 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) "echo ${toString v.miimon} > /sys/class/net/${n}/bonding/miimon"} ${optionalString (v.mode != null) "echo \"${v.mode}\" > /sys/class/net/${n}/bonding/mode"} + ${optionalString (v.xmit_hash_policy != null) + "echo \"${v.xmit_hash_policy}\" > /sys/class/net/${n}/bonding/xmit_hash_policy"} # Bring up the bridge and enslave the specified interfaces ip link set "${n}" up |