NetBSD/sys
mycroft 5283ca74ad Fix two problems in our TCP stack:
1) If an echoed RFC 1323 time stamp appears to be later than the current time,
   ignore it and fall back to old-style RTT calculation.  This prevents ending
   up with a negative RTT and panicking later.

2) Fix NewReno.  This involves a few changes:

   a) Implement the send_high variable in RFC 2582.  Our implementation is
      subtly different; it is one *past* the last sequence number transmitted
      rather than being equal to it.  This simplifies some logic and makes
      the code smaller.  Additional logic was required to prevent sequence
      number wraparound problems; this is not mentioned in RFC 2582.

   b) Make sure we reset t_dupacks on new acks, but *not* on a partial ack.
      All of the new ack code is pushed out into tcp_newreno().  (Later this
      will probably be a pluggable function.)  Thus t_dupacks keeps track of
      whether we're in fast recovery all the time, with Reno or NewReno, which
      keeps some logic simpler.

   c) We do not need to update snd_recover when we're not in fast recovery.
      See tech-net for an explanation of this.

   d) In the gratuitous fast retransmit prevention case, do not send a packet.
      RFC 2582 specifically says that we should "do nothing".

   e) Do not inflate the congestion window on a partial ack.  (This is done by
      testing t_dupacks to see whether we're still in fast recovery.)

This brings the performance of NewReno back up to the same as Reno in a few
random test cases (e.g. transferring peer-to-peer over my wireless network).
I have not concocted a good test case for the behavior specific to NewReno.
2005-01-26 21:49:27 +00:00
..
altq Fix URL to Wu-chang Feng's BLUE 2004-06-26 07:22:11 +00:00
arch Fixup ACPI wakecode on i386. This (along with some PCI power management 2005-01-26 21:46:38 +00:00
coda Add the system call and VFS infrastructure for file system extended 2005-01-02 16:08:28 +00:00
compat Hmm - vax is different. sendsig_sigcontext() is for __mips only. 2005-01-25 14:56:09 +00:00
conf - switch to dev/rtl8169.c from pci/if_re.c. 2005-01-21 12:32:18 +00:00
crypto
ddb reduce db_maxoff from 256MB to 1MB, that should be plenty. 2005-01-16 23:38:47 +00:00
dev Add support functions for capturing and restoring PCI configuration 2005-01-26 21:49:00 +00:00
dist Disable the oow test because it is broken. It is killing valid packets. 2005-01-16 02:56:22 +00:00
fs adjust the UBC mapping code to support non-vnode uvm_objects. 2005-01-09 16:42:43 +00:00
gdbscripts
ipkdb
kern Extend fsync_range(2) to support the FDISKSYNC flag, which requests 2005-01-25 23:55:20 +00:00
lib MBR_PTYPE_APPLE_UFS is now spelled with an underscore. 2004-11-12 19:34:43 +00:00
lkm Install tap(4) LKM. 2005-01-24 15:50:52 +00:00
miscfs Extend fsync_range(2) to support the FDISKSYNC flag, which requests 2005-01-25 23:55:20 +00:00
net Switch to using ifa for ifaddr's instead of ia (which are traditionally 2005-01-25 17:22:08 +00:00
net80211 Bug fix: when encapsulating 802.11 data packets, always copy the 2005-01-21 22:57:30 +00:00
netatalk Commit missing files with domain list sets. 2005-01-23 22:24:39 +00:00
netccitt Commit missing files with domain list sets. 2005-01-23 22:24:39 +00:00
netinet Fix two problems in our TCP stack: 2005-01-26 21:49:27 +00:00
netinet6 Change initialzie of domains to use link sets. Switch to using STAILQ. 2005-01-23 18:41:56 +00:00
netipsec Change initialzie of domains to use link sets. Switch to using STAILQ. 2005-01-23 18:41:56 +00:00
netisdn If we don't have a source telephone number configured, do not send 2004-05-06 21:11:04 +00:00
netiso Change initialzie of domains to use link sets. Switch to using STAILQ. 2005-01-23 18:41:56 +00:00
netkey Change initialzie of domains to use link sets. Switch to using STAILQ. 2005-01-23 18:41:56 +00:00
netnatm Change initialzie of domains to use link sets. Switch to using STAILQ. 2005-01-23 18:41:56 +00:00
netns Change initialzie of domains to use link sets. Switch to using STAILQ. 2005-01-23 18:41:56 +00:00
netsmb There's no need to pass a proc value when using UIO_SYSSPACE with 2004-09-17 14:11:20 +00:00
nfs nfs_readdirrpc, nfs_readdirplusrpc: 2005-01-26 10:33:54 +00:00
opencrypto Cloning cleanup: 2004-11-30 04:25:43 +00:00
stand
sys Extend fsync_range(2) to support the FDISKSYNC flag, which requests 2005-01-25 23:55:20 +00:00
ufs Extend fsync_range(2) to support the FDISKSYNC flag, which requests 2005-01-25 23:55:20 +00:00
uvm move the call to link_pool_init() to the end of uvm_init(). needed for sun3. 2005-01-23 19:02:02 +00:00
Makefile Redo net.inet.* sysctl subtree for fast-ipsec from scratch. 2004-05-07 00:55:14 +00:00