1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# IP configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyunconfig IP_MULTICAST 6*4882a593Smuzhiyun bool "IP: multicasting" 7*4882a593Smuzhiyun help 8*4882a593Smuzhiyun This is code for addressing several networked computers at once, 9*4882a593Smuzhiyun enlarging your kernel by about 2 KB. You need multicasting if you 10*4882a593Smuzhiyun intend to participate in the MBONE, a high bandwidth network on top 11*4882a593Smuzhiyun of the Internet which carries audio and video broadcasts. More 12*4882a593Smuzhiyun information about the MBONE is on the WWW at 13*4882a593Smuzhiyun <https://www.savetz.com/mbone/>. For most people, it's safe to say N. 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunconfig IP_ADVANCED_ROUTER 16*4882a593Smuzhiyun bool "IP: advanced router" 17*4882a593Smuzhiyun help 18*4882a593Smuzhiyun If you intend to run your Linux box mostly as a router, i.e. as a 19*4882a593Smuzhiyun computer that forwards and redistributes network packets, say Y; you 20*4882a593Smuzhiyun will then be presented with several options that allow more precise 21*4882a593Smuzhiyun control about the routing process. 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun The answer to this question won't directly affect the kernel: 24*4882a593Smuzhiyun answering N will just cause the configurator to skip all the 25*4882a593Smuzhiyun questions about advanced routing. 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun Note that your box can only act as a router if you enable IP 28*4882a593Smuzhiyun forwarding in your kernel; you can do that by saying Y to "/proc 29*4882a593Smuzhiyun file system support" and "Sysctl support" below and executing the 30*4882a593Smuzhiyun line 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun echo "1" > /proc/sys/net/ipv4/ip_forward 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun at boot time after the /proc file system has been mounted. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun If you turn on IP forwarding, you should consider the rp_filter, which 37*4882a593Smuzhiyun automatically rejects incoming packets if the routing table entry 38*4882a593Smuzhiyun for their source address doesn't match the network interface they're 39*4882a593Smuzhiyun arriving on. This has security advantages because it prevents the 40*4882a593Smuzhiyun so-called IP spoofing, however it can pose problems if you use 41*4882a593Smuzhiyun asymmetric routing (packets from you to a host take a different path 42*4882a593Smuzhiyun than packets from that host to you) or if you operate a non-routing 43*4882a593Smuzhiyun host which has several IP addresses on different interfaces. To turn 44*4882a593Smuzhiyun rp_filter on use: 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun echo 1 > /proc/sys/net/ipv4/conf/<device>/rp_filter 47*4882a593Smuzhiyun or 48*4882a593Smuzhiyun echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun Note that some distributions enable it in startup scripts. 51*4882a593Smuzhiyun For details about rp_filter strict and loose mode read 52*4882a593Smuzhiyun <file:Documentation/networking/ip-sysctl.rst>. 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun If unsure, say N here. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunconfig IP_FIB_TRIE_STATS 57*4882a593Smuzhiyun bool "FIB TRIE statistics" 58*4882a593Smuzhiyun depends on IP_ADVANCED_ROUTER 59*4882a593Smuzhiyun help 60*4882a593Smuzhiyun Keep track of statistics on structure of FIB TRIE table. 61*4882a593Smuzhiyun Useful for testing and measuring TRIE performance. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunconfig IP_MULTIPLE_TABLES 64*4882a593Smuzhiyun bool "IP: policy routing" 65*4882a593Smuzhiyun depends on IP_ADVANCED_ROUTER 66*4882a593Smuzhiyun select FIB_RULES 67*4882a593Smuzhiyun help 68*4882a593Smuzhiyun Normally, a router decides what to do with a received packet based 69*4882a593Smuzhiyun solely on the packet's final destination address. If you say Y here, 70*4882a593Smuzhiyun the Linux router will also be able to take the packet's source 71*4882a593Smuzhiyun address into account. Furthermore, the TOS (Type-Of-Service) field 72*4882a593Smuzhiyun of the packet can be used for routing decisions as well. 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun If you need more information, see the Linux Advanced 75*4882a593Smuzhiyun Routing and Traffic Control documentation at 76*4882a593Smuzhiyun <https://lartc.org/howto/lartc.rpdb.html> 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun If unsure, say N. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig IP_ROUTE_MULTIPATH 81*4882a593Smuzhiyun bool "IP: equal cost multipath" 82*4882a593Smuzhiyun depends on IP_ADVANCED_ROUTER 83*4882a593Smuzhiyun help 84*4882a593Smuzhiyun Normally, the routing tables specify a single action to be taken in 85*4882a593Smuzhiyun a deterministic manner for a given packet. If you say Y here 86*4882a593Smuzhiyun however, it becomes possible to attach several actions to a packet 87*4882a593Smuzhiyun pattern, in effect specifying several alternative paths to travel 88*4882a593Smuzhiyun for those packets. The router considers all these paths to be of 89*4882a593Smuzhiyun equal "cost" and chooses one of them in a non-deterministic fashion 90*4882a593Smuzhiyun if a matching packet arrives. 91*4882a593Smuzhiyun 92*4882a593Smuzhiyunconfig IP_ROUTE_VERBOSE 93*4882a593Smuzhiyun bool "IP: verbose route monitoring" 94*4882a593Smuzhiyun depends on IP_ADVANCED_ROUTER 95*4882a593Smuzhiyun help 96*4882a593Smuzhiyun If you say Y here, which is recommended, then the kernel will print 97*4882a593Smuzhiyun verbose messages regarding the routing, for example warnings about 98*4882a593Smuzhiyun received packets which look strange and could be evidence of an 99*4882a593Smuzhiyun attack or a misconfigured system somewhere. The information is 100*4882a593Smuzhiyun handled by the klogd daemon which is responsible for kernel messages 101*4882a593Smuzhiyun ("man klogd"). 102*4882a593Smuzhiyun 103*4882a593Smuzhiyunconfig IP_ROUTE_CLASSID 104*4882a593Smuzhiyun bool 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunconfig IP_PNP 107*4882a593Smuzhiyun bool "IP: kernel level autoconfiguration" 108*4882a593Smuzhiyun help 109*4882a593Smuzhiyun This enables automatic configuration of IP addresses of devices and 110*4882a593Smuzhiyun of the routing table during kernel boot, based on either information 111*4882a593Smuzhiyun supplied on the kernel command line or by BOOTP or RARP protocols. 112*4882a593Smuzhiyun You need to say Y only for diskless machines requiring network 113*4882a593Smuzhiyun access to boot (in which case you want to say Y to "Root file system 114*4882a593Smuzhiyun on NFS" as well), because all other machines configure the network 115*4882a593Smuzhiyun in their startup scripts. 116*4882a593Smuzhiyun 117*4882a593Smuzhiyunconfig IP_PNP_DHCP 118*4882a593Smuzhiyun bool "IP: DHCP support" 119*4882a593Smuzhiyun depends on IP_PNP 120*4882a593Smuzhiyun help 121*4882a593Smuzhiyun If you want your Linux box to mount its whole root file system (the 122*4882a593Smuzhiyun one containing the directory /) from some other computer over the 123*4882a593Smuzhiyun net via NFS and you want the IP address of your computer to be 124*4882a593Smuzhiyun discovered automatically at boot time using the DHCP protocol (a 125*4882a593Smuzhiyun special protocol designed for doing this job), say Y here. In case 126*4882a593Smuzhiyun the boot ROM of your network card was designed for booting Linux and 127*4882a593Smuzhiyun does DHCP itself, providing all necessary information on the kernel 128*4882a593Smuzhiyun command line, you can say N here. 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun If unsure, say Y. Note that if you want to use DHCP, a DHCP server 131*4882a593Smuzhiyun must be operating on your network. Read 132*4882a593Smuzhiyun <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 133*4882a593Smuzhiyun 134*4882a593Smuzhiyunconfig IP_PNP_BOOTP 135*4882a593Smuzhiyun bool "IP: BOOTP support" 136*4882a593Smuzhiyun depends on IP_PNP 137*4882a593Smuzhiyun help 138*4882a593Smuzhiyun If you want your Linux box to mount its whole root file system (the 139*4882a593Smuzhiyun one containing the directory /) from some other computer over the 140*4882a593Smuzhiyun net via NFS and you want the IP address of your computer to be 141*4882a593Smuzhiyun discovered automatically at boot time using the BOOTP protocol (a 142*4882a593Smuzhiyun special protocol designed for doing this job), say Y here. In case 143*4882a593Smuzhiyun the boot ROM of your network card was designed for booting Linux and 144*4882a593Smuzhiyun does BOOTP itself, providing all necessary information on the kernel 145*4882a593Smuzhiyun command line, you can say N here. If unsure, say Y. Note that if you 146*4882a593Smuzhiyun want to use BOOTP, a BOOTP server must be operating on your network. 147*4882a593Smuzhiyun Read <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 148*4882a593Smuzhiyun 149*4882a593Smuzhiyunconfig IP_PNP_RARP 150*4882a593Smuzhiyun bool "IP: RARP support" 151*4882a593Smuzhiyun depends on IP_PNP 152*4882a593Smuzhiyun help 153*4882a593Smuzhiyun If you want your Linux box to mount its whole root file system (the 154*4882a593Smuzhiyun one containing the directory /) from some other computer over the 155*4882a593Smuzhiyun net via NFS and you want the IP address of your computer to be 156*4882a593Smuzhiyun discovered automatically at boot time using the RARP protocol (an 157*4882a593Smuzhiyun older protocol which is being obsoleted by BOOTP and DHCP), say Y 158*4882a593Smuzhiyun here. Note that if you want to use RARP, a RARP server must be 159*4882a593Smuzhiyun operating on your network. Read 160*4882a593Smuzhiyun <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 161*4882a593Smuzhiyun 162*4882a593Smuzhiyunconfig NET_IPIP 163*4882a593Smuzhiyun tristate "IP: tunneling" 164*4882a593Smuzhiyun select INET_TUNNEL 165*4882a593Smuzhiyun select NET_IP_TUNNEL 166*4882a593Smuzhiyun help 167*4882a593Smuzhiyun Tunneling means encapsulating data of one protocol type within 168*4882a593Smuzhiyun another protocol and sending it over a channel that understands the 169*4882a593Smuzhiyun encapsulating protocol. This particular tunneling driver implements 170*4882a593Smuzhiyun encapsulation of IP within IP, which sounds kind of pointless, but 171*4882a593Smuzhiyun can be useful if you want to make your (or some other) machine 172*4882a593Smuzhiyun appear on a different network than it physically is, or to use 173*4882a593Smuzhiyun mobile-IP facilities (allowing laptops to seamlessly move between 174*4882a593Smuzhiyun networks without changing their IP addresses). 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun Saying Y to this option will produce two modules ( = code which can 177*4882a593Smuzhiyun be inserted in and removed from the running kernel whenever you 178*4882a593Smuzhiyun want). Most people won't need this and can say N. 179*4882a593Smuzhiyun 180*4882a593Smuzhiyunconfig NET_IPGRE_DEMUX 181*4882a593Smuzhiyun tristate "IP: GRE demultiplexer" 182*4882a593Smuzhiyun help 183*4882a593Smuzhiyun This is helper module to demultiplex GRE packets on GRE version field criteria. 184*4882a593Smuzhiyun Required by ip_gre and pptp modules. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyunconfig NET_IP_TUNNEL 187*4882a593Smuzhiyun tristate 188*4882a593Smuzhiyun select DST_CACHE 189*4882a593Smuzhiyun select GRO_CELLS 190*4882a593Smuzhiyun default n 191*4882a593Smuzhiyun 192*4882a593Smuzhiyunconfig NET_IPGRE 193*4882a593Smuzhiyun tristate "IP: GRE tunnels over IP" 194*4882a593Smuzhiyun depends on (IPV6 || IPV6=n) && NET_IPGRE_DEMUX 195*4882a593Smuzhiyun select NET_IP_TUNNEL 196*4882a593Smuzhiyun help 197*4882a593Smuzhiyun Tunneling means encapsulating data of one protocol type within 198*4882a593Smuzhiyun another protocol and sending it over a channel that understands the 199*4882a593Smuzhiyun encapsulating protocol. This particular tunneling driver implements 200*4882a593Smuzhiyun GRE (Generic Routing Encapsulation) and at this time allows 201*4882a593Smuzhiyun encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure. 202*4882a593Smuzhiyun This driver is useful if the other endpoint is a Cisco router: Cisco 203*4882a593Smuzhiyun likes GRE much better than the other Linux tunneling driver ("IP 204*4882a593Smuzhiyun tunneling" above). In addition, GRE allows multicast redistribution 205*4882a593Smuzhiyun through the tunnel. 206*4882a593Smuzhiyun 207*4882a593Smuzhiyunconfig NET_IPGRE_BROADCAST 208*4882a593Smuzhiyun bool "IP: broadcast GRE over IP" 209*4882a593Smuzhiyun depends on IP_MULTICAST && NET_IPGRE 210*4882a593Smuzhiyun help 211*4882a593Smuzhiyun One application of GRE/IP is to construct a broadcast WAN (Wide Area 212*4882a593Smuzhiyun Network), which looks like a normal Ethernet LAN (Local Area 213*4882a593Smuzhiyun Network), but can be distributed all over the Internet. If you want 214*4882a593Smuzhiyun to do that, say Y here and to "IP multicast routing" below. 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunconfig IP_MROUTE_COMMON 217*4882a593Smuzhiyun bool 218*4882a593Smuzhiyun depends on IP_MROUTE || IPV6_MROUTE 219*4882a593Smuzhiyun 220*4882a593Smuzhiyunconfig IP_MROUTE 221*4882a593Smuzhiyun bool "IP: multicast routing" 222*4882a593Smuzhiyun depends on IP_MULTICAST 223*4882a593Smuzhiyun select IP_MROUTE_COMMON 224*4882a593Smuzhiyun help 225*4882a593Smuzhiyun This is used if you want your machine to act as a router for IP 226*4882a593Smuzhiyun packets that have several destination addresses. It is needed on the 227*4882a593Smuzhiyun MBONE, a high bandwidth network on top of the Internet which carries 228*4882a593Smuzhiyun audio and video broadcasts. In order to do that, you would most 229*4882a593Smuzhiyun likely run the program mrouted. If you haven't heard about it, you 230*4882a593Smuzhiyun don't need it. 231*4882a593Smuzhiyun 232*4882a593Smuzhiyunconfig IP_MROUTE_MULTIPLE_TABLES 233*4882a593Smuzhiyun bool "IP: multicast policy routing" 234*4882a593Smuzhiyun depends on IP_MROUTE && IP_ADVANCED_ROUTER 235*4882a593Smuzhiyun select FIB_RULES 236*4882a593Smuzhiyun help 237*4882a593Smuzhiyun Normally, a multicast router runs a userspace daemon and decides 238*4882a593Smuzhiyun what to do with a multicast packet based on the source and 239*4882a593Smuzhiyun destination addresses. If you say Y here, the multicast router 240*4882a593Smuzhiyun will also be able to take interfaces and packet marks into 241*4882a593Smuzhiyun account and run multiple instances of userspace daemons 242*4882a593Smuzhiyun simultaneously, each one handling a single table. 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun If unsure, say N. 245*4882a593Smuzhiyun 246*4882a593Smuzhiyunconfig IP_PIMSM_V1 247*4882a593Smuzhiyun bool "IP: PIM-SM version 1 support" 248*4882a593Smuzhiyun depends on IP_MROUTE 249*4882a593Smuzhiyun help 250*4882a593Smuzhiyun Kernel side support for Sparse Mode PIM (Protocol Independent 251*4882a593Smuzhiyun Multicast) version 1. This multicast routing protocol is used widely 252*4882a593Smuzhiyun because Cisco supports it. You need special software to use it 253*4882a593Smuzhiyun (pimd-v1). Please see <http://netweb.usc.edu/pim/> for more 254*4882a593Smuzhiyun information about PIM. 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun Say Y if you want to use PIM-SM v1. Note that you can say N here if 257*4882a593Smuzhiyun you just want to use Dense Mode PIM. 258*4882a593Smuzhiyun 259*4882a593Smuzhiyunconfig IP_PIMSM_V2 260*4882a593Smuzhiyun bool "IP: PIM-SM version 2 support" 261*4882a593Smuzhiyun depends on IP_MROUTE 262*4882a593Smuzhiyun help 263*4882a593Smuzhiyun Kernel side support for Sparse Mode PIM version 2. In order to use 264*4882a593Smuzhiyun this, you need an experimental routing daemon supporting it (pimd or 265*4882a593Smuzhiyun gated-5). This routing protocol is not used widely, so say N unless 266*4882a593Smuzhiyun you want to play with it. 267*4882a593Smuzhiyun 268*4882a593Smuzhiyunconfig SYN_COOKIES 269*4882a593Smuzhiyun bool "IP: TCP syncookie support" 270*4882a593Smuzhiyun help 271*4882a593Smuzhiyun Normal TCP/IP networking is open to an attack known as "SYN 272*4882a593Smuzhiyun flooding". This denial-of-service attack prevents legitimate remote 273*4882a593Smuzhiyun users from being able to connect to your computer during an ongoing 274*4882a593Smuzhiyun attack and requires very little work from the attacker, who can 275*4882a593Smuzhiyun operate from anywhere on the Internet. 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun SYN cookies provide protection against this type of attack. If you 278*4882a593Smuzhiyun say Y here, the TCP/IP stack will use a cryptographic challenge 279*4882a593Smuzhiyun protocol known as "SYN cookies" to enable legitimate users to 280*4882a593Smuzhiyun continue to connect, even when your machine is under attack. There 281*4882a593Smuzhiyun is no need for the legitimate users to change their TCP/IP software; 282*4882a593Smuzhiyun SYN cookies work transparently to them. For technical information 283*4882a593Smuzhiyun about SYN cookies, check out <https://cr.yp.to/syncookies.html>. 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun If you are SYN flooded, the source address reported by the kernel is 286*4882a593Smuzhiyun likely to have been forged by the attacker; it is only reported as 287*4882a593Smuzhiyun an aid in tracing the packets to their actual source and should not 288*4882a593Smuzhiyun be taken as absolute truth. 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun SYN cookies may prevent correct error reporting on clients when the 291*4882a593Smuzhiyun server is really overloaded. If this happens frequently better turn 292*4882a593Smuzhiyun them off. 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun If you say Y here, you can disable SYN cookies at run time by 295*4882a593Smuzhiyun saying Y to "/proc file system support" and 296*4882a593Smuzhiyun "Sysctl support" below and executing the command 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun echo 0 > /proc/sys/net/ipv4/tcp_syncookies 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun after the /proc file system has been mounted. 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun If unsure, say N. 303*4882a593Smuzhiyun 304*4882a593Smuzhiyunconfig NET_IPVTI 305*4882a593Smuzhiyun tristate "Virtual (secure) IP: tunneling" 306*4882a593Smuzhiyun depends on IPV6 || IPV6=n 307*4882a593Smuzhiyun select INET_TUNNEL 308*4882a593Smuzhiyun select NET_IP_TUNNEL 309*4882a593Smuzhiyun select XFRM 310*4882a593Smuzhiyun help 311*4882a593Smuzhiyun Tunneling means encapsulating data of one protocol type within 312*4882a593Smuzhiyun another protocol and sending it over a channel that understands the 313*4882a593Smuzhiyun encapsulating protocol. This can be used with xfrm mode tunnel to give 314*4882a593Smuzhiyun the notion of a secure tunnel for IPSEC and then use routing protocol 315*4882a593Smuzhiyun on top. 316*4882a593Smuzhiyun 317*4882a593Smuzhiyunconfig NET_UDP_TUNNEL 318*4882a593Smuzhiyun tristate 319*4882a593Smuzhiyun select NET_IP_TUNNEL 320*4882a593Smuzhiyun default n 321*4882a593Smuzhiyun 322*4882a593Smuzhiyunconfig NET_FOU 323*4882a593Smuzhiyun tristate "IP: Foo (IP protocols) over UDP" 324*4882a593Smuzhiyun select XFRM 325*4882a593Smuzhiyun select NET_UDP_TUNNEL 326*4882a593Smuzhiyun help 327*4882a593Smuzhiyun Foo over UDP allows any IP protocol to be directly encapsulated 328*4882a593Smuzhiyun over UDP include tunnels (IPIP, GRE, SIT). By encapsulating in UDP 329*4882a593Smuzhiyun network mechanisms and optimizations for UDP (such as ECMP 330*4882a593Smuzhiyun and RSS) can be leveraged to provide better service. 331*4882a593Smuzhiyun 332*4882a593Smuzhiyunconfig NET_FOU_IP_TUNNELS 333*4882a593Smuzhiyun bool "IP: FOU encapsulation of IP tunnels" 334*4882a593Smuzhiyun depends on NET_IPIP || NET_IPGRE || IPV6_SIT 335*4882a593Smuzhiyun select NET_FOU 336*4882a593Smuzhiyun help 337*4882a593Smuzhiyun Allow configuration of FOU or GUE encapsulation for IP tunnels. 338*4882a593Smuzhiyun When this option is enabled IP tunnels can be configured to use 339*4882a593Smuzhiyun FOU or GUE encapsulation. 340*4882a593Smuzhiyun 341*4882a593Smuzhiyunconfig INET_AH 342*4882a593Smuzhiyun tristate "IP: AH transformation" 343*4882a593Smuzhiyun select XFRM_AH 344*4882a593Smuzhiyun help 345*4882a593Smuzhiyun Support for IPsec AH (Authentication Header). 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun AH can be used with various authentication algorithms. Besides 348*4882a593Smuzhiyun enabling AH support itself, this option enables the generic 349*4882a593Smuzhiyun implementations of the algorithms that RFC 8221 lists as MUST be 350*4882a593Smuzhiyun implemented. If you need any other algorithms, you'll need to enable 351*4882a593Smuzhiyun them in the crypto API. You should also enable accelerated 352*4882a593Smuzhiyun implementations of any needed algorithms when available. 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun If unsure, say Y. 355*4882a593Smuzhiyun 356*4882a593Smuzhiyunconfig INET_ESP 357*4882a593Smuzhiyun tristate "IP: ESP transformation" 358*4882a593Smuzhiyun select XFRM_ESP 359*4882a593Smuzhiyun help 360*4882a593Smuzhiyun Support for IPsec ESP (Encapsulating Security Payload). 361*4882a593Smuzhiyun 362*4882a593Smuzhiyun ESP can be used with various encryption and authentication algorithms. 363*4882a593Smuzhiyun Besides enabling ESP support itself, this option enables the generic 364*4882a593Smuzhiyun implementations of the algorithms that RFC 8221 lists as MUST be 365*4882a593Smuzhiyun implemented. If you need any other algorithms, you'll need to enable 366*4882a593Smuzhiyun them in the crypto API. You should also enable accelerated 367*4882a593Smuzhiyun implementations of any needed algorithms when available. 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun If unsure, say Y. 370*4882a593Smuzhiyun 371*4882a593Smuzhiyunconfig INET_ESP_OFFLOAD 372*4882a593Smuzhiyun tristate "IP: ESP transformation offload" 373*4882a593Smuzhiyun depends on INET_ESP 374*4882a593Smuzhiyun select XFRM_OFFLOAD 375*4882a593Smuzhiyun default n 376*4882a593Smuzhiyun help 377*4882a593Smuzhiyun Support for ESP transformation offload. This makes sense 378*4882a593Smuzhiyun only if this system really does IPsec and want to do it 379*4882a593Smuzhiyun with high throughput. A typical desktop system does not 380*4882a593Smuzhiyun need it, even if it does IPsec. 381*4882a593Smuzhiyun 382*4882a593Smuzhiyun If unsure, say N. 383*4882a593Smuzhiyun 384*4882a593Smuzhiyunconfig INET_ESPINTCP 385*4882a593Smuzhiyun bool "IP: ESP in TCP encapsulation (RFC 8229)" 386*4882a593Smuzhiyun depends on XFRM && INET_ESP 387*4882a593Smuzhiyun select STREAM_PARSER 388*4882a593Smuzhiyun select NET_SOCK_MSG 389*4882a593Smuzhiyun select XFRM_ESPINTCP 390*4882a593Smuzhiyun help 391*4882a593Smuzhiyun Support for RFC 8229 encapsulation of ESP and IKE over 392*4882a593Smuzhiyun TCP/IPv4 sockets. 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun If unsure, say N. 395*4882a593Smuzhiyun 396*4882a593Smuzhiyunconfig INET_IPCOMP 397*4882a593Smuzhiyun tristate "IP: IPComp transformation" 398*4882a593Smuzhiyun select INET_XFRM_TUNNEL 399*4882a593Smuzhiyun select XFRM_IPCOMP 400*4882a593Smuzhiyun help 401*4882a593Smuzhiyun Support for IP Payload Compression Protocol (IPComp) (RFC3173), 402*4882a593Smuzhiyun typically needed for IPsec. 403*4882a593Smuzhiyun 404*4882a593Smuzhiyun If unsure, say Y. 405*4882a593Smuzhiyun 406*4882a593Smuzhiyunconfig INET_TABLE_PERTURB_ORDER 407*4882a593Smuzhiyun int "INET: Source port perturbation table size (as power of 2)" if EXPERT 408*4882a593Smuzhiyun default 16 409*4882a593Smuzhiyun help 410*4882a593Smuzhiyun Source port perturbation table size (as power of 2) for 411*4882a593Smuzhiyun RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm. 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun The default is almost always what you want. 414*4882a593Smuzhiyun Only change this if you know what you are doing. 415*4882a593Smuzhiyun 416*4882a593Smuzhiyunconfig INET_XFRM_TUNNEL 417*4882a593Smuzhiyun tristate 418*4882a593Smuzhiyun select INET_TUNNEL 419*4882a593Smuzhiyun default n 420*4882a593Smuzhiyun 421*4882a593Smuzhiyunconfig INET_TUNNEL 422*4882a593Smuzhiyun tristate 423*4882a593Smuzhiyun default n 424*4882a593Smuzhiyun 425*4882a593Smuzhiyunconfig INET_DIAG 426*4882a593Smuzhiyun tristate "INET: socket monitoring interface" 427*4882a593Smuzhiyun default y 428*4882a593Smuzhiyun help 429*4882a593Smuzhiyun Support for INET (TCP, DCCP, etc) socket monitoring interface used by 430*4882a593Smuzhiyun native Linux tools such as ss. ss is included in iproute2, currently 431*4882a593Smuzhiyun downloadable at: 432*4882a593Smuzhiyun 433*4882a593Smuzhiyun http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun If unsure, say Y. 436*4882a593Smuzhiyun 437*4882a593Smuzhiyunconfig INET_TCP_DIAG 438*4882a593Smuzhiyun depends on INET_DIAG 439*4882a593Smuzhiyun def_tristate INET_DIAG 440*4882a593Smuzhiyun 441*4882a593Smuzhiyunconfig INET_UDP_DIAG 442*4882a593Smuzhiyun tristate "UDP: socket monitoring interface" 443*4882a593Smuzhiyun depends on INET_DIAG && (IPV6 || IPV6=n) 444*4882a593Smuzhiyun default n 445*4882a593Smuzhiyun help 446*4882a593Smuzhiyun Support for UDP socket monitoring interface used by the ss tool. 447*4882a593Smuzhiyun If unsure, say Y. 448*4882a593Smuzhiyun 449*4882a593Smuzhiyunconfig INET_RAW_DIAG 450*4882a593Smuzhiyun tristate "RAW: socket monitoring interface" 451*4882a593Smuzhiyun depends on INET_DIAG && (IPV6 || IPV6=n) 452*4882a593Smuzhiyun default n 453*4882a593Smuzhiyun help 454*4882a593Smuzhiyun Support for RAW socket monitoring interface used by the ss tool. 455*4882a593Smuzhiyun If unsure, say Y. 456*4882a593Smuzhiyun 457*4882a593Smuzhiyunconfig INET_DIAG_DESTROY 458*4882a593Smuzhiyun bool "INET: allow privileged process to administratively close sockets" 459*4882a593Smuzhiyun depends on INET_DIAG 460*4882a593Smuzhiyun default n 461*4882a593Smuzhiyun help 462*4882a593Smuzhiyun Provides a SOCK_DESTROY operation that allows privileged processes 463*4882a593Smuzhiyun (e.g., a connection manager or a network administration tool such as 464*4882a593Smuzhiyun ss) to close sockets opened by other processes. Closing a socket in 465*4882a593Smuzhiyun this way interrupts any blocking read/write/connect operations on 466*4882a593Smuzhiyun the socket and causes future socket calls to behave as if the socket 467*4882a593Smuzhiyun had been disconnected. 468*4882a593Smuzhiyun If unsure, say N. 469*4882a593Smuzhiyun 470*4882a593Smuzhiyunmenuconfig TCP_CONG_ADVANCED 471*4882a593Smuzhiyun bool "TCP: advanced congestion control" 472*4882a593Smuzhiyun help 473*4882a593Smuzhiyun Support for selection of various TCP congestion control 474*4882a593Smuzhiyun modules. 475*4882a593Smuzhiyun 476*4882a593Smuzhiyun Nearly all users can safely say no here, and a safe default 477*4882a593Smuzhiyun selection will be made (CUBIC with new Reno as a fallback). 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun If unsure, say N. 480*4882a593Smuzhiyun 481*4882a593Smuzhiyunif TCP_CONG_ADVANCED 482*4882a593Smuzhiyun 483*4882a593Smuzhiyunconfig TCP_CONG_BIC 484*4882a593Smuzhiyun tristate "Binary Increase Congestion (BIC) control" 485*4882a593Smuzhiyun default m 486*4882a593Smuzhiyun help 487*4882a593Smuzhiyun BIC-TCP is a sender-side only change that ensures a linear RTT 488*4882a593Smuzhiyun fairness under large windows while offering both scalability and 489*4882a593Smuzhiyun bounded TCP-friendliness. The protocol combines two schemes 490*4882a593Smuzhiyun called additive increase and binary search increase. When the 491*4882a593Smuzhiyun congestion window is large, additive increase with a large 492*4882a593Smuzhiyun increment ensures linear RTT fairness as well as good 493*4882a593Smuzhiyun scalability. Under small congestion windows, binary search 494*4882a593Smuzhiyun increase provides TCP friendliness. 495*4882a593Smuzhiyun See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ 496*4882a593Smuzhiyun 497*4882a593Smuzhiyunconfig TCP_CONG_CUBIC 498*4882a593Smuzhiyun tristate "CUBIC TCP" 499*4882a593Smuzhiyun default y 500*4882a593Smuzhiyun help 501*4882a593Smuzhiyun This is version 2.0 of BIC-TCP which uses a cubic growth function 502*4882a593Smuzhiyun among other techniques. 503*4882a593Smuzhiyun See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf 504*4882a593Smuzhiyun 505*4882a593Smuzhiyunconfig TCP_CONG_WESTWOOD 506*4882a593Smuzhiyun tristate "TCP Westwood+" 507*4882a593Smuzhiyun default m 508*4882a593Smuzhiyun help 509*4882a593Smuzhiyun TCP Westwood+ is a sender-side only modification of the TCP Reno 510*4882a593Smuzhiyun protocol stack that optimizes the performance of TCP congestion 511*4882a593Smuzhiyun control. It is based on end-to-end bandwidth estimation to set 512*4882a593Smuzhiyun congestion window and slow start threshold after a congestion 513*4882a593Smuzhiyun episode. Using this estimation, TCP Westwood+ adaptively sets a 514*4882a593Smuzhiyun slow start threshold and a congestion window which takes into 515*4882a593Smuzhiyun account the bandwidth used at the time congestion is experienced. 516*4882a593Smuzhiyun TCP Westwood+ significantly increases fairness wrt TCP Reno in 517*4882a593Smuzhiyun wired networks and throughput over wireless links. 518*4882a593Smuzhiyun 519*4882a593Smuzhiyunconfig TCP_CONG_HTCP 520*4882a593Smuzhiyun tristate "H-TCP" 521*4882a593Smuzhiyun default m 522*4882a593Smuzhiyun help 523*4882a593Smuzhiyun H-TCP is a send-side only modifications of the TCP Reno 524*4882a593Smuzhiyun protocol stack that optimizes the performance of TCP 525*4882a593Smuzhiyun congestion control for high speed network links. It uses a 526*4882a593Smuzhiyun modeswitch to change the alpha and beta parameters of TCP Reno 527*4882a593Smuzhiyun based on network conditions and in a way so as to be fair with 528*4882a593Smuzhiyun other Reno and H-TCP flows. 529*4882a593Smuzhiyun 530*4882a593Smuzhiyunconfig TCP_CONG_HSTCP 531*4882a593Smuzhiyun tristate "High Speed TCP" 532*4882a593Smuzhiyun default n 533*4882a593Smuzhiyun help 534*4882a593Smuzhiyun Sally Floyd's High Speed TCP (RFC 3649) congestion control. 535*4882a593Smuzhiyun A modification to TCP's congestion control mechanism for use 536*4882a593Smuzhiyun with large congestion windows. A table indicates how much to 537*4882a593Smuzhiyun increase the congestion window by when an ACK is received. 538*4882a593Smuzhiyun For more detail see https://www.icir.org/floyd/hstcp.html 539*4882a593Smuzhiyun 540*4882a593Smuzhiyunconfig TCP_CONG_HYBLA 541*4882a593Smuzhiyun tristate "TCP-Hybla congestion control algorithm" 542*4882a593Smuzhiyun default n 543*4882a593Smuzhiyun help 544*4882a593Smuzhiyun TCP-Hybla is a sender-side only change that eliminates penalization of 545*4882a593Smuzhiyun long-RTT, large-bandwidth connections, like when satellite legs are 546*4882a593Smuzhiyun involved, especially when sharing a common bottleneck with normal 547*4882a593Smuzhiyun terrestrial connections. 548*4882a593Smuzhiyun 549*4882a593Smuzhiyunconfig TCP_CONG_VEGAS 550*4882a593Smuzhiyun tristate "TCP Vegas" 551*4882a593Smuzhiyun default n 552*4882a593Smuzhiyun help 553*4882a593Smuzhiyun TCP Vegas is a sender-side only change to TCP that anticipates 554*4882a593Smuzhiyun the onset of congestion by estimating the bandwidth. TCP Vegas 555*4882a593Smuzhiyun adjusts the sending rate by modifying the congestion 556*4882a593Smuzhiyun window. TCP Vegas should provide less packet loss, but it is 557*4882a593Smuzhiyun not as aggressive as TCP Reno. 558*4882a593Smuzhiyun 559*4882a593Smuzhiyunconfig TCP_CONG_NV 560*4882a593Smuzhiyun tristate "TCP NV" 561*4882a593Smuzhiyun default n 562*4882a593Smuzhiyun help 563*4882a593Smuzhiyun TCP NV is a follow up to TCP Vegas. It has been modified to deal with 564*4882a593Smuzhiyun 10G networks, measurement noise introduced by LRO, GRO and interrupt 565*4882a593Smuzhiyun coalescence. In addition, it will decrease its cwnd multiplicatively 566*4882a593Smuzhiyun instead of linearly. 567*4882a593Smuzhiyun 568*4882a593Smuzhiyun Note that in general congestion avoidance (cwnd decreased when # packets 569*4882a593Smuzhiyun queued grows) cannot coexist with congestion control (cwnd decreased only 570*4882a593Smuzhiyun when there is packet loss) due to fairness issues. One scenario when they 571*4882a593Smuzhiyun can coexist safely is when the CA flows have RTTs << CC flows RTTs. 572*4882a593Smuzhiyun 573*4882a593Smuzhiyun For further details see http://www.brakmo.org/networking/tcp-nv/ 574*4882a593Smuzhiyun 575*4882a593Smuzhiyunconfig TCP_CONG_SCALABLE 576*4882a593Smuzhiyun tristate "Scalable TCP" 577*4882a593Smuzhiyun default n 578*4882a593Smuzhiyun help 579*4882a593Smuzhiyun Scalable TCP is a sender-side only change to TCP which uses a 580*4882a593Smuzhiyun MIMD congestion control algorithm which has some nice scaling 581*4882a593Smuzhiyun properties, though is known to have fairness issues. 582*4882a593Smuzhiyun See http://www.deneholme.net/tom/scalable/ 583*4882a593Smuzhiyun 584*4882a593Smuzhiyunconfig TCP_CONG_LP 585*4882a593Smuzhiyun tristate "TCP Low Priority" 586*4882a593Smuzhiyun default n 587*4882a593Smuzhiyun help 588*4882a593Smuzhiyun TCP Low Priority (TCP-LP), a distributed algorithm whose goal is 589*4882a593Smuzhiyun to utilize only the excess network bandwidth as compared to the 590*4882a593Smuzhiyun ``fair share`` of bandwidth as targeted by TCP. 591*4882a593Smuzhiyun See http://www-ece.rice.edu/networks/TCP-LP/ 592*4882a593Smuzhiyun 593*4882a593Smuzhiyunconfig TCP_CONG_VENO 594*4882a593Smuzhiyun tristate "TCP Veno" 595*4882a593Smuzhiyun default n 596*4882a593Smuzhiyun help 597*4882a593Smuzhiyun TCP Veno is a sender-side only enhancement of TCP to obtain better 598*4882a593Smuzhiyun throughput over wireless networks. TCP Veno makes use of state 599*4882a593Smuzhiyun distinguishing to circumvent the difficult judgment of the packet loss 600*4882a593Smuzhiyun type. TCP Veno cuts down less congestion window in response to random 601*4882a593Smuzhiyun loss packets. 602*4882a593Smuzhiyun See <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1177186> 603*4882a593Smuzhiyun 604*4882a593Smuzhiyunconfig TCP_CONG_YEAH 605*4882a593Smuzhiyun tristate "YeAH TCP" 606*4882a593Smuzhiyun select TCP_CONG_VEGAS 607*4882a593Smuzhiyun default n 608*4882a593Smuzhiyun help 609*4882a593Smuzhiyun YeAH-TCP is a sender-side high-speed enabled TCP congestion control 610*4882a593Smuzhiyun algorithm, which uses a mixed loss/delay approach to compute the 611*4882a593Smuzhiyun congestion window. It's design goals target high efficiency, 612*4882a593Smuzhiyun internal, RTT and Reno fairness, resilience to link loss while 613*4882a593Smuzhiyun keeping network elements load as low as possible. 614*4882a593Smuzhiyun 615*4882a593Smuzhiyun For further details look here: 616*4882a593Smuzhiyun http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf 617*4882a593Smuzhiyun 618*4882a593Smuzhiyunconfig TCP_CONG_ILLINOIS 619*4882a593Smuzhiyun tristate "TCP Illinois" 620*4882a593Smuzhiyun default n 621*4882a593Smuzhiyun help 622*4882a593Smuzhiyun TCP-Illinois is a sender-side modification of TCP Reno for 623*4882a593Smuzhiyun high speed long delay links. It uses round-trip-time to 624*4882a593Smuzhiyun adjust the alpha and beta parameters to achieve a higher average 625*4882a593Smuzhiyun throughput and maintain fairness. 626*4882a593Smuzhiyun 627*4882a593Smuzhiyun For further details see: 628*4882a593Smuzhiyun http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html 629*4882a593Smuzhiyun 630*4882a593Smuzhiyunconfig TCP_CONG_DCTCP 631*4882a593Smuzhiyun tristate "DataCenter TCP (DCTCP)" 632*4882a593Smuzhiyun default n 633*4882a593Smuzhiyun help 634*4882a593Smuzhiyun DCTCP leverages Explicit Congestion Notification (ECN) in the network to 635*4882a593Smuzhiyun provide multi-bit feedback to the end hosts. It is designed to provide: 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun - High burst tolerance (incast due to partition/aggregate), 638*4882a593Smuzhiyun - Low latency (short flows, queries), 639*4882a593Smuzhiyun - High throughput (continuous data updates, large file transfers) with 640*4882a593Smuzhiyun commodity, shallow-buffered switches. 641*4882a593Smuzhiyun 642*4882a593Smuzhiyun All switches in the data center network running DCTCP must support 643*4882a593Smuzhiyun ECN marking and be configured for marking when reaching defined switch 644*4882a593Smuzhiyun buffer thresholds. The default ECN marking threshold heuristic for 645*4882a593Smuzhiyun DCTCP on switches is 20 packets (30KB) at 1Gbps, and 65 packets 646*4882a593Smuzhiyun (~100KB) at 10Gbps, but might need further careful tweaking. 647*4882a593Smuzhiyun 648*4882a593Smuzhiyun For further details see: 649*4882a593Smuzhiyun http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf 650*4882a593Smuzhiyun 651*4882a593Smuzhiyunconfig TCP_CONG_CDG 652*4882a593Smuzhiyun tristate "CAIA Delay-Gradient (CDG)" 653*4882a593Smuzhiyun default n 654*4882a593Smuzhiyun help 655*4882a593Smuzhiyun CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies 656*4882a593Smuzhiyun the TCP sender in order to: 657*4882a593Smuzhiyun 658*4882a593Smuzhiyun o Use the delay gradient as a congestion signal. 659*4882a593Smuzhiyun o Back off with an average probability that is independent of the RTT. 660*4882a593Smuzhiyun o Coexist with flows that use loss-based congestion control. 661*4882a593Smuzhiyun o Tolerate packet loss unrelated to congestion. 662*4882a593Smuzhiyun 663*4882a593Smuzhiyun For further details see: 664*4882a593Smuzhiyun D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using 665*4882a593Smuzhiyun delay gradients." In Networking 2011. Preprint: http://goo.gl/No3vdg 666*4882a593Smuzhiyun 667*4882a593Smuzhiyunconfig TCP_CONG_BBR 668*4882a593Smuzhiyun tristate "BBR TCP" 669*4882a593Smuzhiyun default n 670*4882a593Smuzhiyun help 671*4882a593Smuzhiyun 672*4882a593Smuzhiyun BBR (Bottleneck Bandwidth and RTT) TCP congestion control aims to 673*4882a593Smuzhiyun maximize network utilization and minimize queues. It builds an explicit 674*4882a593Smuzhiyun model of the bottleneck delivery rate and path round-trip propagation 675*4882a593Smuzhiyun delay. It tolerates packet loss and delay unrelated to congestion. It 676*4882a593Smuzhiyun can operate over LAN, WAN, cellular, wifi, or cable modem links. It can 677*4882a593Smuzhiyun coexist with flows that use loss-based congestion control, and can 678*4882a593Smuzhiyun operate with shallow buffers, deep buffers, bufferbloat, policers, or 679*4882a593Smuzhiyun AQM schemes that do not provide a delay signal. It requires the fq 680*4882a593Smuzhiyun ("Fair Queue") pacing packet scheduler. 681*4882a593Smuzhiyun 682*4882a593Smuzhiyunchoice 683*4882a593Smuzhiyun prompt "Default TCP congestion control" 684*4882a593Smuzhiyun default DEFAULT_CUBIC 685*4882a593Smuzhiyun help 686*4882a593Smuzhiyun Select the TCP congestion control that will be used by default 687*4882a593Smuzhiyun for all connections. 688*4882a593Smuzhiyun 689*4882a593Smuzhiyun config DEFAULT_BIC 690*4882a593Smuzhiyun bool "Bic" if TCP_CONG_BIC=y 691*4882a593Smuzhiyun 692*4882a593Smuzhiyun config DEFAULT_CUBIC 693*4882a593Smuzhiyun bool "Cubic" if TCP_CONG_CUBIC=y 694*4882a593Smuzhiyun 695*4882a593Smuzhiyun config DEFAULT_HTCP 696*4882a593Smuzhiyun bool "Htcp" if TCP_CONG_HTCP=y 697*4882a593Smuzhiyun 698*4882a593Smuzhiyun config DEFAULT_HYBLA 699*4882a593Smuzhiyun bool "Hybla" if TCP_CONG_HYBLA=y 700*4882a593Smuzhiyun 701*4882a593Smuzhiyun config DEFAULT_VEGAS 702*4882a593Smuzhiyun bool "Vegas" if TCP_CONG_VEGAS=y 703*4882a593Smuzhiyun 704*4882a593Smuzhiyun config DEFAULT_VENO 705*4882a593Smuzhiyun bool "Veno" if TCP_CONG_VENO=y 706*4882a593Smuzhiyun 707*4882a593Smuzhiyun config DEFAULT_WESTWOOD 708*4882a593Smuzhiyun bool "Westwood" if TCP_CONG_WESTWOOD=y 709*4882a593Smuzhiyun 710*4882a593Smuzhiyun config DEFAULT_DCTCP 711*4882a593Smuzhiyun bool "DCTCP" if TCP_CONG_DCTCP=y 712*4882a593Smuzhiyun 713*4882a593Smuzhiyun config DEFAULT_CDG 714*4882a593Smuzhiyun bool "CDG" if TCP_CONG_CDG=y 715*4882a593Smuzhiyun 716*4882a593Smuzhiyun config DEFAULT_BBR 717*4882a593Smuzhiyun bool "BBR" if TCP_CONG_BBR=y 718*4882a593Smuzhiyun 719*4882a593Smuzhiyun config DEFAULT_RENO 720*4882a593Smuzhiyun bool "Reno" 721*4882a593Smuzhiyunendchoice 722*4882a593Smuzhiyun 723*4882a593Smuzhiyunendif 724*4882a593Smuzhiyun 725*4882a593Smuzhiyunconfig TCP_CONG_CUBIC 726*4882a593Smuzhiyun tristate 727*4882a593Smuzhiyun depends on !TCP_CONG_ADVANCED 728*4882a593Smuzhiyun default y 729*4882a593Smuzhiyun 730*4882a593Smuzhiyunconfig DEFAULT_TCP_CONG 731*4882a593Smuzhiyun string 732*4882a593Smuzhiyun default "bic" if DEFAULT_BIC 733*4882a593Smuzhiyun default "cubic" if DEFAULT_CUBIC 734*4882a593Smuzhiyun default "htcp" if DEFAULT_HTCP 735*4882a593Smuzhiyun default "hybla" if DEFAULT_HYBLA 736*4882a593Smuzhiyun default "vegas" if DEFAULT_VEGAS 737*4882a593Smuzhiyun default "westwood" if DEFAULT_WESTWOOD 738*4882a593Smuzhiyun default "veno" if DEFAULT_VENO 739*4882a593Smuzhiyun default "reno" if DEFAULT_RENO 740*4882a593Smuzhiyun default "dctcp" if DEFAULT_DCTCP 741*4882a593Smuzhiyun default "cdg" if DEFAULT_CDG 742*4882a593Smuzhiyun default "bbr" if DEFAULT_BBR 743*4882a593Smuzhiyun default "cubic" 744*4882a593Smuzhiyun 745*4882a593Smuzhiyunconfig TCP_MD5SIG 746*4882a593Smuzhiyun bool "TCP: MD5 Signature Option support (RFC2385)" 747*4882a593Smuzhiyun select CRYPTO 748*4882a593Smuzhiyun select CRYPTO_MD5 749*4882a593Smuzhiyun help 750*4882a593Smuzhiyun RFC2385 specifies a method of giving MD5 protection to TCP sessions. 751*4882a593Smuzhiyun Its main (only?) use is to protect BGP sessions between core routers 752*4882a593Smuzhiyun on the Internet. 753*4882a593Smuzhiyun 754*4882a593Smuzhiyun If unsure, say N. 755