1
0
Fork 0

generalise profile.gateway.wan so not just pppoe

This commit is contained in:
Daniel Barlow 2024-07-16 22:10:09 +01:00
parent 3012c91b47
commit 7f9cae9d5c
3 changed files with 24 additions and 8 deletions

12
NEWS
View File

@ -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.

View File

@ -53,9 +53,17 @@ in rec {
};
};
wan = {
# 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 = {

View File

@ -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 { };