xref: /openbmc/linux/drivers/net/Kconfig (revision 1f399fc7)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Network device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
6d1c0a65fSJan Engelhardtmenuconfig NETDEVICES
7ce2d2aedSPaolo 'Blaisorblade' Giarrusso	default y if UML
8e0009820SJan Engelhardt	depends on NET
91da177e4SLinus Torvalds	bool "Network device support"
101da177e4SLinus Torvalds	---help---
111da177e4SLinus Torvalds	  You can say N here if you don't intend to connect your Linux box to
121da177e4SLinus Torvalds	  any other computer at all.
131da177e4SLinus Torvalds
141da177e4SLinus Torvalds	  You'll have to say Y if your computer contains a network card that
151da177e4SLinus Torvalds	  you want to use under Linux. If you are going to run SLIP or PPP over
161da177e4SLinus Torvalds	  telephone line or null modem cable you need say Y here. Connecting
171da177e4SLinus Torvalds	  two machines with parallel ports using PLIP needs this, as well as
181da177e4SLinus Torvalds	  AX.25/KISS for sending Internet traffic over amateur radio links.
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds	  See also "The Linux Network Administrator's Guide" by Olaf Kirch and
211da177e4SLinus Torvalds	  Terry Dawson. Available at <http://www.tldp.org/guides.html>.
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds	  If unsure, say Y.
241da177e4SLinus Torvalds
251618cb0cSRandy Dunlap# All the following symbols are dependent on NETDEVICES - do not repeat
261618cb0cSRandy Dunlap# that for each of the symbols.
271618cb0cSRandy Dunlapif NETDEVICES
28cbcd2a4cSRandy Dunlap
29a1606c7dSBen Hutchingsconfig MII
30a1606c7dSBen Hutchings	tristate
31a1606c7dSBen Hutchings
3288491d81SJeff Kirsherconfig NET_CORE
3388491d81SJeff Kirsher	default y
3488491d81SJeff Kirsher	bool "Network core driver support"
35253af423SJamal Hadi Salim	---help---
3688491d81SJeff Kirsher	  You can say N here if you do not intend to use any of the
3788491d81SJeff Kirsher	  networking core drivers (i.e. VLAN, bridging, bonding, etc.)
3888491d81SJeff Kirsher
3988491d81SJeff Kirsherif NET_CORE
4088491d81SJeff Kirsher
4188491d81SJeff Kirsherconfig BONDING
4288491d81SJeff Kirsher	tristate "Bonding driver support"
4388491d81SJeff Kirsher	depends on INET
4488491d81SJeff Kirsher	depends on IPV6 || IPV6=n
4588491d81SJeff Kirsher	---help---
4688491d81SJeff Kirsher	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
4788491d81SJeff Kirsher	  Channels together. This is called 'Etherchannel' by Cisco,
4888491d81SJeff Kirsher	  'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
4988491d81SJeff Kirsher
5088491d81SJeff Kirsher	  The driver supports multiple bonding modes to allow for both high
5188491d81SJeff Kirsher	  performance and high availability operation.
5288491d81SJeff Kirsher
5388491d81SJeff Kirsher	  Refer to <file:Documentation/networking/bonding.txt> for more
5488491d81SJeff Kirsher	  information.
5588491d81SJeff Kirsher
56253af423SJamal Hadi Salim	  To compile this driver as a module, choose M here: the module
5788491d81SJeff Kirsher	  will be called bonding.
58253af423SJamal Hadi Salim
591da177e4SLinus Torvaldsconfig DUMMY
601da177e4SLinus Torvalds	tristate "Dummy net driver support"
611da177e4SLinus Torvalds	---help---
621da177e4SLinus Torvalds	  This is essentially a bit-bucket device (i.e. traffic you send to
631da177e4SLinus Torvalds	  this device is consigned into oblivion) with a configurable IP
641da177e4SLinus Torvalds	  address. It is most commonly used in order to make your currently
651da177e4SLinus Torvalds	  inactive SLIP address seem like a real address for local programs.
669f5db535SIvan Babrou	  If you use SLIP or PPP, you might want to say Y here. It won't
679f5db535SIvan Babrou	  enlarge your kernel. What a deal. Read about it in the Network
681da177e4SLinus Torvalds	  Administrator's Guide, available from
691da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#guide>.
701da177e4SLinus Torvalds
711da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
729f486619SAlan Cox	  will be called dummy.
731da177e4SLinus Torvalds
74e7096c13SJason A. Donenfeldconfig WIREGUARD
75e7096c13SJason A. Donenfeld	tristate "WireGuard secure network tunnel"
76e7096c13SJason A. Donenfeld	depends on NET && INET
77e7096c13SJason A. Donenfeld	depends on IPV6 || !IPV6
78e7096c13SJason A. Donenfeld	select NET_UDP_TUNNEL
79e7096c13SJason A. Donenfeld	select DST_CACHE
80e7096c13SJason A. Donenfeld	select CRYPTO
81e7096c13SJason A. Donenfeld	select CRYPTO_LIB_CURVE25519
82e7096c13SJason A. Donenfeld	select CRYPTO_LIB_CHACHA20POLY1305
83e7096c13SJason A. Donenfeld	select CRYPTO_LIB_BLAKE2S
84e7096c13SJason A. Donenfeld	select CRYPTO_CHACHA20_X86_64 if X86 && 64BIT
85e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_X86_64 if X86 && 64BIT
86e7096c13SJason A. Donenfeld	select CRYPTO_BLAKE2S_X86 if X86 && 64BIT
87e7096c13SJason A. Donenfeld	select CRYPTO_CURVE25519_X86 if X86 && 64BIT
88d7c68a38SJason A. Donenfeld	select ARM_CRYPTO if ARM
89d7c68a38SJason A. Donenfeld	select ARM64_CRYPTO if ARM64
90e7096c13SJason A. Donenfeld	select CRYPTO_CHACHA20_NEON if (ARM || ARM64) && KERNEL_MODE_NEON
91e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_NEON if ARM64 && KERNEL_MODE_NEON
92e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_ARM if ARM
93e7096c13SJason A. Donenfeld	select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
94e7096c13SJason A. Donenfeld	select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
95e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_MIPS if CPU_MIPS32 || (CPU_MIPS64 && 64BIT)
96e7096c13SJason A. Donenfeld	help
97e7096c13SJason A. Donenfeld	  WireGuard is a secure, fast, and easy to use replacement for IPSec
98e7096c13SJason A. Donenfeld	  that uses modern cryptography and clever networking tricks. It's
99e7096c13SJason A. Donenfeld	  designed to be fairly general purpose and abstract enough to fit most
100e7096c13SJason A. Donenfeld	  use cases, while at the same time remaining extremely simple to
101e7096c13SJason A. Donenfeld	  configure. See www.wireguard.com for more info.
102e7096c13SJason A. Donenfeld
103e7096c13SJason A. Donenfeld	  It's safe to say Y or M here, as the driver is very lightweight and
104e7096c13SJason A. Donenfeld	  is only in use when an administrator chooses to add an interface.
105e7096c13SJason A. Donenfeld
106e7096c13SJason A. Donenfeldconfig WIREGUARD_DEBUG
107e7096c13SJason A. Donenfeld	bool "Debugging checks and verbose messages"
108e7096c13SJason A. Donenfeld	depends on WIREGUARD
109e7096c13SJason A. Donenfeld	help
110e7096c13SJason A. Donenfeld	  This will write log messages for handshake and other events
111e7096c13SJason A. Donenfeld	  that occur for a WireGuard interface. It will also perform some
112e7096c13SJason A. Donenfeld	  extra validation checks and unit tests at various points. This is
113e7096c13SJason A. Donenfeld	  only useful for debugging.
114e7096c13SJason A. Donenfeld
115e7096c13SJason A. Donenfeld	  Say N here unless you know what you're doing.
116e7096c13SJason A. Donenfeld
11788491d81SJeff Kirsherconfig EQUALIZER
11888491d81SJeff Kirsher	tristate "EQL (serial line load balancing) support"
1191da177e4SLinus Torvalds	---help---
12088491d81SJeff Kirsher	  If you have two serial connections to some other computer (this
12188491d81SJeff Kirsher	  usually requires two modems and two telephone lines) and you use
12288491d81SJeff Kirsher	  SLIP (the protocol for sending Internet traffic over telephone
12388491d81SJeff Kirsher	  lines) or PPP (a better SLIP) on them, you can make them behave like
12488491d81SJeff Kirsher	  one double speed connection using this driver.  Naturally, this has
12588491d81SJeff Kirsher	  to be supported at the other end as well, either with a similar EQL
12688491d81SJeff Kirsher	  Linux driver or with a Livingston Portmaster 2e.
1271da177e4SLinus Torvalds
12888491d81SJeff Kirsher	  Say Y if you want this and read
12988491d81SJeff Kirsher	  <file:Documentation/networking/eql.txt>.  You may also want to read
13088491d81SJeff Kirsher	  section 6.2 of the NET-3-HOWTO, available from
13188491d81SJeff Kirsher	  <http://www.tldp.org/docs.html#howto>.
1321da177e4SLinus Torvalds
1331da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
13488491d81SJeff Kirsher	  will be called eql.  If unsure, say N.
13588491d81SJeff Kirsher
13688491d81SJeff Kirsherconfig NET_FC
13788491d81SJeff Kirsher	bool "Fibre Channel driver support"
13888491d81SJeff Kirsher	depends on SCSI && PCI
13988491d81SJeff Kirsher	help
14088491d81SJeff Kirsher	  Fibre Channel is a high speed serial protocol mainly used to connect
14188491d81SJeff Kirsher	  large storage devices to the computer; it is compatible with and
14288491d81SJeff Kirsher	  intended to replace SCSI.
14388491d81SJeff Kirsher
14488491d81SJeff Kirsher	  If you intend to use Fibre Channel, you need to have a Fibre channel
14588491d81SJeff Kirsher	  adaptor card in your computer; say Y here and to the driver for your
14688491d81SJeff Kirsher	  adaptor below. You also should have said Y to "SCSI support" and
14788491d81SJeff Kirsher	  "SCSI generic support".
14888491d81SJeff Kirsher
14988491d81SJeff Kirsherconfig IFB
15088491d81SJeff Kirsher	tristate "Intermediate Functional Block support"
15188491d81SJeff Kirsher	depends on NET_CLS_ACT
15288491d81SJeff Kirsher	---help---
15388491d81SJeff Kirsher	  This is an intermediate driver that allows sharing of
15488491d81SJeff Kirsher	  resources.
15588491d81SJeff Kirsher	  To compile this driver as a module, choose M here: the module
15688491d81SJeff Kirsher	  will be called ifb.  If you want to use more than one ifb
15788491d81SJeff Kirsher	  device at a time, you need to compile this driver as a module.
15888491d81SJeff Kirsher	  Instead of 'ifb', the devices will then be called 'ifb0',
15988491d81SJeff Kirsher	  'ifb1' etc.
16088491d81SJeff Kirsher	  Look at the iproute2 documentation directory for usage etc
1611da177e4SLinus Torvalds
1623d249d4cSJiri Pirkosource "drivers/net/team/Kconfig"
1633d249d4cSJiri Pirko
164b863ceb7SPatrick McHardyconfig MACVLAN
165bd085b93SKees Cook	tristate "MAC-VLAN support"
166b863ceb7SPatrick McHardy	---help---
167b863ceb7SPatrick McHardy	  This allows one to create virtual interfaces that map packets to
168b863ceb7SPatrick McHardy	  or from specific MAC addresses to a particular interface.
169b863ceb7SPatrick McHardy
1703dbf8d56SPatrick McHardy	  Macvlan devices can be added using the "ip" command from the
1713dbf8d56SPatrick McHardy	  iproute2 package starting with the iproute2-2.6.23 release:
1723dbf8d56SPatrick McHardy
1733dbf8d56SPatrick McHardy	  "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
1743dbf8d56SPatrick McHardy
175b863ceb7SPatrick McHardy	  To compile this driver as a module, choose M here: the module
176b863ceb7SPatrick McHardy	  will be called macvlan.
177b863ceb7SPatrick McHardy
17820d29d7aSArnd Bergmannconfig MACVTAP
179bd085b93SKees Cook	tristate "MAC-VLAN based tap driver"
18020d29d7aSArnd Bergmann	depends on MACVLAN
181de11b0e8SBen Hutchings	depends on INET
1829a393b5dSSainath Grandhi	select TAP
18320d29d7aSArnd Bergmann	help
18420d29d7aSArnd Bergmann	  This adds a specialized tap character device driver that is based
18520d29d7aSArnd Bergmann	  on the MAC-VLAN network interface, called macvtap. A macvtap device
18620d29d7aSArnd Bergmann	  can be added in the same way as a macvlan device, using 'type
187c7966b52SJan Luebbe	  macvtap', and then be accessed through the tap user space interface.
18820d29d7aSArnd Bergmann
18920d29d7aSArnd Bergmann	  To compile this driver as a module, choose M here: the module
19020d29d7aSArnd Bergmann	  will be called macvtap.
19120d29d7aSArnd Bergmann
192c675e06aSDaniel Borkmannconfig IPVLAN_L3S
193c675e06aSDaniel Borkmann	depends on NETFILTER
194a37d45b6SRandy Dunlap	depends on IPVLAN
195c675e06aSDaniel Borkmann	def_bool y
196c675e06aSDaniel Borkmann	select NET_L3_MASTER_DEV
1972ad7bf36SMahesh Bandewar
1982ad7bf36SMahesh Bandewarconfig IPVLAN
1992ad7bf36SMahesh Bandewar	tristate "IP-VLAN support"
200265de6d1SMahesh Bandewar	depends on INET
2017f897db3SArnd Bergmann	depends on IPV6 || !IPV6
2022ad7bf36SMahesh Bandewar	---help---
2032ad7bf36SMahesh Bandewar	  This allows one to create virtual devices off of a main interface
2042ad7bf36SMahesh Bandewar	  and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
2052ad7bf36SMahesh Bandewar	  on packets. All interfaces (including the main interface) share L2
2062ad7bf36SMahesh Bandewar	  making it transparent to the connected L2 switch.
2072ad7bf36SMahesh Bandewar
2082ad7bf36SMahesh Bandewar	  Ipvlan devices can be added using the "ip" command from the
209f4c2b7a0SMahesh Bandewar	  iproute2 package starting with the iproute2-3.19 release:
2102ad7bf36SMahesh Bandewar
2112ad7bf36SMahesh Bandewar	  "ip link add link <main-dev> [ NAME ] type ipvlan"
2122ad7bf36SMahesh Bandewar
2132ad7bf36SMahesh Bandewar	  To compile this driver as a module, choose M here: the module
2142ad7bf36SMahesh Bandewar	  will be called ipvlan.
2152ad7bf36SMahesh Bandewar
216235a9d89SSainath Grandhiconfig IPVTAP
217235a9d89SSainath Grandhi	tristate "IP-VLAN based tap driver"
218235a9d89SSainath Grandhi	depends on IPVLAN
219235a9d89SSainath Grandhi	depends on INET
220235a9d89SSainath Grandhi	select TAP
221235a9d89SSainath Grandhi	---help---
222235a9d89SSainath Grandhi	  This adds a specialized tap character device driver that is based
223235a9d89SSainath Grandhi	  on the IP-VLAN network interface, called ipvtap. An ipvtap device
224235a9d89SSainath Grandhi	  can be added in the same way as a ipvlan device, using 'type
225235a9d89SSainath Grandhi	  ipvtap', and then be accessed through the tap user space interface.
226235a9d89SSainath Grandhi
227235a9d89SSainath Grandhi	  To compile this driver as a module, choose M here: the module
228235a9d89SSainath Grandhi	  will be called ipvtap.
2292ad7bf36SMahesh Bandewar
230d342894cSstephen hemmingerconfig VXLAN
231d342894cSstephen hemminger	tristate "Virtual eXtensible Local Area Network (VXLAN)"
232c9b20a5eSKees Cook	depends on INET
2333ee64f39STom Herbert	select NET_UDP_TUNNEL
23497e219b7SEric Dumazet	select GRO_CELLS
235d342894cSstephen hemminger	---help---
236d342894cSstephen hemminger	  This allows one to create vxlan virtual interfaces that provide
237d342894cSstephen hemminger	  Layer 2 Networks over Layer 3 Networks. VXLAN is often used
238d342894cSstephen hemminger	  to tunnel virtual network infrastructure in virtualized environments.
239d342894cSstephen hemminger	  For more information see:
240d342894cSstephen hemminger	    http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
241d342894cSstephen hemminger
242d342894cSstephen hemminger	  To compile this driver as a module, choose M here: the module
243d342894cSstephen hemminger	  will be called vxlan.
244d342894cSstephen hemminger
2452d07dc79SJohn W. Linvilleconfig GENEVE
246371bd106SPravin B Shelar	tristate "Generic Network Virtualization Encapsulation"
247a7603ac1SMatteo Croce	depends on INET
248094be092STobias Regnery	depends on IPV6 || !IPV6
249a7603ac1SMatteo Croce	select NET_UDP_TUNNEL
25097e219b7SEric Dumazet	select GRO_CELLS
2512d07dc79SJohn W. Linville	---help---
2522d07dc79SJohn W. Linville	  This allows one to create geneve virtual interfaces that provide
2532d07dc79SJohn W. Linville	  Layer 2 Networks over Layer 3 Networks. GENEVE is often used
2542d07dc79SJohn W. Linville	  to tunnel virtual network infrastructure in virtualized environments.
2552d07dc79SJohn W. Linville	  For more information see:
2562d07dc79SJohn W. Linville	    http://tools.ietf.org/html/draft-gross-geneve-02
2572d07dc79SJohn W. Linville
2582d07dc79SJohn W. Linville	  To compile this driver as a module, choose M here: the module
2592d07dc79SJohn W. Linville	  will be called geneve.
2602d07dc79SJohn W. Linville
261459aa660SPablo Neiraconfig GTP
262459aa660SPablo Neira	tristate "GPRS Tunneling Protocol datapath (GTP-U)"
263c22da366SMatteo Croce	depends on INET
264c22da366SMatteo Croce	select NET_UDP_TUNNEL
265459aa660SPablo Neira	---help---
266459aa660SPablo Neira	  This allows one to create gtp virtual interfaces that provide
267459aa660SPablo Neira	  the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
268459aa660SPablo Neira	  is used to prevent subscribers from accessing mobile carrier core
269459aa660SPablo Neira	  network infrastructure. This driver requires a userspace software that
270459aa660SPablo Neira	  implements the signaling protocol (GTP-C) to update its PDP context
271459aa660SPablo Neira	  base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
272459aa660SPablo Neira	  tunneling protocol is implemented according to the GSM TS 09.60 and
273459aa660SPablo Neira	  3GPP TS 29.060 standards.
274459aa660SPablo Neira
275459aa660SPablo Neira	  To compile this drivers as a module, choose M here: the module
276459aa660SPablo Neira	  wil be called gtp.
277459aa660SPablo Neira
278c09440f7SSabrina Dubrocaconfig MACSEC
279c09440f7SSabrina Dubroca	tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
280ab2ed017SArnd Bergmann	select CRYPTO
281c09440f7SSabrina Dubroca	select CRYPTO_AES
282c09440f7SSabrina Dubroca	select CRYPTO_GCM
28397e219b7SEric Dumazet	select GRO_CELLS
284c09440f7SSabrina Dubroca	---help---
285c09440f7SSabrina Dubroca	   MACsec is an encryption standard for Ethernet.
286c09440f7SSabrina Dubroca
28788491d81SJeff Kirsherconfig NETCONSOLE
28888491d81SJeff Kirsher	tristate "Network console logging support"
2891da177e4SLinus Torvalds	---help---
29088491d81SJeff Kirsher	  If you want to log kernel messages over the network, enable this.
29188491d81SJeff Kirsher	  See <file:Documentation/networking/netconsole.txt> for details.
2921da177e4SLinus Torvalds
29388491d81SJeff Kirsherconfig NETCONSOLE_DYNAMIC
29488491d81SJeff Kirsher	bool "Dynamic reconfiguration of logging targets"
29588491d81SJeff Kirsher	depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
29688491d81SJeff Kirsher			!(NETCONSOLE=y && CONFIGFS_FS=m)
29788491d81SJeff Kirsher	help
29888491d81SJeff Kirsher	  This option enables the ability to dynamically reconfigure target
29988491d81SJeff Kirsher	  parameters (interface, IP addresses, port numbers, MAC addresses)
30088491d81SJeff Kirsher	  at runtime through a userspace interface exported using configfs.
30188491d81SJeff Kirsher	  See <file:Documentation/networking/netconsole.txt> for details.
3021da177e4SLinus Torvalds
30388491d81SJeff Kirsherconfig NETPOLL
30488491d81SJeff Kirsher	def_bool NETCONSOLE
30583fe27eaSPranith Kumar	select SRCU
30688491d81SJeff Kirsher
30788491d81SJeff Kirsherconfig NET_POLL_CONTROLLER
30888491d81SJeff Kirsher	def_bool NETPOLL
30988491d81SJeff Kirsher
310548c237cSJon Masonconfig NTB_NETDEV
311ec110bc7SAllen Hubbe	tristate "Virtual Ethernet over NTB Transport"
312ec110bc7SAllen Hubbe	depends on NTB_TRANSPORT
313548c237cSJon Mason
31488491d81SJeff Kirsherconfig RIONET
31588491d81SJeff Kirsher	tristate "RapidIO Ethernet over messaging driver support"
31688491d81SJeff Kirsher	depends on RAPIDIO
31788491d81SJeff Kirsher
31888491d81SJeff Kirsherconfig RIONET_TX_SIZE
31988491d81SJeff Kirsher	int "Number of outbound queue entries"
32088491d81SJeff Kirsher	depends on RIONET
32188491d81SJeff Kirsher	default "128"
32288491d81SJeff Kirsher
32388491d81SJeff Kirsherconfig RIONET_RX_SIZE
32488491d81SJeff Kirsher	int "Number of inbound queue entries"
32588491d81SJeff Kirsher	depends on RIONET
32688491d81SJeff Kirsher	default "128"
3271da177e4SLinus Torvalds
3281da177e4SLinus Torvaldsconfig TUN
3291da177e4SLinus Torvalds	tristate "Universal TUN/TAP device driver support"
330de11b0e8SBen Hutchings	depends on INET
3311da177e4SLinus Torvalds	select CRC32
3321da177e4SLinus Torvalds	---help---
3331da177e4SLinus Torvalds	  TUN/TAP provides packet reception and transmission for user space
3341da177e4SLinus Torvalds	  programs.  It can be viewed as a simple Point-to-Point or Ethernet
3351da177e4SLinus Torvalds	  device, which instead of receiving packets from a physical media,
3361da177e4SLinus Torvalds	  receives them from user space program and instead of sending packets
3371da177e4SLinus Torvalds	  via physical media writes them to the user space program.
3381da177e4SLinus Torvalds
3391da177e4SLinus Torvalds	  When a program opens /dev/net/tun, driver creates and registers
3401da177e4SLinus Torvalds	  corresponding net device tunX or tapX.  After a program closed above
3411da177e4SLinus Torvalds	  devices, driver will automatically delete tunXX or tapXX device and
3421da177e4SLinus Torvalds	  all routes corresponding to it.
3431da177e4SLinus Torvalds
3441da177e4SLinus Torvalds	  Please read <file:Documentation/networking/tuntap.txt> for more
3451da177e4SLinus Torvalds	  information.
3461da177e4SLinus Torvalds
3471da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
3481da177e4SLinus Torvalds	  will be called tun.
3491da177e4SLinus Torvalds
3501da177e4SLinus Torvalds	  If you don't know what to use this for, you don't need it.
3511da177e4SLinus Torvalds
3529a393b5dSSainath Grandhiconfig TAP
3539a393b5dSSainath Grandhi	tristate
3549a393b5dSSainath Grandhi	---help---
3559a393b5dSSainath Grandhi	  This option is selected by any driver implementing tap user space
3569a393b5dSSainath Grandhi	  interface for a virtual interface to re-use core tap functionality.
3579a393b5dSSainath Grandhi
3588b8e658bSGreg Kurzconfig TUN_VNET_CROSS_LE
3598b8e658bSGreg Kurz	bool "Support for cross-endian vnet headers on little-endian kernels"
3608b8e658bSGreg Kurz	default n
3618b8e658bSGreg Kurz	---help---
3628b8e658bSGreg Kurz	  This option allows TUN/TAP and MACVTAP device drivers in a
3638b8e658bSGreg Kurz	  little-endian kernel to parse vnet headers that come from a
3648b8e658bSGreg Kurz	  big-endian legacy virtio device.
3658b8e658bSGreg Kurz
3668b8e658bSGreg Kurz	  Userspace programs can control the feature using the TUNSETVNETBE
3678b8e658bSGreg Kurz	  and TUNGETVNETBE ioctls.
3688b8e658bSGreg Kurz
3698b8e658bSGreg Kurz	  Unless you have a little-endian system hosting a big-endian virtual
3708b8e658bSGreg Kurz	  machine with a legacy virtio NIC, you should say N.
3718b8e658bSGreg Kurz
372e314dbdcSPavel Emelyanovconfig VETH
3736a9a0250SRusty Russell	tristate "Virtual ethernet pair device"
374e314dbdcSPavel Emelyanov	---help---
3756a9a0250SRusty Russell	  This device is a local ethernet tunnel. Devices are created in pairs.
3766a9a0250SRusty Russell	  When one end receives the packet it appears on its pair and vice
3776a9a0250SRusty Russell	  versa.
378e314dbdcSPavel Emelyanov
37988491d81SJeff Kirsherconfig VIRTIO_NET
380bd085b93SKees Cook	tristate "Virtio network driver"
381bd085b93SKees Cook	depends on VIRTIO
382ba5e4426SSridhar Samudrala	select NET_FAILOVER
38388491d81SJeff Kirsher	---help---
38488491d81SJeff Kirsher	  This is the virtual network driver for virtio.  It can be used with
385ecda85e7SJuergen Gross	  QEMU based VMMs (like KVM or Xen).  Say Y or M.
38688491d81SJeff Kirsher
387e4fc408eSDaniel Borkmannconfig NLMON
388e4fc408eSDaniel Borkmann	tristate "Virtual netlink monitoring device"
389e4fc408eSDaniel Borkmann	---help---
390e4fc408eSDaniel Borkmann	  This option enables a monitoring net device for netlink skbs. The
391e4fc408eSDaniel Borkmann	  purpose of this is to analyze netlink messages with packet sockets.
392e4fc408eSDaniel Borkmann	  Thus applications like tcpdump will be able to see local netlink
393e4fc408eSDaniel Borkmann	  messages if they tap into the netlink device, record pcaps for further
394e4fc408eSDaniel Borkmann	  diagnostics, etc. This is mostly intended for developers or support
395e4fc408eSDaniel Borkmann	  to debug netlink issues. If unsure, say N.
396e4fc408eSDaniel Borkmann
397193125dbSDavid Ahernconfig NET_VRF
398193125dbSDavid Ahern	tristate "Virtual Routing and Forwarding (Lite)"
39935402e31SDavid Ahern	depends on IP_MULTIPLE_TABLES
400ee15ee5dSDavid Ahern	depends on NET_L3_MASTER_DEV
40135402e31SDavid Ahern	depends on IPV6 || IPV6=n
40235402e31SDavid Ahern	depends on IPV6_MULTIPLE_TABLES || IPV6=n
403193125dbSDavid Ahern	---help---
404193125dbSDavid Ahern	  This option enables the support for mapping interfaces into VRF's. The
405193125dbSDavid Ahern	  support enables VRF devices.
406193125dbSDavid Ahern
4070b2e6644SGerard Garciaconfig VSOCKMON
4080b2e6644SGerard Garcia	tristate "Virtual vsock monitoring device"
4090b2e6644SGerard Garcia	depends on VHOST_VSOCK
4100b2e6644SGerard Garcia	---help---
4110b2e6644SGerard Garcia	  This option enables a monitoring net device for vsock sockets. It is
4120b2e6644SGerard Garcia	  mostly intended for developers or support to debug vsock issues. If
4130b2e6644SGerard Garcia	  unsure, say N.
4140b2e6644SGerard Garcia
41588491d81SJeff Kirsherendif # NET_CORE
41688491d81SJeff Kirsher
41788491d81SJeff Kirsherconfig SUNGEM_PHY
41888491d81SJeff Kirsher	tristate
41988491d81SJeff Kirsher
42088491d81SJeff Kirshersource "drivers/net/arcnet/Kconfig"
42188491d81SJeff Kirsher
42288491d81SJeff Kirshersource "drivers/atm/Kconfig"
42388491d81SJeff Kirsher
42488491d81SJeff Kirshersource "drivers/net/caif/Kconfig"
42588491d81SJeff Kirsher
4263b158859SBen Hutchingssource "drivers/net/dsa/Kconfig"
4273b158859SBen Hutchings
42888491d81SJeff Kirshersource "drivers/net/ethernet/Kconfig"
42988491d81SJeff Kirsher
43088491d81SJeff Kirshersource "drivers/net/fddi/Kconfig"
43188491d81SJeff Kirsher
432fecc7351SPaul Bollesource "drivers/net/hippi/Kconfig"
433fecc7351SPaul Bolle
4341da177e4SLinus Torvaldsconfig NET_SB1000
4351da177e4SLinus Torvalds	tristate "General Instruments Surfboard 1000"
436cbcd2a4cSRandy Dunlap	depends on PNP
4371da177e4SLinus Torvalds	---help---
4381da177e4SLinus Torvalds	  This is a driver for the General Instrument (also known as
4391da177e4SLinus Torvalds	  NextLevel) SURFboard 1000 internal
4401da177e4SLinus Torvalds	  cable modem. This is an ISA card which is used by a number of cable
4411da177e4SLinus Torvalds	  TV companies to provide cable modem access. It's a one-way
4421da177e4SLinus Torvalds	  downstream-only cable modem, meaning that your upstream net link is
4431da177e4SLinus Torvalds	  provided by your regular phone modem.
4441da177e4SLinus Torvalds
4451da177e4SLinus Torvalds	  At present this driver only compiles as a module, so say M here if
4461da177e4SLinus Torvalds	  you have this card. The module will be called sb1000. Then read
447b255e500SJakub Kicinski	  <file:Documentation/networking/device_drivers/sb1000.txt> for
448b255e500SJakub Kicinski	  information on how to use this module, as it needs special ppp
449b255e500SJakub Kicinski	  scripts for establishing a connection. Further documentation
450b255e500SJakub Kicinski	  and the necessary scripts can be found at:
4511da177e4SLinus Torvalds
4521da177e4SLinus Torvalds	  <http://www.jacksonville.net/~fventuri/>
4531da177e4SLinus Torvalds	  <http://home.adelphia.net/~siglercm/sb1000.html>
4541da177e4SLinus Torvalds	  <http://linuxpower.cx/~cable/>
4551da177e4SLinus Torvalds
4561da177e4SLinus Torvalds	  If you don't have this card, of course say N.
4571da177e4SLinus Torvalds
45800db8189SAndy Flemingsource "drivers/net/phy/Kconfig"
45900db8189SAndy Fleming
46018e635f4SJeff Kirshersource "drivers/net/plip/Kconfig"
46118e635f4SJeff Kirsher
46288491d81SJeff Kirshersource "drivers/net/ppp/Kconfig"
46388491d81SJeff Kirsher
464b5451d78SJeff Kirshersource "drivers/net/slip/Kconfig"
465b5451d78SJeff Kirsher
46688491d81SJeff Kirshersource "drivers/s390/net/Kconfig"
46788491d81SJeff Kirsher
46888491d81SJeff Kirshersource "drivers/net/usb/Kconfig"
46988491d81SJeff Kirsher
4701da177e4SLinus Torvaldssource "drivers/net/wireless/Kconfig"
4711da177e4SLinus Torvalds
472143ee2d5SInaky Perez-Gonzalezsource "drivers/net/wimax/Kconfig"
473143ee2d5SInaky Perez-Gonzalez
4741da177e4SLinus Torvaldssource "drivers/net/wan/Kconfig"
4751da177e4SLinus Torvalds
4760739d643Salex.bluesman.smirnov@gmail.comsource "drivers/net/ieee802154/Kconfig"
4770739d643Salex.bluesman.smirnov@gmail.com
4780d160211SJeremy Fitzhardingeconfig XEN_NETDEV_FRONTEND
4790d160211SJeremy Fitzhardinge	tristate "Xen network device frontend driver"
4800d160211SJeremy Fitzhardinge	depends on XEN
4817003087cSJeremy Fitzhardinge	select XEN_XENBUS_FRONTEND
4820d160211SJeremy Fitzhardinge	default y
4830d160211SJeremy Fitzhardinge	help
484f942dc25SIan Campbell	  This driver provides support for Xen paravirtual network
485f942dc25SIan Campbell	  devices exported by a Xen network driver domain (often
486f942dc25SIan Campbell	  domain 0).
487f942dc25SIan Campbell
488f942dc25SIan Campbell	  The corresponding Linux backend driver is enabled by the
489f942dc25SIan Campbell	  CONFIG_XEN_NETDEV_BACKEND option.
490f942dc25SIan Campbell
491f942dc25SIan Campbell	  If you are compiling a kernel for use as Xen guest, you
492f942dc25SIan Campbell	  should say Y here. To compile this driver as a module, chose
493f942dc25SIan Campbell	  M here: the module will be called xen-netfront.
494f942dc25SIan Campbell
495f942dc25SIan Campbellconfig XEN_NETDEV_BACKEND
496f942dc25SIan Campbell	tristate "Xen backend network device"
497f942dc25SIan Campbell	depends on XEN_BACKEND
498f942dc25SIan Campbell	help
499f942dc25SIan Campbell	  This driver allows the kernel to act as a Xen network driver
500f942dc25SIan Campbell	  domain which exports paravirtual network devices to other
501f942dc25SIan Campbell	  Xen domains. These devices can be accessed by any operating
502f942dc25SIan Campbell	  system that implements a compatible front end.
503f942dc25SIan Campbell
504f942dc25SIan Campbell	  The corresponding Linux frontend driver is enabled by the
505f942dc25SIan Campbell	  CONFIG_XEN_NETDEV_FRONTEND configuration option.
506f942dc25SIan Campbell
507f942dc25SIan Campbell	  The backend driver presents a standard network device
508f942dc25SIan Campbell	  endpoint for each paravirtual network device to the driver
509f942dc25SIan Campbell	  domain network stack. These can then be bridged or routed
510f942dc25SIan Campbell	  etc in order to provide full network connectivity.
511f942dc25SIan Campbell
512f942dc25SIan Campbell	  If you are compiling a kernel to run in a Xen network driver
513f942dc25SIan Campbell	  domain (often this is domain 0) you should say Y here. To
514f942dc25SIan Campbell	  compile this driver as a module, chose M here: the module
515f942dc25SIan Campbell	  will be called xen-netback.
5160d160211SJeremy Fitzhardinge
517d1a890faSShreyas Bhatewaraconfig VMXNET3
518d1a890faSShreyas Bhatewara	tristate "VMware VMXNET3 ethernet driver"
519115924b6SShreyas Bhatewara	depends on PCI && INET
520fbdf0e28SArnd Bergmann	depends on !(PAGE_SIZE_64KB || ARM64_64K_PAGES || \
521fbdf0e28SArnd Bergmann		     IA64_PAGE_SIZE_64KB || MICROBLAZE_64K_PAGES || \
522fbdf0e28SArnd Bergmann		     PARISC_PAGE_SIZE_64KB || PPC_64K_PAGES)
523d1a890faSShreyas Bhatewara	help
524d1a890faSShreyas Bhatewara	  This driver supports VMware's vmxnet3 virtual ethernet NIC.
525d1a890faSShreyas Bhatewara	  To compile this driver as a module, choose M here: the
526d1a890faSShreyas Bhatewara	  module will be called vmxnet3.
527d1a890faSShreyas Bhatewara
528658d439bSTaku Izumiconfig FUJITSU_ES
529658d439bSTaku Izumi	tristate "FUJITSU Extended Socket Network Device driver"
530658d439bSTaku Izumi	depends on ACPI
531658d439bSTaku Izumi	help
532658d439bSTaku Izumi	  This driver provides support for Extended Socket network device
533658d439bSTaku Izumi	  on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
534658d439bSTaku Izumi
535e69b6c02SAmir Levyconfig THUNDERBOLT_NET
536e69b6c02SAmir Levy	tristate "Networking over Thunderbolt cable"
537e69b6c02SAmir Levy	depends on THUNDERBOLT && INET
538e69b6c02SAmir Levy	help
539e69b6c02SAmir Levy	  Select this if you want to create network between two
540e69b6c02SAmir Levy	  computers over a Thunderbolt cable. The driver supports Apple
541e69b6c02SAmir Levy	  ThunderboltIP protocol and allows communication with any host
542e69b6c02SAmir Levy	  supporting the same protocol including Windows and macOS.
543e69b6c02SAmir Levy
544e69b6c02SAmir Levy	  To compile this driver a module, choose M here. The module will be
545e69b6c02SAmir Levy	  called thunderbolt-net.
546e69b6c02SAmir Levy
54795fa0405SHaiyang Zhangsource "drivers/net/hyperv/Kconfig"
54895fa0405SHaiyang Zhang
54983c9e13aSJakub Kicinskiconfig NETDEVSIM
55083c9e13aSJakub Kicinski	tristate "Simulated networking device"
55183c9e13aSJakub Kicinski	depends on DEBUG_FS
552*1f399fc7SHongbo Yao	depends on INET
55348bb9eb4SIdo Schimmel	depends on IPV6 || IPV6=n
554f6b19b35SJiri Pirko	select NET_DEVLINK
55583c9e13aSJakub Kicinski	help
55683c9e13aSJakub Kicinski	  This driver is a developer testing tool and software model that can
55783c9e13aSJakub Kicinski	  be used to test various control path networking APIs, especially
55883c9e13aSJakub Kicinski	  HW-offload related.
55983c9e13aSJakub Kicinski
56083c9e13aSJakub Kicinski	  To compile this driver as a module, choose M here: the module
56183c9e13aSJakub Kicinski	  will be called netdevsim.
56283c9e13aSJakub Kicinski
563cfc80d9aSSridhar Samudralaconfig NET_FAILOVER
564cfc80d9aSSridhar Samudrala	tristate "Failover driver"
565cfc80d9aSSridhar Samudrala	select FAILOVER
566cfc80d9aSSridhar Samudrala	help
567cfc80d9aSSridhar Samudrala	  This provides an automated failover mechanism via APIs to create
568cfc80d9aSSridhar Samudrala	  and destroy a failover master netdev and manages a primary and
569cfc80d9aSSridhar Samudrala	  standby slave netdevs that get registered via the generic failover
570cfc80d9aSSridhar Samudrala	  infrastructure. This can be used by paravirtual drivers to enable
571cfc80d9aSSridhar Samudrala	  an alternate low latency datapath. It also enables live migration of
572cfc80d9aSSridhar Samudrala	  a VM with direct attached VF by failing over to the paravirtual
573cfc80d9aSSridhar Samudrala	  datapath when the VF is unplugged.
574cfc80d9aSSridhar Samudrala
575d1c0a65fSJan Engelhardtendif # NETDEVICES
576