Skip to content

Commit

Permalink
nixos/networkd: add HierarchyTokenBucketClass options
Browse files Browse the repository at this point in the history
  • Loading branch information
apfelkuchen6 committed Mar 16, 2023
1 parent 24df07c commit 88d99a3
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions nixos/modules/system/boot/networkd.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1371,6 +1371,21 @@ let
])
(assertInt "RateToQuantum")
];

sectionHierarchyTokenBucketClass = checkUnitConfig "HierarchyTokenBucketClass" [
(assertOnlyFields [
"Parent"
"ClassId"
"Priority"
"QuantumBytes"
"MTUBytes"
"OverheadBytes"
"Rate"
"CeilRate"
"BufferBytes"
"CeilBufferBytes"
])
];
};
};

Expand Down Expand Up @@ -2270,6 +2285,17 @@ let
'';
};

hierarchyTokenBucketClassConfig = mkOption {
default = {};
example = { Parent = "root"; Rate = "10M"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionHierarchyTokenBucketClass;
description = lib.mdDoc ''
Each attribute in this set specifies an option in the
`[HierarchyTokenBucketClass]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};

name = mkOption {
type = types.nullOr types.str;
default = null;
Expand Down Expand Up @@ -2785,6 +2811,10 @@ let
[HierarchyTokenBucket]
${attrsToSection def.hierarchyTokenBucketConfig}
''
+ optionalString (def.hierarchyTokenBucketClassConfig != { }) ''
[HierarchyTokenBucketClass]
${attrsToSection def.hierarchyTokenBucketClassConfig}
''
+ def.extraConfig;
};

Expand Down

0 comments on commit 88d99a3

Please sign in to comment.