liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 7f9cae9d5cf5560ff701fa075a8bc54df74755b6
parent 3012c91b47eb149b6ffd9028f43e0ad0bb798102
Author: Daniel Barlow <dan@telent.net>
Date:   Tue, 16 Jul 2024 22:10:09 +0100

generalise profile.gateway.wan so not just pppoe

Diffstat:
MNEWS | 12++++++++++++
Mexamples/rotuer.nix | 14+++++++++++---
Mmodules/profiles/gateway.nix | 6+-----
3 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/NEWS b/NEWS @@ -103,3 +103,15 @@ a bit more useful :-) }; }) ]; + +2024-07-16 + +* structured parameters are available for the pppoe service + +* The "wan" configuration in modules/profiles/gateway.nix has changed: +instead of passing options that are used to create a pppoe interface, +callers should create a (pppoe or other) interface and pass that as +the value of profile.gateway.wan. For the pppoe case this is now only +very slightly more verbose, and it allows using the gateway profile +with other kinds of upstream. + diff --git a/examples/rotuer.nix b/examples/rotuer.nix @@ -53,9 +53,17 @@ in rec { }; }; wan = { - interface = config.hardware.networkInterfaces.wan; - username = secrets.l2tp.name; - password = secrets.l2tp.password; + # wan interface depends on your upstream - could be dhcp, static + # ethernet, a pppoe, ppp over serial, a complicated bonded + # failover ... who knows what else? + interface = svc.pppoe.build { + interface = config.hardware.networkInterfaces.wan; + username = secrets.l2tp.name; + password = secrets.l2tp.password; + }; + # once the wan has ipv4 connnectivity, should we run dhcp6 + # client to potentially get an address range ("prefix + # delegation") dhcp6.enable = true; }; firewall = { diff --git a/modules/profiles/gateway.nix b/modules/profiles/gateway.nix @@ -52,8 +52,6 @@ in { wan = { interface = mkOption { type = liminix.lib.types.interface; }; - username = mkOption { type = types.str; }; - password = mkOption { type = types.str; }; dhcp6.enable = mkOption { type = types.bool; }; }; @@ -86,9 +84,7 @@ in { members = cfg.lan.interfaces; }; - services.wan = svc.pppoe.build { - inherit (cfg.wan) interface username password; - }; + services.wan = cfg.wan.interface; services.packet_forwarding = svc.network.forward.build { };