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