xref: /openbmc/linux/Documentation/networking/dctcp.rst (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1*8447bb44SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
2*8447bb44SMauro Carvalho Chehab
3*8447bb44SMauro Carvalho Chehab======================
4*8447bb44SMauro Carvalho ChehabDCTCP (DataCenter TCP)
5*8447bb44SMauro Carvalho Chehab======================
6*8447bb44SMauro Carvalho Chehab
7*8447bb44SMauro Carvalho ChehabDCTCP is an enhancement to the TCP congestion control algorithm for data
8*8447bb44SMauro Carvalho Chehabcenter networks and leverages Explicit Congestion Notification (ECN) in
9*8447bb44SMauro Carvalho Chehabthe data center network to provide multi-bit feedback to the end hosts.
10*8447bb44SMauro Carvalho Chehab
11*8447bb44SMauro Carvalho ChehabTo enable it on end hosts::
12*8447bb44SMauro Carvalho Chehab
13*8447bb44SMauro Carvalho Chehab  sysctl -w net.ipv4.tcp_congestion_control=dctcp
14*8447bb44SMauro Carvalho Chehab  sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional)
15*8447bb44SMauro Carvalho Chehab
16*8447bb44SMauro Carvalho ChehabAll switches in the data center network running DCTCP must support ECN
17*8447bb44SMauro Carvalho Chehabmarking and be configured for marking when reaching defined switch buffer
18*8447bb44SMauro Carvalho Chehabthresholds. The default ECN marking threshold heuristic for DCTCP on
19*8447bb44SMauro Carvalho Chehabswitches is 20 packets (30KB) at 1Gbps, and 65 packets (~100KB) at 10Gbps,
20*8447bb44SMauro Carvalho Chehabbut might need further careful tweaking.
21*8447bb44SMauro Carvalho Chehab
22*8447bb44SMauro Carvalho ChehabFor more details, see below documents:
23*8447bb44SMauro Carvalho Chehab
24*8447bb44SMauro Carvalho ChehabPaper:
25*8447bb44SMauro Carvalho Chehab
26*8447bb44SMauro Carvalho ChehabThe algorithm is further described in detail in the following two
27*8447bb44SMauro Carvalho ChehabSIGCOMM/SIGMETRICS papers:
28*8447bb44SMauro Carvalho Chehab
29*8447bb44SMauro Carvalho Chehab i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye,
30*8447bb44SMauro Carvalho Chehab    Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan:
31*8447bb44SMauro Carvalho Chehab
32*8447bb44SMauro Carvalho Chehab      "Data Center TCP (DCTCP)", Data Center Networks session"
33*8447bb44SMauro Carvalho Chehab
34*8447bb44SMauro Carvalho Chehab      Proc. ACM SIGCOMM, New Delhi, 2010.
35*8447bb44SMauro Carvalho Chehab
36*8447bb44SMauro Carvalho Chehab    http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf
37*8447bb44SMauro Carvalho Chehab    http://www.sigcomm.org/ccr/papers/2010/October/1851275.1851192
38*8447bb44SMauro Carvalho Chehab
39*8447bb44SMauro Carvalho Chehabii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar:
40*8447bb44SMauro Carvalho Chehab
41*8447bb44SMauro Carvalho Chehab      "Analysis of DCTCP: Stability, Convergence, and Fairness"
42*8447bb44SMauro Carvalho Chehab      Proc. ACM SIGMETRICS, San Jose, 2011.
43*8447bb44SMauro Carvalho Chehab
44*8447bb44SMauro Carvalho Chehab    http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf
45*8447bb44SMauro Carvalho Chehab
46*8447bb44SMauro Carvalho ChehabIETF informational draft:
47*8447bb44SMauro Carvalho Chehab
48*8447bb44SMauro Carvalho Chehab  http://tools.ietf.org/html/draft-bensley-tcpm-dctcp-00
49*8447bb44SMauro Carvalho Chehab
50*8447bb44SMauro Carvalho ChehabDCTCP site:
51*8447bb44SMauro Carvalho Chehab
52*8447bb44SMauro Carvalho Chehab  http://simula.stanford.edu/~alizade/Site/DCTCP.html
53