linux/net/Kconfig
<<
>>
Prefs
   1#
   2# Network configuration
   3#
   4
   5menuconfig NET
   6        bool "Networking support"
   7        select NLATTR
   8        select BPF
   9        ---help---
  10          Unless you really know what you are doing, you should say Y here.
  11          The reason is that some programs need kernel networking support even
  12          when running on a stand-alone machine that isn't connected to any
  13          other computer.
  14          
  15          If you are upgrading from an older kernel, you
  16          should consider updating your networking tools too because changes
  17          in the kernel and the tools often go hand in hand. The tools are
  18          contained in the package net-tools, the location and version number
  19          of which are given in <file:Documentation/Changes>.
  20
  21          For a general introduction to Linux networking, it is highly
  22          recommended to read the NET-HOWTO, available from
  23          <http://www.tldp.org/docs.html#howto>.
  24
  25if NET
  26
  27config WANT_COMPAT_NETLINK_MESSAGES
  28        bool
  29        help
  30          This option can be selected by other options that need compat
  31          netlink messages.
  32
  33config COMPAT_NETLINK_MESSAGES
  34        def_bool y
  35        depends on COMPAT
  36        depends on WEXT_CORE || WANT_COMPAT_NETLINK_MESSAGES
  37        help
  38          This option makes it possible to send different netlink messages
  39          to tasks depending on whether the task is a compat task or not. To
  40          achieve this, you need to set skb_shinfo(skb)->frag_list to the
  41          compat skb before sending the skb, the netlink code will sort out
  42          which message to actually pass to the task.
  43
  44          Newly written code should NEVER need this option but do
  45          compat-independent messages instead!
  46
  47config NET_INGRESS
  48        bool
  49
  50config NET_EGRESS
  51        bool
  52
  53menu "Networking options"
  54
  55source "net/packet/Kconfig"
  56source "net/unix/Kconfig"
  57source "net/xfrm/Kconfig"
  58source "net/iucv/Kconfig"
  59
  60config INET
  61        bool "TCP/IP networking"
  62        select CRYPTO
  63        select CRYPTO_AES
  64        ---help---
  65          These are the protocols used on the Internet and on most local
  66          Ethernets. It is highly recommended to say Y here (this will enlarge
  67          your kernel by about 400 KB), since some programs (e.g. the X window
  68          system) use TCP/IP even if your machine is not connected to any
  69          other computer. You will get the so-called loopback device which
  70          allows you to ping yourself (great fun, that!).
  71
  72          For an excellent introduction to Linux networking, please read the
  73          Linux Networking HOWTO, available from
  74          <http://www.tldp.org/docs.html#howto>.
  75
  76          If you say Y here and also to "/proc file system support" and
  77          "Sysctl support" below, you can change various aspects of the
  78          behavior of the TCP/IP code by writing to the (virtual) files in
  79          /proc/sys/net/ipv4/*; the options are explained in the file
  80          <file:Documentation/networking/ip-sysctl.txt>.
  81
  82          Short answer: say Y.
  83
  84if INET
  85source "net/ipv4/Kconfig"
  86source "net/ipv6/Kconfig"
  87source "net/netlabel/Kconfig"
  88
  89endif # if INET
  90
  91config NETWORK_SECMARK
  92        bool "Security Marking"
  93        help
  94          This enables security marking of network packets, similar
  95          to nfmark, but designated for security purposes.
  96          If you are unsure how to answer this question, answer N.
  97
  98config NETWORK_PHY_TIMESTAMPING
  99        bool "Timestamping in PHY devices"
 100        help
 101          This allows timestamping of network packets by PHYs with
 102          hardware timestamping capabilities. This option adds some
 103          overhead in the transmit and receive paths.
 104
 105          If you are unsure how to answer this question, answer N.
 106
 107menuconfig NETFILTER
 108        bool "Network packet filtering framework (Netfilter)"
 109        ---help---
 110          Netfilter is a framework for filtering and mangling network packets
 111          that pass through your Linux box.
 112
 113          The most common use of packet filtering is to run your Linux box as
 114          a firewall protecting a local network from the Internet. The type of
 115          firewall provided by this kernel support is called a "packet
 116          filter", which means that it can reject individual network packets
 117          based on type, source, destination etc. The other kind of firewall,
 118          a "proxy-based" one, is more secure but more intrusive and more
 119          bothersome to set up; it inspects the network traffic much more
 120          closely, modifies it and has knowledge about the higher level
 121          protocols, which a packet filter lacks. Moreover, proxy-based
 122          firewalls often require changes to the programs running on the local
 123          clients. Proxy-based firewalls don't need support by the kernel, but
 124          they are often combined with a packet filter, which only works if
 125          you say Y here.
 126
 127          You should also say Y here if you intend to use your Linux box as
 128          the gateway to the Internet for a local network of machines without
 129          globally valid IP addresses. This is called "masquerading": if one
 130          of the computers on your local network wants to send something to
 131          the outside, your box can "masquerade" as that computer, i.e. it
 132          forwards the traffic to the intended outside destination, but
 133          modifies the packets to make it look like they came from the
 134          firewall box itself. It works both ways: if the outside host
 135          replies, the Linux box will silently forward the traffic to the
 136          correct local computer. This way, the computers on your local net
 137          are completely invisible to the outside world, even though they can
 138          reach the outside and can receive replies. It is even possible to
 139          run globally visible servers from within a masqueraded local network
 140          using a mechanism called portforwarding. Masquerading is also often
 141          called NAT (Network Address Translation).
 142
 143          Another use of Netfilter is in transparent proxying: if a machine on
 144          the local network tries to connect to an outside host, your Linux
 145          box can transparently forward the traffic to a local server,
 146          typically a caching proxy server.
 147
 148          Yet another use of Netfilter is building a bridging firewall. Using
 149          a bridge with Network packet filtering enabled makes iptables "see"
 150          the bridged traffic. For filtering on the lower network and Ethernet
 151          protocols over the bridge, use ebtables (under bridge netfilter
 152          configuration).
 153
 154          Various modules exist for netfilter which replace the previous
 155          masquerading (ipmasqadm), packet filtering (ipchains), transparent
 156          proxying, and portforwarding mechanisms. Please see
 157          <file:Documentation/Changes> under "iptables" for the location of
 158          these packages.
 159
 160if NETFILTER
 161
 162config NETFILTER_DEBUG
 163        bool "Network packet filtering debugging"
 164        depends on NETFILTER
 165        help
 166          You can say Y here if you want to get additional messages useful in
 167          debugging the netfilter code.
 168
 169config NETFILTER_ADVANCED
 170        bool "Advanced netfilter configuration"
 171        depends on NETFILTER
 172        default y
 173        help
 174          If you say Y here you can select between all the netfilter modules.
 175          If you say N the more unusual ones will not be shown and the
 176          basic ones needed by most people will default to 'M'.
 177
 178          If unsure, say Y.
 179
 180config BRIDGE_NETFILTER
 181        tristate "Bridged IP/ARP packets filtering"
 182        depends on BRIDGE
 183        depends on NETFILTER && INET
 184        depends on NETFILTER_ADVANCED
 185        default m
 186        ---help---
 187          Enabling this option will let arptables resp. iptables see bridged
 188          ARP resp. IP traffic. If you want a bridging firewall, you probably
 189          want this option enabled.
 190          Enabling or disabling this option doesn't enable or disable
 191          ebtables.
 192
 193          If unsure, say N.
 194
 195source "net/netfilter/Kconfig"
 196source "net/ipv4/netfilter/Kconfig"
 197source "net/ipv6/netfilter/Kconfig"
 198source "net/decnet/netfilter/Kconfig"
 199source "net/bridge/netfilter/Kconfig"
 200
 201endif
 202
 203source "net/dccp/Kconfig"
 204source "net/sctp/Kconfig"
 205source "net/rds/Kconfig"
 206source "net/tipc/Kconfig"
 207source "net/atm/Kconfig"
 208source "net/l2tp/Kconfig"
 209source "net/802/Kconfig"
 210source "net/bridge/Kconfig"
 211source "net/dsa/Kconfig"
 212source "net/8021q/Kconfig"
 213source "net/decnet/Kconfig"
 214source "net/llc/Kconfig"
 215source "net/ipx/Kconfig"
 216source "drivers/net/appletalk/Kconfig"
 217source "net/x25/Kconfig"
 218source "net/lapb/Kconfig"
 219source "net/phonet/Kconfig"
 220source "net/6lowpan/Kconfig"
 221source "net/ieee802154/Kconfig"
 222source "net/mac802154/Kconfig"
 223source "net/sched/Kconfig"
 224source "net/dcb/Kconfig"
 225source "net/dns_resolver/Kconfig"
 226source "net/batman-adv/Kconfig"
 227source "net/openvswitch/Kconfig"
 228source "net/vmw_vsock/Kconfig"
 229source "net/netlink/Kconfig"
 230source "net/mpls/Kconfig"
 231source "net/switchdev/Kconfig"
 232
 233config RPS
 234        boolean
 235        depends on SMP && SYSFS && USE_GENERIC_SMP_HELPERS
 236        default y
 237
 238config RFS_ACCEL
 239        boolean
 240        depends on RPS && GENERIC_HARDIRQS
 241        select CPU_RMAP
 242        default y
 243
 244config XPS
 245        boolean
 246        depends on SMP && USE_GENERIC_SMP_HELPERS
 247        default y
 248
 249config NETPRIO_CGROUP
 250        tristate "Network priority cgroup"
 251        depends on CGROUPS
 252        ---help---
 253          Cgroup subsystem for use in assigning processes to network priorities on
 254          a per-interface basis
 255
 256config NET_RX_BUSY_POLL
 257        boolean
 258        default y
 259
 260config BQL
 261        boolean
 262        depends on SYSFS
 263        select DQL
 264        default y
 265
 266config BPF_JIT
 267        bool "enable BPF Just In Time compiler"
 268        depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
 269        depends on MODULES
 270        ---help---
 271          Berkeley Packet Filter filtering capabilities are normally handled
 272          by an interpreter. This option allows kernel to generate a native
 273          code when filter is loaded in memory. This should speedup
 274          packet sniffing (libpcap/tcpdump).
 275
 276          Note, admin should enable this feature changing:
 277          /proc/sys/net/core/bpf_jit_enable
 278          /proc/sys/net/core/bpf_jit_harden (optional)
 279
 280menu "Network testing"
 281
 282config NET_PKTGEN
 283        tristate "Packet Generator (USE WITH CAUTION)"
 284        depends on PROC_FS
 285        ---help---
 286          This module will inject preconfigured packets, at a configurable
 287          rate, out of a given interface.  It is used for network interface
 288          stress testing and performance analysis.  If you don't understand
 289          what was just said, you don't need it: say N.
 290
 291          Documentation on how to use the packet generator can be found
 292          at <file:Documentation/networking/pktgen.txt>.
 293
 294          To compile this code as a module, choose M here: the
 295          module will be called pktgen.
 296
 297config NET_TCPPROBE
 298        tristate "TCP connection probing"
 299        depends on INET && PROC_FS && KPROBES
 300        ---help---
 301        This module allows for capturing the changes to TCP connection
 302        state in response to incoming packets. It is used for debugging
 303        TCP congestion avoidance modules. If you don't understand
 304        what was just said, you don't need it: say N.
 305
 306        Documentation on how to use TCP connection probing can be found
 307        at:
 308        
 309          http://www.linuxfoundation.org/collaborate/workgroups/networking/tcpprobe
 310
 311        To compile this code as a module, choose M here: the
 312        module will be called tcp_probe.
 313
 314config NET_DROP_MONITOR
 315        tristate "Network packet drop alerting service"
 316        depends on INET && TRACEPOINTS
 317        ---help---
 318        This feature provides an alerting service to userspace in the
 319        event that packets are discarded in the network stack.  Alerts
 320        are broadcast via netlink socket to any listening user space
 321        process.  If you don't need network drop alerts, or if you are ok
 322        just checking the various proc files and other utilities for
 323        drop statistics, say N here.
 324
 325endmenu
 326
 327endmenu
 328
 329source "net/ax25/Kconfig"
 330source "net/can/Kconfig"
 331source "net/irda/Kconfig"
 332source "net/bluetooth/Kconfig"
 333source "net/rxrpc/Kconfig"
 334
 335config FIB_RULES
 336        bool
 337
 338menuconfig WIRELESS
 339        bool "Wireless"
 340        depends on !S390
 341        default y
 342
 343if WIRELESS
 344
 345source "net/wireless/Kconfig"
 346source "net/mac80211/Kconfig"
 347
 348endif # WIRELESS
 349
 350source "net/wimax/Kconfig"
 351
 352source "net/rfkill/Kconfig"
 353source "net/9p/Kconfig"
 354source "net/caif/Kconfig"
 355source "net/ceph/Kconfig"
 356source "net/nfc/Kconfig"
 357source "net/psample/Kconfig"
 358source "net/ife/Kconfig"
 359
 360config LWTUNNEL
 361        bool "Network light weight tunnels"
 362        ---help---
 363          This feature provides an infrastructure to support light weight
 364          tunnels like mpls. There is no netdevice associated with a light
 365          weight tunnel endpoint. Tunnel encapsulation parameters are stored
 366          with light weight tunnel state associated with fib routes.
 367
 368config DST_CACHE
 369        bool
 370        default n
 371
 372config NET_DEVLINK
 373        tristate "Network physical/parent device Netlink interface"
 374        help
 375          Network physical/parent device Netlink interface provides
 376          infrastructure to support access to physical chip-wide config and
 377          monitoring.
 378
 379config MAY_USE_DEVLINK
 380        tristate
 381        default m if NET_DEVLINK=m
 382        default y if NET_DEVLINK=y || NET_DEVLINK=n
 383        help
 384          Drivers using the devlink infrastructure should have a dependency
 385          on MAY_USE_DEVLINK to ensure they do not cause link errors when
 386          devlink is a loadable module and the driver using it is built-in.
 387
 388endif   # if NET
 389
 390# Used by archs to tell that they support BPF JIT compiler plus which flavour.
 391# Only one of the two can be selected for a specific arch since eBPF JIT supersedes
 392# the cBPF JIT.
 393
 394# Classic BPF JIT (cBPF)
 395config HAVE_CBPF_JIT
 396        bool
 397
 398# Extended BPF JIT (eBPF)
 399config HAVE_EBPF_JIT
 400        bool
 401