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 #ifndef PPP_MRU
#define PPP_MRU 1500 #define PPP_MRU 1500
#endif #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 #ifndef PPP_MAXMRU
#define PPP_MAXMRU 1500 #define PPP_MAXMRU 1500
#endif #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 #ifndef PPP_MINMRU
#define PPP_MINMRU 128 #define PPP_MINMRU 128

View File

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