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.