summary refs log tree commit diff
path: root/nixos/modules/tasks/network-interfaces.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2017-02-02 22:21:03 +0100
committerProfpatsch <mail@profpatsch.de>2017-02-16 21:24:40 +0100
commit9debdaf512bc510f7f5d5450c4902e7d1f713274 (patch)
tree95047796efb8103b3192cd94a900b54235a9d4cc /nixos/modules/tasks/network-interfaces.nix
parent03024b39b7d4b94724faa1a62f21aed3531bb35a (diff)
downloadnixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.tar
nixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.tar.gz
nixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.tar.bz2
nixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.tar.lz
nixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.tar.xz
nixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.tar.zst
nixlib-9debdaf512bc510f7f5d5450c4902e7d1f713274.zip
networking.bonds: add support for arbitrary driverOptions
Until now the four attributes available very selectively provided a small
subset, while copying upstream documentation.

We make driver options an arbitrary key-value set and point to kernel
documentation, which is always up-to-date. This way every option can be set.
The four already existing options are deprecated with a warning.
Diffstat (limited to 'nixos/modules/tasks/network-interfaces.nix')
-rw-r--r--nixos/modules/tasks/network-interfaces.nix20
1 files changed, 20 insertions, 0 deletions
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 28c7b358093d..898207ef7a3c 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -587,11 +587,28 @@ in
             description = "The interfaces to bond together";
           };
 
+          driverOptions = mkOption {
+            type = types.attrsOf types.str;
+            default = {};
+            example = literalExample {
+              interfaces = [ "eth0" "wlan0" ];
+              miimon = 100;
+              mode = "active-backup";
+            };
+            description = ''
+              Options for the bonding driver.
+              Documentation can be found in
+              <link xlink:href="https://www.kernel.org/doc/Documentation/networking/bonding.txt" />
+            '';
+
+          };
+
           lacp_rate = mkOption {
             default = null;
             example = "fast";
             type = types.nullOr types.str;
             description = ''
+              DEPRECATED, use `driverOptions`.
               Option specifying the rate in which we'll ask our link partner
               to transmit LACPDU packets in 802.3ad mode.
             '';
@@ -602,6 +619,7 @@ in
             example = 100;
             type = types.nullOr types.int;
             description = ''
+              DEPRECATED, use `driverOptions`.
               Miimon is the number of millisecond in between each round of polling
               by the device driver for failed links. By default polling is not
               enabled and the driver is trusted to properly detect and handle
@@ -614,6 +632,7 @@ in
             example = "active-backup";
             type = types.nullOr types.str;
             description = ''
+              DEPRECATED, use `driverOptions`.
               The mode which the bond will be running. The default mode for
               the bonding driver is balance-rr, optimizing for throughput.
               More information about valid modes can be found at
@@ -626,6 +645,7 @@ in
             example = "layer2+3";
             type = types.nullOr types.str;
             description = ''
+              DEPRECATED, use `driverOptions`.
               Selects the transmit hash policy to use for slave selection in
               balance-xor, 802.3ad, and tlb modes.
             '';