Subject: Re: ppp problem/question
To: None <tech-net@NetBSD.ORG>
From: Paul Mackerras <paulus@cs.anu.edu.au>
List: tech-net
Date: 09/17/1997 11:10:30
Stephen.Ma@jtec.com.au (Stephen Ma) wrote:

> Ummmm... From a brief scan of /usr/src/usr.sbin/pppd/pppd/lcp.c, in
> function lcp_nakci(), there's a chunk of code which handles the
> incoming nak:
> 
>     /*
>      * We don't care if they want to send us smaller packets than
>      * we want.  Therefore, accept any MRU less than what we asked for,
>      * but then ignore the new value when setting the MRU in the kernel.
>      * If they send us a bigger MRU than what we asked, accept it, up to
>      * the limit of the default MRU we'd get if we didn't negotiate.
>      */
>     if (go->neg_mru && go->mru != DEFMRU) {
>         NAKCISHORT(CI_MRU, neg_mru,
>                    if (cishort <= wo->mru || cishort < DEFMRU)
>                        try.mru = cishort;
>                    );
>     }
> 
> Note that DEFMRU is 1500.
> 
> At a VERY rough guess, it's ignoring the nak from the remote end
> because the the MRU requested by the remote end is equal to 1500 (and
> not strictly less than). I believe this is a bug - it should happily
> accept the default MRU.

That's right - the proposed change (changing cishort < DEFMRU to
cishort <= DEFMRU) is correct.

Paul.