Commit 27d0a8a0 authored by ign0tus's avatar ign0tus
Browse files

network.interfaces: Add option to configure WakeOnLan policy

Adds an option to configure a custom WakeOnLan policy instead of the
hard-coded "magic" policy. To ensure compatibility with current
behavior, "magic" is kept as default.
parent 237f7ba7
Loading
Loading
Loading
Loading
+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
          '';
        };
      };
    };