21 May, 2019

1 commit

  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have MODULE_LICENCE("GPL*") inside which was used in the initial
    scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

16 Oct, 2018

1 commit


17 Oct, 2017

1 commit

  • The structure tcp_cdg is local to the source and
    does not need to be in global scope, so make it static.

    Cleans up sparse warning:
    symbol 'tcp_cdg' was not declared. Should it be static?

    Signed-off-by: Colin Ian King
    Signed-off-by: David S. Miller

    Colin Ian King
     

07 Aug, 2017

1 commit

  • Most TCP congestion controls are using identical logic to undo
    cwnd except BBR. This patch consolidates these similar functions
    to the one used currently by Reno and others.

    Suggested-by: Neal Cardwell
    Signed-off-by: Yuchung Cheng
    Signed-off-by: Neal Cardwell
    Signed-off-by: David S. Miller

    Yuchung Cheng
     

02 Mar, 2017

1 commit


21 Sep, 2016

1 commit

  • The upcoming change "lib/win_minmax: windowed min or max estimator"
    introduces a struct called minmax, which is then included in
    include/linux/tcp.h in the upcoming change "tcp: use windowed min
    filter library for TCP min_rtt estimation". This would create a
    compilation error for tcp_cdg.c, which defines its own minmax
    struct. To avoid this naming conflict (and potentially others in the
    future), this commit renames the version used in tcp_cdg.c to
    cdg_minmax.

    Signed-off-by: Soheil Hassas Yeganeh
    Signed-off-by: Neal Cardwell
    Signed-off-by: Yuchung Cheng
    Signed-off-by: Eric Dumazet
    Cc: Kenneth Klette Jonassen
    Acked-by: Kenneth Klette Jonassen
    Signed-off-by: David S. Miller

    Soheil Hassas Yeganeh
     

12 May, 2016

1 commit

  • Replace 2 arguments (cnt and rtt) in the congestion control modules'
    pkts_acked() function with a struct. This will allow adding more
    information without having to modify existing congestion control
    modules (tcp_nv in particular needs bytes in flight when packet
    was sent).

    As proposed by Neal Cardwell in his comments to the tcp_nv patch.

    Signed-off-by: Lawrence Brakmo
    Acked-by: Yuchung Cheng
    Signed-off-by: David S. Miller

    Lawrence Brakmo
     

03 May, 2016

1 commit

  • We want to to make TCP stack preemptible, as draining prequeue
    and backlog queues can take lot of time.

    Many SNMP updates were assuming that BH (and preemption) was disabled.

    Need to convert some __NET_INC_STATS() calls to NET_INC_STATS()
    and some __TCP_INC_STATS() to TCP_INC_STATS()

    Before using this_cpu_ptr(net->ipv4.tcp_sk) in tcp_v4_send_reset()
    and tcp_v4_send_ack(), we add an explicit preempt disabled section.

    Signed-off-by: Eric Dumazet
    Acked-by: Soheil Hassas Yeganeh
    Signed-off-by: David S. Miller

    Eric Dumazet
     

28 Apr, 2016

1 commit


10 Jul, 2015

1 commit

  • In the original design slow start is only used to raise cwnd
    when cwnd is stricly below ssthresh. It makes little sense
    to slow start when cwnd == ssthresh: especially
    when hystart has set ssthresh in the initial ramp, or after
    recovery when cwnd resets to ssthresh. Not doing so will
    also help reduce the buffer bloat slightly.

    Signed-off-by: Yuchung Cheng
    Signed-off-by: Neal Cardwell
    Signed-off-by: Eric Dumazet
    Signed-off-by: Nandita Dukkipati
    Signed-off-by: David S. Miller

    Yuchung Cheng
     

15 Jun, 2015

1 commit


11 Jun, 2015

1 commit

  • CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies
    the TCP sender in order to [1]:

    o Use the delay gradient as a congestion signal.
    o Back off with an average probability that is independent of the RTT.
    o Coexist with flows that use loss-based congestion control, i.e.,
    flows that are unresponsive to the delay signal.
    o Tolerate packet loss unrelated to congestion. (Disabled by default.)

    Its FreeBSD implementation was presented for the ICCRG in July 2012;
    slides are available at http://www.ietf.org/proceedings/84/iccrg.html

    Running the experiment scenarios in [1] suggests that our implementation
    achieves more goodput compared with FreeBSD 10.0 senders, although it also
    causes more queueing delay for a given backoff factor.

    The loss tolerance heuristic is disabled by default due to safety concerns
    for its use in the Internet [2, p. 45-46].

    We use a variant of the Hybrid Slow start algorithm in tcp_cubic to reduce
    the probability of slow start overshoot.

    [1] D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using
    delay gradients." In Networking 2011, pages 328-341. Springer, 2011.
    [2] K.K. Jonassen. "Implementing CAIA Delay-Gradient in Linux."
    MSc thesis. Department of Informatics, University of Oslo, 2015.

    Cc: Eric Dumazet
    Cc: Yuchung Cheng
    Cc: Stephen Hemminger
    Cc: Neal Cardwell
    Cc: David Hayes
    Cc: Andreas Petlund
    Cc: Dave Taht
    Cc: Nicolas Kuhn
    Signed-off-by: Kenneth Klette Jonassen
    Acked-by: Yuchung Cheng
    Signed-off-by: David S. Miller

    Kenneth Klette Jonassen