Bug #11409
closedIPv4 MSS value is incorrectly applied to IPv6 packets
100%
Description
Follows from discussion at https://forum.netgate.com/topic/152935/ipv6-pppoe-mss-incorrect/.
When setting up MSS clamping on the WAN interface, the calculation applied on the entered value subtracts a hard-coded constant of 40 bytes, assuming 20 bytes for TCP and 20 bytes for IPv4. This is also applied on IPv6 packets, when the calculation in that case should be 20 bytes for TCP and 40 bytes for IPV6. This is done on line 640 of /src/etc/inc/filter.inc (https://github.com/pfsense/pfsense/blob/11fd7da72502c991b1f1c0e886ea212235f4a505/src/etc/inc/filter.inc#L640).
Thus, an end user who needs to set MSS can only do so by entering a value that works for IPv4 or IPv6, and not both. For example, in my setup with a PPPoE connection, I must enter 1472 as MSS instead of the correct value of 1492 to have MSS work over IPv6.