During the interaction between a PPPoE client and server, they negotiate an interface MTU and MRU and then exchange packets based on the negotiated values. The negotiation way can be either of the following ones:
MRU negotiation in compliance with standard protocols enabled
PPPoE discovery stage
If a user packet carries a PPP-Max-Payload field whose value is greater than 1492 bytes, the field value is compared with the bas interface MTU minus 8. The smaller one of them is used and named the PPP_MRU_Max. The PPP_MRU_Max is not the negotiated MTU and is used as an MTU reference.
If a user packet carries a PPP-Max-Payload field whose value is less than or equal to 1492 bytes, the PPP_MRU_Max is the default value 1492. This value is used as an MTU reference.
If a user packet does not carry a PPP-Max-Payload field, the PPP_MRU_Max is set to the default value 0. This value is not used as an MTU reference.
LCP negotiation stage during PPPoE session stage
A Config-Request packet carries an MRU field in the LCP negotiation stage.
If the carried MRU is equal to the PPP_MRU_Max negotiated in the PPPoE discovery stage, the MRU is used as the negotiated MTU.
If the carried MRU is not equal to the PPP_MRU_Max negotiated in the PPPoE discovery stage, or the PPP_MRU_Max is set to 0, the MRU is compared with the MTU in the virtual template (VT) minus 8. The smallest one of them is used as the negotiated MTU.
If a Config-Request packet does not carry any MRU field in the LCP negotiation stage, the smallest one of 1492 and the VT MTU minus 8 is used as the negotiated MTU.
MRU negotiation in compliance with standard protocols not enabled
PPPoE discovery stage
If a user packet carries a PPP-Max-Payload field, the field value is compared with the BAS interface MTU. The smaller one of them is named the PPP_MRU_Max. The PPP_MRU_Max is not the negotiated MTU and is used as an MTU reference.
If a user packet does not carry a PPP-Max-Payload field, the PPP_MRU_Max is set to the default value 0. This value is not used as an MTU reference.
LCP negotiation stage during PPPoE session stage
If a Config-Request packet carries an MRU field in the LCP negotiation stage, the field value is compared with the VT MTU and the MTU of the bas interface. The smallest one of them is used as the negotiated MTU.
If a Config-Request packet does not carry an MRU field in the LCP negotiation stage.
If the PPP_MRU_Max is not negotiated in the PPPoE discovery stage, the VT MTU is used as the negotiated MTU.
If the PPP_MRU_Max is negotiated in the PPPoE discovery stage, the smaller one of the PPP-Max-Payload and the VT MTU is used as the negotiated MTU.