diff options
Diffstat (limited to 'net/ipv4/Kconfig')
-rw-r--r-- | net/ipv4/Kconfig | 172 |
1 files changed, 146 insertions, 26 deletions
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig index 567b03b1c349..347083433120 100644 --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig | |||
@@ -1,32 +1,6 @@ | |||
1 | # | 1 | # |
2 | # IP configuration | 2 | # IP configuration |
3 | # | 3 | # |
4 | choice | ||
5 | prompt "Choose IP: FIB lookup" | ||
6 | depends on INET | ||
7 | default IP_FIB_HASH | ||
8 | |||
9 | config IP_FIB_HASH | ||
10 | bool "FIB_HASH" | ||
11 | ---help--- | ||
12 | Current FIB is very proven and good enough for most users. | ||
13 | |||
14 | config IP_FIB_TRIE | ||
15 | bool "FIB_TRIE" | ||
16 | ---help--- | ||
17 | Use new experimental LC-trie as FIB lookup algoritm. | ||
18 | This improves lookup performance | ||
19 | |||
20 | LC-trie is described in: | ||
21 | |||
22 | IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson | ||
23 | IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999 | ||
24 | An experimental study of compression methods for dynamic tries | ||
25 | Stefan Nilsson and Matti Tikkanen. Algorithmica, 33(1):19-33, 2002. | ||
26 | http://www.nada.kth.se/~snilsson/public/papers/dyntrie2/ | ||
27 | |||
28 | endchoice | ||
29 | |||
30 | config IP_MULTICAST | 4 | config IP_MULTICAST |
31 | bool "IP: multicasting" | 5 | bool "IP: multicasting" |
32 | depends on INET | 6 | depends on INET |
@@ -79,6 +53,44 @@ config IP_ADVANCED_ROUTER | |||
79 | 53 | ||
80 | If unsure, say N here. | 54 | If unsure, say N here. |
81 | 55 | ||
56 | choice | ||
57 | prompt "Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure)" | ||
58 | depends on IP_ADVANCED_ROUTER | ||
59 | default IP_FIB_HASH | ||
60 | |||
61 | config IP_FIB_HASH | ||
62 | bool "FIB_HASH" | ||
63 | ---help--- | ||
64 | Current FIB is very proven and good enough for most users. | ||
65 | |||
66 | config IP_FIB_TRIE | ||
67 | bool "FIB_TRIE" | ||
68 | ---help--- | ||
69 | Use new experimental LC-trie as FIB lookup algoritm. | ||
70 | This improves lookup performance if you have a large | ||
71 | number of routes. | ||
72 | |||
73 | LC-trie is a longest matching prefix lookup algorithm which | ||
74 | performs better than FIB_HASH for large routing tables. | ||
75 | But, it consumes more memory and is more complex. | ||
76 | |||
77 | LC-trie is described in: | ||
78 | |||
79 | IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson | ||
80 | IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999 | ||
81 | An experimental study of compression methods for dynamic tries | ||
82 | Stefan Nilsson and Matti Tikkanen. Algorithmica, 33(1):19-33, 2002. | ||
83 | http://www.nada.kth.se/~snilsson/public/papers/dyntrie2/ | ||
84 | |||
85 | endchoice | ||
86 | |||
87 | # If the user does not enable advanced routing, he gets the safe | ||
88 | # default of the fib-hash algorithm. | ||
89 | config IP_FIB_HASH | ||
90 | bool | ||
91 | depends on !IP_ADVANCED_ROUTER | ||
92 | default y | ||
93 | |||
82 | config IP_MULTIPLE_TABLES | 94 | config IP_MULTIPLE_TABLES |
83 | bool "IP: policy routing" | 95 | bool "IP: policy routing" |
84 | depends on IP_ADVANCED_ROUTER | 96 | depends on IP_ADVANCED_ROUTER |
@@ -433,5 +445,113 @@ config IP_TCPDIAG | |||
433 | config IP_TCPDIAG_IPV6 | 445 | config IP_TCPDIAG_IPV6 |
434 | def_bool (IP_TCPDIAG=y && IPV6=y) || (IP_TCPDIAG=m && IPV6) | 446 | def_bool (IP_TCPDIAG=y && IPV6=y) || (IP_TCPDIAG=m && IPV6) |
435 | 447 | ||
448 | config TCP_CONG_ADVANCED | ||
449 | bool "TCP: advanced congestion control" | ||
450 | depends on INET | ||
451 | default y | ||
452 | ---help--- | ||
453 | Support for selection of various TCP congestion control | ||
454 | modules. | ||
455 | |||
456 | Nearly all users can safely say no here, and a safe default | ||
457 | selection will be made (BIC-TCP with new Reno as a fallback). | ||
458 | |||
459 | If unsure, say N. | ||
460 | |||
461 | # TCP Reno is builtin (required as fallback) | ||
462 | menu "TCP congestion control" | ||
463 | depends on TCP_CONG_ADVANCED | ||
464 | |||
465 | config TCP_CONG_BIC | ||
466 | tristate "Binary Increase Congestion (BIC) control" | ||
467 | depends on INET | ||
468 | default y | ||
469 | ---help--- | ||
470 | BIC-TCP is a sender-side only change that ensures a linear RTT | ||
471 | fairness under large windows while offering both scalability and | ||
472 | bounded TCP-friendliness. The protocol combines two schemes | ||
473 | called additive increase and binary search increase. When the | ||
474 | congestion window is large, additive increase with a large | ||
475 | increment ensures linear RTT fairness as well as good | ||
476 | scalability. Under small congestion windows, binary search | ||
477 | increase provides TCP friendliness. | ||
478 | See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ | ||
479 | |||
480 | config TCP_CONG_WESTWOOD | ||
481 | tristate "TCP Westwood+" | ||
482 | depends on INET | ||
483 | default m | ||
484 | ---help--- | ||
485 | TCP Westwood+ is a sender-side only modification of the TCP Reno | ||
486 | protocol stack that optimizes the performance of TCP congestion | ||
487 | control. It is based on end-to-end bandwidth estimation to set | ||
488 | congestion window and slow start threshold after a congestion | ||
489 | episode. Using this estimation, TCP Westwood+ adaptively sets a | ||
490 | slow start threshold and a congestion window which takes into | ||
491 | account the bandwidth used at the time congestion is experienced. | ||
492 | TCP Westwood+ significantly increases fairness wrt TCP Reno in | ||
493 | wired networks and throughput over wireless links. | ||
494 | |||
495 | config TCP_CONG_HTCP | ||
496 | tristate "H-TCP" | ||
497 | depends on INET | ||
498 | default m | ||
499 | ---help--- | ||
500 | H-TCP is a send-side only modifications of the TCP Reno | ||
501 | protocol stack that optimizes the performance of TCP | ||
502 | congestion control for high speed network links. It uses a | ||
503 | modeswitch to change the alpha and beta parameters of TCP Reno | ||
504 | based on network conditions and in a way so as to be fair with | ||
505 | other Reno and H-TCP flows. | ||
506 | |||
507 | config TCP_CONG_HSTCP | ||
508 | tristate "High Speed TCP" | ||
509 | depends on INET && EXPERIMENTAL | ||
510 | default n | ||
511 | ---help--- | ||
512 | Sally Floyd's High Speed TCP (RFC 3649) congestion control. | ||
513 | A modification to TCP's congestion control mechanism for use | ||
514 | with large congestion windows. A table indicates how much to | ||
515 | increase the congestion window by when an ACK is received. | ||
516 | For more detail see http://www.icir.org/floyd/hstcp.html | ||
517 | |||
518 | config TCP_CONG_HYBLA | ||
519 | tristate "TCP-Hybla congestion control algorithm" | ||
520 | depends on INET && EXPERIMENTAL | ||
521 | default n | ||
522 | ---help--- | ||
523 | TCP-Hybla is a sender-side only change that eliminates penalization of | ||
524 | long-RTT, large-bandwidth connections, like when satellite legs are | ||
525 | involved, expecially when sharing a common bottleneck with normal | ||
526 | terrestrial connections. | ||
527 | |||
528 | config TCP_CONG_VEGAS | ||
529 | tristate "TCP Vegas" | ||
530 | depends on INET && EXPERIMENTAL | ||
531 | default n | ||
532 | ---help--- | ||
533 | TCP Vegas is a sender-side only change to TCP that anticipates | ||
534 | the onset of congestion by estimating the bandwidth. TCP Vegas | ||
535 | adjusts the sending rate by modifying the congestion | ||
536 | window. TCP Vegas should provide less packet loss, but it is | ||
537 | not as aggressive as TCP Reno. | ||
538 | |||
539 | config TCP_CONG_SCALABLE | ||
540 | tristate "Scalable TCP" | ||
541 | depends on INET && EXPERIMENTAL | ||
542 | default n | ||
543 | ---help--- | ||
544 | Scalable TCP is a sender-side only change to TCP which uses a | ||
545 | MIMD congestion control algorithm which has some nice scaling | ||
546 | properties, though is known to have fairness issues. | ||
547 | See http://www-lce.eng.cam.ac.uk/~ctk21/scalable/ | ||
548 | |||
549 | endmenu | ||
550 | |||
551 | config TCP_CONG_BIC | ||
552 | boolean | ||
553 | depends on !TCP_CONG_ADVANCED | ||
554 | default y | ||
555 | |||
436 | source "net/ipv4/ipvs/Kconfig" | 556 | source "net/ipv4/ipvs/Kconfig" |
437 | 557 | ||