xref: /kernel/linux/linux-5.10/drivers/net/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Network device configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenuconfig NETDEVICES
78c2ecf20Sopenharmony_ci	default y if UML
88c2ecf20Sopenharmony_ci	depends on NET
98c2ecf20Sopenharmony_ci	bool "Network device support"
108c2ecf20Sopenharmony_ci	help
118c2ecf20Sopenharmony_ci	  You can say N here if you don't intend to connect your Linux box to
128c2ecf20Sopenharmony_ci	  any other computer at all.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci	  You'll have to say Y if your computer contains a network card that
158c2ecf20Sopenharmony_ci	  you want to use under Linux. If you are going to run SLIP or PPP over
168c2ecf20Sopenharmony_ci	  telephone line or null modem cable you need say Y here. Connecting
178c2ecf20Sopenharmony_ci	  two machines with parallel ports using PLIP needs this, as well as
188c2ecf20Sopenharmony_ci	  AX.25/KISS for sending Internet traffic over amateur radio links.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	  See also "The Linux Network Administrator's Guide" by Olaf Kirch and
218c2ecf20Sopenharmony_ci	  Terry Dawson. Available at <http://www.tldp.org/guides.html>.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	  If unsure, say Y.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci# All the following symbols are dependent on NETDEVICES - do not repeat
268c2ecf20Sopenharmony_ci# that for each of the symbols.
278c2ecf20Sopenharmony_ciif NETDEVICES
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciconfig MII
308c2ecf20Sopenharmony_ci	tristate
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciconfig NET_CORE
338c2ecf20Sopenharmony_ci	default y
348c2ecf20Sopenharmony_ci	bool "Network core driver support"
358c2ecf20Sopenharmony_ci	help
368c2ecf20Sopenharmony_ci	  You can say N here if you do not intend to use any of the
378c2ecf20Sopenharmony_ci	  networking core drivers (i.e. VLAN, bridging, bonding, etc.)
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciif NET_CORE
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciconfig BONDING
428c2ecf20Sopenharmony_ci	tristate "Bonding driver support"
438c2ecf20Sopenharmony_ci	depends on INET
448c2ecf20Sopenharmony_ci	depends on IPV6 || IPV6=n
458c2ecf20Sopenharmony_ci	help
468c2ecf20Sopenharmony_ci	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
478c2ecf20Sopenharmony_ci	  Channels together. This is called 'Etherchannel' by Cisco,
488c2ecf20Sopenharmony_ci	  'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	  The driver supports multiple bonding modes to allow for both high
518c2ecf20Sopenharmony_ci	  performance and high availability operation.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci	  Refer to <file:Documentation/networking/bonding.rst> for more
548c2ecf20Sopenharmony_ci	  information.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
578c2ecf20Sopenharmony_ci	  will be called bonding.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciconfig DUMMY
608c2ecf20Sopenharmony_ci	tristate "Dummy net driver support"
618c2ecf20Sopenharmony_ci	help
628c2ecf20Sopenharmony_ci	  This is essentially a bit-bucket device (i.e. traffic you send to
638c2ecf20Sopenharmony_ci	  this device is consigned into oblivion) with a configurable IP
648c2ecf20Sopenharmony_ci	  address. It is most commonly used in order to make your currently
658c2ecf20Sopenharmony_ci	  inactive SLIP address seem like a real address for local programs.
668c2ecf20Sopenharmony_ci	  If you use SLIP or PPP, you might want to say Y here. It won't
678c2ecf20Sopenharmony_ci	  enlarge your kernel. What a deal. Read about it in the Network
688c2ecf20Sopenharmony_ci	  Administrator's Guide, available from
698c2ecf20Sopenharmony_ci	  <http://www.tldp.org/docs.html#guide>.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
728c2ecf20Sopenharmony_ci	  will be called dummy.
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ciconfig WIREGUARD
758c2ecf20Sopenharmony_ci	tristate "WireGuard secure network tunnel"
768c2ecf20Sopenharmony_ci	depends on NET && INET
778c2ecf20Sopenharmony_ci	depends on IPV6 || !IPV6
788c2ecf20Sopenharmony_ci	select NET_UDP_TUNNEL
798c2ecf20Sopenharmony_ci	select DST_CACHE
808c2ecf20Sopenharmony_ci	select CRYPTO
818c2ecf20Sopenharmony_ci	select CRYPTO_LIB_CURVE25519
828c2ecf20Sopenharmony_ci	select CRYPTO_LIB_CHACHA20POLY1305
838c2ecf20Sopenharmony_ci	select CRYPTO_CHACHA20_X86_64 if X86 && 64BIT
848c2ecf20Sopenharmony_ci	select CRYPTO_POLY1305_X86_64 if X86 && 64BIT
858c2ecf20Sopenharmony_ci	select CRYPTO_BLAKE2S_X86 if X86 && 64BIT
868c2ecf20Sopenharmony_ci	select CRYPTO_CURVE25519_X86 if X86 && 64BIT
878c2ecf20Sopenharmony_ci	select ARM_CRYPTO if ARM
888c2ecf20Sopenharmony_ci	select ARM64_CRYPTO if ARM64
898c2ecf20Sopenharmony_ci	select CRYPTO_CHACHA20_NEON if ARM || (ARM64 && KERNEL_MODE_NEON)
908c2ecf20Sopenharmony_ci	select CRYPTO_POLY1305_NEON if ARM64 && KERNEL_MODE_NEON
918c2ecf20Sopenharmony_ci	select CRYPTO_POLY1305_ARM if ARM
928c2ecf20Sopenharmony_ci	select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
938c2ecf20Sopenharmony_ci	select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
948c2ecf20Sopenharmony_ci	select CRYPTO_POLY1305_MIPS if MIPS
958c2ecf20Sopenharmony_ci	help
968c2ecf20Sopenharmony_ci	  WireGuard is a secure, fast, and easy to use replacement for IPSec
978c2ecf20Sopenharmony_ci	  that uses modern cryptography and clever networking tricks. It's
988c2ecf20Sopenharmony_ci	  designed to be fairly general purpose and abstract enough to fit most
998c2ecf20Sopenharmony_ci	  use cases, while at the same time remaining extremely simple to
1008c2ecf20Sopenharmony_ci	  configure. See www.wireguard.com for more info.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci	  It's safe to say Y or M here, as the driver is very lightweight and
1038c2ecf20Sopenharmony_ci	  is only in use when an administrator chooses to add an interface.
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ciconfig WIREGUARD_DEBUG
1068c2ecf20Sopenharmony_ci	bool "Debugging checks and verbose messages"
1078c2ecf20Sopenharmony_ci	depends on WIREGUARD
1088c2ecf20Sopenharmony_ci	help
1098c2ecf20Sopenharmony_ci	  This will write log messages for handshake and other events
1108c2ecf20Sopenharmony_ci	  that occur for a WireGuard interface. It will also perform some
1118c2ecf20Sopenharmony_ci	  extra validation checks and unit tests at various points. This is
1128c2ecf20Sopenharmony_ci	  only useful for debugging.
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci	  Say N here unless you know what you're doing.
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ciconfig EQUALIZER
1178c2ecf20Sopenharmony_ci	tristate "EQL (serial line load balancing) support"
1188c2ecf20Sopenharmony_ci	help
1198c2ecf20Sopenharmony_ci	  If you have two serial connections to some other computer (this
1208c2ecf20Sopenharmony_ci	  usually requires two modems and two telephone lines) and you use
1218c2ecf20Sopenharmony_ci	  SLIP (the protocol for sending Internet traffic over telephone
1228c2ecf20Sopenharmony_ci	  lines) or PPP (a better SLIP) on them, you can make them behave like
1238c2ecf20Sopenharmony_ci	  one double speed connection using this driver.  Naturally, this has
1248c2ecf20Sopenharmony_ci	  to be supported at the other end as well, either with a similar EQL
1258c2ecf20Sopenharmony_ci	  Linux driver or with a Livingston Portmaster 2e.
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci	  Say Y if you want this and read
1288c2ecf20Sopenharmony_ci	  <file:Documentation/networking/eql.rst>.  You may also want to read
1298c2ecf20Sopenharmony_ci	  section 6.2 of the NET-3-HOWTO, available from
1308c2ecf20Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
1338c2ecf20Sopenharmony_ci	  will be called eql.  If unsure, say N.
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ciconfig NET_FC
1368c2ecf20Sopenharmony_ci	bool "Fibre Channel driver support"
1378c2ecf20Sopenharmony_ci	depends on SCSI && PCI
1388c2ecf20Sopenharmony_ci	help
1398c2ecf20Sopenharmony_ci	  Fibre Channel is a high speed serial protocol mainly used to connect
1408c2ecf20Sopenharmony_ci	  large storage devices to the computer; it is compatible with and
1418c2ecf20Sopenharmony_ci	  intended to replace SCSI.
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci	  If you intend to use Fibre Channel, you need to have a Fibre channel
1448c2ecf20Sopenharmony_ci	  adaptor card in your computer; say Y here and to the driver for your
1458c2ecf20Sopenharmony_ci	  adaptor below. You also should have said Y to "SCSI support" and
1468c2ecf20Sopenharmony_ci	  "SCSI generic support".
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciconfig IFB
1498c2ecf20Sopenharmony_ci	tristate "Intermediate Functional Block support"
1508c2ecf20Sopenharmony_ci	depends on NET_ACT_MIRRED || NFT_FWD_NETDEV
1518c2ecf20Sopenharmony_ci	select NET_REDIRECT
1528c2ecf20Sopenharmony_ci	help
1538c2ecf20Sopenharmony_ci	  This is an intermediate driver that allows sharing of
1548c2ecf20Sopenharmony_ci	  resources.
1558c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
1568c2ecf20Sopenharmony_ci	  will be called ifb.  If you want to use more than one ifb
1578c2ecf20Sopenharmony_ci	  device at a time, you need to compile this driver as a module.
1588c2ecf20Sopenharmony_ci	  Instead of 'ifb', the devices will then be called 'ifb0',
1598c2ecf20Sopenharmony_ci	  'ifb1' etc.
1608c2ecf20Sopenharmony_ci	  Look at the iproute2 documentation directory for usage etc
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_cisource "drivers/net/team/Kconfig"
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ciconfig MACVLAN
1658c2ecf20Sopenharmony_ci	tristate "MAC-VLAN support"
1668c2ecf20Sopenharmony_ci	help
1678c2ecf20Sopenharmony_ci	  This allows one to create virtual interfaces that map packets to
1688c2ecf20Sopenharmony_ci	  or from specific MAC addresses to a particular interface.
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci	  Macvlan devices can be added using the "ip" command from the
1718c2ecf20Sopenharmony_ci	  iproute2 package starting with the iproute2-2.6.23 release:
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci	  "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
1768c2ecf20Sopenharmony_ci	  will be called macvlan.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ciconfig MACVTAP
1798c2ecf20Sopenharmony_ci	tristate "MAC-VLAN based tap driver"
1808c2ecf20Sopenharmony_ci	depends on MACVLAN
1818c2ecf20Sopenharmony_ci	depends on INET
1828c2ecf20Sopenharmony_ci	select TAP
1838c2ecf20Sopenharmony_ci	help
1848c2ecf20Sopenharmony_ci	  This adds a specialized tap character device driver that is based
1858c2ecf20Sopenharmony_ci	  on the MAC-VLAN network interface, called macvtap. A macvtap device
1868c2ecf20Sopenharmony_ci	  can be added in the same way as a macvlan device, using 'type
1878c2ecf20Sopenharmony_ci	  macvtap', and then be accessed through the tap user space interface.
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
1908c2ecf20Sopenharmony_ci	  will be called macvtap.
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ciconfig IPVLAN_L3S
1938c2ecf20Sopenharmony_ci	depends on NETFILTER
1948c2ecf20Sopenharmony_ci	depends on IPVLAN
1958c2ecf20Sopenharmony_ci	def_bool y
1968c2ecf20Sopenharmony_ci	select NET_L3_MASTER_DEV
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ciconfig IPVLAN
1998c2ecf20Sopenharmony_ci	tristate "IP-VLAN support"
2008c2ecf20Sopenharmony_ci	depends on INET
2018c2ecf20Sopenharmony_ci	depends on IPV6 || !IPV6
2028c2ecf20Sopenharmony_ci	help
2038c2ecf20Sopenharmony_ci	  This allows one to create virtual devices off of a main interface
2048c2ecf20Sopenharmony_ci	  and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
2058c2ecf20Sopenharmony_ci	  on packets. All interfaces (including the main interface) share L2
2068c2ecf20Sopenharmony_ci	  making it transparent to the connected L2 switch.
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci	  Ipvlan devices can be added using the "ip" command from the
2098c2ecf20Sopenharmony_ci	  iproute2 package starting with the iproute2-3.19 release:
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci	  "ip link add link <main-dev> [ NAME ] type ipvlan"
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2148c2ecf20Sopenharmony_ci	  will be called ipvlan.
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ciconfig IPVTAP
2178c2ecf20Sopenharmony_ci	tristate "IP-VLAN based tap driver"
2188c2ecf20Sopenharmony_ci	depends on IPVLAN
2198c2ecf20Sopenharmony_ci	depends on INET
2208c2ecf20Sopenharmony_ci	select TAP
2218c2ecf20Sopenharmony_ci	help
2228c2ecf20Sopenharmony_ci	  This adds a specialized tap character device driver that is based
2238c2ecf20Sopenharmony_ci	  on the IP-VLAN network interface, called ipvtap. An ipvtap device
2248c2ecf20Sopenharmony_ci	  can be added in the same way as a ipvlan device, using 'type
2258c2ecf20Sopenharmony_ci	  ipvtap', and then be accessed through the tap user space interface.
2268c2ecf20Sopenharmony_ci
2278c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2288c2ecf20Sopenharmony_ci	  will be called ipvtap.
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ciconfig VXLAN
2318c2ecf20Sopenharmony_ci	tristate "Virtual eXtensible Local Area Network (VXLAN)"
2328c2ecf20Sopenharmony_ci	depends on INET
2338c2ecf20Sopenharmony_ci	select NET_UDP_TUNNEL
2348c2ecf20Sopenharmony_ci	select GRO_CELLS
2358c2ecf20Sopenharmony_ci	help
2368c2ecf20Sopenharmony_ci	  This allows one to create vxlan virtual interfaces that provide
2378c2ecf20Sopenharmony_ci	  Layer 2 Networks over Layer 3 Networks. VXLAN is often used
2388c2ecf20Sopenharmony_ci	  to tunnel virtual network infrastructure in virtualized environments.
2398c2ecf20Sopenharmony_ci	  For more information see:
2408c2ecf20Sopenharmony_ci	    http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2438c2ecf20Sopenharmony_ci	  will be called vxlan.
2448c2ecf20Sopenharmony_ci
2458c2ecf20Sopenharmony_ciconfig GENEVE
2468c2ecf20Sopenharmony_ci	tristate "Generic Network Virtualization Encapsulation"
2478c2ecf20Sopenharmony_ci	depends on INET
2488c2ecf20Sopenharmony_ci	depends on IPV6 || !IPV6
2498c2ecf20Sopenharmony_ci	select NET_UDP_TUNNEL
2508c2ecf20Sopenharmony_ci	select GRO_CELLS
2518c2ecf20Sopenharmony_ci	help
2528c2ecf20Sopenharmony_ci	  This allows one to create geneve virtual interfaces that provide
2538c2ecf20Sopenharmony_ci	  Layer 2 Networks over Layer 3 Networks. GENEVE is often used
2548c2ecf20Sopenharmony_ci	  to tunnel virtual network infrastructure in virtualized environments.
2558c2ecf20Sopenharmony_ci	  For more information see:
2568c2ecf20Sopenharmony_ci	    http://tools.ietf.org/html/draft-gross-geneve-02
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2598c2ecf20Sopenharmony_ci	  will be called geneve.
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ciconfig BAREUDP
2628c2ecf20Sopenharmony_ci       tristate "Bare UDP Encapsulation"
2638c2ecf20Sopenharmony_ci       depends on INET
2648c2ecf20Sopenharmony_ci       depends on IPV6 || !IPV6
2658c2ecf20Sopenharmony_ci       select NET_UDP_TUNNEL
2668c2ecf20Sopenharmony_ci       select GRO_CELLS
2678c2ecf20Sopenharmony_ci       help
2688c2ecf20Sopenharmony_ci          This adds a bare UDP tunnel module for tunnelling different
2698c2ecf20Sopenharmony_ci          kinds of traffic like MPLS, IP, etc. inside a UDP tunnel.
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ci          To compile this driver as a module, choose M here: the module
2728c2ecf20Sopenharmony_ci          will be called bareudp.
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ciconfig GTP
2758c2ecf20Sopenharmony_ci	tristate "GPRS Tunneling Protocol datapath (GTP-U)"
2768c2ecf20Sopenharmony_ci	depends on INET
2778c2ecf20Sopenharmony_ci	select NET_UDP_TUNNEL
2788c2ecf20Sopenharmony_ci	help
2798c2ecf20Sopenharmony_ci	  This allows one to create gtp virtual interfaces that provide
2808c2ecf20Sopenharmony_ci	  the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
2818c2ecf20Sopenharmony_ci	  is used to prevent subscribers from accessing mobile carrier core
2828c2ecf20Sopenharmony_ci	  network infrastructure. This driver requires a userspace software that
2838c2ecf20Sopenharmony_ci	  implements the signaling protocol (GTP-C) to update its PDP context
2848c2ecf20Sopenharmony_ci	  base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
2858c2ecf20Sopenharmony_ci	  tunneling protocol is implemented according to the GSM TS 09.60 and
2868c2ecf20Sopenharmony_ci	  3GPP TS 29.060 standards.
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci	  To compile this drivers as a module, choose M here: the module
2898c2ecf20Sopenharmony_ci	  wil be called gtp.
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ciconfig MACSEC
2928c2ecf20Sopenharmony_ci	tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
2938c2ecf20Sopenharmony_ci	select CRYPTO
2948c2ecf20Sopenharmony_ci	select CRYPTO_AES
2958c2ecf20Sopenharmony_ci	select CRYPTO_GCM
2968c2ecf20Sopenharmony_ci	select GRO_CELLS
2978c2ecf20Sopenharmony_ci	help
2988c2ecf20Sopenharmony_ci	   MACsec is an encryption standard for Ethernet.
2998c2ecf20Sopenharmony_ci
3008c2ecf20Sopenharmony_ciconfig NETCONSOLE
3018c2ecf20Sopenharmony_ci	tristate "Network console logging support"
3028c2ecf20Sopenharmony_ci	help
3038c2ecf20Sopenharmony_ci	  If you want to log kernel messages over the network, enable this.
3048c2ecf20Sopenharmony_ci	  See <file:Documentation/networking/netconsole.rst> for details.
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ciconfig NETCONSOLE_DYNAMIC
3078c2ecf20Sopenharmony_ci	bool "Dynamic reconfiguration of logging targets"
3088c2ecf20Sopenharmony_ci	depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
3098c2ecf20Sopenharmony_ci			!(NETCONSOLE=y && CONFIGFS_FS=m)
3108c2ecf20Sopenharmony_ci	help
3118c2ecf20Sopenharmony_ci	  This option enables the ability to dynamically reconfigure target
3128c2ecf20Sopenharmony_ci	  parameters (interface, IP addresses, port numbers, MAC addresses)
3138c2ecf20Sopenharmony_ci	  at runtime through a userspace interface exported using configfs.
3148c2ecf20Sopenharmony_ci	  See <file:Documentation/networking/netconsole.rst> for details.
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ciconfig NETPOLL
3178c2ecf20Sopenharmony_ci	def_bool NETCONSOLE
3188c2ecf20Sopenharmony_ci	select SRCU
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_ciconfig NET_POLL_CONTROLLER
3218c2ecf20Sopenharmony_ci	def_bool NETPOLL
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ciconfig NTB_NETDEV
3248c2ecf20Sopenharmony_ci	tristate "Virtual Ethernet over NTB Transport"
3258c2ecf20Sopenharmony_ci	depends on NTB_TRANSPORT
3268c2ecf20Sopenharmony_ci
3278c2ecf20Sopenharmony_ciconfig RIONET
3288c2ecf20Sopenharmony_ci	tristate "RapidIO Ethernet over messaging driver support"
3298c2ecf20Sopenharmony_ci	depends on RAPIDIO
3308c2ecf20Sopenharmony_ci
3318c2ecf20Sopenharmony_ciconfig RIONET_TX_SIZE
3328c2ecf20Sopenharmony_ci	int "Number of outbound queue entries"
3338c2ecf20Sopenharmony_ci	depends on RIONET
3348c2ecf20Sopenharmony_ci	default "128"
3358c2ecf20Sopenharmony_ci
3368c2ecf20Sopenharmony_ciconfig RIONET_RX_SIZE
3378c2ecf20Sopenharmony_ci	int "Number of inbound queue entries"
3388c2ecf20Sopenharmony_ci	depends on RIONET
3398c2ecf20Sopenharmony_ci	default "128"
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_ciconfig TUN
3428c2ecf20Sopenharmony_ci	tristate "Universal TUN/TAP device driver support"
3438c2ecf20Sopenharmony_ci	depends on INET
3448c2ecf20Sopenharmony_ci	select CRC32
3458c2ecf20Sopenharmony_ci	help
3468c2ecf20Sopenharmony_ci	  TUN/TAP provides packet reception and transmission for user space
3478c2ecf20Sopenharmony_ci	  programs.  It can be viewed as a simple Point-to-Point or Ethernet
3488c2ecf20Sopenharmony_ci	  device, which instead of receiving packets from a physical media,
3498c2ecf20Sopenharmony_ci	  receives them from user space program and instead of sending packets
3508c2ecf20Sopenharmony_ci	  via physical media writes them to the user space program.
3518c2ecf20Sopenharmony_ci
3528c2ecf20Sopenharmony_ci	  When a program opens /dev/net/tun, driver creates and registers
3538c2ecf20Sopenharmony_ci	  corresponding net device tunX or tapX.  After a program closed above
3548c2ecf20Sopenharmony_ci	  devices, driver will automatically delete tunXX or tapXX device and
3558c2ecf20Sopenharmony_ci	  all routes corresponding to it.
3568c2ecf20Sopenharmony_ci
3578c2ecf20Sopenharmony_ci	  Please read <file:Documentation/networking/tuntap.rst> for more
3588c2ecf20Sopenharmony_ci	  information.
3598c2ecf20Sopenharmony_ci
3608c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3618c2ecf20Sopenharmony_ci	  will be called tun.
3628c2ecf20Sopenharmony_ci
3638c2ecf20Sopenharmony_ci	  If you don't know what to use this for, you don't need it.
3648c2ecf20Sopenharmony_ci
3658c2ecf20Sopenharmony_ciconfig TAP
3668c2ecf20Sopenharmony_ci	tristate
3678c2ecf20Sopenharmony_ci	help
3688c2ecf20Sopenharmony_ci	  This option is selected by any driver implementing tap user space
3698c2ecf20Sopenharmony_ci	  interface for a virtual interface to re-use core tap functionality.
3708c2ecf20Sopenharmony_ci
3718c2ecf20Sopenharmony_ciconfig TUN_VNET_CROSS_LE
3728c2ecf20Sopenharmony_ci	bool "Support for cross-endian vnet headers on little-endian kernels"
3738c2ecf20Sopenharmony_ci	default n
3748c2ecf20Sopenharmony_ci	help
3758c2ecf20Sopenharmony_ci	  This option allows TUN/TAP and MACVTAP device drivers in a
3768c2ecf20Sopenharmony_ci	  little-endian kernel to parse vnet headers that come from a
3778c2ecf20Sopenharmony_ci	  big-endian legacy virtio device.
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ci	  Userspace programs can control the feature using the TUNSETVNETBE
3808c2ecf20Sopenharmony_ci	  and TUNGETVNETBE ioctls.
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ci	  Unless you have a little-endian system hosting a big-endian virtual
3838c2ecf20Sopenharmony_ci	  machine with a legacy virtio NIC, you should say N.
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ciconfig VETH
3868c2ecf20Sopenharmony_ci	tristate "Virtual ethernet pair device"
3878c2ecf20Sopenharmony_ci	help
3888c2ecf20Sopenharmony_ci	  This device is a local ethernet tunnel. Devices are created in pairs.
3898c2ecf20Sopenharmony_ci	  When one end receives the packet it appears on its pair and vice
3908c2ecf20Sopenharmony_ci	  versa.
3918c2ecf20Sopenharmony_ci
3928c2ecf20Sopenharmony_ciconfig VIRTIO_NET
3938c2ecf20Sopenharmony_ci	tristate "Virtio network driver"
3948c2ecf20Sopenharmony_ci	depends on VIRTIO
3958c2ecf20Sopenharmony_ci	select NET_FAILOVER
3968c2ecf20Sopenharmony_ci	help
3978c2ecf20Sopenharmony_ci	  This is the virtual network driver for virtio.  It can be used with
3988c2ecf20Sopenharmony_ci	  QEMU based VMMs (like KVM or Xen).  Say Y or M.
3998c2ecf20Sopenharmony_ci
4008c2ecf20Sopenharmony_ciconfig NLMON
4018c2ecf20Sopenharmony_ci	tristate "Virtual netlink monitoring device"
4028c2ecf20Sopenharmony_ci	help
4038c2ecf20Sopenharmony_ci	  This option enables a monitoring net device for netlink skbs. The
4048c2ecf20Sopenharmony_ci	  purpose of this is to analyze netlink messages with packet sockets.
4058c2ecf20Sopenharmony_ci	  Thus applications like tcpdump will be able to see local netlink
4068c2ecf20Sopenharmony_ci	  messages if they tap into the netlink device, record pcaps for further
4078c2ecf20Sopenharmony_ci	  diagnostics, etc. This is mostly intended for developers or support
4088c2ecf20Sopenharmony_ci	  to debug netlink issues. If unsure, say N.
4098c2ecf20Sopenharmony_ci
4108c2ecf20Sopenharmony_ciconfig NET_VRF
4118c2ecf20Sopenharmony_ci	tristate "Virtual Routing and Forwarding (Lite)"
4128c2ecf20Sopenharmony_ci	depends on IP_MULTIPLE_TABLES
4138c2ecf20Sopenharmony_ci	depends on NET_L3_MASTER_DEV
4148c2ecf20Sopenharmony_ci	depends on IPV6 || IPV6=n
4158c2ecf20Sopenharmony_ci	depends on IPV6_MULTIPLE_TABLES || IPV6=n
4168c2ecf20Sopenharmony_ci	help
4178c2ecf20Sopenharmony_ci	  This option enables the support for mapping interfaces into VRF's. The
4188c2ecf20Sopenharmony_ci	  support enables VRF devices.
4198c2ecf20Sopenharmony_ci
4208c2ecf20Sopenharmony_ciconfig VSOCKMON
4218c2ecf20Sopenharmony_ci	tristate "Virtual vsock monitoring device"
4228c2ecf20Sopenharmony_ci	depends on VHOST_VSOCK
4238c2ecf20Sopenharmony_ci	help
4248c2ecf20Sopenharmony_ci	  This option enables a monitoring net device for vsock sockets. It is
4258c2ecf20Sopenharmony_ci	  mostly intended for developers or support to debug vsock issues. If
4268c2ecf20Sopenharmony_ci	  unsure, say N.
4278c2ecf20Sopenharmony_ci
4288c2ecf20Sopenharmony_ciendif # NET_CORE
4298c2ecf20Sopenharmony_ci
4308c2ecf20Sopenharmony_ciconfig SUNGEM_PHY
4318c2ecf20Sopenharmony_ci	tristate
4328c2ecf20Sopenharmony_ci
4338c2ecf20Sopenharmony_cisource "drivers/net/arcnet/Kconfig"
4348c2ecf20Sopenharmony_ci
4358c2ecf20Sopenharmony_cisource "drivers/atm/Kconfig"
4368c2ecf20Sopenharmony_ci
4378c2ecf20Sopenharmony_cisource "drivers/net/caif/Kconfig"
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_cisource "drivers/net/dsa/Kconfig"
4408c2ecf20Sopenharmony_ci
4418c2ecf20Sopenharmony_cisource "drivers/net/ethernet/Kconfig"
4428c2ecf20Sopenharmony_ci
4438c2ecf20Sopenharmony_cisource "drivers/net/fddi/Kconfig"
4448c2ecf20Sopenharmony_ci
4458c2ecf20Sopenharmony_cisource "drivers/net/hippi/Kconfig"
4468c2ecf20Sopenharmony_ci
4478c2ecf20Sopenharmony_cisource "drivers/net/ipa/Kconfig"
4488c2ecf20Sopenharmony_ci
4498c2ecf20Sopenharmony_ciconfig NET_SB1000
4508c2ecf20Sopenharmony_ci	tristate "General Instruments Surfboard 1000"
4518c2ecf20Sopenharmony_ci	depends on PNP
4528c2ecf20Sopenharmony_ci	help
4538c2ecf20Sopenharmony_ci	  This is a driver for the General Instrument (also known as
4548c2ecf20Sopenharmony_ci	  NextLevel) SURFboard 1000 internal
4558c2ecf20Sopenharmony_ci	  cable modem. This is an ISA card which is used by a number of cable
4568c2ecf20Sopenharmony_ci	  TV companies to provide cable modem access. It's a one-way
4578c2ecf20Sopenharmony_ci	  downstream-only cable modem, meaning that your upstream net link is
4588c2ecf20Sopenharmony_ci	  provided by your regular phone modem.
4598c2ecf20Sopenharmony_ci
4608c2ecf20Sopenharmony_ci	  At present this driver only compiles as a module, so say M here if
4618c2ecf20Sopenharmony_ci	  you have this card. The module will be called sb1000. Then read
4628c2ecf20Sopenharmony_ci	  <file:Documentation/networking/device_drivers/cable/sb1000.rst> for
4638c2ecf20Sopenharmony_ci	  information on how to use this module, as it needs special ppp
4648c2ecf20Sopenharmony_ci	  scripts for establishing a connection. Further documentation
4658c2ecf20Sopenharmony_ci	  and the necessary scripts can be found at:
4668c2ecf20Sopenharmony_ci
4678c2ecf20Sopenharmony_ci	  <http://www.jacksonville.net/~fventuri/>
4688c2ecf20Sopenharmony_ci	  <http://home.adelphia.net/~siglercm/sb1000.html>
4698c2ecf20Sopenharmony_ci	  <http://linuxpower.cx/~cable/>
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci	  If you don't have this card, of course say N.
4728c2ecf20Sopenharmony_ci
4738c2ecf20Sopenharmony_cisource "drivers/net/phy/Kconfig"
4748c2ecf20Sopenharmony_ci
4758c2ecf20Sopenharmony_cisource "drivers/net/mdio/Kconfig"
4768c2ecf20Sopenharmony_ci
4778c2ecf20Sopenharmony_cisource "drivers/net/pcs/Kconfig"
4788c2ecf20Sopenharmony_ci
4798c2ecf20Sopenharmony_cisource "drivers/net/plip/Kconfig"
4808c2ecf20Sopenharmony_ci
4818c2ecf20Sopenharmony_cisource "drivers/net/ppp/Kconfig"
4828c2ecf20Sopenharmony_ci
4838c2ecf20Sopenharmony_cisource "drivers/net/slip/Kconfig"
4848c2ecf20Sopenharmony_ci
4858c2ecf20Sopenharmony_cisource "drivers/s390/net/Kconfig"
4868c2ecf20Sopenharmony_ci
4878c2ecf20Sopenharmony_cisource "drivers/net/usb/Kconfig"
4888c2ecf20Sopenharmony_ci
4898c2ecf20Sopenharmony_cisource "drivers/net/wireless/Kconfig"
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_cisource "drivers/net/wimax/Kconfig"
4928c2ecf20Sopenharmony_ci
4938c2ecf20Sopenharmony_cisource "drivers/net/wan/Kconfig"
4948c2ecf20Sopenharmony_ci
4958c2ecf20Sopenharmony_cisource "drivers/net/ieee802154/Kconfig"
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ciconfig XEN_NETDEV_FRONTEND
4988c2ecf20Sopenharmony_ci	tristate "Xen network device frontend driver"
4998c2ecf20Sopenharmony_ci	depends on XEN
5008c2ecf20Sopenharmony_ci	select XEN_XENBUS_FRONTEND
5018c2ecf20Sopenharmony_ci	select PAGE_POOL
5028c2ecf20Sopenharmony_ci	default y
5038c2ecf20Sopenharmony_ci	help
5048c2ecf20Sopenharmony_ci	  This driver provides support for Xen paravirtual network
5058c2ecf20Sopenharmony_ci	  devices exported by a Xen network driver domain (often
5068c2ecf20Sopenharmony_ci	  domain 0).
5078c2ecf20Sopenharmony_ci
5088c2ecf20Sopenharmony_ci	  The corresponding Linux backend driver is enabled by the
5098c2ecf20Sopenharmony_ci	  CONFIG_XEN_NETDEV_BACKEND option.
5108c2ecf20Sopenharmony_ci
5118c2ecf20Sopenharmony_ci	  If you are compiling a kernel for use as Xen guest, you
5128c2ecf20Sopenharmony_ci	  should say Y here. To compile this driver as a module, chose
5138c2ecf20Sopenharmony_ci	  M here: the module will be called xen-netfront.
5148c2ecf20Sopenharmony_ci
5158c2ecf20Sopenharmony_ciconfig XEN_NETDEV_BACKEND
5168c2ecf20Sopenharmony_ci	tristate "Xen backend network device"
5178c2ecf20Sopenharmony_ci	depends on XEN_BACKEND
5188c2ecf20Sopenharmony_ci	help
5198c2ecf20Sopenharmony_ci	  This driver allows the kernel to act as a Xen network driver
5208c2ecf20Sopenharmony_ci	  domain which exports paravirtual network devices to other
5218c2ecf20Sopenharmony_ci	  Xen domains. These devices can be accessed by any operating
5228c2ecf20Sopenharmony_ci	  system that implements a compatible front end.
5238c2ecf20Sopenharmony_ci
5248c2ecf20Sopenharmony_ci	  The corresponding Linux frontend driver is enabled by the
5258c2ecf20Sopenharmony_ci	  CONFIG_XEN_NETDEV_FRONTEND configuration option.
5268c2ecf20Sopenharmony_ci
5278c2ecf20Sopenharmony_ci	  The backend driver presents a standard network device
5288c2ecf20Sopenharmony_ci	  endpoint for each paravirtual network device to the driver
5298c2ecf20Sopenharmony_ci	  domain network stack. These can then be bridged or routed
5308c2ecf20Sopenharmony_ci	  etc in order to provide full network connectivity.
5318c2ecf20Sopenharmony_ci
5328c2ecf20Sopenharmony_ci	  If you are compiling a kernel to run in a Xen network driver
5338c2ecf20Sopenharmony_ci	  domain (often this is domain 0) you should say Y here. To
5348c2ecf20Sopenharmony_ci	  compile this driver as a module, chose M here: the module
5358c2ecf20Sopenharmony_ci	  will be called xen-netback.
5368c2ecf20Sopenharmony_ci
5378c2ecf20Sopenharmony_ciconfig VMXNET3
5388c2ecf20Sopenharmony_ci	tristate "VMware VMXNET3 ethernet driver"
5398c2ecf20Sopenharmony_ci	depends on PCI && INET
5408c2ecf20Sopenharmony_ci	depends on !(PAGE_SIZE_64KB || ARM64_64K_PAGES || \
5418c2ecf20Sopenharmony_ci		     IA64_PAGE_SIZE_64KB || MICROBLAZE_64K_PAGES || \
5428c2ecf20Sopenharmony_ci		     PARISC_PAGE_SIZE_64KB || PPC_64K_PAGES)
5438c2ecf20Sopenharmony_ci	help
5448c2ecf20Sopenharmony_ci	  This driver supports VMware's vmxnet3 virtual ethernet NIC.
5458c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
5468c2ecf20Sopenharmony_ci	  module will be called vmxnet3.
5478c2ecf20Sopenharmony_ci
5488c2ecf20Sopenharmony_ciconfig FUJITSU_ES
5498c2ecf20Sopenharmony_ci	tristate "FUJITSU Extended Socket Network Device driver"
5508c2ecf20Sopenharmony_ci	depends on ACPI
5518c2ecf20Sopenharmony_ci	help
5528c2ecf20Sopenharmony_ci	  This driver provides support for Extended Socket network device
5538c2ecf20Sopenharmony_ci	  on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
5548c2ecf20Sopenharmony_ci
5558c2ecf20Sopenharmony_ciconfig USB4_NET
5568c2ecf20Sopenharmony_ci	tristate "Networking over USB4 and Thunderbolt cables"
5578c2ecf20Sopenharmony_ci	depends on USB4 && INET
5588c2ecf20Sopenharmony_ci	help
5598c2ecf20Sopenharmony_ci	  Select this if you want to create network between two computers
5608c2ecf20Sopenharmony_ci	  over a USB4 and Thunderbolt cables. The driver supports Apple
5618c2ecf20Sopenharmony_ci	  ThunderboltIP protocol and allows communication with any host
5628c2ecf20Sopenharmony_ci	  supporting the same protocol including Windows and macOS.
5638c2ecf20Sopenharmony_ci
5648c2ecf20Sopenharmony_ci	  To compile this driver a module, choose M here. The module will be
5658c2ecf20Sopenharmony_ci	  called thunderbolt-net.
5668c2ecf20Sopenharmony_ci
5678c2ecf20Sopenharmony_cisource "drivers/net/hyperv/Kconfig"
5688c2ecf20Sopenharmony_ci
5698c2ecf20Sopenharmony_ciconfig NETDEVSIM
5708c2ecf20Sopenharmony_ci	tristate "Simulated networking device"
5718c2ecf20Sopenharmony_ci	depends on DEBUG_FS
5728c2ecf20Sopenharmony_ci	depends on INET
5738c2ecf20Sopenharmony_ci	depends on IPV6 || IPV6=n
5748c2ecf20Sopenharmony_ci	select NET_DEVLINK
5758c2ecf20Sopenharmony_ci	help
5768c2ecf20Sopenharmony_ci	  This driver is a developer testing tool and software model that can
5778c2ecf20Sopenharmony_ci	  be used to test various control path networking APIs, especially
5788c2ecf20Sopenharmony_ci	  HW-offload related.
5798c2ecf20Sopenharmony_ci
5808c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
5818c2ecf20Sopenharmony_ci	  will be called netdevsim.
5828c2ecf20Sopenharmony_ci
5838c2ecf20Sopenharmony_ciconfig NET_FAILOVER
5848c2ecf20Sopenharmony_ci	tristate "Failover driver"
5858c2ecf20Sopenharmony_ci	select FAILOVER
5868c2ecf20Sopenharmony_ci	help
5878c2ecf20Sopenharmony_ci	  This provides an automated failover mechanism via APIs to create
5888c2ecf20Sopenharmony_ci	  and destroy a failover master netdev and manages a primary and
5898c2ecf20Sopenharmony_ci	  standby slave netdevs that get registered via the generic failover
5908c2ecf20Sopenharmony_ci	  infrastructure. This can be used by paravirtual drivers to enable
5918c2ecf20Sopenharmony_ci	  an alternate low latency datapath. It also enables live migration of
5928c2ecf20Sopenharmony_ci	  a VM with direct attached VF by failing over to the paravirtual
5938c2ecf20Sopenharmony_ci	  datapath when the VF is unplugged.
5948c2ecf20Sopenharmony_ci
5958c2ecf20Sopenharmony_ciendif # NETDEVICES
596