OpenAFS Master Repository branch, openafs-stable-1_4_x, updated. 58c7c1cc805c59a2b7010ab5cf370dc9c2829939

Gerrit Code Review gerrit@openafs.org
Wed, 16 Dec 2009 22:55:02 -0800 (PST)


The following commit has been merged in the openafs-stable-1_4_x branch:
commit 58c7c1cc805c59a2b7010ab5cf370dc9c2829939
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Mon Oct 5 14:34:59 2009 -0400

    Improve accuracy of Rx RTT calculation by skipping retransmitted packets
    
    Rx RTT calculations are based on Van Jacobson's work using
    constants that make computations fast but are not necessarily
    the best for modeling Rx protocol exchanges.  This patch does
    not alter the constants but does improve the comments to show
    that the math is correct.
    
    Phil Karn in 1987 demonstrated that Van Jacobson's algorithms
    produced inaccurate results when the RTT computed from an
    acknowledgement of a retransmitted packet were included.  The
    resulting RTT would either be too small causing the system to
    retransmit too many packets or too long resulting in too few
    being sent.
    
    This patch follows Phil Karn's advice which was also adopted
    as mandatory for TCP in RFC2988.  Retransmitted packets and
    delayed acks are skipped and the retransmit time is backed off
    (up to a maximum of 3 seconds) until a successful acknowlegement
    is received for an initially transmitted packet.
    
    LICENSE BSD
    
    Reviewed-on: http://gerrit.openafs.org/580
    Tested-by: Jeffrey Altman <jaltman@openafs.org>
    Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
    (cherry picked from commit 917a860e818d5cdda82add0d4d50b594820816f2)
    Change-Id: Icae199bfaaa4c64b4ab61eec650ed121c8e36a14
    Reviewed-on: http://gerrit.openafs.org/969
    Reviewed-by: Derrick Brashear <shadow@dementia.org>
    Tested-by: Derrick Brashear <shadow@dementia.org>

 src/rx/rx.c       |   63 +++++++++++++++++++++++++++++++++++-----------------
 src/rx/rx.h       |    7 ++---
 src/rx/rx_clock.h |    3 ++
 3 files changed, 48 insertions(+), 25 deletions(-)

-- 
OpenAFS Master Repository