From: Neal Cardwell <ncardwell@google.com>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, Neal Cardwell <ncardwell@google.com>
Subject: [PATCH v3 net-next 00/16] tcp: BBR congestion control algorithm
Date: Sun, 18 Sep 2016 18:03:37 -0400 [thread overview]
Message-ID: <1474236233-28511-1-git-send-email-ncardwell@google.com> (raw)
tcp: BBR congestion control algorithm
This patch series implements a new TCP congestion control algorithm:
BBR (Bottleneck Bandwidth and RTT). A paper with a detailed
description of BBR will be published in ACM Queue, September-October
2016, as "BBR: Congestion-Based Congestion Control". BBR is widely
deployed in production at Google.
The patch series starts with a set of supporting infrastructure
changes, including a few that extend the congestion control
framework. The last patch adds BBR as a TCP congestion control
module. Please see individual patches for the details.
- v2 -> v3: fix another issue caught by build bots:
- adjust rate_sample struct initialization syntax to allow gcc-4.4 to compile
the "tcp: track data delivery rate for a TCP connection" patch; also
adjusted some similar syntax in "tcp_bbr: add BBR congestion control"
- v1 -> v2: fix issues caught by build bots:
- fix "tcp: export data delivery rate" to use rate64 instead of rate,
so there is a 64-bit numerator for the do_div call
- fix conflicting definitions for minmax caused by
"tcp: use windowed min filter library for TCP min_rtt estimation"
with a new commit:
tcp: cdg: rename struct minmax in tcp_cdg.c to avoid a naming conflict
- fix warning about the use of __packed in
"tcp: track data delivery rate for a TCP connection",
which involves the addition of a new commit:
tcp: switch back to proper tcp_skb_cb size check in tcp_init()
Eric Dumazet (2):
net_sched: sch_fq: add low_rate_threshold parameter
tcp: switch back to proper tcp_skb_cb size check in tcp_init()
Neal Cardwell (8):
lib/win_minmax: windowed min or max estimator
tcp: use windowed min filter library for TCP min_rtt estimation
tcp: count packets marked lost for a TCP connection
tcp: allow congestion control module to request TSO skb segment count
tcp: export tcp_tso_autosize() and parameterize minimum number of TSO
segments
tcp: export tcp_mss_to_mtu() for congestion control modules
tcp: increase ICSK_CA_PRIV_SIZE from 64 bytes to 88
tcp_bbr: add BBR congestion control
Soheil Hassas Yeganeh (2):
tcp: cdg: rename struct minmax in tcp_cdg.c to avoid a naming conflict
tcp: track application-limited rate samples
Yuchung Cheng (4):
tcp: track data delivery rate for a TCP connection
tcp: export data delivery rate
tcp: allow congestion control to expand send buffer differently
tcp: new CC hook to set sending rate with rate_sample in any CA state
include/linux/tcp.h | 14 +-
include/linux/win_minmax.h | 37 ++
include/net/inet_connection_sock.h | 4 +-
include/net/tcp.h | 53 ++-
include/uapi/linux/inet_diag.h | 13 +
include/uapi/linux/pkt_sched.h | 2 +
include/uapi/linux/tcp.h | 3 +
lib/Makefile | 2 +-
lib/win_minmax.c | 98 +++++
net/ipv4/Kconfig | 18 +
net/ipv4/Makefile | 3 +-
net/ipv4/tcp.c | 26 +-
net/ipv4/tcp_bbr.c | 875 +++++++++++++++++++++++++++++++++++++
net/ipv4/tcp_cdg.c | 12 +-
net/ipv4/tcp_cong.c | 2 +-
net/ipv4/tcp_input.c | 154 +++----
net/ipv4/tcp_minisocks.c | 5 +-
net/ipv4/tcp_output.c | 27 +-
net/ipv4/tcp_rate.c | 186 ++++++++
net/sched/sch_fq.c | 22 +-
20 files changed, 1449 insertions(+), 107 deletions(-)
create mode 100644 include/linux/win_minmax.h
create mode 100644 lib/win_minmax.c
create mode 100644 net/ipv4/tcp_bbr.c
create mode 100644 net/ipv4/tcp_rate.c
--
2.8.0.rc3.226.g39d4020
next reply other threads:[~2016-09-18 22:04 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-18 22:03 Neal Cardwell [this message]
2016-09-18 22:03 ` [PATCH v3 net-next 01/16] tcp: cdg: rename struct minmax in tcp_cdg.c to avoid a naming conflict Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 02/16] lib/win_minmax: windowed min or max estimator Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 03/16] tcp: use windowed min filter library for TCP min_rtt estimation Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 04/16] net_sched: sch_fq: add low_rate_threshold parameter Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 05/16] tcp: switch back to proper tcp_skb_cb size check in tcp_init() Neal Cardwell
2016-09-19 14:37 ` Lance Richardson
2016-09-19 14:41 ` Eric Dumazet
2016-09-18 22:03 ` [PATCH v3 net-next 06/16] tcp: count packets marked lost for a TCP connection Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 07/16] tcp: track data delivery rate " Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 08/16] tcp: track application-limited rate samples Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 09/16] tcp: export data delivery rate Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 10/16] tcp: allow congestion control module to request TSO skb segment count Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 11/16] tcp: export tcp_tso_autosize() and parameterize minimum number of TSO segments Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 12/16] tcp: export tcp_mss_to_mtu() for congestion control modules Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 13/16] tcp: allow congestion control to expand send buffer differently Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 14/16] tcp: new CC hook to set sending rate with rate_sample in any CA state Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 15/16] tcp: increase ICSK_CA_PRIV_SIZE from 64 bytes to 88 Neal Cardwell
2016-09-18 22:03 ` [PATCH v3 net-next 16/16] tcp_bbr: add BBR congestion control Neal Cardwell
[not found] ` <CA++eYdtWkMqT1zk_D00H1TciYb_4+aQ6-96YzG1n_h4LLk663g@mail.gmail.com>
2016-09-19 2:43 ` Neal Cardwell
2016-09-19 20:57 ` Stephen Hemminger
2016-09-19 21:10 ` Eric Dumazet
2016-09-19 21:17 ` Rick Jones
2016-09-19 21:23 ` Eric Dumazet
2016-09-19 23:28 ` Stephen Hemminger
2016-09-19 23:33 ` Eric Dumazet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1474236233-28511-1-git-send-email-ncardwell@google.com \
--to=ncardwell@google.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.