[The CPE router MUST support a TCP MSS Adjust feature on packets traversing the CPE router. By default, the TCP MSS Adjust feature is turned off. ]
Some thoughts below on why the above text.
The TCP MSS Adjust is not needed for TCP packets sourced or destined to the CPE because the number of such packets at the CPE will be very small. Additionally, we (Wes and I) deliberately left out qualifying the feature for IPv4 or IPv6 because the feature should be supported for both since the CPE also supports 6rd. We have left out specifying any default value for the MSS because there are several values since the MSS is a function of the protocols being used. Note IPv4 CPE routers already support a TCP MSS Adjust knob. Further, the DS-Lite AFTR and the 6rd BR in the SP domain sit between the home TCP client and a TCP server on the Internet. Thus the AFTR and the BR can perform TCP MSS Adjust. It’s only for 6rd where the CPE’s talk without going through the BR, the CPE has to invoke the TCP MSS Adjust.
The problems that the above text alleviates are:
(a) Any of native IPv6 and tunneled technologies such as DS-Lite and 6rd can cause ICMPv6 errors for packet too big to the source. Even when the CPE issues the ICMPv6 error to the host connected to the CPE, the Internet access of the host is delayed which is not good. Additionally, what if the CPE passes the host packet to the Internet and one router on the Internet issues the ICMPv6 error with packet too big but a node in the path back blocks the ICMPv6 error. Now the Internet connectivity is really delayed for the host. This summarizes that we do have problems to fix.
(b) DS-Lite is an additional problem. Since DS-Lite mandates that the CPE and the AFTR perform fragmentation and reassembly, we have a nasty problem. Reassembly of tunneled encapsulated packets is very complex because the receiver of the fragmented packet has to reassemble before decapsulation. Thus the received needs more memory and a general purpose cpu. If I want to choke a DS-Lite deployment at the AFTR and the CPE, I will generate packets close to 1500 bytes and force tunnel fragmentation. Thus the DS-Lite problem is an attack vector that Daniel Rosen pointed out too.
Further, PMTUD is not practical to deploy so the TCP MSS Adjust is still a usable choice.
Thanks,
Hemant