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