linux/drivers/net/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2#
   3# Network device configuration
   4#
   5
   6menuconfig NETDEVICES
   7        default y if UML
   8        depends on NET
   9        bool "Network device support"
  10        ---help---
  11          You can say N here if you don't intend to connect your Linux box to
  12          any other computer at all.
  13
  14          You'll have to say Y if your computer contains a network card that
  15          you want to use under Linux. If you are going to run SLIP or PPP over
  16          telephone line or null modem cable you need say Y here. Connecting
  17          two machines with parallel ports using PLIP needs this, as well as
  18          AX.25/KISS for sending Internet traffic over amateur radio links.
  19
  20          See also "The Linux Network Administrator's Guide" by Olaf Kirch and
  21          Terry Dawson. Available at <http://www.tldp.org/guides.html>.
  22
  23          If unsure, say Y.
  24
  25# All the following symbols are dependent on NETDEVICES - do not repeat
  26# that for each of the symbols.
  27if NETDEVICES
  28
  29config MII
  30        tristate
  31
  32config NET_CORE
  33        default y
  34        bool "Network core driver support"
  35        ---help---
  36          You can say N here if you do not intend to use any of the
  37          networking core drivers (i.e. VLAN, bridging, bonding, etc.)
  38
  39if NET_CORE
  40
  41config BONDING
  42        tristate "Bonding driver support"
  43        depends on INET
  44        depends on IPV6 || IPV6=n
  45        ---help---
  46          Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
  47          Channels together. This is called 'Etherchannel' by Cisco,
  48          'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
  49
  50          The driver supports multiple bonding modes to allow for both high
  51          performance and high availability operation.
  52
  53          Refer to <file:Documentation/networking/bonding.txt> for more
  54          information.
  55
  56          To compile this driver as a module, choose M here: the module
  57          will be called bonding.
  58
  59config DUMMY
  60        tristate "Dummy net driver support"
  61        ---help---
  62          This is essentially a bit-bucket device (i.e. traffic you send to
  63          this device is consigned into oblivion) with a configurable IP
  64          address. It is most commonly used in order to make your currently
  65          inactive SLIP address seem like a real address for local programs.
  66          If you use SLIP or PPP, you might want to say Y here. It won't
  67          enlarge your kernel. What a deal. Read about it in the Network
  68          Administrator's Guide, available from
  69          <http://www.tldp.org/docs.html#guide>.
  70
  71          To compile this driver as a module, choose M here: the module
  72          will be called dummy.
  73
  74config EQUALIZER
  75        tristate "EQL (serial line load balancing) support"
  76        ---help---
  77          If you have two serial connections to some other computer (this
  78          usually requires two modems and two telephone lines) and you use
  79          SLIP (the protocol for sending Internet traffic over telephone
  80          lines) or PPP (a better SLIP) on them, you can make them behave like
  81          one double speed connection using this driver.  Naturally, this has
  82          to be supported at the other end as well, either with a similar EQL
  83          Linux driver or with a Livingston Portmaster 2e.
  84
  85          Say Y if you want this and read
  86          <file:Documentation/networking/eql.txt>.  You may also want to read
  87          section 6.2 of the NET-3-HOWTO, available from
  88          <http://www.tldp.org/docs.html#howto>.
  89
  90          To compile this driver as a module, choose M here: the module
  91          will be called eql.  If unsure, say N.
  92
  93config NET_FC
  94        bool "Fibre Channel driver support"
  95        depends on SCSI && PCI
  96        help
  97          Fibre Channel is a high speed serial protocol mainly used to connect
  98          large storage devices to the computer; it is compatible with and
  99          intended to replace SCSI.
 100
 101          If you intend to use Fibre Channel, you need to have a Fibre channel
 102          adaptor card in your computer; say Y here and to the driver for your
 103          adaptor below. You also should have said Y to "SCSI support" and
 104          "SCSI generic support".
 105
 106config IFB
 107        tristate "Intermediate Functional Block support"
 108        depends on NET_CLS_ACT
 109        ---help---
 110          This is an intermediate driver that allows sharing of
 111          resources.
 112          To compile this driver as a module, choose M here: the module
 113          will be called ifb.  If you want to use more than one ifb
 114          device at a time, you need to compile this driver as a module.
 115          Instead of 'ifb', the devices will then be called 'ifb0',
 116          'ifb1' etc.
 117          Look at the iproute2 documentation directory for usage etc
 118
 119source "drivers/net/team/Kconfig"
 120
 121config MACVLAN
 122        tristate "MAC-VLAN support"
 123        ---help---
 124          This allows one to create virtual interfaces that map packets to
 125          or from specific MAC addresses to a particular interface.
 126
 127          Macvlan devices can be added using the "ip" command from the
 128          iproute2 package starting with the iproute2-2.6.23 release:
 129
 130          "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
 131
 132          To compile this driver as a module, choose M here: the module
 133          will be called macvlan.
 134
 135config MACVTAP
 136        tristate "MAC-VLAN based tap driver"
 137        depends on MACVLAN
 138        depends on INET
 139        select TAP
 140        help
 141          This adds a specialized tap character device driver that is based
 142          on the MAC-VLAN network interface, called macvtap. A macvtap device
 143          can be added in the same way as a macvlan device, using 'type
 144          macvtap', and then be accessed through the tap user space interface.
 145
 146          To compile this driver as a module, choose M here: the module
 147          will be called macvtap.
 148
 149config IPVLAN_L3S
 150        depends on NETFILTER
 151        depends on IPVLAN
 152        def_bool y
 153        select NET_L3_MASTER_DEV
 154
 155config IPVLAN
 156    tristate "IP-VLAN support"
 157    depends on INET
 158    depends on IPV6 || !IPV6
 159    ---help---
 160      This allows one to create virtual devices off of a main interface
 161      and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
 162      on packets. All interfaces (including the main interface) share L2
 163      making it transparent to the connected L2 switch.
 164
 165      Ipvlan devices can be added using the "ip" command from the
 166      iproute2 package starting with the iproute2-3.19 release:
 167
 168      "ip link add link <main-dev> [ NAME ] type ipvlan"
 169
 170      To compile this driver as a module, choose M here: the module
 171      will be called ipvlan.
 172
 173config IPVTAP
 174        tristate "IP-VLAN based tap driver"
 175        depends on IPVLAN
 176        depends on INET
 177        select TAP
 178        ---help---
 179          This adds a specialized tap character device driver that is based
 180          on the IP-VLAN network interface, called ipvtap. An ipvtap device
 181          can be added in the same way as a ipvlan device, using 'type
 182          ipvtap', and then be accessed through the tap user space interface.
 183
 184          To compile this driver as a module, choose M here: the module
 185          will be called ipvtap.
 186
 187config VXLAN
 188       tristate "Virtual eXtensible Local Area Network (VXLAN)"
 189       depends on INET
 190       select NET_UDP_TUNNEL
 191       select GRO_CELLS
 192       ---help---
 193          This allows one to create vxlan virtual interfaces that provide
 194          Layer 2 Networks over Layer 3 Networks. VXLAN is often used
 195          to tunnel virtual network infrastructure in virtualized environments.
 196          For more information see:
 197            http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
 198
 199          To compile this driver as a module, choose M here: the module
 200          will be called vxlan.
 201
 202config GENEVE
 203       tristate "Generic Network Virtualization Encapsulation"
 204       depends on INET
 205       depends on IPV6 || !IPV6
 206       select NET_UDP_TUNNEL
 207       select GRO_CELLS
 208       ---help---
 209          This allows one to create geneve virtual interfaces that provide
 210          Layer 2 Networks over Layer 3 Networks. GENEVE is often used
 211          to tunnel virtual network infrastructure in virtualized environments.
 212          For more information see:
 213            http://tools.ietf.org/html/draft-gross-geneve-02
 214
 215          To compile this driver as a module, choose M here: the module
 216          will be called geneve.
 217
 218config GTP
 219        tristate "GPRS Tunneling Protocol datapath (GTP-U)"
 220        depends on INET
 221        select NET_UDP_TUNNEL
 222        ---help---
 223          This allows one to create gtp virtual interfaces that provide
 224          the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
 225          is used to prevent subscribers from accessing mobile carrier core
 226          network infrastructure. This driver requires a userspace software that
 227          implements the signaling protocol (GTP-C) to update its PDP context
 228          base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
 229          tunneling protocol is implemented according to the GSM TS 09.60 and
 230          3GPP TS 29.060 standards.
 231
 232          To compile this drivers as a module, choose M here: the module
 233          wil be called gtp.
 234
 235config MACSEC
 236        tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
 237        select CRYPTO
 238        select CRYPTO_AES
 239        select CRYPTO_GCM
 240        select GRO_CELLS
 241        ---help---
 242           MACsec is an encryption standard for Ethernet.
 243
 244config NETCONSOLE
 245        tristate "Network console logging support"
 246        ---help---
 247        If you want to log kernel messages over the network, enable this.
 248        See <file:Documentation/networking/netconsole.txt> for details.
 249
 250config NETCONSOLE_DYNAMIC
 251        bool "Dynamic reconfiguration of logging targets"
 252        depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
 253                        !(NETCONSOLE=y && CONFIGFS_FS=m)
 254        help
 255          This option enables the ability to dynamically reconfigure target
 256          parameters (interface, IP addresses, port numbers, MAC addresses)
 257          at runtime through a userspace interface exported using configfs.
 258          See <file:Documentation/networking/netconsole.txt> for details.
 259
 260config NETPOLL
 261        def_bool NETCONSOLE
 262        select SRCU
 263
 264config NET_POLL_CONTROLLER
 265        def_bool NETPOLL
 266
 267config NTB_NETDEV
 268        tristate "Virtual Ethernet over NTB Transport"
 269        depends on NTB_TRANSPORT
 270
 271config RIONET
 272        tristate "RapidIO Ethernet over messaging driver support"
 273        depends on RAPIDIO
 274
 275config RIONET_TX_SIZE
 276        int "Number of outbound queue entries"
 277        depends on RIONET
 278        default "128"
 279
 280config RIONET_RX_SIZE
 281        int "Number of inbound queue entries"
 282        depends on RIONET
 283        default "128"
 284
 285config TUN
 286        tristate "Universal TUN/TAP device driver support"
 287        depends on INET
 288        select CRC32
 289        ---help---
 290          TUN/TAP provides packet reception and transmission for user space
 291          programs.  It can be viewed as a simple Point-to-Point or Ethernet
 292          device, which instead of receiving packets from a physical media,
 293          receives them from user space program and instead of sending packets
 294          via physical media writes them to the user space program.
 295
 296          When a program opens /dev/net/tun, driver creates and registers
 297          corresponding net device tunX or tapX.  After a program closed above
 298          devices, driver will automatically delete tunXX or tapXX device and
 299          all routes corresponding to it.
 300
 301          Please read <file:Documentation/networking/tuntap.txt> for more
 302          information.
 303
 304          To compile this driver as a module, choose M here: the module
 305          will be called tun.
 306
 307          If you don't know what to use this for, you don't need it.
 308
 309config TAP
 310        tristate
 311        ---help---
 312          This option is selected by any driver implementing tap user space
 313          interface for a virtual interface to re-use core tap functionality.
 314
 315config TUN_VNET_CROSS_LE
 316        bool "Support for cross-endian vnet headers on little-endian kernels"
 317        default n
 318        ---help---
 319          This option allows TUN/TAP and MACVTAP device drivers in a
 320          little-endian kernel to parse vnet headers that come from a
 321          big-endian legacy virtio device.
 322
 323          Userspace programs can control the feature using the TUNSETVNETBE
 324          and TUNGETVNETBE ioctls.
 325
 326          Unless you have a little-endian system hosting a big-endian virtual
 327          machine with a legacy virtio NIC, you should say N.
 328
 329config VETH
 330        tristate "Virtual ethernet pair device"
 331        ---help---
 332          This device is a local ethernet tunnel. Devices are created in pairs.
 333          When one end receives the packet it appears on its pair and vice
 334          versa.
 335
 336config VIRTIO_NET
 337        tristate "Virtio network driver"
 338        depends on VIRTIO
 339        select NET_FAILOVER
 340        ---help---
 341          This is the virtual network driver for virtio.  It can be used with
 342          QEMU based VMMs (like KVM or Xen).  Say Y or M.
 343
 344config NLMON
 345        tristate "Virtual netlink monitoring device"
 346        ---help---
 347          This option enables a monitoring net device for netlink skbs. The
 348          purpose of this is to analyze netlink messages with packet sockets.
 349          Thus applications like tcpdump will be able to see local netlink
 350          messages if they tap into the netlink device, record pcaps for further
 351          diagnostics, etc. This is mostly intended for developers or support
 352          to debug netlink issues. If unsure, say N.
 353
 354config NET_VRF
 355        tristate "Virtual Routing and Forwarding (Lite)"
 356        depends on IP_MULTIPLE_TABLES
 357        depends on NET_L3_MASTER_DEV
 358        depends on IPV6 || IPV6=n
 359        depends on IPV6_MULTIPLE_TABLES || IPV6=n
 360        ---help---
 361          This option enables the support for mapping interfaces into VRF's. The
 362          support enables VRF devices.
 363
 364config VSOCKMON
 365    tristate "Virtual vsock monitoring device"
 366    depends on VHOST_VSOCK
 367    ---help---
 368     This option enables a monitoring net device for vsock sockets. It is
 369     mostly intended for developers or support to debug vsock issues. If
 370     unsure, say N.
 371
 372endif # NET_CORE
 373
 374config SUNGEM_PHY
 375        tristate
 376
 377source "drivers/net/arcnet/Kconfig"
 378
 379source "drivers/atm/Kconfig"
 380
 381source "drivers/net/caif/Kconfig"
 382
 383source "drivers/net/dsa/Kconfig"
 384
 385source "drivers/net/ethernet/Kconfig"
 386
 387source "drivers/net/fddi/Kconfig"
 388
 389source "drivers/net/hippi/Kconfig"
 390
 391config NET_SB1000
 392        tristate "General Instruments Surfboard 1000"
 393        depends on PNP
 394        ---help---
 395          This is a driver for the General Instrument (also known as
 396          NextLevel) SURFboard 1000 internal
 397          cable modem. This is an ISA card which is used by a number of cable
 398          TV companies to provide cable modem access. It's a one-way
 399          downstream-only cable modem, meaning that your upstream net link is
 400          provided by your regular phone modem.
 401
 402          At present this driver only compiles as a module, so say M here if
 403          you have this card. The module will be called sb1000. Then read
 404          <file:Documentation/networking/device_drivers/sb1000.txt> for
 405          information on how to use this module, as it needs special ppp
 406          scripts for establishing a connection. Further documentation
 407          and the necessary scripts can be found at:
 408
 409          <http://www.jacksonville.net/~fventuri/>
 410          <http://home.adelphia.net/~siglercm/sb1000.html>
 411          <http://linuxpower.cx/~cable/>
 412
 413          If you don't have this card, of course say N.
 414
 415source "drivers/net/phy/Kconfig"
 416
 417source "drivers/net/plip/Kconfig"
 418
 419source "drivers/net/ppp/Kconfig"
 420
 421source "drivers/net/slip/Kconfig"
 422
 423source "drivers/s390/net/Kconfig"
 424
 425source "drivers/net/usb/Kconfig"
 426
 427source "drivers/net/wireless/Kconfig"
 428
 429source "drivers/net/wimax/Kconfig"
 430
 431source "drivers/net/wan/Kconfig"
 432
 433source "drivers/net/ieee802154/Kconfig"
 434
 435config XEN_NETDEV_FRONTEND
 436        tristate "Xen network device frontend driver"
 437        depends on XEN
 438        select XEN_XENBUS_FRONTEND
 439        default y
 440        help
 441          This driver provides support for Xen paravirtual network
 442          devices exported by a Xen network driver domain (often
 443          domain 0).
 444
 445          The corresponding Linux backend driver is enabled by the
 446          CONFIG_XEN_NETDEV_BACKEND option.
 447
 448          If you are compiling a kernel for use as Xen guest, you
 449          should say Y here. To compile this driver as a module, chose
 450          M here: the module will be called xen-netfront.
 451
 452config XEN_NETDEV_BACKEND
 453        tristate "Xen backend network device"
 454        depends on XEN_BACKEND
 455        help
 456          This driver allows the kernel to act as a Xen network driver
 457          domain which exports paravirtual network devices to other
 458          Xen domains. These devices can be accessed by any operating
 459          system that implements a compatible front end.
 460
 461          The corresponding Linux frontend driver is enabled by the
 462          CONFIG_XEN_NETDEV_FRONTEND configuration option.
 463
 464          The backend driver presents a standard network device
 465          endpoint for each paravirtual network device to the driver
 466          domain network stack. These can then be bridged or routed
 467          etc in order to provide full network connectivity.
 468
 469          If you are compiling a kernel to run in a Xen network driver
 470          domain (often this is domain 0) you should say Y here. To
 471          compile this driver as a module, chose M here: the module
 472          will be called xen-netback.
 473
 474config VMXNET3
 475        tristate "VMware VMXNET3 ethernet driver"
 476        depends on PCI && INET
 477        depends on !(PAGE_SIZE_64KB || ARM64_64K_PAGES || \
 478                     IA64_PAGE_SIZE_64KB || MICROBLAZE_64K_PAGES || \
 479                     PARISC_PAGE_SIZE_64KB || PPC_64K_PAGES)
 480        help
 481          This driver supports VMware's vmxnet3 virtual ethernet NIC.
 482          To compile this driver as a module, choose M here: the
 483          module will be called vmxnet3.
 484
 485config FUJITSU_ES
 486        tristate "FUJITSU Extended Socket Network Device driver"
 487        depends on ACPI
 488        help
 489          This driver provides support for Extended Socket network device
 490          on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
 491
 492config THUNDERBOLT_NET
 493        tristate "Networking over Thunderbolt cable"
 494        depends on THUNDERBOLT && INET
 495        help
 496          Select this if you want to create network between two
 497          computers over a Thunderbolt cable. The driver supports Apple
 498          ThunderboltIP protocol and allows communication with any host
 499          supporting the same protocol including Windows and macOS.
 500
 501          To compile this driver a module, choose M here. The module will be
 502          called thunderbolt-net.
 503
 504source "drivers/net/hyperv/Kconfig"
 505
 506config NETDEVSIM
 507        tristate "Simulated networking device"
 508        depends on DEBUG_FS
 509        select NET_DEVLINK
 510        help
 511          This driver is a developer testing tool and software model that can
 512          be used to test various control path networking APIs, especially
 513          HW-offload related.
 514
 515          To compile this driver as a module, choose M here: the module
 516          will be called netdevsim.
 517
 518config NET_FAILOVER
 519        tristate "Failover driver"
 520        select FAILOVER
 521        help
 522          This provides an automated failover mechanism via APIs to create
 523          and destroy a failover master netdev and manages a primary and
 524          standby slave netdevs that get registered via the generic failover
 525          infrastructure. This can be used by paravirtual drivers to enable
 526          an alternate low latency datapath. It also enables live migration of
 527          a VM with direct attached VF by failing over to the paravirtual
 528          datapath when the VF is unplugged.
 529
 530endif # NETDEVICES
 531