Subject: Re: In-kernel pppoe doesn't seem to detect connection loss
To: None <>
From: Juha K Kallio <>
List: netbsd-users
Date: 04/23/2003 15:31:02
On Wed, Apr 23, 2003 at 02:24:35PM +0200, Martin Husemann wrote:
> On Wed, Apr 23, 2003 at 03:08:22PM +0300, Juha K Kallio wrote:
> > It clearly seems that for some weird reason, the in-kernel pppoe is not checking the connection at all. I can't see a 
> > setting for that anywhere.
> There is no setting for it, it's always active for PPPoE connections.
> Since it works everywhere and you are the only one able to reproduce the
> problem, you are the only one who can debug it.
> Look at sys/net/if_spppsubr.c and search for the sppp_keepalive function.
> This is called every 10 seconds and checks all interfaces. Add a few printfs
> there and find out why it does not hit the 
>    if (sp->pp_alivecnt == MAXALIVECNT) {
> clause in line 4693.
> Martin

My knowledge of C is extremly basic, so I really have no idea of debugging this. But what's this in if_spppsubr.c:

/* Keepalive mode disabled or channel down? */
if (! (sp->pp_flags & PP_KEEPALIVE) ||
    ! (ifp->if_flags & IFF_RUNNING))

I know there is nothing about LCP echoes in any man pages or such, but I tested with 
tcpdump -vvv -i rtk0 eth src <my mac address> |grep -v and got only LCP echo _replies_ from my