| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | # |
|---|
| 2 | 3 | # IP configuration |
|---|
| 3 | 4 | # |
|---|
| .. | .. |
|---|
| 9 | 10 | intend to participate in the MBONE, a high bandwidth network on top |
|---|
| 10 | 11 | of the Internet which carries audio and video broadcasts. More |
|---|
| 11 | 12 | information about the MBONE is on the WWW at |
|---|
| 12 | | - <http://www.savetz.com/mbone/>. For most people, it's safe to say N. |
|---|
| 13 | + <https://www.savetz.com/mbone/>. For most people, it's safe to say N. |
|---|
| 13 | 14 | |
|---|
| 14 | 15 | config IP_ADVANCED_ROUTER |
|---|
| 15 | 16 | bool "IP: advanced router" |
|---|
| 16 | | - ---help--- |
|---|
| 17 | + help |
|---|
| 17 | 18 | If you intend to run your Linux box mostly as a router, i.e. as a |
|---|
| 18 | 19 | computer that forwards and redistributes network packets, say Y; you |
|---|
| 19 | 20 | will then be presented with several options that allow more precise |
|---|
| .. | .. |
|---|
| 48 | 49 | |
|---|
| 49 | 50 | Note that some distributions enable it in startup scripts. |
|---|
| 50 | 51 | For details about rp_filter strict and loose mode read |
|---|
| 51 | | - <file:Documentation/networking/ip-sysctl.txt>. |
|---|
| 52 | + <file:Documentation/networking/ip-sysctl.rst>. |
|---|
| 52 | 53 | |
|---|
| 53 | 54 | If unsure, say N here. |
|---|
| 54 | 55 | |
|---|
| 55 | 56 | config IP_FIB_TRIE_STATS |
|---|
| 56 | 57 | bool "FIB TRIE statistics" |
|---|
| 57 | 58 | depends on IP_ADVANCED_ROUTER |
|---|
| 58 | | - ---help--- |
|---|
| 59 | + help |
|---|
| 59 | 60 | Keep track of statistics on structure of FIB TRIE table. |
|---|
| 60 | 61 | Useful for testing and measuring TRIE performance. |
|---|
| 61 | 62 | |
|---|
| .. | .. |
|---|
| 63 | 64 | bool "IP: policy routing" |
|---|
| 64 | 65 | depends on IP_ADVANCED_ROUTER |
|---|
| 65 | 66 | select FIB_RULES |
|---|
| 66 | | - ---help--- |
|---|
| 67 | + help |
|---|
| 67 | 68 | Normally, a router decides what to do with a received packet based |
|---|
| 68 | 69 | solely on the packet's final destination address. If you say Y here, |
|---|
| 69 | 70 | the Linux router will also be able to take the packet's source |
|---|
| .. | .. |
|---|
| 72 | 73 | |
|---|
| 73 | 74 | If you need more information, see the Linux Advanced |
|---|
| 74 | 75 | Routing and Traffic Control documentation at |
|---|
| 75 | | - <http://lartc.org/howto/lartc.rpdb.html> |
|---|
| 76 | + <https://lartc.org/howto/lartc.rpdb.html> |
|---|
| 76 | 77 | |
|---|
| 77 | 78 | If unsure, say N. |
|---|
| 78 | 79 | |
|---|
| .. | .. |
|---|
| 116 | 117 | config IP_PNP_DHCP |
|---|
| 117 | 118 | bool "IP: DHCP support" |
|---|
| 118 | 119 | depends on IP_PNP |
|---|
| 119 | | - ---help--- |
|---|
| 120 | + help |
|---|
| 120 | 121 | If you want your Linux box to mount its whole root file system (the |
|---|
| 121 | 122 | one containing the directory /) from some other computer over the |
|---|
| 122 | 123 | net via NFS and you want the IP address of your computer to be |
|---|
| .. | .. |
|---|
| 128 | 129 | |
|---|
| 129 | 130 | If unsure, say Y. Note that if you want to use DHCP, a DHCP server |
|---|
| 130 | 131 | must be operating on your network. Read |
|---|
| 131 | | - <file:Documentation/filesystems/nfs/nfsroot.txt> for details. |
|---|
| 132 | + <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. |
|---|
| 132 | 133 | |
|---|
| 133 | 134 | config IP_PNP_BOOTP |
|---|
| 134 | 135 | bool "IP: BOOTP support" |
|---|
| 135 | 136 | depends on IP_PNP |
|---|
| 136 | | - ---help--- |
|---|
| 137 | + help |
|---|
| 137 | 138 | If you want your Linux box to mount its whole root file system (the |
|---|
| 138 | 139 | one containing the directory /) from some other computer over the |
|---|
| 139 | 140 | net via NFS and you want the IP address of your computer to be |
|---|
| .. | .. |
|---|
| 143 | 144 | does BOOTP itself, providing all necessary information on the kernel |
|---|
| 144 | 145 | command line, you can say N here. If unsure, say Y. Note that if you |
|---|
| 145 | 146 | want to use BOOTP, a BOOTP server must be operating on your network. |
|---|
| 146 | | - Read <file:Documentation/filesystems/nfs/nfsroot.txt> for details. |
|---|
| 147 | + Read <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. |
|---|
| 147 | 148 | |
|---|
| 148 | 149 | config IP_PNP_RARP |
|---|
| 149 | 150 | bool "IP: RARP support" |
|---|
| .. | .. |
|---|
| 156 | 157 | older protocol which is being obsoleted by BOOTP and DHCP), say Y |
|---|
| 157 | 158 | here. Note that if you want to use RARP, a RARP server must be |
|---|
| 158 | 159 | operating on your network. Read |
|---|
| 159 | | - <file:Documentation/filesystems/nfs/nfsroot.txt> for details. |
|---|
| 160 | + <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. |
|---|
| 160 | 161 | |
|---|
| 161 | 162 | config NET_IPIP |
|---|
| 162 | 163 | tristate "IP: tunneling" |
|---|
| 163 | 164 | select INET_TUNNEL |
|---|
| 164 | 165 | select NET_IP_TUNNEL |
|---|
| 165 | | - ---help--- |
|---|
| 166 | + help |
|---|
| 166 | 167 | Tunneling means encapsulating data of one protocol type within |
|---|
| 167 | 168 | another protocol and sending it over a channel that understands the |
|---|
| 168 | 169 | encapsulating protocol. This particular tunneling driver implements |
|---|
| .. | .. |
|---|
| 179 | 180 | config NET_IPGRE_DEMUX |
|---|
| 180 | 181 | tristate "IP: GRE demultiplexer" |
|---|
| 181 | 182 | help |
|---|
| 182 | | - This is helper module to demultiplex GRE packets on GRE version field criteria. |
|---|
| 183 | | - Required by ip_gre and pptp modules. |
|---|
| 183 | + This is helper module to demultiplex GRE packets on GRE version field criteria. |
|---|
| 184 | + Required by ip_gre and pptp modules. |
|---|
| 184 | 185 | |
|---|
| 185 | 186 | config NET_IP_TUNNEL |
|---|
| 186 | 187 | tristate |
|---|
| .. | .. |
|---|
| 266 | 267 | |
|---|
| 267 | 268 | config SYN_COOKIES |
|---|
| 268 | 269 | bool "IP: TCP syncookie support" |
|---|
| 269 | | - ---help--- |
|---|
| 270 | + help |
|---|
| 270 | 271 | Normal TCP/IP networking is open to an attack known as "SYN |
|---|
| 271 | 272 | flooding". This denial-of-service attack prevents legitimate remote |
|---|
| 272 | 273 | users from being able to connect to your computer during an ongoing |
|---|
| .. | .. |
|---|
| 279 | 280 | continue to connect, even when your machine is under attack. There |
|---|
| 280 | 281 | is no need for the legitimate users to change their TCP/IP software; |
|---|
| 281 | 282 | SYN cookies work transparently to them. For technical information |
|---|
| 282 | | - about SYN cookies, check out <http://cr.yp.to/syncookies.html>. |
|---|
| 283 | + about SYN cookies, check out <https://cr.yp.to/syncookies.html>. |
|---|
| 283 | 284 | |
|---|
| 284 | 285 | If you are SYN flooded, the source address reported by the kernel is |
|---|
| 285 | 286 | likely to have been forged by the attacker; it is only reported as |
|---|
| .. | .. |
|---|
| 305 | 306 | depends on IPV6 || IPV6=n |
|---|
| 306 | 307 | select INET_TUNNEL |
|---|
| 307 | 308 | select NET_IP_TUNNEL |
|---|
| 308 | | - depends on INET_XFRM_MODE_TUNNEL |
|---|
| 309 | | - ---help--- |
|---|
| 309 | + select XFRM |
|---|
| 310 | + help |
|---|
| 310 | 311 | Tunneling means encapsulating data of one protocol type within |
|---|
| 311 | 312 | another protocol and sending it over a channel that understands the |
|---|
| 312 | 313 | encapsulating protocol. This can be used with xfrm mode tunnel to give |
|---|
| .. | .. |
|---|
| 322 | 323 | tristate "IP: Foo (IP protocols) over UDP" |
|---|
| 323 | 324 | select XFRM |
|---|
| 324 | 325 | select NET_UDP_TUNNEL |
|---|
| 325 | | - ---help--- |
|---|
| 326 | + help |
|---|
| 326 | 327 | Foo over UDP allows any IP protocol to be directly encapsulated |
|---|
| 327 | 328 | over UDP include tunnels (IPIP, GRE, SIT). By encapsulating in UDP |
|---|
| 328 | 329 | network mechanisms and optimizations for UDP (such as ECMP |
|---|
| .. | .. |
|---|
| 332 | 333 | bool "IP: FOU encapsulation of IP tunnels" |
|---|
| 333 | 334 | depends on NET_IPIP || NET_IPGRE || IPV6_SIT |
|---|
| 334 | 335 | select NET_FOU |
|---|
| 335 | | - ---help--- |
|---|
| 336 | + help |
|---|
| 336 | 337 | Allow configuration of FOU or GUE encapsulation for IP tunnels. |
|---|
| 337 | 338 | When this option is enabled IP tunnels can be configured to use |
|---|
| 338 | 339 | FOU or GUE encapsulation. |
|---|
| 339 | 340 | |
|---|
| 340 | 341 | config INET_AH |
|---|
| 341 | 342 | tristate "IP: AH transformation" |
|---|
| 342 | | - select XFRM_ALGO |
|---|
| 343 | | - select CRYPTO |
|---|
| 344 | | - select CRYPTO_HMAC |
|---|
| 345 | | - select CRYPTO_MD5 |
|---|
| 346 | | - select CRYPTO_SHA1 |
|---|
| 347 | | - ---help--- |
|---|
| 348 | | - Support for IPsec AH. |
|---|
| 343 | + select XFRM_AH |
|---|
| 344 | + help |
|---|
| 345 | + Support for IPsec AH (Authentication Header). |
|---|
| 346 | + |
|---|
| 347 | + AH can be used with various authentication algorithms. Besides |
|---|
| 348 | + enabling AH support itself, this option enables the generic |
|---|
| 349 | + implementations of the algorithms that RFC 8221 lists as MUST be |
|---|
| 350 | + implemented. If you need any other algorithms, you'll need to enable |
|---|
| 351 | + them in the crypto API. You should also enable accelerated |
|---|
| 352 | + implementations of any needed algorithms when available. |
|---|
| 349 | 353 | |
|---|
| 350 | 354 | If unsure, say Y. |
|---|
| 351 | 355 | |
|---|
| 352 | 356 | config INET_ESP |
|---|
| 353 | 357 | tristate "IP: ESP transformation" |
|---|
| 354 | | - select XFRM_ALGO |
|---|
| 355 | | - select CRYPTO |
|---|
| 356 | | - select CRYPTO_AUTHENC |
|---|
| 357 | | - select CRYPTO_HMAC |
|---|
| 358 | | - select CRYPTO_MD5 |
|---|
| 359 | | - select CRYPTO_CBC |
|---|
| 360 | | - select CRYPTO_SHA1 |
|---|
| 361 | | - select CRYPTO_DES |
|---|
| 362 | | - select CRYPTO_ECHAINIV |
|---|
| 363 | | - ---help--- |
|---|
| 364 | | - Support for IPsec ESP. |
|---|
| 358 | + select XFRM_ESP |
|---|
| 359 | + help |
|---|
| 360 | + Support for IPsec ESP (Encapsulating Security Payload). |
|---|
| 361 | + |
|---|
| 362 | + ESP can be used with various encryption and authentication algorithms. |
|---|
| 363 | + Besides enabling ESP support itself, this option enables the generic |
|---|
| 364 | + implementations of the algorithms that RFC 8221 lists as MUST be |
|---|
| 365 | + implemented. If you need any other algorithms, you'll need to enable |
|---|
| 366 | + them in the crypto API. You should also enable accelerated |
|---|
| 367 | + implementations of any needed algorithms when available. |
|---|
| 365 | 368 | |
|---|
| 366 | 369 | If unsure, say Y. |
|---|
| 367 | 370 | |
|---|
| .. | .. |
|---|
| 370 | 373 | depends on INET_ESP |
|---|
| 371 | 374 | select XFRM_OFFLOAD |
|---|
| 372 | 375 | default n |
|---|
| 373 | | - ---help--- |
|---|
| 376 | + help |
|---|
| 374 | 377 | Support for ESP transformation offload. This makes sense |
|---|
| 375 | 378 | only if this system really does IPsec and want to do it |
|---|
| 376 | 379 | with high throughput. A typical desktop system does not |
|---|
| .. | .. |
|---|
| 378 | 381 | |
|---|
| 379 | 382 | If unsure, say N. |
|---|
| 380 | 383 | |
|---|
| 384 | +config INET_ESPINTCP |
|---|
| 385 | + bool "IP: ESP in TCP encapsulation (RFC 8229)" |
|---|
| 386 | + depends on XFRM && INET_ESP |
|---|
| 387 | + select STREAM_PARSER |
|---|
| 388 | + select NET_SOCK_MSG |
|---|
| 389 | + select XFRM_ESPINTCP |
|---|
| 390 | + help |
|---|
| 391 | + Support for RFC 8229 encapsulation of ESP and IKE over |
|---|
| 392 | + TCP/IPv4 sockets. |
|---|
| 393 | + |
|---|
| 394 | + If unsure, say N. |
|---|
| 395 | + |
|---|
| 381 | 396 | config INET_IPCOMP |
|---|
| 382 | 397 | tristate "IP: IPComp transformation" |
|---|
| 383 | 398 | select INET_XFRM_TUNNEL |
|---|
| 384 | 399 | select XFRM_IPCOMP |
|---|
| 385 | | - ---help--- |
|---|
| 400 | + help |
|---|
| 386 | 401 | Support for IP Payload Compression Protocol (IPComp) (RFC3173), |
|---|
| 387 | 402 | typically needed for IPsec. |
|---|
| 388 | 403 | |
|---|
| 389 | 404 | If unsure, say Y. |
|---|
| 405 | + |
|---|
| 406 | +config INET_TABLE_PERTURB_ORDER |
|---|
| 407 | + int "INET: Source port perturbation table size (as power of 2)" if EXPERT |
|---|
| 408 | + default 16 |
|---|
| 409 | + help |
|---|
| 410 | + Source port perturbation table size (as power of 2) for |
|---|
| 411 | + RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm. |
|---|
| 412 | + |
|---|
| 413 | + The default is almost always what you want. |
|---|
| 414 | + Only change this if you know what you are doing. |
|---|
| 390 | 415 | |
|---|
| 391 | 416 | config INET_XFRM_TUNNEL |
|---|
| 392 | 417 | tristate |
|---|
| .. | .. |
|---|
| 397 | 422 | tristate |
|---|
| 398 | 423 | default n |
|---|
| 399 | 424 | |
|---|
| 400 | | -config INET_XFRM_MODE_TRANSPORT |
|---|
| 401 | | - tristate "IP: IPsec transport mode" |
|---|
| 402 | | - default y |
|---|
| 403 | | - select XFRM |
|---|
| 404 | | - ---help--- |
|---|
| 405 | | - Support for IPsec transport mode. |
|---|
| 406 | | - |
|---|
| 407 | | - If unsure, say Y. |
|---|
| 408 | | - |
|---|
| 409 | | -config INET_XFRM_MODE_TUNNEL |
|---|
| 410 | | - tristate "IP: IPsec tunnel mode" |
|---|
| 411 | | - default y |
|---|
| 412 | | - select XFRM |
|---|
| 413 | | - ---help--- |
|---|
| 414 | | - Support for IPsec tunnel mode. |
|---|
| 415 | | - |
|---|
| 416 | | - If unsure, say Y. |
|---|
| 417 | | - |
|---|
| 418 | | -config INET_XFRM_MODE_BEET |
|---|
| 419 | | - tristate "IP: IPsec BEET mode" |
|---|
| 420 | | - default y |
|---|
| 421 | | - select XFRM |
|---|
| 422 | | - ---help--- |
|---|
| 423 | | - Support for IPsec BEET mode. |
|---|
| 424 | | - |
|---|
| 425 | | - If unsure, say Y. |
|---|
| 426 | | - |
|---|
| 427 | 425 | config INET_DIAG |
|---|
| 428 | 426 | tristate "INET: socket monitoring interface" |
|---|
| 429 | 427 | default y |
|---|
| 430 | | - ---help--- |
|---|
| 428 | + help |
|---|
| 431 | 429 | Support for INET (TCP, DCCP, etc) socket monitoring interface used by |
|---|
| 432 | 430 | native Linux tools such as ss. ss is included in iproute2, currently |
|---|
| 433 | 431 | downloadable at: |
|---|
| .. | .. |
|---|
| 444 | 442 | tristate "UDP: socket monitoring interface" |
|---|
| 445 | 443 | depends on INET_DIAG && (IPV6 || IPV6=n) |
|---|
| 446 | 444 | default n |
|---|
| 447 | | - ---help--- |
|---|
| 445 | + help |
|---|
| 448 | 446 | Support for UDP socket monitoring interface used by the ss tool. |
|---|
| 449 | 447 | If unsure, say Y. |
|---|
| 450 | 448 | |
|---|
| .. | .. |
|---|
| 452 | 450 | tristate "RAW: socket monitoring interface" |
|---|
| 453 | 451 | depends on INET_DIAG && (IPV6 || IPV6=n) |
|---|
| 454 | 452 | default n |
|---|
| 455 | | - ---help--- |
|---|
| 453 | + help |
|---|
| 456 | 454 | Support for RAW socket monitoring interface used by the ss tool. |
|---|
| 457 | 455 | If unsure, say Y. |
|---|
| 458 | 456 | |
|---|
| .. | .. |
|---|
| 460 | 458 | bool "INET: allow privileged process to administratively close sockets" |
|---|
| 461 | 459 | depends on INET_DIAG |
|---|
| 462 | 460 | default n |
|---|
| 463 | | - ---help--- |
|---|
| 461 | + help |
|---|
| 464 | 462 | Provides a SOCK_DESTROY operation that allows privileged processes |
|---|
| 465 | 463 | (e.g., a connection manager or a network administration tool such as |
|---|
| 466 | 464 | ss) to close sockets opened by other processes. Closing a socket in |
|---|
| .. | .. |
|---|
| 471 | 469 | |
|---|
| 472 | 470 | menuconfig TCP_CONG_ADVANCED |
|---|
| 473 | 471 | bool "TCP: advanced congestion control" |
|---|
| 474 | | - ---help--- |
|---|
| 472 | + help |
|---|
| 475 | 473 | Support for selection of various TCP congestion control |
|---|
| 476 | 474 | modules. |
|---|
| 477 | 475 | |
|---|
| .. | .. |
|---|
| 485 | 483 | config TCP_CONG_BIC |
|---|
| 486 | 484 | tristate "Binary Increase Congestion (BIC) control" |
|---|
| 487 | 485 | default m |
|---|
| 488 | | - ---help--- |
|---|
| 489 | | - BIC-TCP is a sender-side only change that ensures a linear RTT |
|---|
| 490 | | - fairness under large windows while offering both scalability and |
|---|
| 491 | | - bounded TCP-friendliness. The protocol combines two schemes |
|---|
| 492 | | - called additive increase and binary search increase. When the |
|---|
| 493 | | - congestion window is large, additive increase with a large |
|---|
| 494 | | - increment ensures linear RTT fairness as well as good |
|---|
| 495 | | - scalability. Under small congestion windows, binary search |
|---|
| 496 | | - increase provides TCP friendliness. |
|---|
| 497 | | - See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ |
|---|
| 486 | + help |
|---|
| 487 | + BIC-TCP is a sender-side only change that ensures a linear RTT |
|---|
| 488 | + fairness under large windows while offering both scalability and |
|---|
| 489 | + bounded TCP-friendliness. The protocol combines two schemes |
|---|
| 490 | + called additive increase and binary search increase. When the |
|---|
| 491 | + congestion window is large, additive increase with a large |
|---|
| 492 | + increment ensures linear RTT fairness as well as good |
|---|
| 493 | + scalability. Under small congestion windows, binary search |
|---|
| 494 | + increase provides TCP friendliness. |
|---|
| 495 | + See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ |
|---|
| 498 | 496 | |
|---|
| 499 | 497 | config TCP_CONG_CUBIC |
|---|
| 500 | 498 | tristate "CUBIC TCP" |
|---|
| 501 | 499 | default y |
|---|
| 502 | | - ---help--- |
|---|
| 503 | | - This is version 2.0 of BIC-TCP which uses a cubic growth function |
|---|
| 504 | | - among other techniques. |
|---|
| 505 | | - See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf |
|---|
| 500 | + help |
|---|
| 501 | + This is version 2.0 of BIC-TCP which uses a cubic growth function |
|---|
| 502 | + among other techniques. |
|---|
| 503 | + See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf |
|---|
| 506 | 504 | |
|---|
| 507 | 505 | config TCP_CONG_WESTWOOD |
|---|
| 508 | 506 | tristate "TCP Westwood+" |
|---|
| 509 | 507 | default m |
|---|
| 510 | | - ---help--- |
|---|
| 511 | | - TCP Westwood+ is a sender-side only modification of the TCP Reno |
|---|
| 512 | | - protocol stack that optimizes the performance of TCP congestion |
|---|
| 513 | | - control. It is based on end-to-end bandwidth estimation to set |
|---|
| 514 | | - congestion window and slow start threshold after a congestion |
|---|
| 515 | | - episode. Using this estimation, TCP Westwood+ adaptively sets a |
|---|
| 516 | | - slow start threshold and a congestion window which takes into |
|---|
| 517 | | - account the bandwidth used at the time congestion is experienced. |
|---|
| 518 | | - TCP Westwood+ significantly increases fairness wrt TCP Reno in |
|---|
| 519 | | - wired networks and throughput over wireless links. |
|---|
| 508 | + help |
|---|
| 509 | + TCP Westwood+ is a sender-side only modification of the TCP Reno |
|---|
| 510 | + protocol stack that optimizes the performance of TCP congestion |
|---|
| 511 | + control. It is based on end-to-end bandwidth estimation to set |
|---|
| 512 | + congestion window and slow start threshold after a congestion |
|---|
| 513 | + episode. Using this estimation, TCP Westwood+ adaptively sets a |
|---|
| 514 | + slow start threshold and a congestion window which takes into |
|---|
| 515 | + account the bandwidth used at the time congestion is experienced. |
|---|
| 516 | + TCP Westwood+ significantly increases fairness wrt TCP Reno in |
|---|
| 517 | + wired networks and throughput over wireless links. |
|---|
| 520 | 518 | |
|---|
| 521 | 519 | config TCP_CONG_HTCP |
|---|
| 522 | | - tristate "H-TCP" |
|---|
| 523 | | - default m |
|---|
| 524 | | - ---help--- |
|---|
| 525 | | - H-TCP is a send-side only modifications of the TCP Reno |
|---|
| 526 | | - protocol stack that optimizes the performance of TCP |
|---|
| 527 | | - congestion control for high speed network links. It uses a |
|---|
| 528 | | - modeswitch to change the alpha and beta parameters of TCP Reno |
|---|
| 529 | | - based on network conditions and in a way so as to be fair with |
|---|
| 530 | | - other Reno and H-TCP flows. |
|---|
| 520 | + tristate "H-TCP" |
|---|
| 521 | + default m |
|---|
| 522 | + help |
|---|
| 523 | + H-TCP is a send-side only modifications of the TCP Reno |
|---|
| 524 | + protocol stack that optimizes the performance of TCP |
|---|
| 525 | + congestion control for high speed network links. It uses a |
|---|
| 526 | + modeswitch to change the alpha and beta parameters of TCP Reno |
|---|
| 527 | + based on network conditions and in a way so as to be fair with |
|---|
| 528 | + other Reno and H-TCP flows. |
|---|
| 531 | 529 | |
|---|
| 532 | 530 | config TCP_CONG_HSTCP |
|---|
| 533 | 531 | tristate "High Speed TCP" |
|---|
| 534 | 532 | default n |
|---|
| 535 | | - ---help--- |
|---|
| 536 | | - Sally Floyd's High Speed TCP (RFC 3649) congestion control. |
|---|
| 537 | | - A modification to TCP's congestion control mechanism for use |
|---|
| 538 | | - with large congestion windows. A table indicates how much to |
|---|
| 539 | | - increase the congestion window by when an ACK is received. |
|---|
| 540 | | - For more detail see http://www.icir.org/floyd/hstcp.html |
|---|
| 533 | + help |
|---|
| 534 | + Sally Floyd's High Speed TCP (RFC 3649) congestion control. |
|---|
| 535 | + A modification to TCP's congestion control mechanism for use |
|---|
| 536 | + with large congestion windows. A table indicates how much to |
|---|
| 537 | + increase the congestion window by when an ACK is received. |
|---|
| 538 | + For more detail see https://www.icir.org/floyd/hstcp.html |
|---|
| 541 | 539 | |
|---|
| 542 | 540 | config TCP_CONG_HYBLA |
|---|
| 543 | 541 | tristate "TCP-Hybla congestion control algorithm" |
|---|
| 544 | 542 | default n |
|---|
| 545 | | - ---help--- |
|---|
| 546 | | - TCP-Hybla is a sender-side only change that eliminates penalization of |
|---|
| 547 | | - long-RTT, large-bandwidth connections, like when satellite legs are |
|---|
| 548 | | - involved, especially when sharing a common bottleneck with normal |
|---|
| 549 | | - terrestrial connections. |
|---|
| 543 | + help |
|---|
| 544 | + TCP-Hybla is a sender-side only change that eliminates penalization of |
|---|
| 545 | + long-RTT, large-bandwidth connections, like when satellite legs are |
|---|
| 546 | + involved, especially when sharing a common bottleneck with normal |
|---|
| 547 | + terrestrial connections. |
|---|
| 550 | 548 | |
|---|
| 551 | 549 | config TCP_CONG_VEGAS |
|---|
| 552 | 550 | tristate "TCP Vegas" |
|---|
| 553 | 551 | default n |
|---|
| 554 | | - ---help--- |
|---|
| 555 | | - TCP Vegas is a sender-side only change to TCP that anticipates |
|---|
| 556 | | - the onset of congestion by estimating the bandwidth. TCP Vegas |
|---|
| 557 | | - adjusts the sending rate by modifying the congestion |
|---|
| 558 | | - window. TCP Vegas should provide less packet loss, but it is |
|---|
| 559 | | - not as aggressive as TCP Reno. |
|---|
| 552 | + help |
|---|
| 553 | + TCP Vegas is a sender-side only change to TCP that anticipates |
|---|
| 554 | + the onset of congestion by estimating the bandwidth. TCP Vegas |
|---|
| 555 | + adjusts the sending rate by modifying the congestion |
|---|
| 556 | + window. TCP Vegas should provide less packet loss, but it is |
|---|
| 557 | + not as aggressive as TCP Reno. |
|---|
| 560 | 558 | |
|---|
| 561 | 559 | config TCP_CONG_NV |
|---|
| 562 | | - tristate "TCP NV" |
|---|
| 563 | | - default n |
|---|
| 564 | | - ---help--- |
|---|
| 565 | | - TCP NV is a follow up to TCP Vegas. It has been modified to deal with |
|---|
| 566 | | - 10G networks, measurement noise introduced by LRO, GRO and interrupt |
|---|
| 567 | | - coalescence. In addition, it will decrease its cwnd multiplicatively |
|---|
| 568 | | - instead of linearly. |
|---|
| 560 | + tristate "TCP NV" |
|---|
| 561 | + default n |
|---|
| 562 | + help |
|---|
| 563 | + TCP NV is a follow up to TCP Vegas. It has been modified to deal with |
|---|
| 564 | + 10G networks, measurement noise introduced by LRO, GRO and interrupt |
|---|
| 565 | + coalescence. In addition, it will decrease its cwnd multiplicatively |
|---|
| 566 | + instead of linearly. |
|---|
| 569 | 567 | |
|---|
| 570 | | - Note that in general congestion avoidance (cwnd decreased when # packets |
|---|
| 571 | | - queued grows) cannot coexist with congestion control (cwnd decreased only |
|---|
| 572 | | - when there is packet loss) due to fairness issues. One scenario when they |
|---|
| 573 | | - can coexist safely is when the CA flows have RTTs << CC flows RTTs. |
|---|
| 568 | + Note that in general congestion avoidance (cwnd decreased when # packets |
|---|
| 569 | + queued grows) cannot coexist with congestion control (cwnd decreased only |
|---|
| 570 | + when there is packet loss) due to fairness issues. One scenario when they |
|---|
| 571 | + can coexist safely is when the CA flows have RTTs << CC flows RTTs. |
|---|
| 574 | 572 | |
|---|
| 575 | | - For further details see http://www.brakmo.org/networking/tcp-nv/ |
|---|
| 573 | + For further details see http://www.brakmo.org/networking/tcp-nv/ |
|---|
| 576 | 574 | |
|---|
| 577 | 575 | config TCP_CONG_SCALABLE |
|---|
| 578 | 576 | tristate "Scalable TCP" |
|---|
| 579 | 577 | default n |
|---|
| 580 | | - ---help--- |
|---|
| 581 | | - Scalable TCP is a sender-side only change to TCP which uses a |
|---|
| 582 | | - MIMD congestion control algorithm which has some nice scaling |
|---|
| 583 | | - properties, though is known to have fairness issues. |
|---|
| 584 | | - See http://www.deneholme.net/tom/scalable/ |
|---|
| 578 | + help |
|---|
| 579 | + Scalable TCP is a sender-side only change to TCP which uses a |
|---|
| 580 | + MIMD congestion control algorithm which has some nice scaling |
|---|
| 581 | + properties, though is known to have fairness issues. |
|---|
| 582 | + See http://www.deneholme.net/tom/scalable/ |
|---|
| 585 | 583 | |
|---|
| 586 | 584 | config TCP_CONG_LP |
|---|
| 587 | 585 | tristate "TCP Low Priority" |
|---|
| 588 | 586 | default n |
|---|
| 589 | | - ---help--- |
|---|
| 590 | | - TCP Low Priority (TCP-LP), a distributed algorithm whose goal is |
|---|
| 591 | | - to utilize only the excess network bandwidth as compared to the |
|---|
| 592 | | - ``fair share`` of bandwidth as targeted by TCP. |
|---|
| 593 | | - See http://www-ece.rice.edu/networks/TCP-LP/ |
|---|
| 587 | + help |
|---|
| 588 | + TCP Low Priority (TCP-LP), a distributed algorithm whose goal is |
|---|
| 589 | + to utilize only the excess network bandwidth as compared to the |
|---|
| 590 | + ``fair share`` of bandwidth as targeted by TCP. |
|---|
| 591 | + See http://www-ece.rice.edu/networks/TCP-LP/ |
|---|
| 594 | 592 | |
|---|
| 595 | 593 | config TCP_CONG_VENO |
|---|
| 596 | 594 | tristate "TCP Veno" |
|---|
| 597 | 595 | default n |
|---|
| 598 | | - ---help--- |
|---|
| 599 | | - TCP Veno is a sender-side only enhancement of TCP to obtain better |
|---|
| 600 | | - throughput over wireless networks. TCP Veno makes use of state |
|---|
| 601 | | - distinguishing to circumvent the difficult judgment of the packet loss |
|---|
| 602 | | - type. TCP Veno cuts down less congestion window in response to random |
|---|
| 603 | | - loss packets. |
|---|
| 604 | | - See <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1177186> |
|---|
| 596 | + help |
|---|
| 597 | + TCP Veno is a sender-side only enhancement of TCP to obtain better |
|---|
| 598 | + throughput over wireless networks. TCP Veno makes use of state |
|---|
| 599 | + distinguishing to circumvent the difficult judgment of the packet loss |
|---|
| 600 | + type. TCP Veno cuts down less congestion window in response to random |
|---|
| 601 | + loss packets. |
|---|
| 602 | + See <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1177186> |
|---|
| 605 | 603 | |
|---|
| 606 | 604 | config TCP_CONG_YEAH |
|---|
| 607 | 605 | tristate "YeAH TCP" |
|---|
| 608 | 606 | select TCP_CONG_VEGAS |
|---|
| 609 | 607 | default n |
|---|
| 610 | | - ---help--- |
|---|
| 611 | | - YeAH-TCP is a sender-side high-speed enabled TCP congestion control |
|---|
| 612 | | - algorithm, which uses a mixed loss/delay approach to compute the |
|---|
| 613 | | - congestion window. It's design goals target high efficiency, |
|---|
| 614 | | - internal, RTT and Reno fairness, resilience to link loss while |
|---|
| 615 | | - keeping network elements load as low as possible. |
|---|
| 608 | + help |
|---|
| 609 | + YeAH-TCP is a sender-side high-speed enabled TCP congestion control |
|---|
| 610 | + algorithm, which uses a mixed loss/delay approach to compute the |
|---|
| 611 | + congestion window. It's design goals target high efficiency, |
|---|
| 612 | + internal, RTT and Reno fairness, resilience to link loss while |
|---|
| 613 | + keeping network elements load as low as possible. |
|---|
| 616 | 614 | |
|---|
| 617 | | - For further details look here: |
|---|
| 618 | | - http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf |
|---|
| 615 | + For further details look here: |
|---|
| 616 | + http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf |
|---|
| 619 | 617 | |
|---|
| 620 | 618 | config TCP_CONG_ILLINOIS |
|---|
| 621 | 619 | tristate "TCP Illinois" |
|---|
| 622 | 620 | default n |
|---|
| 623 | | - ---help--- |
|---|
| 624 | | - TCP-Illinois is a sender-side modification of TCP Reno for |
|---|
| 625 | | - high speed long delay links. It uses round-trip-time to |
|---|
| 626 | | - adjust the alpha and beta parameters to achieve a higher average |
|---|
| 627 | | - throughput and maintain fairness. |
|---|
| 621 | + help |
|---|
| 622 | + TCP-Illinois is a sender-side modification of TCP Reno for |
|---|
| 623 | + high speed long delay links. It uses round-trip-time to |
|---|
| 624 | + adjust the alpha and beta parameters to achieve a higher average |
|---|
| 625 | + throughput and maintain fairness. |
|---|
| 628 | 626 | |
|---|
| 629 | | - For further details see: |
|---|
| 630 | | - http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html |
|---|
| 627 | + For further details see: |
|---|
| 628 | + http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html |
|---|
| 631 | 629 | |
|---|
| 632 | 630 | config TCP_CONG_DCTCP |
|---|
| 633 | 631 | tristate "DataCenter TCP (DCTCP)" |
|---|
| 634 | 632 | default n |
|---|
| 635 | | - ---help--- |
|---|
| 636 | | - DCTCP leverages Explicit Congestion Notification (ECN) in the network to |
|---|
| 637 | | - provide multi-bit feedback to the end hosts. It is designed to provide: |
|---|
| 633 | + help |
|---|
| 634 | + DCTCP leverages Explicit Congestion Notification (ECN) in the network to |
|---|
| 635 | + provide multi-bit feedback to the end hosts. It is designed to provide: |
|---|
| 638 | 636 | |
|---|
| 639 | | - - High burst tolerance (incast due to partition/aggregate), |
|---|
| 640 | | - - Low latency (short flows, queries), |
|---|
| 641 | | - - High throughput (continuous data updates, large file transfers) with |
|---|
| 642 | | - commodity, shallow-buffered switches. |
|---|
| 637 | + - High burst tolerance (incast due to partition/aggregate), |
|---|
| 638 | + - Low latency (short flows, queries), |
|---|
| 639 | + - High throughput (continuous data updates, large file transfers) with |
|---|
| 640 | + commodity, shallow-buffered switches. |
|---|
| 643 | 641 | |
|---|
| 644 | | - All switches in the data center network running DCTCP must support |
|---|
| 645 | | - ECN marking and be configured for marking when reaching defined switch |
|---|
| 646 | | - buffer thresholds. The default ECN marking threshold heuristic for |
|---|
| 647 | | - DCTCP on switches is 20 packets (30KB) at 1Gbps, and 65 packets |
|---|
| 648 | | - (~100KB) at 10Gbps, but might need further careful tweaking. |
|---|
| 642 | + All switches in the data center network running DCTCP must support |
|---|
| 643 | + ECN marking and be configured for marking when reaching defined switch |
|---|
| 644 | + buffer thresholds. The default ECN marking threshold heuristic for |
|---|
| 645 | + DCTCP on switches is 20 packets (30KB) at 1Gbps, and 65 packets |
|---|
| 646 | + (~100KB) at 10Gbps, but might need further careful tweaking. |
|---|
| 649 | 647 | |
|---|
| 650 | | - For further details see: |
|---|
| 651 | | - http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf |
|---|
| 648 | + For further details see: |
|---|
| 649 | + http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf |
|---|
| 652 | 650 | |
|---|
| 653 | 651 | config TCP_CONG_CDG |
|---|
| 654 | 652 | tristate "CAIA Delay-Gradient (CDG)" |
|---|
| 655 | 653 | default n |
|---|
| 656 | | - ---help--- |
|---|
| 657 | | - CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies |
|---|
| 658 | | - the TCP sender in order to: |
|---|
| 654 | + help |
|---|
| 655 | + CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies |
|---|
| 656 | + the TCP sender in order to: |
|---|
| 659 | 657 | |
|---|
| 660 | 658 | o Use the delay gradient as a congestion signal. |
|---|
| 661 | 659 | o Back off with an average probability that is independent of the RTT. |
|---|
| 662 | 660 | o Coexist with flows that use loss-based congestion control. |
|---|
| 663 | 661 | o Tolerate packet loss unrelated to congestion. |
|---|
| 664 | 662 | |
|---|
| 665 | | - For further details see: |
|---|
| 666 | | - D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using |
|---|
| 667 | | - delay gradients." In Networking 2011. Preprint: http://goo.gl/No3vdg |
|---|
| 663 | + For further details see: |
|---|
| 664 | + D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using |
|---|
| 665 | + delay gradients." In Networking 2011. Preprint: http://goo.gl/No3vdg |
|---|
| 668 | 666 | |
|---|
| 669 | 667 | config TCP_CONG_BBR |
|---|
| 670 | 668 | tristate "BBR TCP" |
|---|
| 671 | 669 | default n |
|---|
| 672 | | - ---help--- |
|---|
| 670 | + help |
|---|
| 673 | 671 | |
|---|
| 674 | | - BBR (Bottleneck Bandwidth and RTT) TCP congestion control aims to |
|---|
| 675 | | - maximize network utilization and minimize queues. It builds an explicit |
|---|
| 676 | | - model of the the bottleneck delivery rate and path round-trip |
|---|
| 677 | | - propagation delay. It tolerates packet loss and delay unrelated to |
|---|
| 678 | | - congestion. It can operate over LAN, WAN, cellular, wifi, or cable |
|---|
| 679 | | - modem links. It can coexist with flows that use loss-based congestion |
|---|
| 680 | | - control, and can operate with shallow buffers, deep buffers, |
|---|
| 681 | | - bufferbloat, policers, or AQM schemes that do not provide a delay |
|---|
| 682 | | - signal. It requires the fq ("Fair Queue") pacing packet scheduler. |
|---|
| 672 | + BBR (Bottleneck Bandwidth and RTT) TCP congestion control aims to |
|---|
| 673 | + maximize network utilization and minimize queues. It builds an explicit |
|---|
| 674 | + model of the bottleneck delivery rate and path round-trip propagation |
|---|
| 675 | + delay. It tolerates packet loss and delay unrelated to congestion. It |
|---|
| 676 | + can operate over LAN, WAN, cellular, wifi, or cable modem links. It can |
|---|
| 677 | + coexist with flows that use loss-based congestion control, and can |
|---|
| 678 | + operate with shallow buffers, deep buffers, bufferbloat, policers, or |
|---|
| 679 | + AQM schemes that do not provide a delay signal. It requires the fq |
|---|
| 680 | + ("Fair Queue") pacing packet scheduler. |
|---|
| 683 | 681 | |
|---|
| 684 | 682 | choice |
|---|
| 685 | 683 | prompt "Default TCP congestion control" |
|---|
| .. | .. |
|---|
| 748 | 746 | bool "TCP: MD5 Signature Option support (RFC2385)" |
|---|
| 749 | 747 | select CRYPTO |
|---|
| 750 | 748 | select CRYPTO_MD5 |
|---|
| 751 | | - ---help--- |
|---|
| 749 | + help |
|---|
| 752 | 750 | RFC2385 specifies a method of giving MD5 protection to TCP sessions. |
|---|
| 753 | 751 | Its main (only?) use is to protect BGP sessions between core routers |
|---|
| 754 | 752 | on the Internet. |
|---|