PPP: force default MRU to 1500

RFC1661 mandates that default MRU value, that must be used prior
negotiation of MRU value and if MRU value is not negotiated later, must
be 1500.

That is, any PPP host must accept control frames of at least 1500 when
the PPP session start (there are no way to split them in multiples
frames anyway) and must use a value of 1500 if MRU is no negotiated
during LCP exchanges.

Therefore, having it configurable in ppp_opts is a mistake. It was wrong
and never worked because changing the value never triggered a MRU value
negotiation because it changed both the wanted MRU value and the RFC
default value to which the wanted value is compared to trigger a MRU
negotiation if values are not equal.
This commit is contained in:
Sylvain Rochet 2020-10-18 23:30:58 +02:00
parent b8640678d6
commit 90874392e3
2 changed files with 6 additions and 7 deletions

View File

@ -81,6 +81,12 @@ extern "C" {
#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
/*
* PPP_DEFMRU: MRU value used prior negotiation and unless negotiated later.
* Must be 1500.
*/
#define PPP_DEFMRU 1500
/*
* Protocol field values.
*/

View File

@ -501,13 +501,6 @@
#define PPP_MRU 1500
#endif
/**
* PPP_DEFMRU: Default MRU to try
*/
#ifndef PPP_DEFMRU
#define PPP_DEFMRU 1500
#endif
/**
* PPP_MAXMRU: Normally limit MRU to this (pppd default = 16384)
*/