liminix

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

commit df6cfe1cd5eeea6f0f6d626fc2696ef32a168e25
parent c13defc8918f5517c002410763e91e4f09df1ba7
Author: Daniel Barlow <dan@telent.net>
Date:   Fri, 14 Jul 2023 21:33:56 +0100

move pppoe service derivation into ppp module dir

Diffstat:
Mmodules/ppp/default.nix | 2+-
Amodules/ppp/pppoe.nix | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpkgs/liminix-tools/networking/default.nix | 1-
Dpkgs/liminix-tools/networking/pppoe.nix | 65-----------------------------------------------------------------
4 files changed, 66 insertions(+), 67 deletions(-)

diff --git a/modules/ppp/default.nix b/modules/ppp/default.nix @@ -8,7 +8,7 @@ in { }; }; config = { - system.service.pppoe = pkgs.liminix.networking.pppoe; + system.service.pppoe = pkgs.callPackage ./pppoe.nix {}; kernel = { config = { PPP = "y"; diff --git a/modules/ppp/pppoe.nix b/modules/ppp/pppoe.nix @@ -0,0 +1,65 @@ +{ + liminix +, lib +, ppp +, pppoe +, writeAshScript +, serviceFns +} : +let + inherit (liminix.services) longrun; + inherit (liminix.lib) typeChecked; + inherit (lib) mkOption types; + + t = { + interface = mkOption { + type = liminix.lib.types.service; + description = "ethernet interface to run PPPoE over"; + }; + ppp-options = mkOption { + type = types.listOf types.str; + description = "options supplied on ppp command line"; + }; + }; +in +params: +let + inherit (typeChecked "pppoe.nix" t params) interface ppp-options; + name = "${interface.device}.pppoe"; + ip-up = writeAshScript "ip-up" {} '' + . ${serviceFns} + (in_outputs ${name} + echo $1 > ifname + echo $2 > tty + echo $3 > speed + echo $4 > address + echo $5 > peer-address + echo $DNS1 > ns1 + echo $DNS2 > ns2 + ) + echo >/proc/self/fd/10 + ''; + ip6-up = writeAshScript "ip6-up" {} '' + . ${serviceFns} + (in_outputs ${name} + echo $4 > ipv6-address + echo $5 > ipv6-peer-address + ) + echo >/proc/self/fd/10 + ''; + ppp-options' = ppp-options ++ [ + "ip-up-script" ip-up + "ipv6-up-script" ip6-up + "ipparam" name + "nodetach" + "usepeerdns" + "logfd" "2" + ]; + +in +longrun { + inherit name; + run = "${ppp}/bin/pppd pty '${pppoe}/bin/pppoe -I ${interface.device}' ${lib.concatStringsSep " " ppp-options'}" ; + notification-fd = 10; + dependencies = [ interface ]; +} diff --git a/pkgs/liminix-tools/networking/default.nix b/pkgs/liminix-tools/networking/default.nix @@ -42,7 +42,6 @@ in { name = "${interface.device}.odhcp"; run = "odhcpcd ${interface.device}"; }; - pppoe = callPackage ./pppoe.nix {}; dnsmasq = callPackage ./dnsmasq.nix {}; hostapd = callPackage ./hostapd.nix {}; route = { name, target, via, dependencies, dev ? null }: diff --git a/pkgs/liminix-tools/networking/pppoe.nix b/pkgs/liminix-tools/networking/pppoe.nix @@ -1,65 +0,0 @@ -{ - liminix -, lib -, ppp -, pppoe -, writeAshScript -, serviceFns -} : -let - inherit (liminix.services) longrun; - inherit (liminix.lib) typeChecked; - inherit (lib) - mergeDefinitions - mkEnableOption mkOption isType types isDerivation hasAttr; - t = { - interface = mkOption { - type = liminix.lib.types.service; - description = "ethernet interface to run PPPoE over"; - }; - ppp-options = mkOption { - type = types.listOf types.str; - }; - }; -in -params: -let - inherit (typeChecked "pppoe.nix" t params) ppp-options interface; - name = "${interface.device}.pppoe"; - ip-up = writeAshScript "ip-up" {} '' - . ${serviceFns} - (in_outputs ${name} - echo $1 > ifname - echo $2 > tty - echo $3 > speed - echo $4 > address - echo $5 > peer-address - echo $DNS1 > ns1 - echo $DNS2 > ns2 - ) - echo >/proc/self/fd/10 - ''; - ip6-up = writeAshScript "ip6-up" {} '' - . ${serviceFns} - (in_outputs ${name} - echo $4 > ipv6-address - echo $5 > ipv6-peer-address - ) - echo >/proc/self/fd/10 - ''; - ppp-options' = ppp-options ++ [ - "ip-up-script" ip-up - "ipv6-up-script" ip6-up - "ipparam" name - "nodetach" - "usepeerdns" - "logfd" "2" - ]; - -in -longrun { - inherit name; - run = "${ppp}/bin/pppd pty '${pppoe}/bin/pppoe -I ${interface.device}' ${lib.concatStringsSep " " ppp-options'}" ; - notification-fd = 10; - dependencies = [ interface ]; -}