NetBSD/sys
thorpej ea9b5a9106 Restructure the Path MTU Discovery code somewhat to avoid
entering rtentry's for hosts we're not actually communicating
with.

Do this by invoking the ctlinput for the protocol, which is
responsible for validating the ICMP message:
	* TCP -- Lookup the connection based on the address/port
	  pairs in the ICMP message.
	* AH/ESP -- Lookup the SA based on the SPI in the ICMP message.

If validation succeeds, ctlinput is responsible for calling
icmp_mtudisc().  icmp_mtudisc() then invokes callbacks registered
by protocols (such as TCP) which want to take some sort of special
action when a path's MTU changes.  For TCP, this is where we now
refresh cached routes and re-enter slow-start.

As a side-effect, this fixes the problem where TCP would not be
notified when a path's MTU changed if AH/ESP were being used.

XXX Note, this is only a fix for the IPv4 case.  For the IPv6
XXX case, we need to wait for the KAME folks.

Reviewed by sommerfeld@netbsd.org and itojun@netbsd.org.
2000-10-18 17:09:14 +00:00
..
adosfs MALLOC()/FREE() are not to be used for variable sized allocations. 2000-08-03 00:54:23 +00:00
arch Move APbus dependent unmapped DMA address stuff from bus.c to apbus.c 2000-10-18 12:47:37 +00:00
coda Adapt for VOP_FSYNC parameter change. 2000-09-19 22:00:01 +00:00
compat Add sys/proc.h so this compiles. 2000-10-16 03:18:04 +00:00
conf NetBSD 1.5H: struct ifnet changed. 2000-10-11 16:55:11 +00:00
crypto avoid assert, memcpy and memset (necessary to BSD code sharing). 2000-10-03 03:17:19 +00:00
ddb Missed change of parameter for %r->db_format_radix() change. 2000-08-11 22:50:47 +00:00
dev Adapt for new lun switch script. 2000-10-18 17:06:52 +00:00
filecorefs MALLOC()/FREE() are not to be used for variable sized allocations. 2000-08-03 03:38:39 +00:00
gdbscripts gdb macro to print the kernel message buffer 2000-06-08 14:45:24 +00:00
ipkdb
isofs MALLOC()/FREE() are not to be used for variable sized allocations. 2000-08-03 03:39:52 +00:00
kern knf [from charles] 2000-10-17 23:38:55 +00:00
lib enclose offsetof macro definition with #ifndef offsetof ... #endif 2000-10-12 03:42:33 +00:00
lkm
miscfs fix typo (dely --> delay) 2000-10-06 19:08:00 +00:00
msdosfs Adapt for VOP_FSYNC parameter change. 2000-09-19 22:01:59 +00:00
net When discarding oversized frame, say how long it was. 2000-10-15 19:49:55 +00:00
netatalk Avoid recursion with traditional cpp. 2000-07-28 12:13:32 +00:00
netccitt More format checking 2000-07-08 17:45:53 +00:00
netinet Restructure the Path MTU Discovery code somewhat to avoid 2000-10-18 17:09:14 +00:00
netinet6 Restructure the Path MTU Discovery code somewhat to avoid 2000-10-18 17:09:14 +00:00
netiso fix paren/#ifdef match. 2000-10-02 03:54:53 +00:00
netkey don't waste entropy by use of key_random(). use key_randomfill() for 2000-10-07 12:08:33 +00:00
netnatm Keystone Kwality Kops: add multiple-include protection. 2000-07-03 01:19:23 +00:00
netns
nfs include opt_inet.h, needed by previous check-in. 2000-10-03 17:18:15 +00:00
ntfs Adapt for VOP_FSYNC parameter change. 2000-09-19 22:01:59 +00:00
stand
sys add missing semicolon to typedef of mode_t 2000-10-18 01:43:18 +00:00
ufs In lfs_truncate, don't overcount the real blocks removed from the inode, 2000-10-14 23:22:14 +00:00
uvm Back out rev. 1.83 -- it's causing problems with some pmap 2000-10-16 23:17:54 +00:00
Makefile remove vm 2000-06-29 12:04:24 +00:00