PPP: allow negotiating MRU with PPP_MRU config option

PPP_MRU is now free to be used for what it should have been. Now using
it at PPP init stage to set the wanted MRU value, triggering a MRU
negotiation at the LCP phase.

I doubt anyone needs it anyway, but, well, at least it is fixed and the
MRU/MTU config mess is cleaned.

And while we are at it, better document PPP MRU config values.
This commit is contained in:
Sylvain Rochet 2020-10-19 00:26:14 +02:00
parent 90874392e3
commit 51c6548631
2 changed files with 16 additions and 4 deletions

View File

@ -495,21 +495,33 @@
*/
/**
* PPP_MRU: Default MRU
* PPP_MRU: MRU value we want to negotiate (peer MTU)
*
* It only affects PPPoS because PPPoE value is derived from the
* Ethernet interface MTU and PPPoL2TP have a separate setting.
*/
#ifndef PPP_MRU
#define PPP_MRU 1500
#endif
/**
* PPP_MAXMRU: Normally limit MRU to this (pppd default = 16384)
* PPP_MAXMRU: Normally limit peer MRU to this
*
* This is the upper limit value to which we set our interface MTU.
* If the peer sends a larger number, we will just ignore it as we
* are not required to maximize the use of the peer capacity.
*
* It only affects PPPoS because PPPoE value is derived from the
* Ethernet interface MTU and PPPoL2TP have a separate setting.
*/
#ifndef PPP_MAXMRU
#define PPP_MAXMRU 1500
#endif
/**
* PPP_MINMRU: No MRUs below this
* PPP_MINMRU: No peer MRUs below this
*
* Peer must be able to receive at least our minimum MTU.
*/
#ifndef PPP_MINMRU
#define PPP_MINMRU 128

View File

@ -373,7 +373,7 @@ static void lcp_init(ppp_pcb *pcb) {
BZERO(wo, sizeof(*wo));
wo->neg_mru = 1;
wo->mru = PPP_DEFMRU;
wo->mru = PPP_MRU;
wo->neg_asyncmap = 1;
wo->neg_magicnumber = 1;
wo->neg_pcompression = 1;