systemd.network.netdev: Add support for WLAN devices
These are virtual interface, where one physical wifi adapter can have
more than one interface.
See https://systemd.network/systemd.netdev.html#%5BWLAN%5D%20Section%20Options
and dedf2d0054
This commit is contained in:
parent
de635523b0
commit
989cca26c4
2 changed files with 27 additions and 0 deletions
|
@ -65,6 +65,9 @@ in {
|
||||||
'' + optionalString (def.vrfConfig != { }) ''
|
'' + optionalString (def.vrfConfig != { }) ''
|
||||||
[VRF]
|
[VRF]
|
||||||
${attrsToSection def.vrfConfig}
|
${attrsToSection def.vrfConfig}
|
||||||
|
'' + optionalString (def.wlanConfig != { }) ''
|
||||||
|
[WLAN]
|
||||||
|
${attrsToSection def.wlanConfig}
|
||||||
'' + optionalString (def.batmanAdvancedConfig != { }) ''
|
'' + optionalString (def.batmanAdvancedConfig != { }) ''
|
||||||
[BatmanAdvanced]
|
[BatmanAdvanced]
|
||||||
${attrsToSection def.batmanAdvancedConfig}
|
${attrsToSection def.batmanAdvancedConfig}
|
||||||
|
|
|
@ -159,6 +159,7 @@ let
|
||||||
"geneve"
|
"geneve"
|
||||||
"l2tp"
|
"l2tp"
|
||||||
"macsec"
|
"macsec"
|
||||||
|
"wlan"
|
||||||
"vrf"
|
"vrf"
|
||||||
"vcan"
|
"vcan"
|
||||||
"vxcan"
|
"vxcan"
|
||||||
|
@ -468,6 +469,19 @@ let
|
||||||
(assertMinimum "Table" 0)
|
(assertMinimum "Table" 0)
|
||||||
];
|
];
|
||||||
|
|
||||||
|
sectionWLAN = checkUnitConfig "WLAN" [
|
||||||
|
(assertOnlyFields [
|
||||||
|
"PhysicalDevice"
|
||||||
|
"Type"
|
||||||
|
"WDS"
|
||||||
|
])
|
||||||
|
# systemd supports strings here too ("phy0") but index is good enough
|
||||||
|
(assertInt "PhysicalDevice")
|
||||||
|
(assertMinimum "PhysicalDevice" 0)
|
||||||
|
(assertValueOneOf "Type" ["ad-hoc" "station" "ap" "ap-vlan" "wds" "monitor" "mesh-point" "p2p-client" "p2p-go" "p2p-device" "ocb" "nan"])
|
||||||
|
(assertValueOneOf "WDS" boolValues)
|
||||||
|
];
|
||||||
|
|
||||||
sectionBatmanAdvanced = checkUnitConfig "BatmanAdvanced" [
|
sectionBatmanAdvanced = checkUnitConfig "BatmanAdvanced" [
|
||||||
(assertOnlyFields [
|
(assertOnlyFields [
|
||||||
"GatewayMode"
|
"GatewayMode"
|
||||||
|
@ -1779,6 +1793,16 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
wlanConfig = mkOption {
|
||||||
|
default = {};
|
||||||
|
example = { PhysicalDevice = 0; Type = "station"; };
|
||||||
|
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWLAN;
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Each attribute in this set specifies an option in the `[WLAN]` section of the unit.
|
||||||
|
See {manpage}`systemd.netdev(5)` for details.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
batmanAdvancedConfig = mkOption {
|
batmanAdvancedConfig = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
example = {
|
example = {
|
||||||
|
|
Loading…
Reference in a new issue