| .. | .. | 
|---|
 | 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. | 
|---|