1. 24 Jan, 2012 8 commits
  2. 23 Jan, 2012 12 commits
  3. 22 Jan, 2012 19 commits
  4. 20 Jan, 2012 1 commit
    • Neal Cardwell's avatar
      tcp: fix undo after RTO for CUBIC · 5a45f008
      Neal Cardwell authored
      This patch fixes CUBIC so that cwnd reductions made during RTOs can be
      undone (just as they already can be undone when using the default/Reno
      behavior).
      
      When undoing cwnd reductions, BIC-derived congestion control modules
      were restoring the cwnd from last_max_cwnd. There were two problems
      with using last_max_cwnd to restore a cwnd during undo:
      
      (a) last_max_cwnd was set to 0 on state transitions into TCP_CA_Loss
      (by calling the module's reset() functions), so cwnd reductions from
      RTOs could not be undone.
      
      (b) when fast_covergence is enabled (which it is by default)
      last_max_cwnd does not actually hold the value of snd_cwnd before the
      loss; instead, it holds a scaled-down version of snd_cwnd.
      
      This patch makes the following changes:
      
      (1) upon undo, revert snd_cwnd to ca->loss_cwnd, which is already, as
      the existing comment notes, the "congestion window at last loss"
      
      (2) stop forgetting ca->loss_cwnd on TCP_CA_Loss events
      
      (3) use ca->last_max_cwnd to check if we're in slow start
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Acked-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Acked-by: default avatarSangtae Ha <sangtae.ha@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a45f008