18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# IP configuration 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ciconfig IP_MULTICAST 68c2ecf20Sopenharmony_ci bool "IP: multicasting" 78c2ecf20Sopenharmony_ci help 88c2ecf20Sopenharmony_ci This is code for addressing several networked computers at once, 98c2ecf20Sopenharmony_ci enlarging your kernel by about 2 KB. You need multicasting if you 108c2ecf20Sopenharmony_ci intend to participate in the MBONE, a high bandwidth network on top 118c2ecf20Sopenharmony_ci of the Internet which carries audio and video broadcasts. More 128c2ecf20Sopenharmony_ci information about the MBONE is on the WWW at 138c2ecf20Sopenharmony_ci <https://www.savetz.com/mbone/>. For most people, it's safe to say N. 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciconfig IP_ADVANCED_ROUTER 168c2ecf20Sopenharmony_ci bool "IP: advanced router" 178c2ecf20Sopenharmony_ci help 188c2ecf20Sopenharmony_ci If you intend to run your Linux box mostly as a router, i.e. as a 198c2ecf20Sopenharmony_ci computer that forwards and redistributes network packets, say Y; you 208c2ecf20Sopenharmony_ci will then be presented with several options that allow more precise 218c2ecf20Sopenharmony_ci control about the routing process. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci The answer to this question won't directly affect the kernel: 248c2ecf20Sopenharmony_ci answering N will just cause the configurator to skip all the 258c2ecf20Sopenharmony_ci questions about advanced routing. 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci Note that your box can only act as a router if you enable IP 288c2ecf20Sopenharmony_ci forwarding in your kernel; you can do that by saying Y to "/proc 298c2ecf20Sopenharmony_ci file system support" and "Sysctl support" below and executing the 308c2ecf20Sopenharmony_ci line 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci echo "1" > /proc/sys/net/ipv4/ip_forward 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci at boot time after the /proc file system has been mounted. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci If you turn on IP forwarding, you should consider the rp_filter, which 378c2ecf20Sopenharmony_ci automatically rejects incoming packets if the routing table entry 388c2ecf20Sopenharmony_ci for their source address doesn't match the network interface they're 398c2ecf20Sopenharmony_ci arriving on. This has security advantages because it prevents the 408c2ecf20Sopenharmony_ci so-called IP spoofing, however it can pose problems if you use 418c2ecf20Sopenharmony_ci asymmetric routing (packets from you to a host take a different path 428c2ecf20Sopenharmony_ci than packets from that host to you) or if you operate a non-routing 438c2ecf20Sopenharmony_ci host which has several IP addresses on different interfaces. To turn 448c2ecf20Sopenharmony_ci rp_filter on use: 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci echo 1 > /proc/sys/net/ipv4/conf/<device>/rp_filter 478c2ecf20Sopenharmony_ci or 488c2ecf20Sopenharmony_ci echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci Note that some distributions enable it in startup scripts. 518c2ecf20Sopenharmony_ci For details about rp_filter strict and loose mode read 528c2ecf20Sopenharmony_ci <file:Documentation/networking/ip-sysctl.rst>. 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci If unsure, say N here. 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ciconfig IP_FIB_TRIE_STATS 578c2ecf20Sopenharmony_ci bool "FIB TRIE statistics" 588c2ecf20Sopenharmony_ci depends on IP_ADVANCED_ROUTER 598c2ecf20Sopenharmony_ci help 608c2ecf20Sopenharmony_ci Keep track of statistics on structure of FIB TRIE table. 618c2ecf20Sopenharmony_ci Useful for testing and measuring TRIE performance. 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciconfig IP_MULTIPLE_TABLES 648c2ecf20Sopenharmony_ci bool "IP: policy routing" 658c2ecf20Sopenharmony_ci depends on IP_ADVANCED_ROUTER 668c2ecf20Sopenharmony_ci select FIB_RULES 678c2ecf20Sopenharmony_ci help 688c2ecf20Sopenharmony_ci Normally, a router decides what to do with a received packet based 698c2ecf20Sopenharmony_ci solely on the packet's final destination address. If you say Y here, 708c2ecf20Sopenharmony_ci the Linux router will also be able to take the packet's source 718c2ecf20Sopenharmony_ci address into account. Furthermore, the TOS (Type-Of-Service) field 728c2ecf20Sopenharmony_ci of the packet can be used for routing decisions as well. 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci If you need more information, see the Linux Advanced 758c2ecf20Sopenharmony_ci Routing and Traffic Control documentation at 768c2ecf20Sopenharmony_ci <https://lartc.org/howto/lartc.rpdb.html> 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci If unsure, say N. 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ciconfig IP_ROUTE_MULTIPATH 818c2ecf20Sopenharmony_ci bool "IP: equal cost multipath" 828c2ecf20Sopenharmony_ci depends on IP_ADVANCED_ROUTER 838c2ecf20Sopenharmony_ci help 848c2ecf20Sopenharmony_ci Normally, the routing tables specify a single action to be taken in 858c2ecf20Sopenharmony_ci a deterministic manner for a given packet. If you say Y here 868c2ecf20Sopenharmony_ci however, it becomes possible to attach several actions to a packet 878c2ecf20Sopenharmony_ci pattern, in effect specifying several alternative paths to travel 888c2ecf20Sopenharmony_ci for those packets. The router considers all these paths to be of 898c2ecf20Sopenharmony_ci equal "cost" and chooses one of them in a non-deterministic fashion 908c2ecf20Sopenharmony_ci if a matching packet arrives. 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ciconfig IP_ROUTE_VERBOSE 938c2ecf20Sopenharmony_ci bool "IP: verbose route monitoring" 948c2ecf20Sopenharmony_ci depends on IP_ADVANCED_ROUTER 958c2ecf20Sopenharmony_ci help 968c2ecf20Sopenharmony_ci If you say Y here, which is recommended, then the kernel will print 978c2ecf20Sopenharmony_ci verbose messages regarding the routing, for example warnings about 988c2ecf20Sopenharmony_ci received packets which look strange and could be evidence of an 998c2ecf20Sopenharmony_ci attack or a misconfigured system somewhere. The information is 1008c2ecf20Sopenharmony_ci handled by the klogd daemon which is responsible for kernel messages 1018c2ecf20Sopenharmony_ci ("man klogd"). 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ciconfig IP_ROUTE_CLASSID 1048c2ecf20Sopenharmony_ci bool 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciconfig IP_PNP 1078c2ecf20Sopenharmony_ci bool "IP: kernel level autoconfiguration" 1088c2ecf20Sopenharmony_ci help 1098c2ecf20Sopenharmony_ci This enables automatic configuration of IP addresses of devices and 1108c2ecf20Sopenharmony_ci of the routing table during kernel boot, based on either information 1118c2ecf20Sopenharmony_ci supplied on the kernel command line or by BOOTP or RARP protocols. 1128c2ecf20Sopenharmony_ci You need to say Y only for diskless machines requiring network 1138c2ecf20Sopenharmony_ci access to boot (in which case you want to say Y to "Root file system 1148c2ecf20Sopenharmony_ci on NFS" as well), because all other machines configure the network 1158c2ecf20Sopenharmony_ci in their startup scripts. 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ciconfig IP_PNP_DHCP 1188c2ecf20Sopenharmony_ci bool "IP: DHCP support" 1198c2ecf20Sopenharmony_ci depends on IP_PNP 1208c2ecf20Sopenharmony_ci help 1218c2ecf20Sopenharmony_ci If you want your Linux box to mount its whole root file system (the 1228c2ecf20Sopenharmony_ci one containing the directory /) from some other computer over the 1238c2ecf20Sopenharmony_ci net via NFS and you want the IP address of your computer to be 1248c2ecf20Sopenharmony_ci discovered automatically at boot time using the DHCP protocol (a 1258c2ecf20Sopenharmony_ci special protocol designed for doing this job), say Y here. In case 1268c2ecf20Sopenharmony_ci the boot ROM of your network card was designed for booting Linux and 1278c2ecf20Sopenharmony_ci does DHCP itself, providing all necessary information on the kernel 1288c2ecf20Sopenharmony_ci command line, you can say N here. 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci If unsure, say Y. Note that if you want to use DHCP, a DHCP server 1318c2ecf20Sopenharmony_ci must be operating on your network. Read 1328c2ecf20Sopenharmony_ci <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ciconfig IP_PNP_BOOTP 1358c2ecf20Sopenharmony_ci bool "IP: BOOTP support" 1368c2ecf20Sopenharmony_ci depends on IP_PNP 1378c2ecf20Sopenharmony_ci help 1388c2ecf20Sopenharmony_ci If you want your Linux box to mount its whole root file system (the 1398c2ecf20Sopenharmony_ci one containing the directory /) from some other computer over the 1408c2ecf20Sopenharmony_ci net via NFS and you want the IP address of your computer to be 1418c2ecf20Sopenharmony_ci discovered automatically at boot time using the BOOTP protocol (a 1428c2ecf20Sopenharmony_ci special protocol designed for doing this job), say Y here. In case 1438c2ecf20Sopenharmony_ci the boot ROM of your network card was designed for booting Linux and 1448c2ecf20Sopenharmony_ci does BOOTP itself, providing all necessary information on the kernel 1458c2ecf20Sopenharmony_ci command line, you can say N here. If unsure, say Y. Note that if you 1468c2ecf20Sopenharmony_ci want to use BOOTP, a BOOTP server must be operating on your network. 1478c2ecf20Sopenharmony_ci Read <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ciconfig IP_PNP_RARP 1508c2ecf20Sopenharmony_ci bool "IP: RARP support" 1518c2ecf20Sopenharmony_ci depends on IP_PNP 1528c2ecf20Sopenharmony_ci help 1538c2ecf20Sopenharmony_ci If you want your Linux box to mount its whole root file system (the 1548c2ecf20Sopenharmony_ci one containing the directory /) from some other computer over the 1558c2ecf20Sopenharmony_ci net via NFS and you want the IP address of your computer to be 1568c2ecf20Sopenharmony_ci discovered automatically at boot time using the RARP protocol (an 1578c2ecf20Sopenharmony_ci older protocol which is being obsoleted by BOOTP and DHCP), say Y 1588c2ecf20Sopenharmony_ci here. Note that if you want to use RARP, a RARP server must be 1598c2ecf20Sopenharmony_ci operating on your network. Read 1608c2ecf20Sopenharmony_ci <file:Documentation/admin-guide/nfs/nfsroot.rst> for details. 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ciconfig NET_IPIP 1638c2ecf20Sopenharmony_ci tristate "IP: tunneling" 1648c2ecf20Sopenharmony_ci select INET_TUNNEL 1658c2ecf20Sopenharmony_ci select NET_IP_TUNNEL 1668c2ecf20Sopenharmony_ci help 1678c2ecf20Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 1688c2ecf20Sopenharmony_ci another protocol and sending it over a channel that understands the 1698c2ecf20Sopenharmony_ci encapsulating protocol. This particular tunneling driver implements 1708c2ecf20Sopenharmony_ci encapsulation of IP within IP, which sounds kind of pointless, but 1718c2ecf20Sopenharmony_ci can be useful if you want to make your (or some other) machine 1728c2ecf20Sopenharmony_ci appear on a different network than it physically is, or to use 1738c2ecf20Sopenharmony_ci mobile-IP facilities (allowing laptops to seamlessly move between 1748c2ecf20Sopenharmony_ci networks without changing their IP addresses). 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci Saying Y to this option will produce two modules ( = code which can 1778c2ecf20Sopenharmony_ci be inserted in and removed from the running kernel whenever you 1788c2ecf20Sopenharmony_ci want). Most people won't need this and can say N. 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ciconfig NET_IPGRE_DEMUX 1818c2ecf20Sopenharmony_ci tristate "IP: GRE demultiplexer" 1828c2ecf20Sopenharmony_ci help 1838c2ecf20Sopenharmony_ci This is helper module to demultiplex GRE packets on GRE version field criteria. 1848c2ecf20Sopenharmony_ci Required by ip_gre and pptp modules. 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ciconfig NET_IP_TUNNEL 1878c2ecf20Sopenharmony_ci tristate 1888c2ecf20Sopenharmony_ci select DST_CACHE 1898c2ecf20Sopenharmony_ci select GRO_CELLS 1908c2ecf20Sopenharmony_ci default n 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ciconfig NET_IPGRE 1938c2ecf20Sopenharmony_ci tristate "IP: GRE tunnels over IP" 1948c2ecf20Sopenharmony_ci depends on (IPV6 || IPV6=n) && NET_IPGRE_DEMUX 1958c2ecf20Sopenharmony_ci select NET_IP_TUNNEL 1968c2ecf20Sopenharmony_ci help 1978c2ecf20Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 1988c2ecf20Sopenharmony_ci another protocol and sending it over a channel that understands the 1998c2ecf20Sopenharmony_ci encapsulating protocol. This particular tunneling driver implements 2008c2ecf20Sopenharmony_ci GRE (Generic Routing Encapsulation) and at this time allows 2018c2ecf20Sopenharmony_ci encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure. 2028c2ecf20Sopenharmony_ci This driver is useful if the other endpoint is a Cisco router: Cisco 2038c2ecf20Sopenharmony_ci likes GRE much better than the other Linux tunneling driver ("IP 2048c2ecf20Sopenharmony_ci tunneling" above). In addition, GRE allows multicast redistribution 2058c2ecf20Sopenharmony_ci through the tunnel. 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ciconfig NET_IPGRE_BROADCAST 2088c2ecf20Sopenharmony_ci bool "IP: broadcast GRE over IP" 2098c2ecf20Sopenharmony_ci depends on IP_MULTICAST && NET_IPGRE 2108c2ecf20Sopenharmony_ci help 2118c2ecf20Sopenharmony_ci One application of GRE/IP is to construct a broadcast WAN (Wide Area 2128c2ecf20Sopenharmony_ci Network), which looks like a normal Ethernet LAN (Local Area 2138c2ecf20Sopenharmony_ci Network), but can be distributed all over the Internet. If you want 2148c2ecf20Sopenharmony_ci to do that, say Y here and to "IP multicast routing" below. 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ciconfig IP_MROUTE_COMMON 2178c2ecf20Sopenharmony_ci bool 2188c2ecf20Sopenharmony_ci depends on IP_MROUTE || IPV6_MROUTE 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ciconfig IP_MROUTE 2218c2ecf20Sopenharmony_ci bool "IP: multicast routing" 2228c2ecf20Sopenharmony_ci depends on IP_MULTICAST 2238c2ecf20Sopenharmony_ci select IP_MROUTE_COMMON 2248c2ecf20Sopenharmony_ci help 2258c2ecf20Sopenharmony_ci This is used if you want your machine to act as a router for IP 2268c2ecf20Sopenharmony_ci packets that have several destination addresses. It is needed on the 2278c2ecf20Sopenharmony_ci MBONE, a high bandwidth network on top of the Internet which carries 2288c2ecf20Sopenharmony_ci audio and video broadcasts. In order to do that, you would most 2298c2ecf20Sopenharmony_ci likely run the program mrouted. If you haven't heard about it, you 2308c2ecf20Sopenharmony_ci don't need it. 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ciconfig IP_MROUTE_MULTIPLE_TABLES 2338c2ecf20Sopenharmony_ci bool "IP: multicast policy routing" 2348c2ecf20Sopenharmony_ci depends on IP_MROUTE && IP_ADVANCED_ROUTER 2358c2ecf20Sopenharmony_ci select FIB_RULES 2368c2ecf20Sopenharmony_ci help 2378c2ecf20Sopenharmony_ci Normally, a multicast router runs a userspace daemon and decides 2388c2ecf20Sopenharmony_ci what to do with a multicast packet based on the source and 2398c2ecf20Sopenharmony_ci destination addresses. If you say Y here, the multicast router 2408c2ecf20Sopenharmony_ci will also be able to take interfaces and packet marks into 2418c2ecf20Sopenharmony_ci account and run multiple instances of userspace daemons 2428c2ecf20Sopenharmony_ci simultaneously, each one handling a single table. 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci If unsure, say N. 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ciconfig IP_PIMSM_V1 2478c2ecf20Sopenharmony_ci bool "IP: PIM-SM version 1 support" 2488c2ecf20Sopenharmony_ci depends on IP_MROUTE 2498c2ecf20Sopenharmony_ci help 2508c2ecf20Sopenharmony_ci Kernel side support for Sparse Mode PIM (Protocol Independent 2518c2ecf20Sopenharmony_ci Multicast) version 1. This multicast routing protocol is used widely 2528c2ecf20Sopenharmony_ci because Cisco supports it. You need special software to use it 2538c2ecf20Sopenharmony_ci (pimd-v1). Please see <http://netweb.usc.edu/pim/> for more 2548c2ecf20Sopenharmony_ci information about PIM. 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci Say Y if you want to use PIM-SM v1. Note that you can say N here if 2578c2ecf20Sopenharmony_ci you just want to use Dense Mode PIM. 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ciconfig IP_PIMSM_V2 2608c2ecf20Sopenharmony_ci bool "IP: PIM-SM version 2 support" 2618c2ecf20Sopenharmony_ci depends on IP_MROUTE 2628c2ecf20Sopenharmony_ci help 2638c2ecf20Sopenharmony_ci Kernel side support for Sparse Mode PIM version 2. In order to use 2648c2ecf20Sopenharmony_ci this, you need an experimental routing daemon supporting it (pimd or 2658c2ecf20Sopenharmony_ci gated-5). This routing protocol is not used widely, so say N unless 2668c2ecf20Sopenharmony_ci you want to play with it. 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ciconfig SYN_COOKIES 2698c2ecf20Sopenharmony_ci bool "IP: TCP syncookie support" 2708c2ecf20Sopenharmony_ci help 2718c2ecf20Sopenharmony_ci Normal TCP/IP networking is open to an attack known as "SYN 2728c2ecf20Sopenharmony_ci flooding". This denial-of-service attack prevents legitimate remote 2738c2ecf20Sopenharmony_ci users from being able to connect to your computer during an ongoing 2748c2ecf20Sopenharmony_ci attack and requires very little work from the attacker, who can 2758c2ecf20Sopenharmony_ci operate from anywhere on the Internet. 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci SYN cookies provide protection against this type of attack. If you 2788c2ecf20Sopenharmony_ci say Y here, the TCP/IP stack will use a cryptographic challenge 2798c2ecf20Sopenharmony_ci protocol known as "SYN cookies" to enable legitimate users to 2808c2ecf20Sopenharmony_ci continue to connect, even when your machine is under attack. There 2818c2ecf20Sopenharmony_ci is no need for the legitimate users to change their TCP/IP software; 2828c2ecf20Sopenharmony_ci SYN cookies work transparently to them. For technical information 2838c2ecf20Sopenharmony_ci about SYN cookies, check out <https://cr.yp.to/syncookies.html>. 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci If you are SYN flooded, the source address reported by the kernel is 2868c2ecf20Sopenharmony_ci likely to have been forged by the attacker; it is only reported as 2878c2ecf20Sopenharmony_ci an aid in tracing the packets to their actual source and should not 2888c2ecf20Sopenharmony_ci be taken as absolute truth. 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_ci SYN cookies may prevent correct error reporting on clients when the 2918c2ecf20Sopenharmony_ci server is really overloaded. If this happens frequently better turn 2928c2ecf20Sopenharmony_ci them off. 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci If you say Y here, you can disable SYN cookies at run time by 2958c2ecf20Sopenharmony_ci saying Y to "/proc file system support" and 2968c2ecf20Sopenharmony_ci "Sysctl support" below and executing the command 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci echo 0 > /proc/sys/net/ipv4/tcp_syncookies 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci after the /proc file system has been mounted. 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ci If unsure, say N. 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ciconfig NET_IPVTI 3058c2ecf20Sopenharmony_ci tristate "Virtual (secure) IP: tunneling" 3068c2ecf20Sopenharmony_ci depends on IPV6 || IPV6=n 3078c2ecf20Sopenharmony_ci select INET_TUNNEL 3088c2ecf20Sopenharmony_ci select NET_IP_TUNNEL 3098c2ecf20Sopenharmony_ci select XFRM 3108c2ecf20Sopenharmony_ci help 3118c2ecf20Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 3128c2ecf20Sopenharmony_ci another protocol and sending it over a channel that understands the 3138c2ecf20Sopenharmony_ci encapsulating protocol. This can be used with xfrm mode tunnel to give 3148c2ecf20Sopenharmony_ci the notion of a secure tunnel for IPSEC and then use routing protocol 3158c2ecf20Sopenharmony_ci on top. 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ciconfig NET_UDP_TUNNEL 3188c2ecf20Sopenharmony_ci tristate 3198c2ecf20Sopenharmony_ci select NET_IP_TUNNEL 3208c2ecf20Sopenharmony_ci default n 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ciconfig NET_FOU 3238c2ecf20Sopenharmony_ci tristate "IP: Foo (IP protocols) over UDP" 3248c2ecf20Sopenharmony_ci select XFRM 3258c2ecf20Sopenharmony_ci select NET_UDP_TUNNEL 3268c2ecf20Sopenharmony_ci help 3278c2ecf20Sopenharmony_ci Foo over UDP allows any IP protocol to be directly encapsulated 3288c2ecf20Sopenharmony_ci over UDP include tunnels (IPIP, GRE, SIT). By encapsulating in UDP 3298c2ecf20Sopenharmony_ci network mechanisms and optimizations for UDP (such as ECMP 3308c2ecf20Sopenharmony_ci and RSS) can be leveraged to provide better service. 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ciconfig NET_FOU_IP_TUNNELS 3338c2ecf20Sopenharmony_ci bool "IP: FOU encapsulation of IP tunnels" 3348c2ecf20Sopenharmony_ci depends on NET_IPIP || NET_IPGRE || IPV6_SIT 3358c2ecf20Sopenharmony_ci select NET_FOU 3368c2ecf20Sopenharmony_ci help 3378c2ecf20Sopenharmony_ci Allow configuration of FOU or GUE encapsulation for IP tunnels. 3388c2ecf20Sopenharmony_ci When this option is enabled IP tunnels can be configured to use 3398c2ecf20Sopenharmony_ci FOU or GUE encapsulation. 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_ciconfig INET_AH 3428c2ecf20Sopenharmony_ci tristate "IP: AH transformation" 3438c2ecf20Sopenharmony_ci select XFRM_AH 3448c2ecf20Sopenharmony_ci help 3458c2ecf20Sopenharmony_ci Support for IPsec AH (Authentication Header). 3468c2ecf20Sopenharmony_ci 3478c2ecf20Sopenharmony_ci AH can be used with various authentication algorithms. Besides 3488c2ecf20Sopenharmony_ci enabling AH support itself, this option enables the generic 3498c2ecf20Sopenharmony_ci implementations of the algorithms that RFC 8221 lists as MUST be 3508c2ecf20Sopenharmony_ci implemented. If you need any other algorithms, you'll need to enable 3518c2ecf20Sopenharmony_ci them in the crypto API. You should also enable accelerated 3528c2ecf20Sopenharmony_ci implementations of any needed algorithms when available. 3538c2ecf20Sopenharmony_ci 3548c2ecf20Sopenharmony_ci If unsure, say Y. 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ciconfig INET_ESP 3578c2ecf20Sopenharmony_ci tristate "IP: ESP transformation" 3588c2ecf20Sopenharmony_ci select XFRM_ESP 3598c2ecf20Sopenharmony_ci help 3608c2ecf20Sopenharmony_ci Support for IPsec ESP (Encapsulating Security Payload). 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_ci ESP can be used with various encryption and authentication algorithms. 3638c2ecf20Sopenharmony_ci Besides enabling ESP support itself, this option enables the generic 3648c2ecf20Sopenharmony_ci implementations of the algorithms that RFC 8221 lists as MUST be 3658c2ecf20Sopenharmony_ci implemented. If you need any other algorithms, you'll need to enable 3668c2ecf20Sopenharmony_ci them in the crypto API. You should also enable accelerated 3678c2ecf20Sopenharmony_ci implementations of any needed algorithms when available. 3688c2ecf20Sopenharmony_ci 3698c2ecf20Sopenharmony_ci If unsure, say Y. 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ciconfig INET_ESP_OFFLOAD 3728c2ecf20Sopenharmony_ci tristate "IP: ESP transformation offload" 3738c2ecf20Sopenharmony_ci depends on INET_ESP 3748c2ecf20Sopenharmony_ci select XFRM_OFFLOAD 3758c2ecf20Sopenharmony_ci default n 3768c2ecf20Sopenharmony_ci help 3778c2ecf20Sopenharmony_ci Support for ESP transformation offload. This makes sense 3788c2ecf20Sopenharmony_ci only if this system really does IPsec and want to do it 3798c2ecf20Sopenharmony_ci with high throughput. A typical desktop system does not 3808c2ecf20Sopenharmony_ci need it, even if it does IPsec. 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ci If unsure, say N. 3838c2ecf20Sopenharmony_ci 3848c2ecf20Sopenharmony_ciconfig INET_ESPINTCP 3858c2ecf20Sopenharmony_ci bool "IP: ESP in TCP encapsulation (RFC 8229)" 3868c2ecf20Sopenharmony_ci depends on XFRM && INET_ESP 3878c2ecf20Sopenharmony_ci select STREAM_PARSER 3888c2ecf20Sopenharmony_ci select NET_SOCK_MSG 3898c2ecf20Sopenharmony_ci select XFRM_ESPINTCP 3908c2ecf20Sopenharmony_ci help 3918c2ecf20Sopenharmony_ci Support for RFC 8229 encapsulation of ESP and IKE over 3928c2ecf20Sopenharmony_ci TCP/IPv4 sockets. 3938c2ecf20Sopenharmony_ci 3948c2ecf20Sopenharmony_ci If unsure, say N. 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ciconfig INET_IPCOMP 3978c2ecf20Sopenharmony_ci tristate "IP: IPComp transformation" 3988c2ecf20Sopenharmony_ci select INET_XFRM_TUNNEL 3998c2ecf20Sopenharmony_ci select XFRM_IPCOMP 4008c2ecf20Sopenharmony_ci help 4018c2ecf20Sopenharmony_ci Support for IP Payload Compression Protocol (IPComp) (RFC3173), 4028c2ecf20Sopenharmony_ci typically needed for IPsec. 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ci If unsure, say Y. 4058c2ecf20Sopenharmony_ci 4068c2ecf20Sopenharmony_ciconfig INET_TABLE_PERTURB_ORDER 4078c2ecf20Sopenharmony_ci int "INET: Source port perturbation table size (as power of 2)" if EXPERT 4088c2ecf20Sopenharmony_ci default 16 4098c2ecf20Sopenharmony_ci help 4108c2ecf20Sopenharmony_ci Source port perturbation table size (as power of 2) for 4118c2ecf20Sopenharmony_ci RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm. 4128c2ecf20Sopenharmony_ci 4138c2ecf20Sopenharmony_ci The default is almost always what you want. 4148c2ecf20Sopenharmony_ci Only change this if you know what you are doing. 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ciconfig INET_XFRM_TUNNEL 4178c2ecf20Sopenharmony_ci tristate 4188c2ecf20Sopenharmony_ci select INET_TUNNEL 4198c2ecf20Sopenharmony_ci default n 4208c2ecf20Sopenharmony_ci 4218c2ecf20Sopenharmony_ciconfig INET_TUNNEL 4228c2ecf20Sopenharmony_ci tristate 4238c2ecf20Sopenharmony_ci default n 4248c2ecf20Sopenharmony_ci 4258c2ecf20Sopenharmony_ciconfig INET_DIAG 4268c2ecf20Sopenharmony_ci tristate "INET: socket monitoring interface" 4278c2ecf20Sopenharmony_ci default y 4288c2ecf20Sopenharmony_ci help 4298c2ecf20Sopenharmony_ci Support for INET (TCP, DCCP, etc) socket monitoring interface used by 4308c2ecf20Sopenharmony_ci native Linux tools such as ss. ss is included in iproute2, currently 4318c2ecf20Sopenharmony_ci downloadable at: 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_ci If unsure, say Y. 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ciconfig INET_TCP_DIAG 4388c2ecf20Sopenharmony_ci depends on INET_DIAG 4398c2ecf20Sopenharmony_ci def_tristate INET_DIAG 4408c2ecf20Sopenharmony_ci 4418c2ecf20Sopenharmony_ciconfig INET_UDP_DIAG 4428c2ecf20Sopenharmony_ci tristate "UDP: socket monitoring interface" 4438c2ecf20Sopenharmony_ci depends on INET_DIAG && (IPV6 || IPV6=n) 4448c2ecf20Sopenharmony_ci default n 4458c2ecf20Sopenharmony_ci help 4468c2ecf20Sopenharmony_ci Support for UDP socket monitoring interface used by the ss tool. 4478c2ecf20Sopenharmony_ci If unsure, say Y. 4488c2ecf20Sopenharmony_ci 4498c2ecf20Sopenharmony_ciconfig INET_RAW_DIAG 4508c2ecf20Sopenharmony_ci tristate "RAW: socket monitoring interface" 4518c2ecf20Sopenharmony_ci depends on INET_DIAG && (IPV6 || IPV6=n) 4528c2ecf20Sopenharmony_ci default n 4538c2ecf20Sopenharmony_ci help 4548c2ecf20Sopenharmony_ci Support for RAW socket monitoring interface used by the ss tool. 4558c2ecf20Sopenharmony_ci If unsure, say Y. 4568c2ecf20Sopenharmony_ci 4578c2ecf20Sopenharmony_ciconfig INET_DIAG_DESTROY 4588c2ecf20Sopenharmony_ci bool "INET: allow privileged process to administratively close sockets" 4598c2ecf20Sopenharmony_ci depends on INET_DIAG 4608c2ecf20Sopenharmony_ci default n 4618c2ecf20Sopenharmony_ci help 4628c2ecf20Sopenharmony_ci Provides a SOCK_DESTROY operation that allows privileged processes 4638c2ecf20Sopenharmony_ci (e.g., a connection manager or a network administration tool such as 4648c2ecf20Sopenharmony_ci ss) to close sockets opened by other processes. Closing a socket in 4658c2ecf20Sopenharmony_ci this way interrupts any blocking read/write/connect operations on 4668c2ecf20Sopenharmony_ci the socket and causes future socket calls to behave as if the socket 4678c2ecf20Sopenharmony_ci had been disconnected. 4688c2ecf20Sopenharmony_ci If unsure, say N. 4698c2ecf20Sopenharmony_ci 4708c2ecf20Sopenharmony_cimenuconfig TCP_CONG_ADVANCED 4718c2ecf20Sopenharmony_ci bool "TCP: advanced congestion control" 4728c2ecf20Sopenharmony_ci help 4738c2ecf20Sopenharmony_ci Support for selection of various TCP congestion control 4748c2ecf20Sopenharmony_ci modules. 4758c2ecf20Sopenharmony_ci 4768c2ecf20Sopenharmony_ci Nearly all users can safely say no here, and a safe default 4778c2ecf20Sopenharmony_ci selection will be made (CUBIC with new Reno as a fallback). 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci If unsure, say N. 4808c2ecf20Sopenharmony_ci 4818c2ecf20Sopenharmony_ciif TCP_CONG_ADVANCED 4828c2ecf20Sopenharmony_ci 4838c2ecf20Sopenharmony_ciconfig TCP_CONG_BIC 4848c2ecf20Sopenharmony_ci tristate "Binary Increase Congestion (BIC) control" 4858c2ecf20Sopenharmony_ci default m 4868c2ecf20Sopenharmony_ci help 4878c2ecf20Sopenharmony_ci BIC-TCP is a sender-side only change that ensures a linear RTT 4888c2ecf20Sopenharmony_ci fairness under large windows while offering both scalability and 4898c2ecf20Sopenharmony_ci bounded TCP-friendliness. The protocol combines two schemes 4908c2ecf20Sopenharmony_ci called additive increase and binary search increase. When the 4918c2ecf20Sopenharmony_ci congestion window is large, additive increase with a large 4928c2ecf20Sopenharmony_ci increment ensures linear RTT fairness as well as good 4938c2ecf20Sopenharmony_ci scalability. Under small congestion windows, binary search 4948c2ecf20Sopenharmony_ci increase provides TCP friendliness. 4958c2ecf20Sopenharmony_ci See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ 4968c2ecf20Sopenharmony_ci 4978c2ecf20Sopenharmony_ciconfig TCP_CONG_CUBIC 4988c2ecf20Sopenharmony_ci tristate "CUBIC TCP" 4998c2ecf20Sopenharmony_ci default y 5008c2ecf20Sopenharmony_ci help 5018c2ecf20Sopenharmony_ci This is version 2.0 of BIC-TCP which uses a cubic growth function 5028c2ecf20Sopenharmony_ci among other techniques. 5038c2ecf20Sopenharmony_ci See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf 5048c2ecf20Sopenharmony_ci 5058c2ecf20Sopenharmony_ciconfig TCP_CONG_WESTWOOD 5068c2ecf20Sopenharmony_ci tristate "TCP Westwood+" 5078c2ecf20Sopenharmony_ci default m 5088c2ecf20Sopenharmony_ci help 5098c2ecf20Sopenharmony_ci TCP Westwood+ is a sender-side only modification of the TCP Reno 5108c2ecf20Sopenharmony_ci protocol stack that optimizes the performance of TCP congestion 5118c2ecf20Sopenharmony_ci control. It is based on end-to-end bandwidth estimation to set 5128c2ecf20Sopenharmony_ci congestion window and slow start threshold after a congestion 5138c2ecf20Sopenharmony_ci episode. Using this estimation, TCP Westwood+ adaptively sets a 5148c2ecf20Sopenharmony_ci slow start threshold and a congestion window which takes into 5158c2ecf20Sopenharmony_ci account the bandwidth used at the time congestion is experienced. 5168c2ecf20Sopenharmony_ci TCP Westwood+ significantly increases fairness wrt TCP Reno in 5178c2ecf20Sopenharmony_ci wired networks and throughput over wireless links. 5188c2ecf20Sopenharmony_ci 5198c2ecf20Sopenharmony_ciconfig TCP_CONG_HTCP 5208c2ecf20Sopenharmony_ci tristate "H-TCP" 5218c2ecf20Sopenharmony_ci default m 5228c2ecf20Sopenharmony_ci help 5238c2ecf20Sopenharmony_ci H-TCP is a send-side only modifications of the TCP Reno 5248c2ecf20Sopenharmony_ci protocol stack that optimizes the performance of TCP 5258c2ecf20Sopenharmony_ci congestion control for high speed network links. It uses a 5268c2ecf20Sopenharmony_ci modeswitch to change the alpha and beta parameters of TCP Reno 5278c2ecf20Sopenharmony_ci based on network conditions and in a way so as to be fair with 5288c2ecf20Sopenharmony_ci other Reno and H-TCP flows. 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ciconfig TCP_CONG_HSTCP 5318c2ecf20Sopenharmony_ci tristate "High Speed TCP" 5328c2ecf20Sopenharmony_ci default n 5338c2ecf20Sopenharmony_ci help 5348c2ecf20Sopenharmony_ci Sally Floyd's High Speed TCP (RFC 3649) congestion control. 5358c2ecf20Sopenharmony_ci A modification to TCP's congestion control mechanism for use 5368c2ecf20Sopenharmony_ci with large congestion windows. A table indicates how much to 5378c2ecf20Sopenharmony_ci increase the congestion window by when an ACK is received. 5388c2ecf20Sopenharmony_ci For more detail see https://www.icir.org/floyd/hstcp.html 5398c2ecf20Sopenharmony_ci 5408c2ecf20Sopenharmony_ciconfig TCP_CONG_HYBLA 5418c2ecf20Sopenharmony_ci tristate "TCP-Hybla congestion control algorithm" 5428c2ecf20Sopenharmony_ci default n 5438c2ecf20Sopenharmony_ci help 5448c2ecf20Sopenharmony_ci TCP-Hybla is a sender-side only change that eliminates penalization of 5458c2ecf20Sopenharmony_ci long-RTT, large-bandwidth connections, like when satellite legs are 5468c2ecf20Sopenharmony_ci involved, especially when sharing a common bottleneck with normal 5478c2ecf20Sopenharmony_ci terrestrial connections. 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ciconfig TCP_CONG_VEGAS 5508c2ecf20Sopenharmony_ci tristate "TCP Vegas" 5518c2ecf20Sopenharmony_ci default n 5528c2ecf20Sopenharmony_ci help 5538c2ecf20Sopenharmony_ci TCP Vegas is a sender-side only change to TCP that anticipates 5548c2ecf20Sopenharmony_ci the onset of congestion by estimating the bandwidth. TCP Vegas 5558c2ecf20Sopenharmony_ci adjusts the sending rate by modifying the congestion 5568c2ecf20Sopenharmony_ci window. TCP Vegas should provide less packet loss, but it is 5578c2ecf20Sopenharmony_ci not as aggressive as TCP Reno. 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ciconfig TCP_CONG_NV 5608c2ecf20Sopenharmony_ci tristate "TCP NV" 5618c2ecf20Sopenharmony_ci default n 5628c2ecf20Sopenharmony_ci help 5638c2ecf20Sopenharmony_ci TCP NV is a follow up to TCP Vegas. It has been modified to deal with 5648c2ecf20Sopenharmony_ci 10G networks, measurement noise introduced by LRO, GRO and interrupt 5658c2ecf20Sopenharmony_ci coalescence. In addition, it will decrease its cwnd multiplicatively 5668c2ecf20Sopenharmony_ci instead of linearly. 5678c2ecf20Sopenharmony_ci 5688c2ecf20Sopenharmony_ci Note that in general congestion avoidance (cwnd decreased when # packets 5698c2ecf20Sopenharmony_ci queued grows) cannot coexist with congestion control (cwnd decreased only 5708c2ecf20Sopenharmony_ci when there is packet loss) due to fairness issues. One scenario when they 5718c2ecf20Sopenharmony_ci can coexist safely is when the CA flows have RTTs << CC flows RTTs. 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ci For further details see http://www.brakmo.org/networking/tcp-nv/ 5748c2ecf20Sopenharmony_ci 5758c2ecf20Sopenharmony_ciconfig TCP_CONG_SCALABLE 5768c2ecf20Sopenharmony_ci tristate "Scalable TCP" 5778c2ecf20Sopenharmony_ci default n 5788c2ecf20Sopenharmony_ci help 5798c2ecf20Sopenharmony_ci Scalable TCP is a sender-side only change to TCP which uses a 5808c2ecf20Sopenharmony_ci MIMD congestion control algorithm which has some nice scaling 5818c2ecf20Sopenharmony_ci properties, though is known to have fairness issues. 5828c2ecf20Sopenharmony_ci See http://www.deneholme.net/tom/scalable/ 5838c2ecf20Sopenharmony_ci 5848c2ecf20Sopenharmony_ciconfig TCP_CONG_LP 5858c2ecf20Sopenharmony_ci tristate "TCP Low Priority" 5868c2ecf20Sopenharmony_ci default n 5878c2ecf20Sopenharmony_ci help 5888c2ecf20Sopenharmony_ci TCP Low Priority (TCP-LP), a distributed algorithm whose goal is 5898c2ecf20Sopenharmony_ci to utilize only the excess network bandwidth as compared to the 5908c2ecf20Sopenharmony_ci ``fair share`` of bandwidth as targeted by TCP. 5918c2ecf20Sopenharmony_ci See http://www-ece.rice.edu/networks/TCP-LP/ 5928c2ecf20Sopenharmony_ci 5938c2ecf20Sopenharmony_ciconfig TCP_CONG_VENO 5948c2ecf20Sopenharmony_ci tristate "TCP Veno" 5958c2ecf20Sopenharmony_ci default n 5968c2ecf20Sopenharmony_ci help 5978c2ecf20Sopenharmony_ci TCP Veno is a sender-side only enhancement of TCP to obtain better 5988c2ecf20Sopenharmony_ci throughput over wireless networks. TCP Veno makes use of state 5998c2ecf20Sopenharmony_ci distinguishing to circumvent the difficult judgment of the packet loss 6008c2ecf20Sopenharmony_ci type. TCP Veno cuts down less congestion window in response to random 6018c2ecf20Sopenharmony_ci loss packets. 6028c2ecf20Sopenharmony_ci See <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1177186> 6038c2ecf20Sopenharmony_ci 6048c2ecf20Sopenharmony_ciconfig TCP_CONG_YEAH 6058c2ecf20Sopenharmony_ci tristate "YeAH TCP" 6068c2ecf20Sopenharmony_ci select TCP_CONG_VEGAS 6078c2ecf20Sopenharmony_ci default n 6088c2ecf20Sopenharmony_ci help 6098c2ecf20Sopenharmony_ci YeAH-TCP is a sender-side high-speed enabled TCP congestion control 6108c2ecf20Sopenharmony_ci algorithm, which uses a mixed loss/delay approach to compute the 6118c2ecf20Sopenharmony_ci congestion window. It's design goals target high efficiency, 6128c2ecf20Sopenharmony_ci internal, RTT and Reno fairness, resilience to link loss while 6138c2ecf20Sopenharmony_ci keeping network elements load as low as possible. 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_ci For further details look here: 6168c2ecf20Sopenharmony_ci http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf 6178c2ecf20Sopenharmony_ci 6188c2ecf20Sopenharmony_ciconfig TCP_CONG_ILLINOIS 6198c2ecf20Sopenharmony_ci tristate "TCP Illinois" 6208c2ecf20Sopenharmony_ci default n 6218c2ecf20Sopenharmony_ci help 6228c2ecf20Sopenharmony_ci TCP-Illinois is a sender-side modification of TCP Reno for 6238c2ecf20Sopenharmony_ci high speed long delay links. It uses round-trip-time to 6248c2ecf20Sopenharmony_ci adjust the alpha and beta parameters to achieve a higher average 6258c2ecf20Sopenharmony_ci throughput and maintain fairness. 6268c2ecf20Sopenharmony_ci 6278c2ecf20Sopenharmony_ci For further details see: 6288c2ecf20Sopenharmony_ci http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_ciconfig TCP_CONG_DCTCP 6318c2ecf20Sopenharmony_ci tristate "DataCenter TCP (DCTCP)" 6328c2ecf20Sopenharmony_ci default n 6338c2ecf20Sopenharmony_ci help 6348c2ecf20Sopenharmony_ci DCTCP leverages Explicit Congestion Notification (ECN) in the network to 6358c2ecf20Sopenharmony_ci provide multi-bit feedback to the end hosts. It is designed to provide: 6368c2ecf20Sopenharmony_ci 6378c2ecf20Sopenharmony_ci - High burst tolerance (incast due to partition/aggregate), 6388c2ecf20Sopenharmony_ci - Low latency (short flows, queries), 6398c2ecf20Sopenharmony_ci - High throughput (continuous data updates, large file transfers) with 6408c2ecf20Sopenharmony_ci commodity, shallow-buffered switches. 6418c2ecf20Sopenharmony_ci 6428c2ecf20Sopenharmony_ci All switches in the data center network running DCTCP must support 6438c2ecf20Sopenharmony_ci ECN marking and be configured for marking when reaching defined switch 6448c2ecf20Sopenharmony_ci buffer thresholds. The default ECN marking threshold heuristic for 6458c2ecf20Sopenharmony_ci DCTCP on switches is 20 packets (30KB) at 1Gbps, and 65 packets 6468c2ecf20Sopenharmony_ci (~100KB) at 10Gbps, but might need further careful tweaking. 6478c2ecf20Sopenharmony_ci 6488c2ecf20Sopenharmony_ci For further details see: 6498c2ecf20Sopenharmony_ci http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf 6508c2ecf20Sopenharmony_ci 6518c2ecf20Sopenharmony_ciconfig TCP_CONG_CDG 6528c2ecf20Sopenharmony_ci tristate "CAIA Delay-Gradient (CDG)" 6538c2ecf20Sopenharmony_ci default n 6548c2ecf20Sopenharmony_ci help 6558c2ecf20Sopenharmony_ci CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies 6568c2ecf20Sopenharmony_ci the TCP sender in order to: 6578c2ecf20Sopenharmony_ci 6588c2ecf20Sopenharmony_ci o Use the delay gradient as a congestion signal. 6598c2ecf20Sopenharmony_ci o Back off with an average probability that is independent of the RTT. 6608c2ecf20Sopenharmony_ci o Coexist with flows that use loss-based congestion control. 6618c2ecf20Sopenharmony_ci o Tolerate packet loss unrelated to congestion. 6628c2ecf20Sopenharmony_ci 6638c2ecf20Sopenharmony_ci For further details see: 6648c2ecf20Sopenharmony_ci D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using 6658c2ecf20Sopenharmony_ci delay gradients." In Networking 2011. Preprint: http://goo.gl/No3vdg 6668c2ecf20Sopenharmony_ci 6678c2ecf20Sopenharmony_ciconfig TCP_CONG_BBR 6688c2ecf20Sopenharmony_ci tristate "BBR TCP" 6698c2ecf20Sopenharmony_ci default n 6708c2ecf20Sopenharmony_ci help 6718c2ecf20Sopenharmony_ci 6728c2ecf20Sopenharmony_ci BBR (Bottleneck Bandwidth and RTT) TCP congestion control aims to 6738c2ecf20Sopenharmony_ci maximize network utilization and minimize queues. It builds an explicit 6748c2ecf20Sopenharmony_ci model of the bottleneck delivery rate and path round-trip propagation 6758c2ecf20Sopenharmony_ci delay. It tolerates packet loss and delay unrelated to congestion. It 6768c2ecf20Sopenharmony_ci can operate over LAN, WAN, cellular, wifi, or cable modem links. It can 6778c2ecf20Sopenharmony_ci coexist with flows that use loss-based congestion control, and can 6788c2ecf20Sopenharmony_ci operate with shallow buffers, deep buffers, bufferbloat, policers, or 6798c2ecf20Sopenharmony_ci AQM schemes that do not provide a delay signal. It requires the fq 6808c2ecf20Sopenharmony_ci ("Fair Queue") pacing packet scheduler. 6818c2ecf20Sopenharmony_ci 6828c2ecf20Sopenharmony_cichoice 6838c2ecf20Sopenharmony_ci prompt "Default TCP congestion control" 6848c2ecf20Sopenharmony_ci default DEFAULT_CUBIC 6858c2ecf20Sopenharmony_ci help 6868c2ecf20Sopenharmony_ci Select the TCP congestion control that will be used by default 6878c2ecf20Sopenharmony_ci for all connections. 6888c2ecf20Sopenharmony_ci 6898c2ecf20Sopenharmony_ci config DEFAULT_BIC 6908c2ecf20Sopenharmony_ci bool "Bic" if TCP_CONG_BIC=y 6918c2ecf20Sopenharmony_ci 6928c2ecf20Sopenharmony_ci config DEFAULT_CUBIC 6938c2ecf20Sopenharmony_ci bool "Cubic" if TCP_CONG_CUBIC=y 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_ci config DEFAULT_HTCP 6968c2ecf20Sopenharmony_ci bool "Htcp" if TCP_CONG_HTCP=y 6978c2ecf20Sopenharmony_ci 6988c2ecf20Sopenharmony_ci config DEFAULT_HYBLA 6998c2ecf20Sopenharmony_ci bool "Hybla" if TCP_CONG_HYBLA=y 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_ci config DEFAULT_VEGAS 7028c2ecf20Sopenharmony_ci bool "Vegas" if TCP_CONG_VEGAS=y 7038c2ecf20Sopenharmony_ci 7048c2ecf20Sopenharmony_ci config DEFAULT_VENO 7058c2ecf20Sopenharmony_ci bool "Veno" if TCP_CONG_VENO=y 7068c2ecf20Sopenharmony_ci 7078c2ecf20Sopenharmony_ci config DEFAULT_WESTWOOD 7088c2ecf20Sopenharmony_ci bool "Westwood" if TCP_CONG_WESTWOOD=y 7098c2ecf20Sopenharmony_ci 7108c2ecf20Sopenharmony_ci config DEFAULT_DCTCP 7118c2ecf20Sopenharmony_ci bool "DCTCP" if TCP_CONG_DCTCP=y 7128c2ecf20Sopenharmony_ci 7138c2ecf20Sopenharmony_ci config DEFAULT_CDG 7148c2ecf20Sopenharmony_ci bool "CDG" if TCP_CONG_CDG=y 7158c2ecf20Sopenharmony_ci 7168c2ecf20Sopenharmony_ci config DEFAULT_BBR 7178c2ecf20Sopenharmony_ci bool "BBR" if TCP_CONG_BBR=y 7188c2ecf20Sopenharmony_ci 7198c2ecf20Sopenharmony_ci config DEFAULT_RENO 7208c2ecf20Sopenharmony_ci bool "Reno" 7218c2ecf20Sopenharmony_ciendchoice 7228c2ecf20Sopenharmony_ci 7238c2ecf20Sopenharmony_ciendif 7248c2ecf20Sopenharmony_ci 7258c2ecf20Sopenharmony_ciconfig TCP_CONG_CUBIC 7268c2ecf20Sopenharmony_ci tristate 7278c2ecf20Sopenharmony_ci depends on !TCP_CONG_ADVANCED 7288c2ecf20Sopenharmony_ci default y 7298c2ecf20Sopenharmony_ci 7308c2ecf20Sopenharmony_ciconfig DEFAULT_TCP_CONG 7318c2ecf20Sopenharmony_ci string 7328c2ecf20Sopenharmony_ci default "bic" if DEFAULT_BIC 7338c2ecf20Sopenharmony_ci default "cubic" if DEFAULT_CUBIC 7348c2ecf20Sopenharmony_ci default "htcp" if DEFAULT_HTCP 7358c2ecf20Sopenharmony_ci default "hybla" if DEFAULT_HYBLA 7368c2ecf20Sopenharmony_ci default "vegas" if DEFAULT_VEGAS 7378c2ecf20Sopenharmony_ci default "westwood" if DEFAULT_WESTWOOD 7388c2ecf20Sopenharmony_ci default "veno" if DEFAULT_VENO 7398c2ecf20Sopenharmony_ci default "reno" if DEFAULT_RENO 7408c2ecf20Sopenharmony_ci default "dctcp" if DEFAULT_DCTCP 7418c2ecf20Sopenharmony_ci default "cdg" if DEFAULT_CDG 7428c2ecf20Sopenharmony_ci default "bbr" if DEFAULT_BBR 7438c2ecf20Sopenharmony_ci default "cubic" 7448c2ecf20Sopenharmony_ci 7458c2ecf20Sopenharmony_ciconfig TCP_MD5SIG 7468c2ecf20Sopenharmony_ci bool "TCP: MD5 Signature Option support (RFC2385)" 7478c2ecf20Sopenharmony_ci select CRYPTO 7488c2ecf20Sopenharmony_ci select CRYPTO_MD5 7498c2ecf20Sopenharmony_ci help 7508c2ecf20Sopenharmony_ci RFC2385 specifies a method of giving MD5 protection to TCP sessions. 7518c2ecf20Sopenharmony_ci Its main (only?) use is to protect BGP sessions between core routers 7528c2ecf20Sopenharmony_ci on the Internet. 7538c2ecf20Sopenharmony_ci 7548c2ecf20Sopenharmony_ci If unsure, say N. 755