162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Network device configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig NETDEVICES
762306a36Sopenharmony_ci	default y if UML
862306a36Sopenharmony_ci	depends on NET
962306a36Sopenharmony_ci	bool "Network device support"
1062306a36Sopenharmony_ci	help
1162306a36Sopenharmony_ci	  You can say N here if you don't intend to connect your Linux box to
1262306a36Sopenharmony_ci	  any other computer at all.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	  You'll have to say Y if your computer contains a network card that
1562306a36Sopenharmony_ci	  you want to use under Linux. If you are going to run SLIP or PPP over
1662306a36Sopenharmony_ci	  telephone line or null modem cable you need say Y here. Connecting
1762306a36Sopenharmony_ci	  two machines with parallel ports using PLIP needs this, as well as
1862306a36Sopenharmony_ci	  AX.25/KISS for sending Internet traffic over amateur radio links.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	  See also "The Linux Network Administrator's Guide" by Olaf Kirch and
2162306a36Sopenharmony_ci	  Terry Dawson. Available at <http://www.tldp.org/guides.html>.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  If unsure, say Y.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci# All the following symbols are dependent on NETDEVICES - do not repeat
2662306a36Sopenharmony_ci# that for each of the symbols.
2762306a36Sopenharmony_ciif NETDEVICES
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig MII
3062306a36Sopenharmony_ci	tristate
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig NET_CORE
3362306a36Sopenharmony_ci	default y
3462306a36Sopenharmony_ci	bool "Network core driver support"
3562306a36Sopenharmony_ci	help
3662306a36Sopenharmony_ci	  You can say N here if you do not intend to use any of the
3762306a36Sopenharmony_ci	  networking core drivers (i.e. VLAN, bridging, bonding, etc.)
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciif NET_CORE
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig BONDING
4262306a36Sopenharmony_ci	tristate "Bonding driver support"
4362306a36Sopenharmony_ci	depends on INET
4462306a36Sopenharmony_ci	depends on IPV6 || IPV6=n
4562306a36Sopenharmony_ci	depends on TLS || TLS_DEVICE=n
4662306a36Sopenharmony_ci	help
4762306a36Sopenharmony_ci	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
4862306a36Sopenharmony_ci	  Channels together. This is called 'Etherchannel' by Cisco,
4962306a36Sopenharmony_ci	  'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  The driver supports multiple bonding modes to allow for both high
5262306a36Sopenharmony_ci	  performance and high availability operation.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	  Refer to <file:Documentation/networking/bonding.rst> for more
5562306a36Sopenharmony_ci	  information.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
5862306a36Sopenharmony_ci	  will be called bonding.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig DUMMY
6162306a36Sopenharmony_ci	tristate "Dummy net driver support"
6262306a36Sopenharmony_ci	help
6362306a36Sopenharmony_ci	  This is essentially a bit-bucket device (i.e. traffic you send to
6462306a36Sopenharmony_ci	  this device is consigned into oblivion) with a configurable IP
6562306a36Sopenharmony_ci	  address. It is most commonly used in order to make your currently
6662306a36Sopenharmony_ci	  inactive SLIP address seem like a real address for local programs.
6762306a36Sopenharmony_ci	  If you use SLIP or PPP, you might want to say Y here. It won't
6862306a36Sopenharmony_ci	  enlarge your kernel. What a deal. Read about it in the Network
6962306a36Sopenharmony_ci	  Administrator's Guide, available from
7062306a36Sopenharmony_ci	  <http://www.tldp.org/docs.html#guide>.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
7362306a36Sopenharmony_ci	  will be called dummy.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig WIREGUARD
7662306a36Sopenharmony_ci	tristate "WireGuard secure network tunnel"
7762306a36Sopenharmony_ci	depends on NET && INET
7862306a36Sopenharmony_ci	depends on IPV6 || !IPV6
7962306a36Sopenharmony_ci	depends on !KMSAN # KMSAN doesn't support the crypto configs below
8062306a36Sopenharmony_ci	select NET_UDP_TUNNEL
8162306a36Sopenharmony_ci	select DST_CACHE
8262306a36Sopenharmony_ci	select CRYPTO
8362306a36Sopenharmony_ci	select CRYPTO_LIB_CURVE25519
8462306a36Sopenharmony_ci	select CRYPTO_LIB_CHACHA20POLY1305
8562306a36Sopenharmony_ci	select CRYPTO_CHACHA20_X86_64 if X86 && 64BIT
8662306a36Sopenharmony_ci	select CRYPTO_POLY1305_X86_64 if X86 && 64BIT
8762306a36Sopenharmony_ci	select CRYPTO_BLAKE2S_X86 if X86 && 64BIT
8862306a36Sopenharmony_ci	select CRYPTO_CURVE25519_X86 if X86 && 64BIT
8962306a36Sopenharmony_ci	select CRYPTO_CHACHA20_NEON if ARM || (ARM64 && KERNEL_MODE_NEON)
9062306a36Sopenharmony_ci	select CRYPTO_POLY1305_NEON if ARM64 && KERNEL_MODE_NEON
9162306a36Sopenharmony_ci	select CRYPTO_POLY1305_ARM if ARM
9262306a36Sopenharmony_ci	select CRYPTO_BLAKE2S_ARM if ARM
9362306a36Sopenharmony_ci	select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
9462306a36Sopenharmony_ci	select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
9562306a36Sopenharmony_ci	select CRYPTO_POLY1305_MIPS if MIPS
9662306a36Sopenharmony_ci	select CRYPTO_CHACHA_S390 if S390
9762306a36Sopenharmony_ci	help
9862306a36Sopenharmony_ci	  WireGuard is a secure, fast, and easy to use replacement for IPSec
9962306a36Sopenharmony_ci	  that uses modern cryptography and clever networking tricks. It's
10062306a36Sopenharmony_ci	  designed to be fairly general purpose and abstract enough to fit most
10162306a36Sopenharmony_ci	  use cases, while at the same time remaining extremely simple to
10262306a36Sopenharmony_ci	  configure. See www.wireguard.com for more info.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci	  It's safe to say Y or M here, as the driver is very lightweight and
10562306a36Sopenharmony_ci	  is only in use when an administrator chooses to add an interface.
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ciconfig WIREGUARD_DEBUG
10862306a36Sopenharmony_ci	bool "Debugging checks and verbose messages"
10962306a36Sopenharmony_ci	depends on WIREGUARD
11062306a36Sopenharmony_ci	help
11162306a36Sopenharmony_ci	  This will write log messages for handshake and other events
11262306a36Sopenharmony_ci	  that occur for a WireGuard interface. It will also perform some
11362306a36Sopenharmony_ci	  extra validation checks and unit tests at various points. This is
11462306a36Sopenharmony_ci	  only useful for debugging.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	  Say N here unless you know what you're doing.
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciconfig EQUALIZER
11962306a36Sopenharmony_ci	tristate "EQL (serial line load balancing) support"
12062306a36Sopenharmony_ci	help
12162306a36Sopenharmony_ci	  If you have two serial connections to some other computer (this
12262306a36Sopenharmony_ci	  usually requires two modems and two telephone lines) and you use
12362306a36Sopenharmony_ci	  SLIP (the protocol for sending Internet traffic over telephone
12462306a36Sopenharmony_ci	  lines) or PPP (a better SLIP) on them, you can make them behave like
12562306a36Sopenharmony_ci	  one double speed connection using this driver.  Naturally, this has
12662306a36Sopenharmony_ci	  to be supported at the other end as well, either with a similar EQL
12762306a36Sopenharmony_ci	  Linux driver or with a Livingston Portmaster 2e.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci	  Say Y if you want this and read
13062306a36Sopenharmony_ci	  <file:Documentation/networking/eql.rst>.  You may also want to read
13162306a36Sopenharmony_ci	  section 6.2 of the NET-3-HOWTO, available from
13262306a36Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
13562306a36Sopenharmony_ci	  will be called eql.  If unsure, say N.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciconfig NET_FC
13862306a36Sopenharmony_ci	bool "Fibre Channel driver support"
13962306a36Sopenharmony_ci	depends on SCSI && PCI
14062306a36Sopenharmony_ci	help
14162306a36Sopenharmony_ci	  Fibre Channel is a high speed serial protocol mainly used to connect
14262306a36Sopenharmony_ci	  large storage devices to the computer; it is compatible with and
14362306a36Sopenharmony_ci	  intended to replace SCSI.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci	  If you intend to use Fibre Channel, you need to have a Fibre channel
14662306a36Sopenharmony_ci	  adaptor card in your computer; say Y here and to the driver for your
14762306a36Sopenharmony_ci	  adaptor below. You also should have said Y to "SCSI support" and
14862306a36Sopenharmony_ci	  "SCSI generic support".
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ciconfig IFB
15162306a36Sopenharmony_ci	tristate "Intermediate Functional Block support"
15262306a36Sopenharmony_ci	depends on NET_ACT_MIRRED || NFT_FWD_NETDEV
15362306a36Sopenharmony_ci	select NET_REDIRECT
15462306a36Sopenharmony_ci	help
15562306a36Sopenharmony_ci	  This is an intermediate driver that allows sharing of
15662306a36Sopenharmony_ci	  resources.
15762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
15862306a36Sopenharmony_ci	  will be called ifb.  If you want to use more than one ifb
15962306a36Sopenharmony_ci	  device at a time, you need to compile this driver as a module.
16062306a36Sopenharmony_ci	  Instead of 'ifb', the devices will then be called 'ifb0',
16162306a36Sopenharmony_ci	  'ifb1' etc.
16262306a36Sopenharmony_ci	  Look at the iproute2 documentation directory for usage etc
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_cisource "drivers/net/team/Kconfig"
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig MACVLAN
16762306a36Sopenharmony_ci	tristate "MAC-VLAN support"
16862306a36Sopenharmony_ci	help
16962306a36Sopenharmony_ci	  This allows one to create virtual interfaces that map packets to
17062306a36Sopenharmony_ci	  or from specific MAC addresses to a particular interface.
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	  Macvlan devices can be added using the "ip" command from the
17362306a36Sopenharmony_ci	  iproute2 package starting with the iproute2-2.6.23 release:
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci	  "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
17862306a36Sopenharmony_ci	  will be called macvlan.
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciconfig MACVTAP
18162306a36Sopenharmony_ci	tristate "MAC-VLAN based tap driver"
18262306a36Sopenharmony_ci	depends on MACVLAN
18362306a36Sopenharmony_ci	depends on INET
18462306a36Sopenharmony_ci	select TAP
18562306a36Sopenharmony_ci	help
18662306a36Sopenharmony_ci	  This adds a specialized tap character device driver that is based
18762306a36Sopenharmony_ci	  on the MAC-VLAN network interface, called macvtap. A macvtap device
18862306a36Sopenharmony_ci	  can be added in the same way as a macvlan device, using 'type
18962306a36Sopenharmony_ci	  macvtap', and then be accessed through the tap user space interface.
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
19262306a36Sopenharmony_ci	  will be called macvtap.
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ciconfig IPVLAN_L3S
19562306a36Sopenharmony_ci	depends on NETFILTER
19662306a36Sopenharmony_ci	depends on IPVLAN
19762306a36Sopenharmony_ci	def_bool y
19862306a36Sopenharmony_ci	select NET_L3_MASTER_DEV
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciconfig IPVLAN
20162306a36Sopenharmony_ci	tristate "IP-VLAN support"
20262306a36Sopenharmony_ci	depends on INET
20362306a36Sopenharmony_ci	depends on IPV6 || !IPV6
20462306a36Sopenharmony_ci	help
20562306a36Sopenharmony_ci	  This allows one to create virtual devices off of a main interface
20662306a36Sopenharmony_ci	  and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
20762306a36Sopenharmony_ci	  on packets. All interfaces (including the main interface) share L2
20862306a36Sopenharmony_ci	  making it transparent to the connected L2 switch.
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci	  Ipvlan devices can be added using the "ip" command from the
21162306a36Sopenharmony_ci	  iproute2 package starting with the iproute2-3.19 release:
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci	  "ip link add link <main-dev> [ NAME ] type ipvlan"
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
21662306a36Sopenharmony_ci	  will be called ipvlan.
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ciconfig IPVTAP
21962306a36Sopenharmony_ci	tristate "IP-VLAN based tap driver"
22062306a36Sopenharmony_ci	depends on IPVLAN
22162306a36Sopenharmony_ci	depends on INET
22262306a36Sopenharmony_ci	select TAP
22362306a36Sopenharmony_ci	help
22462306a36Sopenharmony_ci	  This adds a specialized tap character device driver that is based
22562306a36Sopenharmony_ci	  on the IP-VLAN network interface, called ipvtap. An ipvtap device
22662306a36Sopenharmony_ci	  can be added in the same way as a ipvlan device, using 'type
22762306a36Sopenharmony_ci	  ipvtap', and then be accessed through the tap user space interface.
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
23062306a36Sopenharmony_ci	  will be called ipvtap.
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ciconfig VXLAN
23362306a36Sopenharmony_ci	tristate "Virtual eXtensible Local Area Network (VXLAN)"
23462306a36Sopenharmony_ci	depends on INET
23562306a36Sopenharmony_ci	select NET_UDP_TUNNEL
23662306a36Sopenharmony_ci	select GRO_CELLS
23762306a36Sopenharmony_ci	help
23862306a36Sopenharmony_ci	  This allows one to create vxlan virtual interfaces that provide
23962306a36Sopenharmony_ci	  Layer 2 Networks over Layer 3 Networks. VXLAN is often used
24062306a36Sopenharmony_ci	  to tunnel virtual network infrastructure in virtualized environments.
24162306a36Sopenharmony_ci	  For more information see:
24262306a36Sopenharmony_ci	    http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
24562306a36Sopenharmony_ci	  will be called vxlan.
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ciconfig GENEVE
24862306a36Sopenharmony_ci	tristate "Generic Network Virtualization Encapsulation"
24962306a36Sopenharmony_ci	depends on INET
25062306a36Sopenharmony_ci	depends on IPV6 || !IPV6
25162306a36Sopenharmony_ci	select NET_UDP_TUNNEL
25262306a36Sopenharmony_ci	select GRO_CELLS
25362306a36Sopenharmony_ci	help
25462306a36Sopenharmony_ci	  This allows one to create geneve virtual interfaces that provide
25562306a36Sopenharmony_ci	  Layer 2 Networks over Layer 3 Networks. GENEVE is often used
25662306a36Sopenharmony_ci	  to tunnel virtual network infrastructure in virtualized environments.
25762306a36Sopenharmony_ci	  For more information see:
25862306a36Sopenharmony_ci	    http://tools.ietf.org/html/draft-gross-geneve-02
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
26162306a36Sopenharmony_ci	  will be called geneve.
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ciconfig BAREUDP
26462306a36Sopenharmony_ci	tristate "Bare UDP Encapsulation"
26562306a36Sopenharmony_ci	depends on INET
26662306a36Sopenharmony_ci	depends on IPV6 || !IPV6
26762306a36Sopenharmony_ci	select NET_UDP_TUNNEL
26862306a36Sopenharmony_ci	select GRO_CELLS
26962306a36Sopenharmony_ci	help
27062306a36Sopenharmony_ci	  This adds a bare UDP tunnel module for tunnelling different
27162306a36Sopenharmony_ci	  kinds of traffic like MPLS, IP, etc. inside a UDP tunnel.
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
27462306a36Sopenharmony_ci	  will be called bareudp.
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ciconfig GTP
27762306a36Sopenharmony_ci	tristate "GPRS Tunneling Protocol datapath (GTP-U)"
27862306a36Sopenharmony_ci	depends on INET
27962306a36Sopenharmony_ci	select NET_UDP_TUNNEL
28062306a36Sopenharmony_ci	help
28162306a36Sopenharmony_ci	  This allows one to create gtp virtual interfaces that provide
28262306a36Sopenharmony_ci	  the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
28362306a36Sopenharmony_ci	  is used to prevent subscribers from accessing mobile carrier core
28462306a36Sopenharmony_ci	  network infrastructure. This driver requires a userspace software that
28562306a36Sopenharmony_ci	  implements the signaling protocol (GTP-C) to update its PDP context
28662306a36Sopenharmony_ci	  base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
28762306a36Sopenharmony_ci	  tunneling protocol is implemented according to the GSM TS 09.60 and
28862306a36Sopenharmony_ci	  3GPP TS 29.060 standards.
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ci	  To compile this drivers as a module, choose M here: the module
29162306a36Sopenharmony_ci	  will be called gtp.
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ciconfig AMT
29462306a36Sopenharmony_ci	tristate "Automatic Multicast Tunneling (AMT)"
29562306a36Sopenharmony_ci	depends on INET && IP_MULTICAST
29662306a36Sopenharmony_ci	depends on IPV6 || !IPV6
29762306a36Sopenharmony_ci	select NET_UDP_TUNNEL
29862306a36Sopenharmony_ci	help
29962306a36Sopenharmony_ci	  This allows one to create AMT(Automatic Multicast Tunneling)
30062306a36Sopenharmony_ci	  virtual interfaces that provide multicast tunneling.
30162306a36Sopenharmony_ci	  There are two roles, Gateway, and Relay.
30262306a36Sopenharmony_ci	  Gateway Encapsulates IGMP/MLD traffic from listeners to the Relay.
30362306a36Sopenharmony_ci	  Gateway Decapsulates multicast traffic from the Relay to Listeners.
30462306a36Sopenharmony_ci	  Relay Encapsulates multicast traffic from Sources to Gateway.
30562306a36Sopenharmony_ci	  Relay Decapsulates IGMP/MLD traffic from Gateway.
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ci	  To compile this drivers as a module, choose M here: the module
30862306a36Sopenharmony_ci	  will be called amt.
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ciconfig MACSEC
31162306a36Sopenharmony_ci	tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
31262306a36Sopenharmony_ci	select CRYPTO
31362306a36Sopenharmony_ci	select CRYPTO_AES
31462306a36Sopenharmony_ci	select CRYPTO_GCM
31562306a36Sopenharmony_ci	select GRO_CELLS
31662306a36Sopenharmony_ci	help
31762306a36Sopenharmony_ci	   MACsec is an encryption standard for Ethernet.
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ciconfig NETCONSOLE
32062306a36Sopenharmony_ci	tristate "Network console logging support"
32162306a36Sopenharmony_ci	help
32262306a36Sopenharmony_ci	  If you want to log kernel messages over the network, enable this.
32362306a36Sopenharmony_ci	  See <file:Documentation/networking/netconsole.rst> for details.
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ciconfig NETCONSOLE_DYNAMIC
32662306a36Sopenharmony_ci	bool "Dynamic reconfiguration of logging targets"
32762306a36Sopenharmony_ci	depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
32862306a36Sopenharmony_ci			!(NETCONSOLE=y && CONFIGFS_FS=m)
32962306a36Sopenharmony_ci	help
33062306a36Sopenharmony_ci	  This option enables the ability to dynamically reconfigure target
33162306a36Sopenharmony_ci	  parameters (interface, IP addresses, port numbers, MAC addresses)
33262306a36Sopenharmony_ci	  at runtime through a userspace interface exported using configfs.
33362306a36Sopenharmony_ci	  See <file:Documentation/networking/netconsole.rst> for details.
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ciconfig NETCONSOLE_EXTENDED_LOG
33662306a36Sopenharmony_ci	bool "Set kernel extended message by default"
33762306a36Sopenharmony_ci	depends on NETCONSOLE
33862306a36Sopenharmony_ci	default n
33962306a36Sopenharmony_ci	help
34062306a36Sopenharmony_ci	  Set extended log support for netconsole message. If this option is
34162306a36Sopenharmony_ci	  set, log messages are transmitted with extended metadata header in a
34262306a36Sopenharmony_ci	  format similar to /dev/kmsg.  See
34362306a36Sopenharmony_ci	  <file:Documentation/networking/netconsole.rst> for details.
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_ciconfig NETCONSOLE_PREPEND_RELEASE
34662306a36Sopenharmony_ci	bool "Prepend kernel release version in the message by default"
34762306a36Sopenharmony_ci	depends on NETCONSOLE_EXTENDED_LOG
34862306a36Sopenharmony_ci	default n
34962306a36Sopenharmony_ci	help
35062306a36Sopenharmony_ci	  Set kernel release to be prepended to each netconsole message by
35162306a36Sopenharmony_ci	  default. If this option is set, the kernel release is prepended into
35262306a36Sopenharmony_ci	  the first field of every netconsole message, so, the netconsole
35362306a36Sopenharmony_ci	  server/peer can easily identify what kernel release is logging each
35462306a36Sopenharmony_ci	  message.  See <file:Documentation/networking/netconsole.rst> for
35562306a36Sopenharmony_ci	  details.
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_ciconfig NETPOLL
35862306a36Sopenharmony_ci	def_bool NETCONSOLE
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_ciconfig NET_POLL_CONTROLLER
36162306a36Sopenharmony_ci	def_bool NETPOLL
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ciconfig NTB_NETDEV
36462306a36Sopenharmony_ci	tristate "Virtual Ethernet over NTB Transport"
36562306a36Sopenharmony_ci	depends on NTB_TRANSPORT
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ciconfig RIONET
36862306a36Sopenharmony_ci	tristate "RapidIO Ethernet over messaging driver support"
36962306a36Sopenharmony_ci	depends on RAPIDIO
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ciconfig RIONET_TX_SIZE
37262306a36Sopenharmony_ci	int "Number of outbound queue entries"
37362306a36Sopenharmony_ci	depends on RIONET
37462306a36Sopenharmony_ci	default "128"
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_ciconfig RIONET_RX_SIZE
37762306a36Sopenharmony_ci	int "Number of inbound queue entries"
37862306a36Sopenharmony_ci	depends on RIONET
37962306a36Sopenharmony_ci	default "128"
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig TUN
38262306a36Sopenharmony_ci	tristate "Universal TUN/TAP device driver support"
38362306a36Sopenharmony_ci	depends on INET
38462306a36Sopenharmony_ci	select CRC32
38562306a36Sopenharmony_ci	help
38662306a36Sopenharmony_ci	  TUN/TAP provides packet reception and transmission for user space
38762306a36Sopenharmony_ci	  programs.  It can be viewed as a simple Point-to-Point or Ethernet
38862306a36Sopenharmony_ci	  device, which instead of receiving packets from a physical media,
38962306a36Sopenharmony_ci	  receives them from user space program and instead of sending packets
39062306a36Sopenharmony_ci	  via physical media writes them to the user space program.
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ci	  When a program opens /dev/net/tun, driver creates and registers
39362306a36Sopenharmony_ci	  corresponding net device tunX or tapX.  After a program closed above
39462306a36Sopenharmony_ci	  devices, driver will automatically delete tunXX or tapXX device and
39562306a36Sopenharmony_ci	  all routes corresponding to it.
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ci	  Please read <file:Documentation/networking/tuntap.rst> for more
39862306a36Sopenharmony_ci	  information.
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
40162306a36Sopenharmony_ci	  will be called tun.
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_ci	  If you don't know what to use this for, you don't need it.
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_ciconfig TAP
40662306a36Sopenharmony_ci	tristate
40762306a36Sopenharmony_ci	help
40862306a36Sopenharmony_ci	  This option is selected by any driver implementing tap user space
40962306a36Sopenharmony_ci	  interface for a virtual interface to re-use core tap functionality.
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ciconfig TUN_VNET_CROSS_LE
41262306a36Sopenharmony_ci	bool "Support for cross-endian vnet headers on little-endian kernels"
41362306a36Sopenharmony_ci	default n
41462306a36Sopenharmony_ci	help
41562306a36Sopenharmony_ci	  This option allows TUN/TAP and MACVTAP device drivers in a
41662306a36Sopenharmony_ci	  little-endian kernel to parse vnet headers that come from a
41762306a36Sopenharmony_ci	  big-endian legacy virtio device.
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ci	  Userspace programs can control the feature using the TUNSETVNETBE
42062306a36Sopenharmony_ci	  and TUNGETVNETBE ioctls.
42162306a36Sopenharmony_ci
42262306a36Sopenharmony_ci	  Unless you have a little-endian system hosting a big-endian virtual
42362306a36Sopenharmony_ci	  machine with a legacy virtio NIC, you should say N.
42462306a36Sopenharmony_ci
42562306a36Sopenharmony_ciconfig VETH
42662306a36Sopenharmony_ci	tristate "Virtual ethernet pair device"
42762306a36Sopenharmony_ci	select PAGE_POOL
42862306a36Sopenharmony_ci	help
42962306a36Sopenharmony_ci	  This device is a local ethernet tunnel. Devices are created in pairs.
43062306a36Sopenharmony_ci	  When one end receives the packet it appears on its pair and vice
43162306a36Sopenharmony_ci	  versa.
43262306a36Sopenharmony_ci
43362306a36Sopenharmony_ciconfig VIRTIO_NET
43462306a36Sopenharmony_ci	tristate "Virtio network driver"
43562306a36Sopenharmony_ci	depends on VIRTIO
43662306a36Sopenharmony_ci	select NET_FAILOVER
43762306a36Sopenharmony_ci	help
43862306a36Sopenharmony_ci	  This is the virtual network driver for virtio.  It can be used with
43962306a36Sopenharmony_ci	  QEMU based VMMs (like KVM or Xen).  Say Y or M.
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ciconfig NLMON
44262306a36Sopenharmony_ci	tristate "Virtual netlink monitoring device"
44362306a36Sopenharmony_ci	help
44462306a36Sopenharmony_ci	  This option enables a monitoring net device for netlink skbs. The
44562306a36Sopenharmony_ci	  purpose of this is to analyze netlink messages with packet sockets.
44662306a36Sopenharmony_ci	  Thus applications like tcpdump will be able to see local netlink
44762306a36Sopenharmony_ci	  messages if they tap into the netlink device, record pcaps for further
44862306a36Sopenharmony_ci	  diagnostics, etc. This is mostly intended for developers or support
44962306a36Sopenharmony_ci	  to debug netlink issues. If unsure, say N.
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_ciconfig NET_VRF
45262306a36Sopenharmony_ci	tristate "Virtual Routing and Forwarding (Lite)"
45362306a36Sopenharmony_ci	depends on IP_MULTIPLE_TABLES
45462306a36Sopenharmony_ci	depends on NET_L3_MASTER_DEV
45562306a36Sopenharmony_ci	depends on IPV6 || IPV6=n
45662306a36Sopenharmony_ci	depends on IPV6_MULTIPLE_TABLES || IPV6=n
45762306a36Sopenharmony_ci	help
45862306a36Sopenharmony_ci	  This option enables the support for mapping interfaces into VRF's. The
45962306a36Sopenharmony_ci	  support enables VRF devices.
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_ciconfig VSOCKMON
46262306a36Sopenharmony_ci	tristate "Virtual vsock monitoring device"
46362306a36Sopenharmony_ci	depends on VHOST_VSOCK
46462306a36Sopenharmony_ci	help
46562306a36Sopenharmony_ci	  This option enables a monitoring net device for vsock sockets. It is
46662306a36Sopenharmony_ci	  mostly intended for developers or support to debug vsock issues. If
46762306a36Sopenharmony_ci	  unsure, say N.
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_ciconfig MHI_NET
47062306a36Sopenharmony_ci	tristate "MHI network driver"
47162306a36Sopenharmony_ci	depends on MHI_BUS
47262306a36Sopenharmony_ci	help
47362306a36Sopenharmony_ci	  This is the network driver for MHI bus.  It can be used with
47462306a36Sopenharmony_ci	  QCOM based WWAN modems for IP or QMAP/rmnet protocol (like SDX55).
47562306a36Sopenharmony_ci	  Say Y or M.
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ciendif # NET_CORE
47862306a36Sopenharmony_ci
47962306a36Sopenharmony_ciconfig SUNGEM_PHY
48062306a36Sopenharmony_ci	tristate
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_cisource "drivers/net/arcnet/Kconfig"
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_cisource "drivers/atm/Kconfig"
48562306a36Sopenharmony_ci
48662306a36Sopenharmony_cisource "drivers/net/caif/Kconfig"
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_cisource "drivers/net/dsa/Kconfig"
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_cisource "drivers/net/ethernet/Kconfig"
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_cisource "drivers/net/fddi/Kconfig"
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_cisource "drivers/net/hippi/Kconfig"
49562306a36Sopenharmony_ci
49662306a36Sopenharmony_cisource "drivers/net/ipa/Kconfig"
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_ciconfig NET_SB1000
49962306a36Sopenharmony_ci	tristate "General Instruments Surfboard 1000"
50062306a36Sopenharmony_ci	depends on PNP
50162306a36Sopenharmony_ci	help
50262306a36Sopenharmony_ci	  This is a driver for the General Instrument (also known as
50362306a36Sopenharmony_ci	  NextLevel) SURFboard 1000 internal
50462306a36Sopenharmony_ci	  cable modem. This is an ISA card which is used by a number of cable
50562306a36Sopenharmony_ci	  TV companies to provide cable modem access. It's a one-way
50662306a36Sopenharmony_ci	  downstream-only cable modem, meaning that your upstream net link is
50762306a36Sopenharmony_ci	  provided by your regular phone modem.
50862306a36Sopenharmony_ci
50962306a36Sopenharmony_ci	  At present this driver only compiles as a module, so say M here if
51062306a36Sopenharmony_ci	  you have this card. The module will be called sb1000. Then read
51162306a36Sopenharmony_ci	  <file:Documentation/networking/device_drivers/cable/sb1000.rst> for
51262306a36Sopenharmony_ci	  information on how to use this module, as it needs special ppp
51362306a36Sopenharmony_ci	  scripts for establishing a connection. Further documentation
51462306a36Sopenharmony_ci	  and the necessary scripts can be found at:
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ci	  <http://www.jacksonville.net/~fventuri/>
51762306a36Sopenharmony_ci	  <http://home.adelphia.net/~siglercm/sb1000.html>
51862306a36Sopenharmony_ci	  <http://linuxpower.cx/~cable/>
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_ci	  If you don't have this card, of course say N.
52162306a36Sopenharmony_ci
52262306a36Sopenharmony_cisource "drivers/net/phy/Kconfig"
52362306a36Sopenharmony_ci
52462306a36Sopenharmony_cisource "drivers/net/pse-pd/Kconfig"
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_cisource "drivers/net/can/Kconfig"
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_cisource "drivers/net/mctp/Kconfig"
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_cisource "drivers/net/mdio/Kconfig"
53162306a36Sopenharmony_ci
53262306a36Sopenharmony_cisource "drivers/net/pcs/Kconfig"
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_cisource "drivers/net/plip/Kconfig"
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_cisource "drivers/net/ppp/Kconfig"
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_cisource "drivers/net/slip/Kconfig"
53962306a36Sopenharmony_ci
54062306a36Sopenharmony_cisource "drivers/s390/net/Kconfig"
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_cisource "drivers/net/usb/Kconfig"
54362306a36Sopenharmony_ci
54462306a36Sopenharmony_cisource "drivers/net/wireless/Kconfig"
54562306a36Sopenharmony_ci
54662306a36Sopenharmony_cisource "drivers/net/wan/Kconfig"
54762306a36Sopenharmony_ci
54862306a36Sopenharmony_cisource "drivers/net/ieee802154/Kconfig"
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_cisource "drivers/net/wwan/Kconfig"
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ciconfig XEN_NETDEV_FRONTEND
55362306a36Sopenharmony_ci	tristate "Xen network device frontend driver"
55462306a36Sopenharmony_ci	depends on XEN
55562306a36Sopenharmony_ci	select XEN_XENBUS_FRONTEND
55662306a36Sopenharmony_ci	select PAGE_POOL
55762306a36Sopenharmony_ci	default y
55862306a36Sopenharmony_ci	help
55962306a36Sopenharmony_ci	  This driver provides support for Xen paravirtual network
56062306a36Sopenharmony_ci	  devices exported by a Xen network driver domain (often
56162306a36Sopenharmony_ci	  domain 0).
56262306a36Sopenharmony_ci
56362306a36Sopenharmony_ci	  The corresponding Linux backend driver is enabled by the
56462306a36Sopenharmony_ci	  CONFIG_XEN_NETDEV_BACKEND option.
56562306a36Sopenharmony_ci
56662306a36Sopenharmony_ci	  If you are compiling a kernel for use as Xen guest, you
56762306a36Sopenharmony_ci	  should say Y here. To compile this driver as a module, chose
56862306a36Sopenharmony_ci	  M here: the module will be called xen-netfront.
56962306a36Sopenharmony_ci
57062306a36Sopenharmony_ciconfig XEN_NETDEV_BACKEND
57162306a36Sopenharmony_ci	tristate "Xen backend network device"
57262306a36Sopenharmony_ci	depends on XEN_BACKEND
57362306a36Sopenharmony_ci	help
57462306a36Sopenharmony_ci	  This driver allows the kernel to act as a Xen network driver
57562306a36Sopenharmony_ci	  domain which exports paravirtual network devices to other
57662306a36Sopenharmony_ci	  Xen domains. These devices can be accessed by any operating
57762306a36Sopenharmony_ci	  system that implements a compatible front end.
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_ci	  The corresponding Linux frontend driver is enabled by the
58062306a36Sopenharmony_ci	  CONFIG_XEN_NETDEV_FRONTEND configuration option.
58162306a36Sopenharmony_ci
58262306a36Sopenharmony_ci	  The backend driver presents a standard network device
58362306a36Sopenharmony_ci	  endpoint for each paravirtual network device to the driver
58462306a36Sopenharmony_ci	  domain network stack. These can then be bridged or routed
58562306a36Sopenharmony_ci	  etc in order to provide full network connectivity.
58662306a36Sopenharmony_ci
58762306a36Sopenharmony_ci	  If you are compiling a kernel to run in a Xen network driver
58862306a36Sopenharmony_ci	  domain (often this is domain 0) you should say Y here. To
58962306a36Sopenharmony_ci	  compile this driver as a module, chose M here: the module
59062306a36Sopenharmony_ci	  will be called xen-netback.
59162306a36Sopenharmony_ci
59262306a36Sopenharmony_ciconfig VMXNET3
59362306a36Sopenharmony_ci	tristate "VMware VMXNET3 ethernet driver"
59462306a36Sopenharmony_ci	depends on PCI && INET
59562306a36Sopenharmony_ci	depends on PAGE_SIZE_LESS_THAN_64KB
59662306a36Sopenharmony_ci	select PAGE_POOL
59762306a36Sopenharmony_ci	help
59862306a36Sopenharmony_ci	  This driver supports VMware's vmxnet3 virtual ethernet NIC.
59962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
60062306a36Sopenharmony_ci	  module will be called vmxnet3.
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_ciconfig FUJITSU_ES
60362306a36Sopenharmony_ci	tristate "FUJITSU Extended Socket Network Device driver"
60462306a36Sopenharmony_ci	depends on ACPI
60562306a36Sopenharmony_ci	help
60662306a36Sopenharmony_ci	  This driver provides support for Extended Socket network device
60762306a36Sopenharmony_ci	  on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
60862306a36Sopenharmony_ci
60962306a36Sopenharmony_cisource "drivers/net/thunderbolt/Kconfig"
61062306a36Sopenharmony_cisource "drivers/net/hyperv/Kconfig"
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ciconfig NETDEVSIM
61362306a36Sopenharmony_ci	tristate "Simulated networking device"
61462306a36Sopenharmony_ci	depends on DEBUG_FS
61562306a36Sopenharmony_ci	depends on INET
61662306a36Sopenharmony_ci	depends on IPV6 || IPV6=n
61762306a36Sopenharmony_ci	depends on PSAMPLE || PSAMPLE=n
61862306a36Sopenharmony_ci	depends on PTP_1588_CLOCK_MOCK || PTP_1588_CLOCK_MOCK=n
61962306a36Sopenharmony_ci	select NET_DEVLINK
62062306a36Sopenharmony_ci	help
62162306a36Sopenharmony_ci	  This driver is a developer testing tool and software model that can
62262306a36Sopenharmony_ci	  be used to test various control path networking APIs, especially
62362306a36Sopenharmony_ci	  HW-offload related.
62462306a36Sopenharmony_ci
62562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
62662306a36Sopenharmony_ci	  will be called netdevsim.
62762306a36Sopenharmony_ci
62862306a36Sopenharmony_ciconfig NET_FAILOVER
62962306a36Sopenharmony_ci	tristate "Failover driver"
63062306a36Sopenharmony_ci	select FAILOVER
63162306a36Sopenharmony_ci	help
63262306a36Sopenharmony_ci	  This provides an automated failover mechanism via APIs to create
63362306a36Sopenharmony_ci	  and destroy a failover master netdev and manages a primary and
63462306a36Sopenharmony_ci	  standby slave netdevs that get registered via the generic failover
63562306a36Sopenharmony_ci	  infrastructure. This can be used by paravirtual drivers to enable
63662306a36Sopenharmony_ci	  an alternate low latency datapath. It also enables live migration of
63762306a36Sopenharmony_ci	  a VM with direct attached VF by failing over to the paravirtual
63862306a36Sopenharmony_ci	  datapath when the VF is unplugged.
63962306a36Sopenharmony_ci
64062306a36Sopenharmony_ciconfig NETDEV_LEGACY_INIT
64162306a36Sopenharmony_ci	bool
64262306a36Sopenharmony_ci	depends on ISA
64362306a36Sopenharmony_ci	help
64462306a36Sopenharmony_ci	  Drivers that call netdev_boot_setup_check() should select this
64562306a36Sopenharmony_ci	  symbol, everything else no longer needs it.
64662306a36Sopenharmony_ci
64762306a36Sopenharmony_ciendif # NETDEVICES
648