freebsd-skq/sys
glebius 9297dd4c7e When we receive an ICMP unreach need fragmentation datagram, we take
proposed MTU value from it and update the TCP host cache. Then
tcp_mss_update() is called on the corresponding tcpcb. It finds the
just allocated entry in the TCP host cache and updates MSS on the
tcpcb. And then we do a fast retransmit of what we have in the tcp
send buffer.

This sequence gets broken if the TCP host cache is exausted. In this
case allocation fails, and later called tcp_mss_update() finds nothing
in cache. The fast retransmit is done with not reduced MSS and is
immidiately replied by remote host with new ICMP datagrams and the
cycle repeats. This ping-pong can go up to wirespeed.

To fix this:
- tcp_mss_update() gets new parameter - mtuoffer, that is like
  offer, but needs to have min_protoh subtracted.
- tcp_mtudisc() as notification method renamed to tcp_mtudisc_notify().
- tcp_mtudisc() now accepts not a useless error argument, but proposed
  MTU value, that is passed to tcp_mss_update() as mtuoffer.

Reported by:	az
Reported by:	Andrey Zonov <andrey zonov.org>
Reviewed by:	andre (previous version of patch)
2012-04-16 13:49:03 +00:00
..
amd64 add actual interrupt counters to back ipi_invlcache_counts 2012-04-13 07:18:19 +00:00
arm Replace the C implementation of __aeabi_read_tp with an assembly version. 2012-04-16 09:38:20 +00:00
boot zfsboot: honor -q if it's present in boot.config 2012-04-16 10:43:06 +00:00
bsm
cam Refactor da(4) to remove one of two code paths used to query capacity 2012-04-12 12:58:14 +00:00
cddl - Introduce a cache-miss optimization for consistency with other 2012-04-09 17:05:18 +00:00
compat Remove some unnecessary includes. 2012-03-18 19:15:11 +00:00
conf Fix some style bugs introduced in a previous commit (r233045) 2012-04-14 23:53:31 +00:00
contrib Fix VIMAGE build. 2012-04-05 04:41:06 +00:00
crypto Add support for the extended FPU states on amd64, both for native 2012-01-21 17:45:27 +00:00
ddb Update the ddb and gdb backends for the new 'trace_thread' hook. 2012-04-12 21:34:58 +00:00
dev Migrate the net80211 TX aggregation state to be from per-AC to per-TID. 2012-04-15 20:29:39 +00:00
fs Provide better description for vfs.tmpfs.memory_reserved sysctl. 2012-04-15 21:59:28 +00:00
gdb Update the ddb and gdb backends for the new 'trace_thread' hook. 2012-04-12 21:34:58 +00:00
geom Expand locking around identification of filesystem mount point when 2012-04-08 06:20:21 +00:00
gnu/fs Make ReiserFS MPSAFE 2012-03-27 20:36:03 +00:00
i386 add actual interrupt counters to back ipi_invlcache_counts 2012-04-13 07:18:19 +00:00
ia64 Remove pty(4) from our kernel configurations. 2012-03-21 08:38:42 +00:00
isa - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
kern Fix a typo. 2012-04-14 23:59:58 +00:00
kgssapi Add missing break statement to make sure all 3DES etypes really are treated 2011-10-10 09:13:07 +00:00
libkern Remove second consts in r233288 in order to appease C++ compilers. 2012-03-26 18:22:04 +00:00
mips Add in the AP96 phy configuration from openwrt. 2012-04-15 22:59:56 +00:00
modules Fix LINT builds after r234233; not sure why modules need DEBUG by default. 2012-04-14 13:40:39 +00:00
net A bit of cleanup in the names of fields of netmap-related structures. 2012-04-13 16:03:07 +00:00
net80211 Migrate the net80211 TX aggregation state to be from per-AC to per-TID. 2012-04-15 20:29:39 +00:00
netatalk Fix typos 2012-02-28 15:07:05 +00:00
netgraph #include <net/vnet.h> is no longer needed here. 2012-04-16 13:41:46 +00:00
netinet When we receive an ICMP unreach need fragmentation datagram, we take 2012-04-16 13:49:03 +00:00
netinet6 in6_pcblookup_local() still can return a pcb with NULL 2012-03-21 08:43:38 +00:00
netipsec Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
netipx Convert all users of IF_ADDR_LOCK to use new locking macros that specify 2012-01-05 19:00:36 +00:00
netnatm
netncp Change ncp_scan_bindery_object() to pass a constant search string. 2011-10-16 08:44:03 +00:00
netsmb Add unicode support to msdosfs and smbfs; original pathes from imura, 2011-11-18 03:05:20 +00:00
nfs Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
nfsclient Remove fifo.h. The only used function declaration from the header is 2012-03-11 12:19:58 +00:00
nfsserver Honor NFSv3 commit call (RFC 1813, Section 3.3.21) where when count is 0, 2011-12-15 02:26:53 +00:00
nlm jwd@ reported a problem via email to freebsd-fs@ on Aug 25, 2011 2012-01-31 02:11:05 +00:00
ofed Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
opencrypto
pc98 Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
pci intpm: add ATI IXP400 pci id 2012-04-16 10:33:46 +00:00
powerpc We don't need kcopy() in any of the remaining places it is used, so 2012-04-11 22:23:50 +00:00
rpc Both a crash reported on freebsd-current on Oct. 18 under the 2011-11-03 14:38:03 +00:00
security When allocation of labels on files is implicitly disabled due to MAC 2012-04-08 11:01:49 +00:00
sparc64 Merge from x86: 2012-04-13 22:58:23 +00:00
sys - Extend the KDB interface to add a per-debugger callback to print a 2012-04-12 17:43:59 +00:00
teken Link the demo application against ncursesw to make Unicode work. 2011-10-13 14:20:27 +00:00
tools Make vnode_if.awk parse vnode operations with underscores, like VOP_FOO_BAR. 2012-02-21 19:35:59 +00:00
ufs Export vinactive() from kern/vfs_subr.c (e.g., make it no longer 2012-04-11 23:01:11 +00:00
vm - Introduce a cache-miss optimization for consistency with other 2012-04-09 17:05:18 +00:00
x86 Trim stray blank line. 2012-04-11 21:00:33 +00:00
xdr
xen blkif interface comment cleanups. No functional changes 2012-02-29 17:47:01 +00:00
Makefile Add sys/ofed to the 'make cscope' target. 2012-03-20 18:05:15 +00:00