Unverified Commit 42f2e2da authored by Florian Klink's avatar Florian Klink Committed by GitHub
Browse files

Merge pull request #257510 from ign0tus/fix/wake-on-lan-policy

Fix: WakeOnLan policy
parents 8d301f41 27d0a8a0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -80,6 +80,10 @@ in rec {
    optional (attr ? ${name} && !elem attr.${name} values)
      "Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";

  assertValuesSomeOfOr = name: values: default: group: attr:
    optional (attr ? ${name} && !(all (x: elem x values) (splitString " " attr.${name}) || attr.${name} == default))
      "Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";

  assertHasField = name: group: attr:
    optional (!(attr ? ${name}))
      "Systemd ${group} field `${name}' must exist.";
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ let
        (assertByteFormat "BitsPerSecond")
        (assertValueOneOf "Duplex" ["half" "full"])
        (assertValueOneOf "AutoNegotiation" boolValues)
        (assertValueOneOf "WakeOnLan" ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon" "off"])
        (assertValuesSomeOfOr "WakeOnLan" ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon"] "off")
        (assertValueOneOf "Port" ["tp" "aui" "bnc" "mii" "fibre"])
        (assertValueOneOf "ReceiveChecksumOffload" boolValues)
        (assertValueOneOf "TransmitChecksumOffload" boolValues)
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ let
        } // optionalAttrs (i.mtu != null) {
          MTUBytes = toString i.mtu;
        } // optionalAttrs (i.wakeOnLan.enable == true) {
          WakeOnLan = "magic";
          WakeOnLan = concatStringsSep " " i.wakeOnLan.policy;
        };
      };
    in listToAttrs (map createNetworkLink interfaces);
+18 −0
Original line number Diff line number Diff line
@@ -327,6 +327,24 @@ let
          default = false;
          description = lib.mdDoc "Whether to enable wol on this interface.";
        };
        policy = mkOption {
          type = with types; listOf (
            enum ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon"]
          );
          default = ["magic"];
          description = lib.mdDoc ''
            The [Wake-on-LAN policy](https://www.freedesktop.org/software/systemd/man/systemd.link.html#WakeOnLan=)
            to set for the device.

            The options are
            - `phy`: Wake on PHY activity
            - `unicast`: Wake on unicast messages
            - `multicast`: Wake on multicast messages
            - `broadcast`: Wake on broadcast messages
            - `arp`: Wake on ARP
            - `magic`: Wake on receipt of a magic packet
          '';
        };
      };
    };