linux/net/ipv4/Kconfig
<<
>>
Prefs
   1#
   2# IP configuration
   3#
   4config IP_MULTICAST
   5        bool "IP: multicasting"
   6        help
   7          This is code for addressing several networked computers at once,
   8          enlarging your kernel by about 2 KB. You need multicasting if you
   9          intend to participate in the MBONE, a high bandwidth network on top
  10          of the Internet which carries audio and video broadcasts. More
  11          information about the MBONE is on the WWW at
  12          <http://www.savetz.com/mbone/>. Information about the multicast
  13          capabilities of the various network cards is contained in
  14          <file:Documentation/networking/multicast.txt>. For most people, it's
  15          safe to say N.
  16
  17config IP_ADVANCED_ROUTER
  18        bool "IP: advanced router"
  19        ---help---
  20          If you intend to run your Linux box mostly as a router, i.e. as a
  21          computer that forwards and redistributes network packets, say Y; you
  22          will then be presented with several options that allow more precise
  23          control about the routing process.
  24
  25          The answer to this question won't directly affect the kernel:
  26          answering N will just cause the configurator to skip all the
  27          questions about advanced routing.
  28
  29          Note that your box can only act as a router if you enable IP
  30          forwarding in your kernel; you can do that by saying Y to "/proc
  31          file system support" and "Sysctl support" below and executing the
  32          line
  33
  34          echo "1" > /proc/sys/net/ipv4/ip_forward
  35
  36          at boot time after the /proc file system has been mounted.
  37
  38          If you turn on IP forwarding, you should consider the rp_filter, which
  39          automatically rejects incoming packets if the routing table entry
  40          for their source address doesn't match the network interface they're
  41          arriving on. This has security advantages because it prevents the
  42          so-called IP spoofing, however it can pose problems if you use
  43          asymmetric routing (packets from you to a host take a different path
  44          than packets from that host to you) or if you operate a non-routing
  45          host which has several IP addresses on different interfaces. To turn
  46          rp_filter on use:
  47
  48          echo 1 > /proc/sys/net/ipv4/conf/<device>/rp_filter
  49           or
  50          echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
  51
  52          Note that some distributions enable it in startup scripts.
  53          For details about rp_filter strict and loose mode read
  54          <file:Documentation/networking/ip-sysctl.txt>.
  55
  56          If unsure, say N here.
  57
  58config IP_FIB_TRIE_STATS
  59        bool "FIB TRIE statistics"
  60        depends on IP_ADVANCED_ROUTER
  61        ---help---
  62          Keep track of statistics on structure of FIB TRIE table.
  63          Useful for testing and measuring TRIE performance.
  64
  65config IP_MULTIPLE_TABLES
  66        bool "IP: policy routing"
  67        depends on IP_ADVANCED_ROUTER
  68        select FIB_RULES
  69        ---help---
  70          Normally, a router decides what to do with a received packet based
  71          solely on the packet's final destination address. If you say Y here,
  72          the Linux router will also be able to take the packet's source
  73          address into account. Furthermore, the TOS (Type-Of-Service) field
  74          of the packet can be used for routing decisions as well.
  75
  76          If you are interested in this, please see the preliminary
  77          documentation at <http://www.compendium.com.ar/policy-routing.txt>
  78          and <ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex>.
  79          You will need supporting software from
  80          <ftp://ftp.tux.org/pub/net/ip-routing/>.
  81
  82          If unsure, say N.
  83
  84config IP_ROUTE_MULTIPATH
  85        bool "IP: equal cost multipath"
  86        depends on IP_ADVANCED_ROUTER
  87        help
  88          Normally, the routing tables specify a single action to be taken in
  89          a deterministic manner for a given packet. If you say Y here
  90          however, it becomes possible to attach several actions to a packet
  91          pattern, in effect specifying several alternative paths to travel
  92          for those packets. The router considers all these paths to be of
  93          equal "cost" and chooses one of them in a non-deterministic fashion
  94          if a matching packet arrives.
  95
  96config IP_ROUTE_VERBOSE
  97        bool "IP: verbose route monitoring"
  98        depends on IP_ADVANCED_ROUTER
  99        help
 100          If you say Y here, which is recommended, then the kernel will print
 101          verbose messages regarding the routing, for example warnings about
 102          received packets which look strange and could be evidence of an
 103          attack or a misconfigured system somewhere. The information is
 104          handled by the klogd daemon which is responsible for kernel messages
 105          ("man klogd").
 106
 107config IP_ROUTE_CLASSID
 108        bool
 109
 110config IP_PNP
 111        bool "IP: kernel level autoconfiguration"
 112        help
 113          This enables automatic configuration of IP addresses of devices and
 114          of the routing table during kernel boot, based on either information
 115          supplied on the kernel command line or by BOOTP or RARP protocols.
 116          You need to say Y only for diskless machines requiring network
 117          access to boot (in which case you want to say Y to "Root file system
 118          on NFS" as well), because all other machines configure the network
 119          in their startup scripts.
 120
 121config IP_PNP_DHCP
 122        bool "IP: DHCP support"
 123        depends on IP_PNP
 124        ---help---
 125          If you want your Linux box to mount its whole root file system (the
 126          one containing the directory /) from some other computer over the
 127          net via NFS and you want the IP address of your computer to be
 128          discovered automatically at boot time using the DHCP protocol (a
 129          special protocol designed for doing this job), say Y here. In case
 130          the boot ROM of your network card was designed for booting Linux and
 131          does DHCP itself, providing all necessary information on the kernel
 132          command line, you can say N here.
 133
 134          If unsure, say Y. Note that if you want to use DHCP, a DHCP server
 135          must be operating on your network.  Read
 136          <file:Documentation/filesystems/nfs/nfsroot.txt> for details.
 137
 138config IP_PNP_BOOTP
 139        bool "IP: BOOTP support"
 140        depends on IP_PNP
 141        ---help---
 142          If you want your Linux box to mount its whole root file system (the
 143          one containing the directory /) from some other computer over the
 144          net via NFS and you want the IP address of your computer to be
 145          discovered automatically at boot time using the BOOTP protocol (a
 146          special protocol designed for doing this job), say Y here. In case
 147          the boot ROM of your network card was designed for booting Linux and
 148          does BOOTP itself, providing all necessary information on the kernel
 149          command line, you can say N here. If unsure, say Y. Note that if you
 150          want to use BOOTP, a BOOTP server must be operating on your network.
 151          Read <file:Documentation/filesystems/nfs/nfsroot.txt> for details.
 152
 153config IP_PNP_RARP
 154        bool "IP: RARP support"
 155        depends on IP_PNP
 156        help
 157          If you want your Linux box to mount its whole root file system (the
 158          one containing the directory /) from some other computer over the
 159          net via NFS and you want the IP address of your computer to be
 160          discovered automatically at boot time using the RARP protocol (an
 161          older protocol which is being obsoleted by BOOTP and DHCP), say Y
 162          here. Note that if you want to use RARP, a RARP server must be
 163          operating on your network. Read
 164          <file:Documentation/filesystems/nfs/nfsroot.txt> for details.
 165
 166# not yet ready..
 167#   bool '    IP: ARP support' CONFIG_IP_PNP_ARP
 168config NET_IPIP
 169        tristate "IP: tunneling"
 170        select INET_TUNNEL
 171        ---help---
 172          Tunneling means encapsulating data of one protocol type within
 173          another protocol and sending it over a channel that understands the
 174          encapsulating protocol. This particular tunneling driver implements
 175          encapsulation of IP within IP, which sounds kind of pointless, but
 176          can be useful if you want to make your (or some other) machine
 177          appear on a different network than it physically is, or to use
 178          mobile-IP facilities (allowing laptops to seamlessly move between
 179          networks without changing their IP addresses).
 180
 181          Saying Y to this option will produce two modules ( = code which can
 182          be inserted in and removed from the running kernel whenever you
 183          want). Most people won't need this and can say N.
 184
 185config NET_IPGRE_DEMUX
 186        tristate "IP: GRE demultiplexer"
 187        help
 188         This is helper module to demultiplex GRE packets on GRE version field criteria.
 189         Required by ip_gre and pptp modules.
 190
 191config NET_IPGRE
 192        tristate "IP: GRE tunnels over IP"
 193        depends on (IPV6 || IPV6=n) && NET_IPGRE_DEMUX
 194        help
 195          Tunneling means encapsulating data of one protocol type within
 196          another protocol and sending it over a channel that understands the
 197          encapsulating protocol. This particular tunneling driver implements
 198          GRE (Generic Routing Encapsulation) and at this time allows
 199          encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure.
 200          This driver is useful if the other endpoint is a Cisco router: Cisco
 201          likes GRE much better than the other Linux tunneling driver ("IP
 202          tunneling" above). In addition, GRE allows multicast redistribution
 203          through the tunnel.
 204
 205config NET_IPGRE_BROADCAST
 206        bool "IP: broadcast GRE over IP"
 207        depends on IP_MULTICAST && NET_IPGRE
 208        help
 209          One application of GRE/IP is to construct a broadcast WAN (Wide Area
 210          Network), which looks like a normal Ethernet LAN (Local Area
 211          Network), but can be distributed all over the Internet. If you want
 212          to do that, say Y here and to "IP multicast routing" below.
 213
 214config IP_MROUTE
 215        bool "IP: multicast routing"
 216        depends on IP_MULTICAST
 217        help
 218          This is used if you want your machine to act as a router for IP
 219          packets that have several destination addresses. It is needed on the
 220          MBONE, a high bandwidth network on top of the Internet which carries
 221          audio and video broadcasts. In order to do that, you would most
 222          likely run the program mrouted. Information about the multicast
 223          capabilities of the various network cards is contained in
 224          <file:Documentation/networking/multicast.txt>. If you haven't heard
 225          about it, you don't need it.
 226
 227config IP_MROUTE_MULTIPLE_TABLES
 228        bool "IP: multicast policy routing"
 229        depends on IP_MROUTE && IP_ADVANCED_ROUTER
 230        select FIB_RULES
 231        help
 232          Normally, a multicast router runs a userspace daemon and decides
 233          what to do with a multicast packet based on the source and
 234          destination addresses. If you say Y here, the multicast router
 235          will also be able to take interfaces and packet marks into
 236          account and run multiple instances of userspace daemons
 237          simultaneously, each one handling a single table.
 238
 239          If unsure, say N.
 240
 241config IP_PIMSM_V1
 242        bool "IP: PIM-SM version 1 support"
 243        depends on IP_MROUTE
 244        help
 245          Kernel side support for Sparse Mode PIM (Protocol Independent
 246          Multicast) version 1. This multicast routing protocol is used widely
 247          because Cisco supports it. You need special software to use it
 248          (pimd-v1). Please see <http://netweb.usc.edu/pim/> for more
 249          information about PIM.
 250
 251          Say Y if you want to use PIM-SM v1. Note that you can say N here if
 252          you just want to use Dense Mode PIM.
 253
 254config IP_PIMSM_V2
 255        bool "IP: PIM-SM version 2 support"
 256        depends on IP_MROUTE
 257        help
 258          Kernel side support for Sparse Mode PIM version 2. In order to use
 259          this, you need an experimental routing daemon supporting it (pimd or
 260          gated-5). This routing protocol is not used widely, so say N unless
 261          you want to play with it.
 262
 263config ARPD
 264        bool "IP: ARP daemon support"
 265        ---help---
 266          The kernel maintains an internal cache which maps IP addresses to
 267          hardware addresses on the local network, so that Ethernet/Token Ring/
 268          etc. frames are sent to the proper address on the physical networking
 269          layer. Normally, kernel uses the ARP protocol to resolve these
 270          mappings.
 271
 272          Saying Y here adds support to have an user space daemon to do this
 273          resolution instead. This is useful for implementing an alternate
 274          address resolution protocol (e.g. NHRP on mGRE tunnels) and also for
 275          testing purposes.
 276
 277          If unsure, say N.
 278
 279config SYN_COOKIES
 280        bool "IP: TCP syncookie support"
 281        ---help---
 282          Normal TCP/IP networking is open to an attack known as "SYN
 283          flooding". This denial-of-service attack prevents legitimate remote
 284          users from being able to connect to your computer during an ongoing
 285          attack and requires very little work from the attacker, who can
 286          operate from anywhere on the Internet.
 287
 288          SYN cookies provide protection against this type of attack. If you
 289          say Y here, the TCP/IP stack will use a cryptographic challenge
 290          protocol known as "SYN cookies" to enable legitimate users to
 291          continue to connect, even when your machine is under attack. There
 292          is no need for the legitimate users to change their TCP/IP software;
 293          SYN cookies work transparently to them. For technical information
 294          about SYN cookies, check out <http://cr.yp.to/syncookies.html>.
 295
 296          If you are SYN flooded, the source address reported by the kernel is
 297          likely to have been forged by the attacker; it is only reported as
 298          an aid in tracing the packets to their actual source and should not
 299          be taken as absolute truth.
 300
 301          SYN cookies may prevent correct error reporting on clients when the
 302          server is really overloaded. If this happens frequently better turn
 303          them off.
 304
 305          If you say Y here, you can disable SYN cookies at run time by
 306          saying Y to "/proc file system support" and
 307          "Sysctl support" below and executing the command
 308
 309          echo 0 > /proc/sys/net/ipv4/tcp_syncookies
 310
 311          after the /proc file system has been mounted.
 312
 313          If unsure, say N.
 314
 315config INET_AH
 316        tristate "IP: AH transformation"
 317        select XFRM
 318        select CRYPTO
 319        select CRYPTO_HMAC
 320        select CRYPTO_MD5
 321        select CRYPTO_SHA1
 322        ---help---
 323          Support for IPsec AH.
 324
 325          If unsure, say Y.
 326
 327config INET_ESP
 328        tristate "IP: ESP transformation"
 329        select XFRM
 330        select CRYPTO
 331        select CRYPTO_AUTHENC
 332        select CRYPTO_HMAC
 333        select CRYPTO_MD5
 334        select CRYPTO_CBC
 335        select CRYPTO_SHA1
 336        select CRYPTO_DES
 337        ---help---
 338          Support for IPsec ESP.
 339
 340          If unsure, say Y.
 341
 342config INET_IPCOMP
 343        tristate "IP: IPComp transformation"
 344        select INET_XFRM_TUNNEL
 345        select XFRM_IPCOMP
 346        ---help---
 347          Support for IP Payload Compression Protocol (IPComp) (RFC3173),
 348          typically needed for IPsec.
 349
 350          If unsure, say Y.
 351
 352config INET_XFRM_TUNNEL
 353        tristate
 354        select INET_TUNNEL
 355        default n
 356
 357config INET_TUNNEL
 358        tristate
 359        default n
 360
 361config INET_XFRM_MODE_TRANSPORT
 362        tristate "IP: IPsec transport mode"
 363        default y
 364        select XFRM
 365        ---help---
 366          Support for IPsec transport mode.
 367
 368          If unsure, say Y.
 369
 370config INET_XFRM_MODE_TUNNEL
 371        tristate "IP: IPsec tunnel mode"
 372        default y
 373        select XFRM
 374        ---help---
 375          Support for IPsec tunnel mode.
 376
 377          If unsure, say Y.
 378
 379config INET_XFRM_MODE_BEET
 380        tristate "IP: IPsec BEET mode"
 381        default y
 382        select XFRM
 383        ---help---
 384          Support for IPsec BEET mode.
 385
 386          If unsure, say Y.
 387
 388config INET_LRO
 389        tristate "Large Receive Offload (ipv4/tcp)"
 390        default y
 391        ---help---
 392          Support for Large Receive Offload (ipv4/tcp).
 393
 394          If unsure, say Y.
 395
 396config INET_DIAG
 397        tristate "INET: socket monitoring interface"
 398        default y
 399        ---help---
 400          Support for INET (TCP, DCCP, etc) socket monitoring interface used by
 401          native Linux tools such as ss. ss is included in iproute2, currently
 402          downloadable at:
 403          
 404            http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
 405
 406          If unsure, say Y.
 407
 408config INET_TCP_DIAG
 409        depends on INET_DIAG
 410        def_tristate INET_DIAG
 411
 412menuconfig TCP_CONG_ADVANCED
 413        bool "TCP: advanced congestion control"
 414        ---help---
 415          Support for selection of various TCP congestion control
 416          modules.
 417
 418          Nearly all users can safely say no here, and a safe default
 419          selection will be made (CUBIC with new Reno as a fallback).
 420
 421          If unsure, say N.
 422
 423if TCP_CONG_ADVANCED
 424
 425config TCP_CONG_BIC
 426        tristate "Binary Increase Congestion (BIC) control"
 427        default m
 428        ---help---
 429        BIC-TCP is a sender-side only change that ensures a linear RTT
 430        fairness under large windows while offering both scalability and
 431        bounded TCP-friendliness. The protocol combines two schemes
 432        called additive increase and binary search increase. When the
 433        congestion window is large, additive increase with a large
 434        increment ensures linear RTT fairness as well as good
 435        scalability. Under small congestion windows, binary search
 436        increase provides TCP friendliness.
 437        See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/
 438
 439config TCP_CONG_CUBIC
 440        tristate "CUBIC TCP"
 441        default y
 442        ---help---
 443        This is version 2.0 of BIC-TCP which uses a cubic growth function
 444        among other techniques.
 445        See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf
 446
 447config TCP_CONG_WESTWOOD
 448        tristate "TCP Westwood+"
 449        default m
 450        ---help---
 451        TCP Westwood+ is a sender-side only modification of the TCP Reno
 452        protocol stack that optimizes the performance of TCP congestion
 453        control. It is based on end-to-end bandwidth estimation to set
 454        congestion window and slow start threshold after a congestion
 455        episode. Using this estimation, TCP Westwood+ adaptively sets a
 456        slow start threshold and a congestion window which takes into
 457        account the bandwidth used  at the time congestion is experienced.
 458        TCP Westwood+ significantly increases fairness wrt TCP Reno in
 459        wired networks and throughput over wireless links.
 460
 461config TCP_CONG_HTCP
 462        tristate "H-TCP"
 463        default m
 464        ---help---
 465        H-TCP is a send-side only modifications of the TCP Reno
 466        protocol stack that optimizes the performance of TCP
 467        congestion control for high speed network links. It uses a
 468        modeswitch to change the alpha and beta parameters of TCP Reno
 469        based on network conditions and in a way so as to be fair with
 470        other Reno and H-TCP flows.
 471
 472config TCP_CONG_HSTCP
 473        tristate "High Speed TCP"
 474        depends on EXPERIMENTAL
 475        default n
 476        ---help---
 477        Sally Floyd's High Speed TCP (RFC 3649) congestion control.
 478        A modification to TCP's congestion control mechanism for use
 479        with large congestion windows. A table indicates how much to
 480        increase the congestion window by when an ACK is received.
 481        For more detail see http://www.icir.org/floyd/hstcp.html
 482
 483config TCP_CONG_HYBLA
 484        tristate "TCP-Hybla congestion control algorithm"
 485        depends on EXPERIMENTAL
 486        default n
 487        ---help---
 488        TCP-Hybla is a sender-side only change that eliminates penalization of
 489        long-RTT, large-bandwidth connections, like when satellite legs are
 490        involved, especially when sharing a common bottleneck with normal
 491        terrestrial connections.
 492
 493config TCP_CONG_VEGAS
 494        tristate "TCP Vegas"
 495        depends on EXPERIMENTAL
 496        default n
 497        ---help---
 498        TCP Vegas is a sender-side only change to TCP that anticipates
 499        the onset of congestion by estimating the bandwidth. TCP Vegas
 500        adjusts the sending rate by modifying the congestion
 501        window. TCP Vegas should provide less packet loss, but it is
 502        not as aggressive as TCP Reno.
 503
 504config TCP_CONG_SCALABLE
 505        tristate "Scalable TCP"
 506        depends on EXPERIMENTAL
 507        default n
 508        ---help---
 509        Scalable TCP is a sender-side only change to TCP which uses a
 510        MIMD congestion control algorithm which has some nice scaling
 511        properties, though is known to have fairness issues.
 512        See http://www.deneholme.net/tom/scalable/
 513
 514config TCP_CONG_LP
 515        tristate "TCP Low Priority"
 516        depends on EXPERIMENTAL
 517        default n
 518        ---help---
 519        TCP Low Priority (TCP-LP), a distributed algorithm whose goal is
 520        to utilize only the excess network bandwidth as compared to the
 521        ``fair share`` of bandwidth as targeted by TCP.
 522        See http://www-ece.rice.edu/networks/TCP-LP/
 523
 524config TCP_CONG_VENO
 525        tristate "TCP Veno"
 526        depends on EXPERIMENTAL
 527        default n
 528        ---help---
 529        TCP Veno is a sender-side only enhancement of TCP to obtain better
 530        throughput over wireless networks. TCP Veno makes use of state
 531        distinguishing to circumvent the difficult judgment of the packet loss
 532        type. TCP Veno cuts down less congestion window in response to random
 533        loss packets.
 534        See <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1177186> 
 535
 536config TCP_CONG_YEAH
 537        tristate "YeAH TCP"
 538        depends on EXPERIMENTAL
 539        select TCP_CONG_VEGAS
 540        default n
 541        ---help---
 542        YeAH-TCP is a sender-side high-speed enabled TCP congestion control
 543        algorithm, which uses a mixed loss/delay approach to compute the
 544        congestion window. It's design goals target high efficiency,
 545        internal, RTT and Reno fairness, resilience to link loss while
 546        keeping network elements load as low as possible.
 547
 548        For further details look here:
 549          http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf
 550
 551config TCP_CONG_ILLINOIS
 552        tristate "TCP Illinois"
 553        depends on EXPERIMENTAL
 554        default n
 555        ---help---
 556        TCP-Illinois is a sender-side modification of TCP Reno for
 557        high speed long delay links. It uses round-trip-time to
 558        adjust the alpha and beta parameters to achieve a higher average
 559        throughput and maintain fairness.
 560
 561        For further details see:
 562          http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html
 563
 564choice
 565        prompt "Default TCP congestion control"
 566        default DEFAULT_CUBIC
 567        help
 568          Select the TCP congestion control that will be used by default
 569          for all connections.
 570
 571        config DEFAULT_BIC
 572                bool "Bic" if TCP_CONG_BIC=y
 573
 574        config DEFAULT_CUBIC
 575                bool "Cubic" if TCP_CONG_CUBIC=y
 576
 577        config DEFAULT_HTCP
 578                bool "Htcp" if TCP_CONG_HTCP=y
 579
 580        config DEFAULT_HYBLA
 581                bool "Hybla" if TCP_CONG_HYBLA=y
 582
 583        config DEFAULT_VEGAS
 584                bool "Vegas" if TCP_CONG_VEGAS=y
 585
 586        config DEFAULT_VENO
 587                bool "Veno" if TCP_CONG_VENO=y
 588
 589        config DEFAULT_WESTWOOD
 590                bool "Westwood" if TCP_CONG_WESTWOOD=y
 591
 592        config DEFAULT_RENO
 593                bool "Reno"
 594
 595endchoice
 596
 597endif
 598
 599config TCP_CONG_CUBIC
 600        tristate
 601        depends on !TCP_CONG_ADVANCED
 602        default y
 603
 604config DEFAULT_TCP_CONG
 605        string
 606        default "bic" if DEFAULT_BIC
 607        default "cubic" if DEFAULT_CUBIC
 608        default "htcp" if DEFAULT_HTCP
 609        default "hybla" if DEFAULT_HYBLA
 610        default "vegas" if DEFAULT_VEGAS
 611        default "westwood" if DEFAULT_WESTWOOD
 612        default "veno" if DEFAULT_VENO
 613        default "reno" if DEFAULT_RENO
 614        default "cubic"
 615
 616config TCP_MD5SIG
 617        bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
 618        depends on EXPERIMENTAL
 619        select CRYPTO
 620        select CRYPTO_MD5
 621        ---help---
 622          RFC2385 specifies a method of giving MD5 protection to TCP sessions.
 623          Its main (only?) use is to protect BGP sessions between core routers
 624          on the Internet.
 625
 626          If unsure, say N.
 627
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.