10 Mar, 2011

1 commit


24 Nov, 2009

1 commit

  • On Sun, 2009-11-22 at 16:31 -0800, David Miller wrote:
    > It should be of the form:
    > if (x &&
    > y)
    >
    > or:
    > if (x && y)
    >
    > Fix patches, rather than complaints, for existing cases where things
    > do not follow this pattern are certainly welcome.

    Also collapsed some multiple tabs to single space.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     

02 Mar, 2009

1 commit


12 Nov, 2008

1 commit

  • This patch fixes a minor bug in tcp_htcp.c which has been
    highlighted by Lachlan Andrew and Lawrence Stewart. Currently, the
    time since the last congestion event, which is stored in variable
    last_cong, is reset whenever there is a state change into
    TCP_CA_Open. This includes transitions of the type
    TCP_CA_Open->TCP_CA_Disorder->TCP_CA_Open which are not associated
    with backoff of cwnd. The patch changes last_cong to be updated
    only on transitions into TCP_CA_Open that occur after experiencing
    the congestion-related states TCP_CA_Loss, TCP_CA_Recovery,
    TCP_CA_CWR.

    Signed-off-by: Doug Leith
    Signed-off-by: David S. Miller

    Doug Leith
     

29 Jan, 2008

1 commit


08 Aug, 2007

1 commit

  • Small patch to H-TCP from Douglas Leith.

    Fix estimation of maxRTT. The original code ignores rtt measurements
    during slow start (via the check tp->snd_ssthresh < 0xFFFF) yet this
    is probably a good time to try to estimate max rtt as delayed acking
    is disabled and slow start will only exit on a loss which presumably
    corresponds to a maxrtt measurement. Second, the original code (via
    the check htcp_ccount(ca) > 3) ignores rtt data during what it
    estimates to be the first 3 round-trip times. This seems like an
    unnecessary check now that the RCV timestamp are no longer used
    for rtt estimation.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

31 Jul, 2007

2 commits

  • Change HTCP to use measured RTT rather than smooth RTT.
    Srtt is computed using the TCP receive timestamp
    options, so it is vulnerable to hostile receivers. To avoid any problems
    this might cause use the measured RTT instead.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • This patch changes the API for the callback that is done after an ACK is
    received. It solves a couple of issues:

    * Some congestion controls want higher resolution value of RTT
    (controlled by TCP_CONG_RTT_SAMPLE flag). These don't really want a ktime, but
    all compute a RTT in microseconds.

    * Other congestion control could use RTT at jiffies resolution.

    To keep API consistent the units should be the same for both cases, just the
    resolution should change.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

20 Jul, 2007

1 commit


18 Jul, 2007

1 commit


26 Apr, 2007

1 commit

  • Do some simple changes to make congestion control API faster/cleaner.
    * use ktime_t rather than timeval
    * merge rtt sampling into existing ack callback
    this means one indirect call versus two per ack.
    * use flags bits to store options/settings

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

13 Feb, 2007

1 commit


11 Feb, 2007

1 commit


03 Dec, 2006

1 commit


26 Oct, 2006

1 commit


23 Sep, 2006

1 commit


01 Jul, 2006

1 commit


18 Jun, 2006

1 commit

  • Many of the TCP congestion methods all just use ssthresh
    as the minimum congestion window on decrease. Rather than
    duplicating the code, just have that be the default if that
    handle in the ops structure is not set.

    Minor behaviour change to TCP compound. It probably wants
    to use this (ssthresh) as lower bound, rather than ssthresh/2
    because the latter causes undershoot on loss.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

21 Mar, 2006

3 commits

  • Instead of estimating the time since the last congestion event, count
    it directly.

    Signed-off-by: Baruch Even
    Signed-off-by: David S. Miller

    Baruch Even
     
  • Account for delayed-ACKs in H-TCP.

    Delayed-ACKs cause H-TCP to be less aggressive than its design calls
    for. It is especially true when the receiver is a Linux machine where
    the average delayed ack is over 3 packets with values of 7 not unheard
    of.

    Signed-off-By: Baruch Even
    Signed-off-by: David S. Miller

    Baruch Even
     
  • Use functions to calculate jiffies from milliseconds and not the old,
    crude method of dividing HZ by a value. Ensures more accurate values
    even in the face of strange HZ values.

    Signed-off-By: Baruch Even
    Signed-off-by: David S. Miller

    Baruch Even
     

31 Jan, 2006

1 commit

  • This fixes the accounting in H-TCP, the ccount variable is also
    adjusted a few lines above this one.

    This line was not supposed to be there and wasn't there in the patches
    originally submitted, the four patches submitted were merged to one
    and in that merge the bug was introduced.

    Signed-Off-By: Baruch Even
    Signed-off-by: David S. Miller

    Baruch Even
     

11 Nov, 2005

2 commits

  • Move all the code that does linear TCP slowstart to one
    inline function to ease later patch to add ABC support.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • TCP peformance with TSO over networks with delay is awful.
    On a 100Mbit link with 150ms delay, we get 4Mbits/sec with TSO and
    50Mbits/sec without TSO.

    The problem is with TSO, we intentionally do not keep the maximum
    number of packets in flight to fill the window, we hold out to until
    we can send a MSS chunk. But, we also don't update the congestion window
    unless we have filled, as per RFC2861.

    This patch replaces the check for the congestion window being full
    with something smarter that accounts for TSO.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

30 Aug, 2005

1 commit

  • This changeset basically moves tcp_sk()->{ca_ops,ca_state,etc} to inet_csk(),
    minimal renaming/moving done in this changeset to ease review.

    Most of it is just changes of struct tcp_sock * to struct sock * parameters.

    With this we move to a state closer to two interesting goals:

    1. Generalisation of net/ipv4/tcp_diag.c, becoming inet_diag.c, being used
    for any INET transport protocol that has struct inet_hashinfo and are
    derived from struct inet_connection_sock. Keeps the userspace API, that will
    just not display DCCP sockets, while newer versions of tools can support
    DCCP.

    2. INET generic transport pluggable Congestion Avoidance infrastructure, using
    the current TCP CA infrastructure with DCCP.

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     

24 Jun, 2005

1 commit

  • H-TCP is a congestion control algorithm developed at the Hamilton Institute, by
    Douglas Leith and Robert Shorten. It is extending the standard Reno algorithm
    with mode switching is thus a relatively simple modification.

    H-TCP is defined in a layered manner as it is still a research platform. The
    basic form includes the modification of beta according to the ratio of maxRTT
    to min RTT and the alpha=2*factor*(1-beta) relation, where factor is dependant
    on the time since last congestion.

    The other layers improve convergence by adding appropriate factors to alpha.

    The following patch implements the H-TCP algorithm in it's basic form.

    Signed-Off-By: Baruch Even
    Signed-off-by: David S. Miller

    Baruch Even