162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# IP configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ciconfig IP_MULTICAST 662306a36Sopenharmony_ci bool "IP: multicasting" 762306a36Sopenharmony_ci help 862306a36Sopenharmony_ci This is code for addressing several networked computers at once, 962306a36Sopenharmony_ci enlarging your kernel by about 2 KB. You need multicasting if you 1062306a36Sopenharmony_ci intend to participate in the MBONE, a high bandwidth network on top 1162306a36Sopenharmony_ci of the Internet which carries audio and video broadcasts. More 1262306a36Sopenharmony_ci information about the MBONE is on the WWW at 1362306a36Sopenharmony_ci <https://www.savetz.com/mbone/>. For most people, it's safe to say N. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciconfig IP_ADVANCED_ROUTER 1662306a36Sopenharmony_ci bool "IP: advanced router" 1762306a36Sopenharmony_ci help 1862306a36Sopenharmony_ci If you intend to run your Linux box mostly as a router, i.e. as a 1962306a36Sopenharmony_ci computer that forwards and redistributes network packets, say Y; you 2062306a36Sopenharmony_ci will then be presented with several options that allow more precise 2162306a36Sopenharmony_ci control about the routing process. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci The answer to this question won't directly affect the kernel: 2462306a36Sopenharmony_ci answering N will just cause the configurator to skip all the 2562306a36Sopenharmony_ci questions about advanced routing. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci Note that your box can only act as a router if you enable IP 2862306a36Sopenharmony_ci forwarding in your kernel; you can do that by saying Y to "/proc 2962306a36Sopenharmony_ci file system support" and "Sysctl support" below and executing the 3062306a36Sopenharmony_ci line 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci echo "1" > /proc/sys/net/ipv4/ip_forward 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci at boot time after the /proc file system has been mounted. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci If you turn on IP forwarding, you should consider the rp_filter, which 3762306a36Sopenharmony_ci automatically rejects incoming packets if the routing table entry 3862306a36Sopenharmony_ci for their source address doesn't match the network interface they're 3962306a36Sopenharmony_ci arriving on. This has security advantages because it prevents the 4062306a36Sopenharmony_ci so-called IP spoofing, however it can pose problems if you use 4162306a36Sopenharmony_ci asymmetric routing (packets from you to a host take a different path 4262306a36Sopenharmony_ci than packets from that host to you) or if you operate a non-routing 4362306a36Sopenharmony_ci host which has several IP addresses on different interfaces. To turn 4462306a36Sopenharmony_ci rp_filter on use: 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci echo 1 > /proc/sys/net/ipv4/conf/<device>/rp_filter 4762306a36Sopenharmony_ci or 4862306a36Sopenharmony_ci echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci Note that some distributions enable it in startup scripts. 5162306a36Sopenharmony_ci For details about rp_filter strict and loose mode read 5262306a36Sopenharmony_ci <file:Documentation/networking/ip-sysctl.rst>. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci If unsure, say N here. 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciconfig IP_FIB_TRIE_STATS 5762306a36Sopenharmony_ci bool "FIB TRIE statistics" 5862306a36Sopenharmony_ci depends on IP_ADVANCED_ROUTER 5962306a36Sopenharmony_ci help 6062306a36Sopenharmony_ci Keep track of statistics on structure of FIB TRIE table. 6162306a36Sopenharmony_ci Useful for testing and measuring TRIE performance. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciconfig IP_MULTIPLE_TABLES 6462306a36Sopenharmony_ci bool "IP: policy routing" 6562306a36Sopenharmony_ci depends on IP_ADVANCED_ROUTER 6662306a36Sopenharmony_ci select FIB_RULES 6762306a36Sopenharmony_ci help 6862306a36Sopenharmony_ci Normally, a router decides what to do with a received packet based 6962306a36Sopenharmony_ci solely on the packet's final destination address. If you say Y here, 7062306a36Sopenharmony_ci the Linux router will also be able to take the packet's source 7162306a36Sopenharmony_ci address into account. Furthermore, the TOS (Type-Of-Service) field 7262306a36Sopenharmony_ci of the packet can be used for routing decisions as well. 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci If you need more information, see the Linux Advanced 7562306a36Sopenharmony_ci Routing and Traffic Control documentation at 7662306a36Sopenharmony_ci <https://lartc.org/howto/lartc.rpdb.html> 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci If unsure, say N. 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig IP_ROUTE_MULTIPATH 8162306a36Sopenharmony_ci bool "IP: equal cost multipath" 8262306a36Sopenharmony_ci depends on IP_ADVANCED_ROUTER 8362306a36Sopenharmony_ci help 8462306a36Sopenharmony_ci Normally, the routing tables specify a single action to be taken in 8562306a36Sopenharmony_ci a deterministic manner for a given packet. If you say Y here 8662306a36Sopenharmony_ci however, it becomes possible to attach several actions to a packet 8762306a36Sopenharmony_ci pattern, in effect specifying several alternative paths to travel 8862306a36Sopenharmony_ci for those packets. The router considers all these paths to be of 8962306a36Sopenharmony_ci equal "cost" and chooses one of them in a non-deterministic fashion 9062306a36Sopenharmony_ci if a matching packet arrives. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig IP_ROUTE_VERBOSE 9362306a36Sopenharmony_ci bool "IP: verbose route monitoring" 9462306a36Sopenharmony_ci depends on IP_ADVANCED_ROUTER 9562306a36Sopenharmony_ci help 9662306a36Sopenharmony_ci If you say Y here, which is recommended, then the kernel will print 9762306a36Sopenharmony_ci verbose messages regarding the routing, for example warnings about 9862306a36Sopenharmony_ci received packets which look strange and could be evidence of an 9962306a36Sopenharmony_ci attack or a misconfigured system somewhere. The information is 10062306a36Sopenharmony_ci handled by the klogd daemon which is responsible for kernel messages 10162306a36Sopenharmony_ci ("man klogd"). 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciconfig IP_ROUTE_CLASSID 10462306a36Sopenharmony_ci bool 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciconfig IP_PNP 10762306a36Sopenharmony_ci bool "IP: kernel level autoconfiguration" 10862306a36Sopenharmony_ci help 10962306a36Sopenharmony_ci This enables automatic configuration of IP addresses of devices and 11062306a36Sopenharmony_ci of the routing table during kernel boot, based on either information 11162306a36Sopenharmony_ci supplied on the kernel command line or by BOOTP or RARP protocols. 11262306a36Sopenharmony_ci You need to say Y only for diskless machines requiring network 11362306a36Sopenharmony_ci access to boot (in which case you want to say Y to "Root file system 11462306a36Sopenharmony_ci on NFS" as well), because all other machines configure the network 11562306a36Sopenharmony_ci in their startup scripts. 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ciconfig IP_PNP_DHCP 11862306a36Sopenharmony_ci bool "IP: DHCP support" 11962306a36Sopenharmony_ci depends on IP_PNP 12062306a36Sopenharmony_ci help 12162306a36Sopenharmony_ci If you want your Linux box to mount its whole root file system (the 12262306a36Sopenharmony_ci one containing the directory /) from some other computer over the 12362306a36Sopenharmony_ci net via NFS and you want the IP address of your computer to be 12462306a36Sopenharmony_ci discovered automatically at boot time using the DHCP protocol (a 12562306a36Sopenharmony_ci special protocol designed for doing this job), say Y here. In case 12662306a36Sopenharmony_ci the boot ROM of your network card was designed for booting Linux and 12762306a36Sopenharmony_ci does DHCP itself, providing all necessary information on the kernel 12862306a36Sopenharmony_ci command line, you can say N here. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci If unsure, say Y. Note that if you want to use DHCP, a DHCP server 13162306a36Sopenharmony_ci must be operating on your network. Read 13262306a36Sopenharmony_ci <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciconfig IP_PNP_BOOTP 13562306a36Sopenharmony_ci bool "IP: BOOTP support" 13662306a36Sopenharmony_ci depends on IP_PNP 13762306a36Sopenharmony_ci help 13862306a36Sopenharmony_ci If you want your Linux box to mount its whole root file system (the 13962306a36Sopenharmony_ci one containing the directory /) from some other computer over the 14062306a36Sopenharmony_ci net via NFS and you want the IP address of your computer to be 14162306a36Sopenharmony_ci discovered automatically at boot time using the BOOTP protocol (a 14262306a36Sopenharmony_ci special protocol designed for doing this job), say Y here. In case 14362306a36Sopenharmony_ci the boot ROM of your network card was designed for booting Linux and 14462306a36Sopenharmony_ci does BOOTP itself, providing all necessary information on the kernel 14562306a36Sopenharmony_ci command line, you can say N here. If unsure, say Y. Note that if you 14662306a36Sopenharmony_ci want to use BOOTP, a BOOTP server must be operating on your network. 14762306a36Sopenharmony_ci Read <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciconfig IP_PNP_RARP 15062306a36Sopenharmony_ci bool "IP: RARP support" 15162306a36Sopenharmony_ci depends on IP_PNP 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci If you want your Linux box to mount its whole root file system (the 15462306a36Sopenharmony_ci one containing the directory /) from some other computer over the 15562306a36Sopenharmony_ci net via NFS and you want the IP address of your computer to be 15662306a36Sopenharmony_ci discovered automatically at boot time using the RARP protocol (an 15762306a36Sopenharmony_ci older protocol which is being obsoleted by BOOTP and DHCP), say Y 15862306a36Sopenharmony_ci here. Note that if you want to use RARP, a RARP server must be 15962306a36Sopenharmony_ci operating on your network. Read 16062306a36Sopenharmony_ci <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ciconfig NET_IPIP 16362306a36Sopenharmony_ci tristate "IP: tunneling" 16462306a36Sopenharmony_ci select INET_TUNNEL 16562306a36Sopenharmony_ci select NET_IP_TUNNEL 16662306a36Sopenharmony_ci help 16762306a36Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 16862306a36Sopenharmony_ci another protocol and sending it over a channel that understands the 16962306a36Sopenharmony_ci encapsulating protocol. This particular tunneling driver implements 17062306a36Sopenharmony_ci encapsulation of IP within IP, which sounds kind of pointless, but 17162306a36Sopenharmony_ci can be useful if you want to make your (or some other) machine 17262306a36Sopenharmony_ci appear on a different network than it physically is, or to use 17362306a36Sopenharmony_ci mobile-IP facilities (allowing laptops to seamlessly move between 17462306a36Sopenharmony_ci networks without changing their IP addresses). 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci Saying Y to this option will produce two modules ( = code which can 17762306a36Sopenharmony_ci be inserted in and removed from the running kernel whenever you 17862306a36Sopenharmony_ci want). Most people won't need this and can say N. 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ciconfig NET_IPGRE_DEMUX 18162306a36Sopenharmony_ci tristate "IP: GRE demultiplexer" 18262306a36Sopenharmony_ci help 18362306a36Sopenharmony_ci This is helper module to demultiplex GRE packets on GRE version field criteria. 18462306a36Sopenharmony_ci Required by ip_gre and pptp modules. 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ciconfig NET_IP_TUNNEL 18762306a36Sopenharmony_ci tristate 18862306a36Sopenharmony_ci select DST_CACHE 18962306a36Sopenharmony_ci select GRO_CELLS 19062306a36Sopenharmony_ci default n 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig NET_IPGRE 19362306a36Sopenharmony_ci tristate "IP: GRE tunnels over IP" 19462306a36Sopenharmony_ci depends on (IPV6 || IPV6=n) && NET_IPGRE_DEMUX 19562306a36Sopenharmony_ci select NET_IP_TUNNEL 19662306a36Sopenharmony_ci help 19762306a36Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 19862306a36Sopenharmony_ci another protocol and sending it over a channel that understands the 19962306a36Sopenharmony_ci encapsulating protocol. This particular tunneling driver implements 20062306a36Sopenharmony_ci GRE (Generic Routing Encapsulation) and at this time allows 20162306a36Sopenharmony_ci encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure. 20262306a36Sopenharmony_ci This driver is useful if the other endpoint is a Cisco router: Cisco 20362306a36Sopenharmony_ci likes GRE much better than the other Linux tunneling driver ("IP 20462306a36Sopenharmony_ci tunneling" above). In addition, GRE allows multicast redistribution 20562306a36Sopenharmony_ci through the tunnel. 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ciconfig NET_IPGRE_BROADCAST 20862306a36Sopenharmony_ci bool "IP: broadcast GRE over IP" 20962306a36Sopenharmony_ci depends on IP_MULTICAST && NET_IPGRE 21062306a36Sopenharmony_ci help 21162306a36Sopenharmony_ci One application of GRE/IP is to construct a broadcast WAN (Wide Area 21262306a36Sopenharmony_ci Network), which looks like a normal Ethernet LAN (Local Area 21362306a36Sopenharmony_ci Network), but can be distributed all over the Internet. If you want 21462306a36Sopenharmony_ci to do that, say Y here and to "IP multicast routing" below. 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ciconfig IP_MROUTE_COMMON 21762306a36Sopenharmony_ci bool 21862306a36Sopenharmony_ci depends on IP_MROUTE || IPV6_MROUTE 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ciconfig IP_MROUTE 22162306a36Sopenharmony_ci bool "IP: multicast routing" 22262306a36Sopenharmony_ci depends on IP_MULTICAST 22362306a36Sopenharmony_ci select IP_MROUTE_COMMON 22462306a36Sopenharmony_ci help 22562306a36Sopenharmony_ci This is used if you want your machine to act as a router for IP 22662306a36Sopenharmony_ci packets that have several destination addresses. It is needed on the 22762306a36Sopenharmony_ci MBONE, a high bandwidth network on top of the Internet which carries 22862306a36Sopenharmony_ci audio and video broadcasts. In order to do that, you would most 22962306a36Sopenharmony_ci likely run the program mrouted. If you haven't heard about it, you 23062306a36Sopenharmony_ci don't need it. 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ciconfig IP_MROUTE_MULTIPLE_TABLES 23362306a36Sopenharmony_ci bool "IP: multicast policy routing" 23462306a36Sopenharmony_ci depends on IP_MROUTE && IP_ADVANCED_ROUTER 23562306a36Sopenharmony_ci select FIB_RULES 23662306a36Sopenharmony_ci help 23762306a36Sopenharmony_ci Normally, a multicast router runs a userspace daemon and decides 23862306a36Sopenharmony_ci what to do with a multicast packet based on the source and 23962306a36Sopenharmony_ci destination addresses. If you say Y here, the multicast router 24062306a36Sopenharmony_ci will also be able to take interfaces and packet marks into 24162306a36Sopenharmony_ci account and run multiple instances of userspace daemons 24262306a36Sopenharmony_ci simultaneously, each one handling a single table. 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci If unsure, say N. 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ciconfig IP_PIMSM_V1 24762306a36Sopenharmony_ci bool "IP: PIM-SM version 1 support" 24862306a36Sopenharmony_ci depends on IP_MROUTE 24962306a36Sopenharmony_ci help 25062306a36Sopenharmony_ci Kernel side support for Sparse Mode PIM (Protocol Independent 25162306a36Sopenharmony_ci Multicast) version 1. This multicast routing protocol is used widely 25262306a36Sopenharmony_ci because Cisco supports it. You need special software to use it 25362306a36Sopenharmony_ci (pimd-v1). Please see <http://netweb.usc.edu/pim/> for more 25462306a36Sopenharmony_ci information about PIM. 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci Say Y if you want to use PIM-SM v1. Note that you can say N here if 25762306a36Sopenharmony_ci you just want to use Dense Mode PIM. 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ciconfig IP_PIMSM_V2 26062306a36Sopenharmony_ci bool "IP: PIM-SM version 2 support" 26162306a36Sopenharmony_ci depends on IP_MROUTE 26262306a36Sopenharmony_ci help 26362306a36Sopenharmony_ci Kernel side support for Sparse Mode PIM version 2. In order to use 26462306a36Sopenharmony_ci this, you need an experimental routing daemon supporting it (pimd or 26562306a36Sopenharmony_ci gated-5). This routing protocol is not used widely, so say N unless 26662306a36Sopenharmony_ci you want to play with it. 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ciconfig SYN_COOKIES 26962306a36Sopenharmony_ci bool "IP: TCP syncookie support" 27062306a36Sopenharmony_ci help 27162306a36Sopenharmony_ci Normal TCP/IP networking is open to an attack known as "SYN 27262306a36Sopenharmony_ci flooding". This denial-of-service attack prevents legitimate remote 27362306a36Sopenharmony_ci users from being able to connect to your computer during an ongoing 27462306a36Sopenharmony_ci attack and requires very little work from the attacker, who can 27562306a36Sopenharmony_ci operate from anywhere on the Internet. 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci SYN cookies provide protection against this type of attack. If you 27862306a36Sopenharmony_ci say Y here, the TCP/IP stack will use a cryptographic challenge 27962306a36Sopenharmony_ci protocol known as "SYN cookies" to enable legitimate users to 28062306a36Sopenharmony_ci continue to connect, even when your machine is under attack. There 28162306a36Sopenharmony_ci is no need for the legitimate users to change their TCP/IP software; 28262306a36Sopenharmony_ci SYN cookies work transparently to them. For technical information 28362306a36Sopenharmony_ci about SYN cookies, check out <https://cr.yp.to/syncookies.html>. 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci If you are SYN flooded, the source address reported by the kernel is 28662306a36Sopenharmony_ci likely to have been forged by the attacker; it is only reported as 28762306a36Sopenharmony_ci an aid in tracing the packets to their actual source and should not 28862306a36Sopenharmony_ci be taken as absolute truth. 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci SYN cookies may prevent correct error reporting on clients when the 29162306a36Sopenharmony_ci server is really overloaded. If this happens frequently better turn 29262306a36Sopenharmony_ci them off. 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ci If you say Y here, you can disable SYN cookies at run time by 29562306a36Sopenharmony_ci saying Y to "/proc file system support" and 29662306a36Sopenharmony_ci "Sysctl support" below and executing the command 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ci echo 0 > /proc/sys/net/ipv4/tcp_syncookies 29962306a36Sopenharmony_ci 30062306a36Sopenharmony_ci after the /proc file system has been mounted. 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci If unsure, say N. 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ciconfig NET_IPVTI 30562306a36Sopenharmony_ci tristate "Virtual (secure) IP: tunneling" 30662306a36Sopenharmony_ci depends on IPV6 || IPV6=n 30762306a36Sopenharmony_ci select INET_TUNNEL 30862306a36Sopenharmony_ci select NET_IP_TUNNEL 30962306a36Sopenharmony_ci select XFRM 31062306a36Sopenharmony_ci help 31162306a36Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 31262306a36Sopenharmony_ci another protocol and sending it over a channel that understands the 31362306a36Sopenharmony_ci encapsulating protocol. This can be used with xfrm mode tunnel to give 31462306a36Sopenharmony_ci the notion of a secure tunnel for IPSEC and then use routing protocol 31562306a36Sopenharmony_ci on top. 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ciconfig NET_UDP_TUNNEL 31862306a36Sopenharmony_ci tristate 31962306a36Sopenharmony_ci select NET_IP_TUNNEL 32062306a36Sopenharmony_ci default n 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ciconfig NET_FOU 32362306a36Sopenharmony_ci tristate "IP: Foo (IP protocols) over UDP" 32462306a36Sopenharmony_ci select NET_UDP_TUNNEL 32562306a36Sopenharmony_ci help 32662306a36Sopenharmony_ci Foo over UDP allows any IP protocol to be directly encapsulated 32762306a36Sopenharmony_ci over UDP include tunnels (IPIP, GRE, SIT). By encapsulating in UDP 32862306a36Sopenharmony_ci network mechanisms and optimizations for UDP (such as ECMP 32962306a36Sopenharmony_ci and RSS) can be leveraged to provide better service. 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ciconfig NET_FOU_IP_TUNNELS 33262306a36Sopenharmony_ci bool "IP: FOU encapsulation of IP tunnels" 33362306a36Sopenharmony_ci depends on NET_IPIP || NET_IPGRE || IPV6_SIT 33462306a36Sopenharmony_ci select NET_FOU 33562306a36Sopenharmony_ci help 33662306a36Sopenharmony_ci Allow configuration of FOU or GUE encapsulation for IP tunnels. 33762306a36Sopenharmony_ci When this option is enabled IP tunnels can be configured to use 33862306a36Sopenharmony_ci FOU or GUE encapsulation. 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ciconfig INET_AH 34162306a36Sopenharmony_ci tristate "IP: AH transformation" 34262306a36Sopenharmony_ci select XFRM_AH 34362306a36Sopenharmony_ci help 34462306a36Sopenharmony_ci Support for IPsec AH (Authentication Header). 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_ci AH can be used with various authentication algorithms. Besides 34762306a36Sopenharmony_ci enabling AH support itself, this option enables the generic 34862306a36Sopenharmony_ci implementations of the algorithms that RFC 8221 lists as MUST be 34962306a36Sopenharmony_ci implemented. If you need any other algorithms, you'll need to enable 35062306a36Sopenharmony_ci them in the crypto API. You should also enable accelerated 35162306a36Sopenharmony_ci implementations of any needed algorithms when available. 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci If unsure, say Y. 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_ciconfig INET_ESP 35662306a36Sopenharmony_ci tristate "IP: ESP transformation" 35762306a36Sopenharmony_ci select XFRM_ESP 35862306a36Sopenharmony_ci help 35962306a36Sopenharmony_ci Support for IPsec ESP (Encapsulating Security Payload). 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci ESP can be used with various encryption and authentication algorithms. 36262306a36Sopenharmony_ci Besides enabling ESP support itself, this option enables the generic 36362306a36Sopenharmony_ci implementations of the algorithms that RFC 8221 lists as MUST be 36462306a36Sopenharmony_ci implemented. If you need any other algorithms, you'll need to enable 36562306a36Sopenharmony_ci them in the crypto API. You should also enable accelerated 36662306a36Sopenharmony_ci implementations of any needed algorithms when available. 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci If unsure, say Y. 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ciconfig INET_ESP_OFFLOAD 37162306a36Sopenharmony_ci tristate "IP: ESP transformation offload" 37262306a36Sopenharmony_ci depends on INET_ESP 37362306a36Sopenharmony_ci select XFRM_OFFLOAD 37462306a36Sopenharmony_ci default n 37562306a36Sopenharmony_ci help 37662306a36Sopenharmony_ci Support for ESP transformation offload. This makes sense 37762306a36Sopenharmony_ci only if this system really does IPsec and want to do it 37862306a36Sopenharmony_ci with high throughput. A typical desktop system does not 37962306a36Sopenharmony_ci need it, even if it does IPsec. 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ci If unsure, say N. 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ciconfig INET_ESPINTCP 38462306a36Sopenharmony_ci bool "IP: ESP in TCP encapsulation (RFC 8229)" 38562306a36Sopenharmony_ci depends on XFRM && INET_ESP 38662306a36Sopenharmony_ci select STREAM_PARSER 38762306a36Sopenharmony_ci select NET_SOCK_MSG 38862306a36Sopenharmony_ci select XFRM_ESPINTCP 38962306a36Sopenharmony_ci help 39062306a36Sopenharmony_ci Support for RFC 8229 encapsulation of ESP and IKE over 39162306a36Sopenharmony_ci TCP/IPv4 sockets. 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci If unsure, say N. 39462306a36Sopenharmony_ci 39562306a36Sopenharmony_ciconfig INET_IPCOMP 39662306a36Sopenharmony_ci tristate "IP: IPComp transformation" 39762306a36Sopenharmony_ci select INET_XFRM_TUNNEL 39862306a36Sopenharmony_ci select XFRM_IPCOMP 39962306a36Sopenharmony_ci help 40062306a36Sopenharmony_ci Support for IP Payload Compression Protocol (IPComp) (RFC3173), 40162306a36Sopenharmony_ci typically needed for IPsec. 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ci If unsure, say Y. 40462306a36Sopenharmony_ci 40562306a36Sopenharmony_ciconfig INET_TABLE_PERTURB_ORDER 40662306a36Sopenharmony_ci int "INET: Source port perturbation table size (as power of 2)" if EXPERT 40762306a36Sopenharmony_ci default 16 40862306a36Sopenharmony_ci help 40962306a36Sopenharmony_ci Source port perturbation table size (as power of 2) for 41062306a36Sopenharmony_ci RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm. 41162306a36Sopenharmony_ci 41262306a36Sopenharmony_ci The default is almost always what you want. 41362306a36Sopenharmony_ci Only change this if you know what you are doing. 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ciconfig INET_XFRM_TUNNEL 41662306a36Sopenharmony_ci tristate 41762306a36Sopenharmony_ci select INET_TUNNEL 41862306a36Sopenharmony_ci default n 41962306a36Sopenharmony_ci 42062306a36Sopenharmony_ciconfig INET_TUNNEL 42162306a36Sopenharmony_ci tristate 42262306a36Sopenharmony_ci default n 42362306a36Sopenharmony_ci 42462306a36Sopenharmony_ciconfig INET_DIAG 42562306a36Sopenharmony_ci tristate "INET: socket monitoring interface" 42662306a36Sopenharmony_ci default y 42762306a36Sopenharmony_ci help 42862306a36Sopenharmony_ci Support for INET (TCP, DCCP, etc) socket monitoring interface used by 42962306a36Sopenharmony_ci native Linux tools such as ss. ss is included in iproute2, currently 43062306a36Sopenharmony_ci downloadable at: 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 43362306a36Sopenharmony_ci 43462306a36Sopenharmony_ci If unsure, say Y. 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ciconfig INET_TCP_DIAG 43762306a36Sopenharmony_ci depends on INET_DIAG 43862306a36Sopenharmony_ci def_tristate INET_DIAG 43962306a36Sopenharmony_ci 44062306a36Sopenharmony_ciconfig INET_UDP_DIAG 44162306a36Sopenharmony_ci tristate "UDP: socket monitoring interface" 44262306a36Sopenharmony_ci depends on INET_DIAG && (IPV6 || IPV6=n) 44362306a36Sopenharmony_ci default n 44462306a36Sopenharmony_ci help 44562306a36Sopenharmony_ci Support for UDP socket monitoring interface used by the ss tool. 44662306a36Sopenharmony_ci If unsure, say Y. 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ciconfig INET_RAW_DIAG 44962306a36Sopenharmony_ci tristate "RAW: socket monitoring interface" 45062306a36Sopenharmony_ci depends on INET_DIAG && (IPV6 || IPV6=n) 45162306a36Sopenharmony_ci default n 45262306a36Sopenharmony_ci help 45362306a36Sopenharmony_ci Support for RAW socket monitoring interface used by the ss tool. 45462306a36Sopenharmony_ci If unsure, say Y. 45562306a36Sopenharmony_ci 45662306a36Sopenharmony_ciconfig INET_DIAG_DESTROY 45762306a36Sopenharmony_ci bool "INET: allow privileged process to administratively close sockets" 45862306a36Sopenharmony_ci depends on INET_DIAG 45962306a36Sopenharmony_ci default n 46062306a36Sopenharmony_ci help 46162306a36Sopenharmony_ci Provides a SOCK_DESTROY operation that allows privileged processes 46262306a36Sopenharmony_ci (e.g., a connection manager or a network administration tool such as 46362306a36Sopenharmony_ci ss) to close sockets opened by other processes. Closing a socket in 46462306a36Sopenharmony_ci this way interrupts any blocking read/write/connect operations on 46562306a36Sopenharmony_ci the socket and causes future socket calls to behave as if the socket 46662306a36Sopenharmony_ci had been disconnected. 46762306a36Sopenharmony_ci If unsure, say N. 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_cimenuconfig TCP_CONG_ADVANCED 47062306a36Sopenharmony_ci bool "TCP: advanced congestion control" 47162306a36Sopenharmony_ci help 47262306a36Sopenharmony_ci Support for selection of various TCP congestion control 47362306a36Sopenharmony_ci modules. 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ci Nearly all users can safely say no here, and a safe default 47662306a36Sopenharmony_ci selection will be made (CUBIC with new Reno as a fallback). 47762306a36Sopenharmony_ci 47862306a36Sopenharmony_ci If unsure, say N. 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_ciif TCP_CONG_ADVANCED 48162306a36Sopenharmony_ci 48262306a36Sopenharmony_ciconfig TCP_CONG_BIC 48362306a36Sopenharmony_ci tristate "Binary Increase Congestion (BIC) control" 48462306a36Sopenharmony_ci default m 48562306a36Sopenharmony_ci help 48662306a36Sopenharmony_ci BIC-TCP is a sender-side only change that ensures a linear RTT 48762306a36Sopenharmony_ci fairness under large windows while offering both scalability and 48862306a36Sopenharmony_ci bounded TCP-friendliness. The protocol combines two schemes 48962306a36Sopenharmony_ci called additive increase and binary search increase. When the 49062306a36Sopenharmony_ci congestion window is large, additive increase with a large 49162306a36Sopenharmony_ci increment ensures linear RTT fairness as well as good 49262306a36Sopenharmony_ci scalability. Under small congestion windows, binary search 49362306a36Sopenharmony_ci increase provides TCP friendliness. 49462306a36Sopenharmony_ci See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ciconfig TCP_CONG_CUBIC 49762306a36Sopenharmony_ci tristate "CUBIC TCP" 49862306a36Sopenharmony_ci default y 49962306a36Sopenharmony_ci help 50062306a36Sopenharmony_ci This is version 2.0 of BIC-TCP which uses a cubic growth function 50162306a36Sopenharmony_ci among other techniques. 50262306a36Sopenharmony_ci See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf 50362306a36Sopenharmony_ci 50462306a36Sopenharmony_ciconfig TCP_CONG_WESTWOOD 50562306a36Sopenharmony_ci tristate "TCP Westwood+" 50662306a36Sopenharmony_ci default m 50762306a36Sopenharmony_ci help 50862306a36Sopenharmony_ci TCP Westwood+ is a sender-side only modification of the TCP Reno 50962306a36Sopenharmony_ci protocol stack that optimizes the performance of TCP congestion 51062306a36Sopenharmony_ci control. It is based on end-to-end bandwidth estimation to set 51162306a36Sopenharmony_ci congestion window and slow start threshold after a congestion 51262306a36Sopenharmony_ci episode. Using this estimation, TCP Westwood+ adaptively sets a 51362306a36Sopenharmony_ci slow start threshold and a congestion window which takes into 51462306a36Sopenharmony_ci account the bandwidth used at the time congestion is experienced. 51562306a36Sopenharmony_ci TCP Westwood+ significantly increases fairness wrt TCP Reno in 51662306a36Sopenharmony_ci wired networks and throughput over wireless links. 51762306a36Sopenharmony_ci 51862306a36Sopenharmony_ciconfig TCP_CONG_HTCP 51962306a36Sopenharmony_ci tristate "H-TCP" 52062306a36Sopenharmony_ci default m 52162306a36Sopenharmony_ci help 52262306a36Sopenharmony_ci H-TCP is a send-side only modifications of the TCP Reno 52362306a36Sopenharmony_ci protocol stack that optimizes the performance of TCP 52462306a36Sopenharmony_ci congestion control for high speed network links. It uses a 52562306a36Sopenharmony_ci modeswitch to change the alpha and beta parameters of TCP Reno 52662306a36Sopenharmony_ci based on network conditions and in a way so as to be fair with 52762306a36Sopenharmony_ci other Reno and H-TCP flows. 52862306a36Sopenharmony_ci 52962306a36Sopenharmony_ciconfig TCP_CONG_HSTCP 53062306a36Sopenharmony_ci tristate "High Speed TCP" 53162306a36Sopenharmony_ci default n 53262306a36Sopenharmony_ci help 53362306a36Sopenharmony_ci Sally Floyd's High Speed TCP (RFC 3649) congestion control. 53462306a36Sopenharmony_ci A modification to TCP's congestion control mechanism for use 53562306a36Sopenharmony_ci with large congestion windows. A table indicates how much to 53662306a36Sopenharmony_ci increase the congestion window by when an ACK is received. 53762306a36Sopenharmony_ci For more detail see https://www.icir.org/floyd/hstcp.html 53862306a36Sopenharmony_ci 53962306a36Sopenharmony_ciconfig TCP_CONG_HYBLA 54062306a36Sopenharmony_ci tristate "TCP-Hybla congestion control algorithm" 54162306a36Sopenharmony_ci default n 54262306a36Sopenharmony_ci help 54362306a36Sopenharmony_ci TCP-Hybla is a sender-side only change that eliminates penalization of 54462306a36Sopenharmony_ci long-RTT, large-bandwidth connections, like when satellite legs are 54562306a36Sopenharmony_ci involved, especially when sharing a common bottleneck with normal 54662306a36Sopenharmony_ci terrestrial connections. 54762306a36Sopenharmony_ci 54862306a36Sopenharmony_ciconfig TCP_CONG_VEGAS 54962306a36Sopenharmony_ci tristate "TCP Vegas" 55062306a36Sopenharmony_ci default n 55162306a36Sopenharmony_ci help 55262306a36Sopenharmony_ci TCP Vegas is a sender-side only change to TCP that anticipates 55362306a36Sopenharmony_ci the onset of congestion by estimating the bandwidth. TCP Vegas 55462306a36Sopenharmony_ci adjusts the sending rate by modifying the congestion 55562306a36Sopenharmony_ci window. TCP Vegas should provide less packet loss, but it is 55662306a36Sopenharmony_ci not as aggressive as TCP Reno. 55762306a36Sopenharmony_ci 55862306a36Sopenharmony_ciconfig TCP_CONG_NV 55962306a36Sopenharmony_ci tristate "TCP NV" 56062306a36Sopenharmony_ci default n 56162306a36Sopenharmony_ci help 56262306a36Sopenharmony_ci TCP NV is a follow up to TCP Vegas. It has been modified to deal with 56362306a36Sopenharmony_ci 10G networks, measurement noise introduced by LRO, GRO and interrupt 56462306a36Sopenharmony_ci coalescence. In addition, it will decrease its cwnd multiplicatively 56562306a36Sopenharmony_ci instead of linearly. 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ci Note that in general congestion avoidance (cwnd decreased when # packets 56862306a36Sopenharmony_ci queued grows) cannot coexist with congestion control (cwnd decreased only 56962306a36Sopenharmony_ci when there is packet loss) due to fairness issues. One scenario when they 57062306a36Sopenharmony_ci can coexist safely is when the CA flows have RTTs << CC flows RTTs. 57162306a36Sopenharmony_ci 57262306a36Sopenharmony_ci For further details see http://www.brakmo.org/networking/tcp-nv/ 57362306a36Sopenharmony_ci 57462306a36Sopenharmony_ciconfig TCP_CONG_SCALABLE 57562306a36Sopenharmony_ci tristate "Scalable TCP" 57662306a36Sopenharmony_ci default n 57762306a36Sopenharmony_ci help 57862306a36Sopenharmony_ci Scalable TCP is a sender-side only change to TCP which uses a 57962306a36Sopenharmony_ci MIMD congestion control algorithm which has some nice scaling 58062306a36Sopenharmony_ci properties, though is known to have fairness issues. 58162306a36Sopenharmony_ci See http://www.deneholme.net/tom/scalable/ 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ciconfig TCP_CONG_LP 58462306a36Sopenharmony_ci tristate "TCP Low Priority" 58562306a36Sopenharmony_ci default n 58662306a36Sopenharmony_ci help 58762306a36Sopenharmony_ci TCP Low Priority (TCP-LP), a distributed algorithm whose goal is 58862306a36Sopenharmony_ci to utilize only the excess network bandwidth as compared to the 58962306a36Sopenharmony_ci ``fair share`` of bandwidth as targeted by TCP. 59062306a36Sopenharmony_ci See http://www-ece.rice.edu/networks/TCP-LP/ 59162306a36Sopenharmony_ci 59262306a36Sopenharmony_ciconfig TCP_CONG_VENO 59362306a36Sopenharmony_ci tristate "TCP Veno" 59462306a36Sopenharmony_ci default n 59562306a36Sopenharmony_ci help 59662306a36Sopenharmony_ci TCP Veno is a sender-side only enhancement of TCP to obtain better 59762306a36Sopenharmony_ci throughput over wireless networks. TCP Veno makes use of state 59862306a36Sopenharmony_ci distinguishing to circumvent the difficult judgment of the packet loss 59962306a36Sopenharmony_ci type. TCP Veno cuts down less congestion window in response to random 60062306a36Sopenharmony_ci loss packets. 60162306a36Sopenharmony_ci See <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1177186> 60262306a36Sopenharmony_ci 60362306a36Sopenharmony_ciconfig TCP_CONG_YEAH 60462306a36Sopenharmony_ci tristate "YeAH TCP" 60562306a36Sopenharmony_ci select TCP_CONG_VEGAS 60662306a36Sopenharmony_ci default n 60762306a36Sopenharmony_ci help 60862306a36Sopenharmony_ci YeAH-TCP is a sender-side high-speed enabled TCP congestion control 60962306a36Sopenharmony_ci algorithm, which uses a mixed loss/delay approach to compute the 61062306a36Sopenharmony_ci congestion window. It's design goals target high efficiency, 61162306a36Sopenharmony_ci internal, RTT and Reno fairness, resilience to link loss while 61262306a36Sopenharmony_ci keeping network elements load as low as possible. 61362306a36Sopenharmony_ci 61462306a36Sopenharmony_ci For further details look here: 61562306a36Sopenharmony_ci http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf 61662306a36Sopenharmony_ci 61762306a36Sopenharmony_ciconfig TCP_CONG_ILLINOIS 61862306a36Sopenharmony_ci tristate "TCP Illinois" 61962306a36Sopenharmony_ci default n 62062306a36Sopenharmony_ci help 62162306a36Sopenharmony_ci TCP-Illinois is a sender-side modification of TCP Reno for 62262306a36Sopenharmony_ci high speed long delay links. It uses round-trip-time to 62362306a36Sopenharmony_ci adjust the alpha and beta parameters to achieve a higher average 62462306a36Sopenharmony_ci throughput and maintain fairness. 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci For further details see: 62762306a36Sopenharmony_ci http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html 62862306a36Sopenharmony_ci 62962306a36Sopenharmony_ciconfig TCP_CONG_DCTCP 63062306a36Sopenharmony_ci tristate "DataCenter TCP (DCTCP)" 63162306a36Sopenharmony_ci default n 63262306a36Sopenharmony_ci help 63362306a36Sopenharmony_ci DCTCP leverages Explicit Congestion Notification (ECN) in the network to 63462306a36Sopenharmony_ci provide multi-bit feedback to the end hosts. It is designed to provide: 63562306a36Sopenharmony_ci 63662306a36Sopenharmony_ci - High burst tolerance (incast due to partition/aggregate), 63762306a36Sopenharmony_ci - Low latency (short flows, queries), 63862306a36Sopenharmony_ci - High throughput (continuous data updates, large file transfers) with 63962306a36Sopenharmony_ci commodity, shallow-buffered switches. 64062306a36Sopenharmony_ci 64162306a36Sopenharmony_ci All switches in the data center network running DCTCP must support 64262306a36Sopenharmony_ci ECN marking and be configured for marking when reaching defined switch 64362306a36Sopenharmony_ci buffer thresholds. The default ECN marking threshold heuristic for 64462306a36Sopenharmony_ci DCTCP on switches is 20 packets (30KB) at 1Gbps, and 65 packets 64562306a36Sopenharmony_ci (~100KB) at 10Gbps, but might need further careful tweaking. 64662306a36Sopenharmony_ci 64762306a36Sopenharmony_ci For further details see: 64862306a36Sopenharmony_ci http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf 64962306a36Sopenharmony_ci 65062306a36Sopenharmony_ciconfig TCP_CONG_CDG 65162306a36Sopenharmony_ci tristate "CAIA Delay-Gradient (CDG)" 65262306a36Sopenharmony_ci default n 65362306a36Sopenharmony_ci help 65462306a36Sopenharmony_ci CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies 65562306a36Sopenharmony_ci the TCP sender in order to: 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ci o Use the delay gradient as a congestion signal. 65862306a36Sopenharmony_ci o Back off with an average probability that is independent of the RTT. 65962306a36Sopenharmony_ci o Coexist with flows that use loss-based congestion control. 66062306a36Sopenharmony_ci o Tolerate packet loss unrelated to congestion. 66162306a36Sopenharmony_ci 66262306a36Sopenharmony_ci For further details see: 66362306a36Sopenharmony_ci D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using 66462306a36Sopenharmony_ci delay gradients." In Networking 2011. Preprint: http://goo.gl/No3vdg 66562306a36Sopenharmony_ci 66662306a36Sopenharmony_ciconfig TCP_CONG_BBR 66762306a36Sopenharmony_ci tristate "BBR TCP" 66862306a36Sopenharmony_ci default n 66962306a36Sopenharmony_ci help 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_ci BBR (Bottleneck Bandwidth and RTT) TCP congestion control aims to 67262306a36Sopenharmony_ci maximize network utilization and minimize queues. It builds an explicit 67362306a36Sopenharmony_ci model of the bottleneck delivery rate and path round-trip propagation 67462306a36Sopenharmony_ci delay. It tolerates packet loss and delay unrelated to congestion. It 67562306a36Sopenharmony_ci can operate over LAN, WAN, cellular, wifi, or cable modem links. It can 67662306a36Sopenharmony_ci coexist with flows that use loss-based congestion control, and can 67762306a36Sopenharmony_ci operate with shallow buffers, deep buffers, bufferbloat, policers, or 67862306a36Sopenharmony_ci AQM schemes that do not provide a delay signal. It requires the fq 67962306a36Sopenharmony_ci ("Fair Queue") pacing packet scheduler. 68062306a36Sopenharmony_ci 68162306a36Sopenharmony_cichoice 68262306a36Sopenharmony_ci prompt "Default TCP congestion control" 68362306a36Sopenharmony_ci default DEFAULT_CUBIC 68462306a36Sopenharmony_ci help 68562306a36Sopenharmony_ci Select the TCP congestion control that will be used by default 68662306a36Sopenharmony_ci for all connections. 68762306a36Sopenharmony_ci 68862306a36Sopenharmony_ci config DEFAULT_BIC 68962306a36Sopenharmony_ci bool "Bic" if TCP_CONG_BIC=y 69062306a36Sopenharmony_ci 69162306a36Sopenharmony_ci config DEFAULT_CUBIC 69262306a36Sopenharmony_ci bool "Cubic" if TCP_CONG_CUBIC=y 69362306a36Sopenharmony_ci 69462306a36Sopenharmony_ci config DEFAULT_HTCP 69562306a36Sopenharmony_ci bool "Htcp" if TCP_CONG_HTCP=y 69662306a36Sopenharmony_ci 69762306a36Sopenharmony_ci config DEFAULT_HYBLA 69862306a36Sopenharmony_ci bool "Hybla" if TCP_CONG_HYBLA=y 69962306a36Sopenharmony_ci 70062306a36Sopenharmony_ci config DEFAULT_VEGAS 70162306a36Sopenharmony_ci bool "Vegas" if TCP_CONG_VEGAS=y 70262306a36Sopenharmony_ci 70362306a36Sopenharmony_ci config DEFAULT_VENO 70462306a36Sopenharmony_ci bool "Veno" if TCP_CONG_VENO=y 70562306a36Sopenharmony_ci 70662306a36Sopenharmony_ci config DEFAULT_WESTWOOD 70762306a36Sopenharmony_ci bool "Westwood" if TCP_CONG_WESTWOOD=y 70862306a36Sopenharmony_ci 70962306a36Sopenharmony_ci config DEFAULT_DCTCP 71062306a36Sopenharmony_ci bool "DCTCP" if TCP_CONG_DCTCP=y 71162306a36Sopenharmony_ci 71262306a36Sopenharmony_ci config DEFAULT_CDG 71362306a36Sopenharmony_ci bool "CDG" if TCP_CONG_CDG=y 71462306a36Sopenharmony_ci 71562306a36Sopenharmony_ci config DEFAULT_BBR 71662306a36Sopenharmony_ci bool "BBR" if TCP_CONG_BBR=y 71762306a36Sopenharmony_ci 71862306a36Sopenharmony_ci config DEFAULT_RENO 71962306a36Sopenharmony_ci bool "Reno" 72062306a36Sopenharmony_ciendchoice 72162306a36Sopenharmony_ci 72262306a36Sopenharmony_ciendif 72362306a36Sopenharmony_ci 72462306a36Sopenharmony_ciconfig TCP_CONG_CUBIC 72562306a36Sopenharmony_ci tristate 72662306a36Sopenharmony_ci depends on !TCP_CONG_ADVANCED 72762306a36Sopenharmony_ci default y 72862306a36Sopenharmony_ci 72962306a36Sopenharmony_ciconfig DEFAULT_TCP_CONG 73062306a36Sopenharmony_ci string 73162306a36Sopenharmony_ci default "bic" if DEFAULT_BIC 73262306a36Sopenharmony_ci default "cubic" if DEFAULT_CUBIC 73362306a36Sopenharmony_ci default "htcp" if DEFAULT_HTCP 73462306a36Sopenharmony_ci default "hybla" if DEFAULT_HYBLA 73562306a36Sopenharmony_ci default "vegas" if DEFAULT_VEGAS 73662306a36Sopenharmony_ci default "westwood" if DEFAULT_WESTWOOD 73762306a36Sopenharmony_ci default "veno" if DEFAULT_VENO 73862306a36Sopenharmony_ci default "reno" if DEFAULT_RENO 73962306a36Sopenharmony_ci default "dctcp" if DEFAULT_DCTCP 74062306a36Sopenharmony_ci default "cdg" if DEFAULT_CDG 74162306a36Sopenharmony_ci default "bbr" if DEFAULT_BBR 74262306a36Sopenharmony_ci default "cubic" 74362306a36Sopenharmony_ci 74462306a36Sopenharmony_ciconfig TCP_MD5SIG 74562306a36Sopenharmony_ci bool "TCP: MD5 Signature Option support (RFC2385)" 74662306a36Sopenharmony_ci select CRYPTO 74762306a36Sopenharmony_ci select CRYPTO_MD5 74862306a36Sopenharmony_ci help 74962306a36Sopenharmony_ci RFC2385 specifies a method of giving MD5 protection to TCP sessions. 75062306a36Sopenharmony_ci Its main (only?) use is to protect BGP sessions between core routers 75162306a36Sopenharmony_ci on the Internet. 75262306a36Sopenharmony_ci 75362306a36Sopenharmony_ci If unsure, say N. 754