On 2016-12-15, Tom <bul...@posteo.net> wrote: >> Thanks. I was wondering about a bug with LCP echoes I accidentally >> introduced that made it into 5.9 (fixed for 6.0). > could you please point me to the changes you are talking about here. > I started using pppoe in 5.9 and the LCP-echo gave me a hard time. I > frequently told my ISP (Deutsche Telekom) to drop the line because I > was hitting the MAXALIVECNT value in if_spppsubr.
We sent our own LCP echo requests, but the bug stopped this from working, so would have caused timeouts depending on how often user data was seen and the ISP's echo req timer. This was the fix: Index: if_spppsubr.c =================================================================== RCS file: /cvs/src/sys/net/if_spppsubr.c,v retrieving revision 1.150 retrieving revision 1.151 diff -u -p -r1.150 -r1.151 --- if_spppsubr.c 18 Apr 2016 14:38:09 -0000 1.150 +++ if_spppsubr.c 1 May 2016 14:08:39 -0000 1.151 @@ -4094,7 +4094,7 @@ sppp_keepalive(void *dummy) } if (sp->pp_alivecnt < MAXALIVECNT) ++sp->pp_alivecnt; - else if (sp->pp_phase >= PHASE_AUTHENTICATE) { + if (sp->pp_phase >= PHASE_AUTHENTICATE) { u_int32_t nmagic = htonl(sp->lcp.magic); sp->lcp.echoid = ++sp->pp_seq; sppp_cp_send (sp, PPP_LCP, ECHO_REQ, > as I was in the "lucky" situation that nobody was penetrating me on > ports like ssh, telnet or smtp from outside. I made a modification to > send 'sp->pp_alivecnt' to syslog anytime it was changed in addition to > packet capturing. It turned out that my ISP sends LCP-keepalives in a > 45s interval and not every 15s. This means I might eventually get my > first LCP-echo from the provider when pppoe is already timing out. I > would be glad though if there was a way to address this problem without > a custum kernel. I think 6.0 should fix this for you.