at 23.05-pre 1.9 kB view raw
1import ./make-test-python.nix ( 2 let 3 chap-secrets = { 4 text = ''"flynn" * "reindeerflotilla" *''; 5 mode = "0640"; 6 }; 7 in { 8 name = "pppd"; 9 10 nodes = { 11 server = {config, pkgs, ...}: { 12 config = { 13 # Run a PPPoE access concentrator server. It will spawn an 14 # appropriate PPP server process when a PPPoE client sets up a 15 # PPPoE session. 16 systemd.services.pppoe-server = { 17 restartTriggers = [ 18 config.environment.etc."ppp/pppoe-server-options".source 19 config.environment.etc."ppp/chap-secrets".source 20 ]; 21 after = ["network.target"]; 22 serviceConfig = { 23 ExecStart = "${pkgs.rpPPPoE}/sbin/pppoe-server -F -O /etc/ppp/pppoe-server-options -q ${pkgs.ppp}/sbin/pppd -I eth1 -L 192.0.2.1 -R 192.0.2.2"; 24 }; 25 wantedBy = ["multi-user.target"]; 26 }; 27 environment.etc = { 28 "ppp/pppoe-server-options".text = '' 29 lcp-echo-interval 10 30 lcp-echo-failure 2 31 plugin rp-pppoe.so 32 require-chap 33 nobsdcomp 34 noccp 35 novj 36 ''; 37 "ppp/chap-secrets" = chap-secrets; 38 }; 39 }; 40 }; 41 client = {config, pkgs, ...}: { 42 services.pppd = { 43 enable = true; 44 peers.test = { 45 config = '' 46 plugin rp-pppoe.so eth1 47 name "flynn" 48 noipdefault 49 persist 50 noauth 51 debug 52 ''; 53 }; 54 }; 55 environment.etc."ppp/chap-secrets" = chap-secrets; 56 }; 57 }; 58 59 testScript = '' 60 start_all() 61 client.wait_until_succeeds("ping -c1 -W1 192.0.2.1") 62 server.wait_until_succeeds("ping -c1 -W1 192.0.2.2") 63 ''; 64 })