Subject: CVS commit: src/sys/net
To: None <source-changes@NetBSD.org>
From: Steve Woodford <scw@netbsd.org>
List: source-changes
Date: 06/23/2007 08:45:25
Module Name:	src
Committed By:	scw
Date:		Sat Jun 23 08:45:25 UTC 2007

Modified Files:
	src/sys/net: if_spppsubr.c

Log Message:
If the underlying link's MTU is less than PP_MTU (e.g. PPPoE), set our
MRU to the link's MTU and initiate an MRU negotiation with the peer.

This is useful when the PPP session is bridged from Ethernet to ATM
by an ADSL modem (such as the Linksys AM200). Unless we negotiate the
lower MRU, the peer is unaware that 1500-byte packets will not make
it umolested across the link (the Linksys AM200 silently truncates them
to 1498 bytes, creating a nice PMTU blackhole).

Note that the PPP RFC says peers MUST accept 1500 byte packets,
regardless of the negotiated MRU, so most ISPs which use PPPoA will
probably still send 1500-byte packets. However, I persuaded my ISP
(Andrews and Arnold) to modify their software to generate an ICMP error
"fragment needed" for packets with IP.DF set which are larger than the
negotiated MRU. They will still forward non-IP.DF packets, with the
associated truncation, but at least my PMTU troubles have gone.


To generate a diff of this commit:
cvs rdiff -r1.104 -r1.105 src/sys/net/if_spppsubr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.