| 2 Jun 2025 |
hexa | I don't remember it integrating with pppd | 11:34:57 |
emily | I assume NM's PPPoE support just wraps it anyway though | 11:34:58 |
hexa | age.secrets."ppp-credentials".file = ../../agenix/ppp-credentials.age;
services.pppd = {
enable = true;
peers."1und1" = {
config = ''
debug
plugin pppoe.so
nic-enp1s0
file ${config.age.secrets."ppp-credentials".path}
mtu 1500
mru 1500
maxfail 0
novj
+ipv6
noauth
defaultroute
persist
noaccomp
default-asyncmap
lcp-echo-interval 30
lcp-echo-failure 4
#lcp-echo-adaptive
lcp-max-configure 10
'';
};
};
| 11:35:19 |
emily | https://networkmanager.dev/docs/api/latest/settings-pppoe.html implies it does | 11:35:59 |
emily | (but doesn't look very rich) | 11:36:14 |
emily | ty :) | 11:36:19 |
hexa | oh, it's called DSL/PPPoE in the list | 11:36:41 |
hexa | and yeah, the config looks too simple | 11:37:17 |
emily | yes. it sure would make sense if you only used PPPoE on DSL, and didn't also carry it over to FTTP. wouldn't it | 11:37:18 |
emily | that would be a great world we could live in :P | 11:37:27 |
emily | I discovered this gem:
root@OpenWrt:~# cat /etc/ppp/filter
#
# Expression: outbound and not icmp[0] != 8 and not tcp[13] & 4 != 0
#
19
48 0 0 0
21 0 16 1
40 0 0 2
21 0 13 33
48 0 0 13
21 0 5 1
40 0 0 10
69 9 0 8191
177 0 0 4
80 0 0 4
21 6 7 8
21 0 5 6
40 0 0 10
69 3 0 8191
177 0 0 4
80 0 0 17
69 1 0 4
6 0 0 4
6 0 0 0
| 11:38:10 |
emily | which appears to be either a hand-written or compiled BPF program represented in decimal | 11:38:25 |
emily | that I don't know what it's doing but it horrifies me that it's even there | 11:38:35 |
hexa | well, that's a pcap filter expression right at the top 🤔 | 11:39:04 |
hexa | not ping and not tcp rst? | 11:40:25 |
emily | no idea what it's doing in /etc/ppp, couldn't find where it's referenced | 11:40:48 |
hexa | * not ping and not tcp rst? | 11:40:53 |
emily | environment = {
# pppd likes to write directly into /var/run. This is rude
# on a modern system, so we use libredirect to transparently
# move those files into /run/pppd.
LD_PRELOAD = "${pkgs.libredirect}/lib/libredirect.so";
NIX_REDIRECTS = "/var/run=/run/pppd";
};
| 11:48:48 |
emily | why would you not just patch it… T_T | 11:49:05 |
hexa | too many locations | 11:49:41 |
emily | looks like it's literally a configure flag | 11:51:23 |
emily | also it supports Type=notify(!) | 11:51:38 |
hexa | since 2.5.0 iirc | 11:52:07 |
emily | might have to send some patches to the module | 11:52:16 |
K900 | I see | 11:52:22 |
K900 | This was all a plan to snipe Emily into fixing our pppd situation | 11:52:30 |
hexa | https://github.com/NixOS/nixpkgs/pull/273756 | 11:52:34 |
hexa | https://github.com/NixOS/nixpkgs/pull/242726 | 11:52:40 |
emily | I mean when you said you wanted me to fix the BPI-R4 jank I didn't think it would involve PPP. | 11:52:57 |
emily | cheers, might revive this | 11:53:57 |