Blame view

net/ipv4/Kconfig 22 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
  #
  # IP configuration
  #
  config IP_MULTICAST
  	bool "IP: multicasting"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
6
7
8
9
10
11
  	help
  	  This is code for addressing several networked computers at once,
  	  enlarging your kernel by about 2 KB. You need multicasting if you
  	  intend to participate in the MBONE, a high bandwidth network on top
  	  of the Internet which carries audio and video broadcasts. More
  	  information about the MBONE is on the WWW at
936bb14ce   Adrian Bunk   correct a dead UR...
12
  	  <http://www.savetz.com/mbone/>. Information about the multicast
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
13
14
15
16
17
18
  	  capabilities of the various network cards is contained in
  	  <file:Documentation/networking/multicast.txt>. For most people, it's
  	  safe to say N.
  
  config IP_ADVANCED_ROUTER
  	bool "IP: advanced router"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  	---help---
  	  If you intend to run your Linux box mostly as a router, i.e. as a
  	  computer that forwards and redistributes network packets, say Y; you
  	  will then be presented with several options that allow more precise
  	  control about the routing process.
  
  	  The answer to this question won't directly affect the kernel:
  	  answering N will just cause the configurator to skip all the
  	  questions about advanced routing.
  
  	  Note that your box can only act as a router if you enable IP
  	  forwarding in your kernel; you can do that by saying Y to "/proc
  	  file system support" and "Sysctl support" below and executing the
  	  line
  
  	  echo "1" > /proc/sys/net/ipv4/ip_forward
  
  	  at boot time after the /proc file system has been mounted.
b2cc46a8e   Jesper Dangaard Brouer   ipv4: Fix rp_filt...
37
  	  If you turn on IP forwarding, you should consider the rp_filter, which
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
38
39
40
41
42
43
44
  	  automatically rejects incoming packets if the routing table entry
  	  for their source address doesn't match the network interface they're
  	  arriving on. This has security advantages because it prevents the
  	  so-called IP spoofing, however it can pose problems if you use
  	  asymmetric routing (packets from you to a host take a different path
  	  than packets from that host to you) or if you operate a non-routing
  	  host which has several IP addresses on different interfaces. To turn
d73943720   Dave Jones   [IPV4]: Correct r...
45
  	  rp_filter on use:
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
46

d73943720   Dave Jones   [IPV4]: Correct r...
47
  	  echo 1 > /proc/sys/net/ipv4/conf/<device>/rp_filter
750e9fad8   Nicolas Dichtel   ipv4: minor fix a...
48
  	   or
d73943720   Dave Jones   [IPV4]: Correct r...
49
  	  echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
50

b2cc46a8e   Jesper Dangaard Brouer   ipv4: Fix rp_filt...
51
  	  Note that some distributions enable it in startup scripts.
d18921a0e   Jesper Dangaard Brouer   Doc: Refer to ip-...
52
53
  	  For details about rp_filter strict and loose mode read
  	  <file:Documentation/networking/ip-sysctl.txt>.
b2cc46a8e   Jesper Dangaard Brouer   ipv4: Fix rp_filt...
54

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55
  	  If unsure, say N here.
a6e8f27f3   Jesper Dangaard Brouer   ipv4: Clean white...
56
  choice
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
57
58
  	prompt "Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure)"
  	depends on IP_ADVANCED_ROUTER
6876f95f2   Adrian Bunk   [IPV4]: fix IP_FI...
59
  	default ASK_IP_FIB_HASH
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
60

6876f95f2   Adrian Bunk   [IPV4]: fix IP_FI...
61
  config ASK_IP_FIB_HASH
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
62
63
  	bool "FIB_HASH"
  	---help---
a6e8f27f3   Jesper Dangaard Brouer   ipv4: Clean white...
64
  	  Current FIB is very proven and good enough for most users.
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
65
66
67
68
  
  config IP_FIB_TRIE
  	bool "FIB_TRIE"
  	---help---
a6e8f27f3   Jesper Dangaard Brouer   ipv4: Clean white...
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
  	  Use new experimental LC-trie as FIB lookup algorithm.
  	  This improves lookup performance if you have a large
  	  number of routes.
  
  	  LC-trie is a longest matching prefix lookup algorithm which
  	  performs better than FIB_HASH for large routing tables.
  	  But, it consumes more memory and is more complex.
  
  	  LC-trie is described in:
  
  	  IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson
  	  IEEE Journal on Selected Areas in Communications, 17(6):1083-1092,
  	  June 1999
  
  	  An experimental study of compression methods for dynamic tries
  	  Stefan Nilsson and Matti Tikkanen. Algorithmica, 33(1):19-33, 2002.
  	  http://www.nada.kth.se/~snilsson/public/papers/dyntrie2/
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
86
  endchoice
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
87
  config IP_FIB_HASH
6876f95f2   Adrian Bunk   [IPV4]: fix IP_FI...
88
  	def_bool ASK_IP_FIB_HASH || !IP_ADVANCED_ROUTER
bb298ca3c   David S. Miller   [IPV4]: Move FIB ...
89

66a2f7fd2   Stephen Hemminger   [IPV4] fib_trie: ...
90
91
92
93
94
95
  config IP_FIB_TRIE_STATS
  	bool "FIB TRIE statistics"
  	depends on IP_FIB_TRIE
  	---help---
  	  Keep track of statistics on structure of FIB TRIE table.
  	  Useful for testing and measuring TRIE performance.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
96
97
98
  config IP_MULTIPLE_TABLES
  	bool "IP: policy routing"
  	depends on IP_ADVANCED_ROUTER
e1ef4bf23   Thomas Graf   [IPV4]: Use Proto...
99
  	select FIB_RULES
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
100
101
102
103
104
105
106
107
108
109
110
111
112
113
  	---help---
  	  Normally, a router decides what to do with a received packet based
  	  solely on the packet's final destination address. If you say Y here,
  	  the Linux router will also be able to take the packet's source
  	  address into account. Furthermore, the TOS (Type-Of-Service) field
  	  of the packet can be used for routing decisions as well.
  
  	  If you are interested in this, please see the preliminary
  	  documentation at <http://www.compendium.com.ar/policy-routing.txt>
  	  and <ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex>.
  	  You will need supporting software from
  	  <ftp://ftp.tux.org/pub/net/ip-routing/>.
  
  	  If unsure, say N.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
114
115
116
117
118
119
120
121
122
123
124
  config IP_ROUTE_MULTIPATH
  	bool "IP: equal cost multipath"
  	depends on IP_ADVANCED_ROUTER
  	help
  	  Normally, the routing tables specify a single action to be taken in
  	  a deterministic manner for a given packet. If you say Y here
  	  however, it becomes possible to attach several actions to a packet
  	  pattern, in effect specifying several alternative paths to travel
  	  for those packets. The router considers all these paths to be of
  	  equal "cost" and chooses one of them in a non-deterministic fashion
  	  if a matching packet arrives.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
125
126
127
128
129
130
131
132
133
134
135
136
137
  config IP_ROUTE_VERBOSE
  	bool "IP: verbose route monitoring"
  	depends on IP_ADVANCED_ROUTER
  	help
  	  If you say Y here, which is recommended, then the kernel will print
  	  verbose messages regarding the routing, for example warnings about
  	  received packets which look strange and could be evidence of an
  	  attack or a misconfigured system somewhere. The information is
  	  handled by the klogd daemon which is responsible for kernel messages
  	  ("man klogd").
  
  config IP_PNP
  	bool "IP: kernel level autoconfiguration"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
  	help
  	  This enables automatic configuration of IP addresses of devices and
  	  of the routing table during kernel boot, based on either information
  	  supplied on the kernel command line or by BOOTP or RARP protocols.
  	  You need to say Y only for diskless machines requiring network
  	  access to boot (in which case you want to say Y to "Root file system
  	  on NFS" as well), because all other machines configure the network
  	  in their startup scripts.
  
  config IP_PNP_DHCP
  	bool "IP: DHCP support"
  	depends on IP_PNP
  	---help---
  	  If you want your Linux box to mount its whole root file system (the
  	  one containing the directory /) from some other computer over the
  	  net via NFS and you want the IP address of your computer to be
  	  discovered automatically at boot time using the DHCP protocol (a
  	  special protocol designed for doing this job), say Y here. In case
  	  the boot ROM of your network card was designed for booting Linux and
  	  does DHCP itself, providing all necessary information on the kernel
  	  command line, you can say N here.
  
  	  If unsure, say Y. Note that if you want to use DHCP, a DHCP server
  	  must be operating on your network.  Read
dc7a08166   J. Bruce Fields   nfs: new subdir D...
162
  	  <file:Documentation/filesystems/nfs/nfsroot.txt> for details.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
163
164
165
166
167
168
169
170
171
172
173
174
175
176
  
  config IP_PNP_BOOTP
  	bool "IP: BOOTP support"
  	depends on IP_PNP
  	---help---
  	  If you want your Linux box to mount its whole root file system (the
  	  one containing the directory /) from some other computer over the
  	  net via NFS and you want the IP address of your computer to be
  	  discovered automatically at boot time using the BOOTP protocol (a
  	  special protocol designed for doing this job), say Y here. In case
  	  the boot ROM of your network card was designed for booting Linux and
  	  does BOOTP itself, providing all necessary information on the kernel
  	  command line, you can say N here. If unsure, say Y. Note that if you
  	  want to use BOOTP, a BOOTP server must be operating on your network.
dc7a08166   J. Bruce Fields   nfs: new subdir D...
177
  	  Read <file:Documentation/filesystems/nfs/nfsroot.txt> for details.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
178
179
180
181
182
183
184
185
186
187
188
  
  config IP_PNP_RARP
  	bool "IP: RARP support"
  	depends on IP_PNP
  	help
  	  If you want your Linux box to mount its whole root file system (the
  	  one containing the directory /) from some other computer over the
  	  net via NFS and you want the IP address of your computer to be
  	  discovered automatically at boot time using the RARP protocol (an
  	  older protocol which is being obsoleted by BOOTP and DHCP), say Y
  	  here. Note that if you want to use RARP, a RARP server must be
6ded55da6   J. Bruce Fields   Documentation: mo...
189
  	  operating on your network. Read
dc7a08166   J. Bruce Fields   nfs: new subdir D...
190
  	  <file:Documentation/filesystems/nfs/nfsroot.txt> for details.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
191
192
  
  # not yet ready..
a6e8f27f3   Jesper Dangaard Brouer   ipv4: Clean white...
193
  #   bool '    IP: ARP support' CONFIG_IP_PNP_ARP
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
194
195
  config NET_IPIP
  	tristate "IP: tunneling"
d2acc3479   Herbert Xu   [INET]: Introduce...
196
  	select INET_TUNNEL
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
  	---help---
  	  Tunneling means encapsulating data of one protocol type within
  	  another protocol and sending it over a channel that understands the
  	  encapsulating protocol. This particular tunneling driver implements
  	  encapsulation of IP within IP, which sounds kind of pointless, but
  	  can be useful if you want to make your (or some other) machine
  	  appear on a different network than it physically is, or to use
  	  mobile-IP facilities (allowing laptops to seamlessly move between
  	  networks without changing their IP addresses).
  
  	  Saying Y to this option will produce two modules ( = code which can
  	  be inserted in and removed from the running kernel whenever you
  	  want). Most people won't need this and can say N.
  
  config NET_IPGRE
  	tristate "IP: GRE tunnels over IP"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
  	help
  	  Tunneling means encapsulating data of one protocol type within
  	  another protocol and sending it over a channel that understands the
  	  encapsulating protocol. This particular tunneling driver implements
  	  GRE (Generic Routing Encapsulation) and at this time allows
  	  encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure.
  	  This driver is useful if the other endpoint is a Cisco router: Cisco
  	  likes GRE much better than the other Linux tunneling driver ("IP
  	  tunneling" above). In addition, GRE allows multicast redistribution
  	  through the tunnel.
  
  config NET_IPGRE_BROADCAST
  	bool "IP: broadcast GRE over IP"
  	depends on IP_MULTICAST && NET_IPGRE
  	help
  	  One application of GRE/IP is to construct a broadcast WAN (Wide Area
  	  Network), which looks like a normal Ethernet LAN (Local Area
  	  Network), but can be distributed all over the Internet. If you want
  	  to do that, say Y here and to "IP multicast routing" below.
  
  config IP_MROUTE
  	bool "IP: multicast routing"
  	depends on IP_MULTICAST
  	help
  	  This is used if you want your machine to act as a router for IP
  	  packets that have several destination addresses. It is needed on the
  	  MBONE, a high bandwidth network on top of the Internet which carries
  	  audio and video broadcasts. In order to do that, you would most
  	  likely run the program mrouted. Information about the multicast
  	  capabilities of the various network cards is contained in
  	  <file:Documentation/networking/multicast.txt>. If you haven't heard
  	  about it, you don't need it.
f0ad0860d   Patrick McHardy   ipv4: ipmr: suppo...
245
246
  config IP_MROUTE_MULTIPLE_TABLES
  	bool "IP: multicast policy routing"
66496d497   Patrick McHardy   ipv4: ipmr: fix I...
247
  	depends on IP_MROUTE && IP_ADVANCED_ROUTER
f0ad0860d   Patrick McHardy   ipv4: ipmr: suppo...
248
249
250
251
252
253
254
255
256
257
  	select FIB_RULES
  	help
  	  Normally, a multicast router runs a userspace daemon and decides
  	  what to do with a multicast packet based on the source and
  	  destination addresses. If you say Y here, the multicast router
  	  will also be able to take interfaces and packet marks into
  	  account and run multiple instances of userspace daemons
  	  simultaneously, each one handling a single table.
  
  	  If unsure, say N.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
  config IP_PIMSM_V1
  	bool "IP: PIM-SM version 1 support"
  	depends on IP_MROUTE
  	help
  	  Kernel side support for Sparse Mode PIM (Protocol Independent
  	  Multicast) version 1. This multicast routing protocol is used widely
  	  because Cisco supports it. You need special software to use it
  	  (pimd-v1). Please see <http://netweb.usc.edu/pim/> for more
  	  information about PIM.
  
  	  Say Y if you want to use PIM-SM v1. Note that you can say N here if
  	  you just want to use Dense Mode PIM.
  
  config IP_PIMSM_V2
  	bool "IP: PIM-SM version 2 support"
  	depends on IP_MROUTE
  	help
  	  Kernel side support for Sparse Mode PIM version 2. In order to use
  	  this, you need an experimental routing daemon supporting it (pimd or
  	  gated-5). This routing protocol is not used widely, so say N unless
  	  you want to play with it.
  
  config ARPD
e61a4b634   Timo Teräs   ipv4: update ARPD...
281
  	bool "IP: ARP daemon support"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
282
  	---help---
e61a4b634   Timo Teräs   ipv4: update ARPD...
283
284
285
286
287
288
289
290
291
292
293
294
  	  The kernel maintains an internal cache which maps IP addresses to
  	  hardware addresses on the local network, so that Ethernet/Token Ring/
  	  etc. frames are sent to the proper address on the physical networking
  	  layer. Normally, kernel uses the ARP protocol to resolve these
  	  mappings.
  
  	  Saying Y here adds support to have an user space daemon to do this
  	  resolution instead. This is useful for implementing an alternate
  	  address resolution protocol (e.g. NHRP on mGRE tunnels) and also for
  	  testing purposes.
  
  	  If unsure, say N.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
295
296
  
  config SYN_COOKIES
57f1553ee   Florian Westphal   syncookies: remov...
297
  	bool "IP: TCP syncookie support"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
  	---help---
  	  Normal TCP/IP networking is open to an attack known as "SYN
  	  flooding". This denial-of-service attack prevents legitimate remote
  	  users from being able to connect to your computer during an ongoing
  	  attack and requires very little work from the attacker, who can
  	  operate from anywhere on the Internet.
  
  	  SYN cookies provide protection against this type of attack. If you
  	  say Y here, the TCP/IP stack will use a cryptographic challenge
  	  protocol known as "SYN cookies" to enable legitimate users to
  	  continue to connect, even when your machine is under attack. There
  	  is no need for the legitimate users to change their TCP/IP software;
  	  SYN cookies work transparently to them. For technical information
  	  about SYN cookies, check out <http://cr.yp.to/syncookies.html>.
  
  	  If you are SYN flooded, the source address reported by the kernel is
  	  likely to have been forged by the attacker; it is only reported as
  	  an aid in tracing the packets to their actual source and should not
  	  be taken as absolute truth.
  
  	  SYN cookies may prevent correct error reporting on clients when the
  	  server is really overloaded. If this happens frequently better turn
  	  them off.
57f1553ee   Florian Westphal   syncookies: remov...
321
322
  	  If you say Y here, you can disable SYN cookies at run time by
  	  saying Y to "/proc file system support" and
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
323
  	  "Sysctl support" below and executing the command
57f1553ee   Florian Westphal   syncookies: remov...
324
  	  echo 0 > /proc/sys/net/ipv4/tcp_syncookies
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
325

57f1553ee   Florian Westphal   syncookies: remov...
326
  	  after the /proc file system has been mounted.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
327
328
329
330
331
  
  	  If unsure, say N.
  
  config INET_AH
  	tristate "IP: AH transformation"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
332
333
334
335
336
337
338
339
340
341
342
343
  	select XFRM
  	select CRYPTO
  	select CRYPTO_HMAC
  	select CRYPTO_MD5
  	select CRYPTO_SHA1
  	---help---
  	  Support for IPsec AH.
  
  	  If unsure, say Y.
  
  config INET_ESP
  	tristate "IP: ESP transformation"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
344
345
  	select XFRM
  	select CRYPTO
ed58dd41f   Herbert Xu   [ESP]: Add select...
346
  	select CRYPTO_AUTHENC
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
347
348
  	select CRYPTO_HMAC
  	select CRYPTO_MD5
6b7326c84   Herbert Xu   [IPSEC] ESP: Use ...
349
  	select CRYPTO_CBC
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
350
351
352
353
354
355
356
357
358
  	select CRYPTO_SHA1
  	select CRYPTO_DES
  	---help---
  	  Support for IPsec ESP.
  
  	  If unsure, say Y.
  
  config INET_IPCOMP
  	tristate "IP: IPComp transformation"
d2acc3479   Herbert Xu   [INET]: Introduce...
359
  	select INET_XFRM_TUNNEL
6fccab671   Herbert Xu   ipsec: ipcomp - M...
360
  	select XFRM_IPCOMP
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
361
362
363
  	---help---
  	  Support for IP Payload Compression Protocol (IPComp) (RFC3173),
  	  typically needed for IPsec.
a6e8f27f3   Jesper Dangaard Brouer   ipv4: Clean white...
364

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
365
  	  If unsure, say Y.
d2acc3479   Herbert Xu   [INET]: Introduce...
366
367
368
369
  config INET_XFRM_TUNNEL
  	tristate
  	select INET_TUNNEL
  	default n
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
370
  config INET_TUNNEL
d2acc3479   Herbert Xu   [INET]: Introduce...
371
372
  	tristate
  	default n
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
373

b59f45d0b   Herbert Xu   [IPSEC] xfrm: Abs...
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
  config INET_XFRM_MODE_TRANSPORT
  	tristate "IP: IPsec transport mode"
  	default y
  	select XFRM
  	---help---
  	  Support for IPsec transport mode.
  
  	  If unsure, say Y.
  
  config INET_XFRM_MODE_TUNNEL
  	tristate "IP: IPsec tunnel mode"
  	default y
  	select XFRM
  	---help---
  	  Support for IPsec tunnel mode.
  
  	  If unsure, say Y.
0a69452cb   Diego Beltrami   [XFRM]: BEET mode
391
392
393
394
395
396
397
398
  config INET_XFRM_MODE_BEET
  	tristate "IP: IPsec BEET mode"
  	default y
  	select XFRM
  	---help---
  	  Support for IPsec BEET mode.
  
  	  If unsure, say Y.
71c87e0ce   Jan-Bernd Themann   [NET]: Generic La...
399
  config INET_LRO
e81963b18   David S. Miller   ipv4: Make INET_L...
400
  	bool "Large Receive Offload (ipv4/tcp)"
bc8a53974   Frans Pop   ipv4: make defaul...
401
  	default y
71c87e0ce   Jan-Bernd Themann   [NET]: Generic La...
402
403
404
405
  	---help---
  	  Support for Large Receive Offload (ipv4/tcp).
  
  	  If unsure, say Y.
17b085eac   Arnaldo Carvalho de Melo   [INET_DIAG]: Move...
406
407
  config INET_DIAG
  	tristate "INET: socket monitoring interface"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
408
409
  	default y
  	---help---
73c1f4a03   Arnaldo Carvalho de Melo   [TCPDIAG]: Just r...
410
411
  	  Support for INET (TCP, DCCP, etc) socket monitoring interface used by
  	  native Linux tools such as ss. ss is included in iproute2, currently
f4b9479dc   Baruch Even   [IPV4]: Correct l...
412
  	  downloadable at <http://linux-net.osdl.org/index.php/Iproute2>.
a6e8f27f3   Jesper Dangaard Brouer   ipv4: Clean white...
413

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
414
  	  If unsure, say Y.
17b085eac   Arnaldo Carvalho de Melo   [INET_DIAG]: Move...
415
416
417
  config INET_TCP_DIAG
  	depends on INET_DIAG
  	def_tristate INET_DIAG
3d2573f7e   Stephen Hemminger   [TCP]: default co...
418
  menuconfig TCP_CONG_ADVANCED
a6484045f   David S. Miller   [TCP]: Do not pre...
419
  	bool "TCP: advanced congestion control"
a6484045f   David S. Miller   [TCP]: Do not pre...
420
421
422
423
424
  	---help---
  	  Support for selection of various TCP congestion control
  	  modules.
  
  	  Nearly all users can safely say no here, and a safe default
597811ec1   Stephen Hemminger   [TCP]: make cubic...
425
  	  selection will be made (CUBIC with new Reno as a fallback).
a6484045f   David S. Miller   [TCP]: Do not pre...
426
427
  
  	  If unsure, say N.
3d2573f7e   Stephen Hemminger   [TCP]: default co...
428
  if TCP_CONG_ADVANCED
83803034f   Stephen Hemminger   [TCP]: Add TCP BI...
429
430
431
  
  config TCP_CONG_BIC
  	tristate "Binary Increase Congestion (BIC) control"
597811ec1   Stephen Hemminger   [TCP]: make cubic...
432
  	default m
83803034f   Stephen Hemminger   [TCP]: Add TCP BI...
433
434
435
436
437
438
439
440
441
442
  	---help---
  	BIC-TCP is a sender-side only change that ensures a linear RTT
  	fairness under large windows while offering both scalability and
  	bounded TCP-friendliness. The protocol combines two schemes
  	called additive increase and binary search increase. When the
  	congestion window is large, additive increase with a large
  	increment ensures linear RTT fairness as well as good
  	scalability. Under small congestion windows, binary search
  	increase provides TCP friendliness.
  	See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/
df3271f33   Stephen Hemminger   [TCP] BIC: CUBIC ...
443
444
  config TCP_CONG_CUBIC
  	tristate "CUBIC TCP"
597811ec1   Stephen Hemminger   [TCP]: make cubic...
445
  	default y
df3271f33   Stephen Hemminger   [TCP] BIC: CUBIC ...
446
447
448
449
  	---help---
  	This is version 2.0 of BIC-TCP which uses a cubic growth function
  	among other techniques.
  	See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf
872707628   Stephen Hemminger   [TCP]: Add TCP We...
450
451
  config TCP_CONG_WESTWOOD
  	tristate "TCP Westwood+"
872707628   Stephen Hemminger   [TCP]: Add TCP We...
452
453
454
455
456
457
458
459
460
461
462
  	default m
  	---help---
  	TCP Westwood+ is a sender-side only modification of the TCP Reno
  	protocol stack that optimizes the performance of TCP congestion
  	control. It is based on end-to-end bandwidth estimation to set
  	congestion window and slow start threshold after a congestion
  	episode. Using this estimation, TCP Westwood+ adaptively sets a
  	slow start threshold and a congestion window which takes into
  	account the bandwidth used  at the time congestion is experienced.
  	TCP Westwood+ significantly increases fairness wrt TCP Reno in
  	wired networks and throughput over wireless links.
a7868ea68   Baruch Even   [TCP]: Add H-TCP ...
463
464
  config TCP_CONG_HTCP
          tristate "H-TCP"
a7868ea68   Baruch Even   [TCP]: Add H-TCP ...
465
466
467
468
469
470
471
472
          default m
  	---help---
  	H-TCP is a send-side only modifications of the TCP Reno
  	protocol stack that optimizes the performance of TCP
  	congestion control for high speed network links. It uses a
  	modeswitch to change the alpha and beta parameters of TCP Reno
  	based on network conditions and in a way so as to be fair with
  	other Reno and H-TCP flows.
a628d29b5   John Heffner   [TCP]: Add High S...
473
474
  config TCP_CONG_HSTCP
  	tristate "High Speed TCP"
6a2e9b738   Sam Ravnborg   [NET]: move confi...
475
  	depends on EXPERIMENTAL
a628d29b5   John Heffner   [TCP]: Add High S...
476
477
478
479
480
481
482
  	default n
  	---help---
  	Sally Floyd's High Speed TCP (RFC 3649) congestion control.
  	A modification to TCP's congestion control mechanism for use
  	with large congestion windows. A table indicates how much to
  	increase the congestion window by when an ACK is received.
   	For more detail	see http://www.icir.org/floyd/hstcp.html
835b3f0c0   Daniele Lacamera   [TCP]: Add TCP Hy...
483
484
  config TCP_CONG_HYBLA
  	tristate "TCP-Hybla congestion control algorithm"
6a2e9b738   Sam Ravnborg   [NET]: move confi...
485
  	depends on EXPERIMENTAL
835b3f0c0   Daniele Lacamera   [TCP]: Add TCP Hy...
486
487
488
489
  	default n
  	---help---
  	TCP-Hybla is a sender-side only change that eliminates penalization of
  	long-RTT, large-bandwidth connections, like when satellite legs are
44c09201a   Matt LaPlante   more misc typo fixes
490
  	involved, especially when sharing a common bottleneck with normal
835b3f0c0   Daniele Lacamera   [TCP]: Add TCP Hy...
491
  	terrestrial connections.
b87d8561d   Stephen Hemminger   [TCP]: Add TCP Ve...
492
493
  config TCP_CONG_VEGAS
  	tristate "TCP Vegas"
6a2e9b738   Sam Ravnborg   [NET]: move confi...
494
  	depends on EXPERIMENTAL
b87d8561d   Stephen Hemminger   [TCP]: Add TCP Ve...
495
496
497
498
499
500
501
  	default n
  	---help---
  	TCP Vegas is a sender-side only change to TCP that anticipates
  	the onset of congestion by estimating the bandwidth. TCP Vegas
  	adjusts the sending rate by modifying the congestion
  	window. TCP Vegas should provide less packet loss, but it is
  	not as aggressive as TCP Reno.
0e57976b6   John Heffner   [TCP]: Add Scalab...
502
503
  config TCP_CONG_SCALABLE
  	tristate "Scalable TCP"
6a2e9b738   Sam Ravnborg   [NET]: move confi...
504
  	depends on EXPERIMENTAL
0e57976b6   John Heffner   [TCP]: Add Scalab...
505
506
507
508
509
  	default n
  	---help---
  	Scalable TCP is a sender-side only change to TCP which uses a
  	MIMD congestion control algorithm which has some nice scaling
  	properties, though is known to have fairness issues.
f4b9479dc   Baruch Even   [IPV4]: Correct l...
510
  	See http://www.deneholme.net/tom/scalable/
a7868ea68   Baruch Even   [TCP]: Add H-TCP ...
511

7c106d7e7   Wong Hoi Sing Edison   [TCP]: TCP Low Pr...
512
513
514
515
516
517
  config TCP_CONG_LP
  	tristate "TCP Low Priority"
  	depends on EXPERIMENTAL
  	default n
  	---help---
  	TCP Low Priority (TCP-LP), a distributed algorithm whose goal is
cab00891c   Matt LaPlante   Still more typo f...
518
  	to utilize only the excess network bandwidth as compared to the
7c106d7e7   Wong Hoi Sing Edison   [TCP]: TCP Low Pr...
519
520
  	``fair share`` of bandwidth as targeted by TCP.
  	See http://www-ece.rice.edu/networks/TCP-LP/
76f101775   Bin Zhou   [TCP]: TCP Veno c...
521
522
523
524
525
526
527
528
529
530
531
  config TCP_CONG_VENO
  	tristate "TCP Veno"
  	depends on EXPERIMENTAL
  	default n
  	---help---
  	TCP Veno is a sender-side only enhancement of TCP to obtain better
  	throughput over wireless networks. TCP Veno makes use of state
  	distinguishing to circumvent the difficult judgment of the packet loss
  	type. TCP Veno cuts down less congestion window in response to random
  	loss packets.
  	See http://www.ntu.edu.sg/home5/ZHOU0022/papers/CPFu03a.pdf
5ef814753   Angelo P. Castellani   [TCP] YeAH-TCP: a...
532
533
534
  config TCP_CONG_YEAH
  	tristate "YeAH TCP"
  	depends on EXPERIMENTAL
2ff011efa   David S. Miller   [TCP]: TCP_CONG_Y...
535
  	select TCP_CONG_VEGAS
5ef814753   Angelo P. Castellani   [TCP] YeAH-TCP: a...
536
537
538
539
540
541
542
543
544
545
  	default n
  	---help---
  	YeAH-TCP is a sender-side high-speed enabled TCP congestion control
  	algorithm, which uses a mixed loss/delay approach to compute the
  	congestion window. It's design goals target high efficiency,
  	internal, RTT and Reno fairness, resilience to link loss while
  	keeping network elements load as low as possible.
  
  	For further details look here:
  	  http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf
c462238d6   Stephen Hemminger   [TCP]: TCP Illino...
546
547
548
549
550
  config TCP_CONG_ILLINOIS
  	tristate "TCP Illinois"
  	depends on EXPERIMENTAL
  	default n
  	---help---
01dd2fbf0   Matt LaPlante   typo fixes
551
  	TCP-Illinois is a sender-side modification of TCP Reno for
c462238d6   Stephen Hemminger   [TCP]: TCP Illino...
552
553
554
555
556
557
  	high speed long delay links. It uses round-trip-time to
  	adjust the alpha and beta parameters to achieve a higher average
  	throughput and maintain fairness.
  
  	For further details see:
  	  http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html
3d2573f7e   Stephen Hemminger   [TCP]: default co...
558
559
  choice
  	prompt "Default TCP congestion control"
597811ec1   Stephen Hemminger   [TCP]: make cubic...
560
  	default DEFAULT_CUBIC
3d2573f7e   Stephen Hemminger   [TCP]: default co...
561
562
563
564
565
566
567
568
569
570
571
572
  	help
  	  Select the TCP congestion control that will be used by default
  	  for all connections.
  
  	config DEFAULT_BIC
  		bool "Bic" if TCP_CONG_BIC=y
  
  	config DEFAULT_CUBIC
  		bool "Cubic" if TCP_CONG_CUBIC=y
  
  	config DEFAULT_HTCP
  		bool "Htcp" if TCP_CONG_HTCP=y
dd2acaa7b   Jan Engelhardt   net: tcp: make hy...
573
574
  	config DEFAULT_HYBLA
  		bool "Hybla" if TCP_CONG_HYBLA=y
3d2573f7e   Stephen Hemminger   [TCP]: default co...
575
576
  	config DEFAULT_VEGAS
  		bool "Vegas" if TCP_CONG_VEGAS=y
6ce1a6df6   Jan Engelhardt   net: tcp: make ve...
577
578
  	config DEFAULT_VENO
  		bool "Veno" if TCP_CONG_VENO=y
3d2573f7e   Stephen Hemminger   [TCP]: default co...
579
580
581
582
583
584
585
586
587
  	config DEFAULT_WESTWOOD
  		bool "Westwood" if TCP_CONG_WESTWOOD=y
  
  	config DEFAULT_RENO
  		bool "Reno"
  
  endchoice
  
  endif
83803034f   Stephen Hemminger   [TCP]: Add TCP BI...
588

597811ec1   Stephen Hemminger   [TCP]: make cubic...
589
  config TCP_CONG_CUBIC
6c3607676   David S. Miller   [IPV4]: Fix think...
590
  	tristate
a6484045f   David S. Miller   [TCP]: Do not pre...
591
592
  	depends on !TCP_CONG_ADVANCED
  	default y
3d2573f7e   Stephen Hemminger   [TCP]: default co...
593
594
595
596
597
  config DEFAULT_TCP_CONG
  	string
  	default "bic" if DEFAULT_BIC
  	default "cubic" if DEFAULT_CUBIC
  	default "htcp" if DEFAULT_HTCP
dd2acaa7b   Jan Engelhardt   net: tcp: make hy...
598
  	default "hybla" if DEFAULT_HYBLA
3d2573f7e   Stephen Hemminger   [TCP]: default co...
599
600
  	default "vegas" if DEFAULT_VEGAS
  	default "westwood" if DEFAULT_WESTWOOD
6ce1a6df6   Jan Engelhardt   net: tcp: make ve...
601
  	default "veno" if DEFAULT_VENO
3d2573f7e   Stephen Hemminger   [TCP]: default co...
602
  	default "reno" if DEFAULT_RENO
597811ec1   Stephen Hemminger   [TCP]: make cubic...
603
  	default "cubic"
3d2573f7e   Stephen Hemminger   [TCP]: default co...
604

cfb6eeb4c   YOSHIFUJI Hideaki   [TCP]: MD5 Signat...
605
606
607
608
609
610
  config TCP_MD5SIG
  	bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
  	depends on EXPERIMENTAL
  	select CRYPTO
  	select CRYPTO_MD5
  	---help---
3dde6ad8f   David Sterba   Fix trivial typos...
611
  	  RFC2385 specifies a method of giving MD5 protection to TCP sessions.
cfb6eeb4c   YOSHIFUJI Hideaki   [TCP]: MD5 Signat...
612
613
614
615
  	  Its main (only?) use is to protect BGP sessions between core routers
  	  on the Internet.
  
  	  If unsure, say N.