Go to file
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
bin Apply user supplied patterns first before applying actions for -A. This way pax 2005-01-23 06:19:03 +00:00
contrib/sys Finalize import of the Atheros HAL 0.9.9.13, bringing ath(4) 2004-07-28 08:57:40 +00:00
crypto don't throw const away for no reason. 2004-12-11 06:58:20 +00:00
dist Remove duplicate description for -d. From Chris Ross in PR 29035. 2005-01-21 15:10:16 +00:00
distrib Install tap(4) LKM. 2005-01-24 15:50:52 +00:00
doc yamt-km branch. 2005-01-25 13:14:56 +00:00
etc Set the pam_nologin call to keep our current behavior: login is refused 2005-01-23 09:48:38 +00:00
games Convert from libc/threadlib-style mutex protection to pthread style. 2004-12-14 00:21:01 +00:00
gnu From groff CVS: 2005-01-26 10:25:09 +00:00
include Remove the remains of "struct sigcontext" and sigreturn() from the 2005-01-20 20:42:05 +00:00
lib Extend fsync_range(2) to support the FDISKSYNC flag, which requests 2005-01-25 23:55:20 +00:00
libexec Quote symbol names in a debug message (to make it easier to spot an empty 2005-01-11 21:58:27 +00:00
regress test pthread_detach. 2005-01-21 11:54:24 +00:00
rescue cosmetic tweak 2005-01-13 03:50:08 +00:00
sbin note that loopback mount is a bad idea. 2005-01-21 15:49:43 +00:00
share Bump date for previous two, and restore part of sentence 2005-01-25 01:59:07 +00:00
sys Fix two problems in our TCP stack: 2005-01-26 21:49:27 +00:00
tools Revert previous. 2005-01-14 07:46:56 +00:00
usr.bin Sync with manpage (add -W, sort). 2005-01-26 13:42:07 +00:00
usr.sbin Add 'd' to usage, sort options in usage, sort options in getopt() call. 2005-01-23 20:55:57 +00:00
x11 + add riva128 submodule patch from Dieter Roelants 2005-01-21 08:33:11 +00:00
build.sh Initial import of iyonix port. 2004-10-13 23:28:34 +00:00
BUILDING Fix some typo's/bad wording as highlighted in PR#27219 2004-10-12 04:07:09 +00:00
Makefile correct the comment describing the build order 2005-01-01 10:32:39 +00:00
Makefile.inc
UPDATING Mention /etc/pam.d requirement. 2005-01-09 07:31:31 +00:00