xref: /openbmc/linux/drivers/net/Kconfig (revision fad361a2)
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"
10a7f7f624SMasahiro Yamada	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"
35a7f7f624SMasahiro Yamada	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
45285715acSArnd Bergmann	depends on TLS || TLS_DEVICE=n
46a7f7f624SMasahiro Yamada	help
4788491d81SJeff Kirsher	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
4888491d81SJeff Kirsher	  Channels together. This is called 'Etherchannel' by Cisco,
4988491d81SJeff Kirsher	  'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
5088491d81SJeff Kirsher
5188491d81SJeff Kirsher	  The driver supports multiple bonding modes to allow for both high
5288491d81SJeff Kirsher	  performance and high availability operation.
5388491d81SJeff Kirsher
54a362032eSMauro Carvalho Chehab	  Refer to <file:Documentation/networking/bonding.rst> for more
5588491d81SJeff Kirsher	  information.
5688491d81SJeff Kirsher
57253af423SJamal Hadi Salim	  To compile this driver as a module, choose M here: the module
5888491d81SJeff Kirsher	  will be called bonding.
59253af423SJamal Hadi Salim
601da177e4SLinus Torvaldsconfig DUMMY
611da177e4SLinus Torvalds	tristate "Dummy net driver support"
62a7f7f624SMasahiro Yamada	help
631da177e4SLinus Torvalds	  This is essentially a bit-bucket device (i.e. traffic you send to
641da177e4SLinus Torvalds	  this device is consigned into oblivion) with a configurable IP
651da177e4SLinus Torvalds	  address. It is most commonly used in order to make your currently
661da177e4SLinus Torvalds	  inactive SLIP address seem like a real address for local programs.
679f5db535SIvan Babrou	  If you use SLIP or PPP, you might want to say Y here. It won't
689f5db535SIvan Babrou	  enlarge your kernel. What a deal. Read about it in the Network
691da177e4SLinus Torvalds	  Administrator's Guide, available from
701da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#guide>.
711da177e4SLinus Torvalds
721da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
739f486619SAlan Cox	  will be called dummy.
741da177e4SLinus Torvalds
75e7096c13SJason A. Donenfeldconfig WIREGUARD
76e7096c13SJason A. Donenfeld	tristate "WireGuard secure network tunnel"
77e7096c13SJason A. Donenfeld	depends on NET && INET
78e7096c13SJason A. Donenfeld	depends on IPV6 || !IPV6
79440fed95SAlexander Potapenko	depends on !KMSAN # KMSAN doesn't support the crypto configs below
80e7096c13SJason A. Donenfeld	select NET_UDP_TUNNEL
81e7096c13SJason A. Donenfeld	select DST_CACHE
82e7096c13SJason A. Donenfeld	select CRYPTO
83e7096c13SJason A. Donenfeld	select CRYPTO_LIB_CURVE25519
84e7096c13SJason A. Donenfeld	select CRYPTO_LIB_CHACHA20POLY1305
85e7096c13SJason A. Donenfeld	select CRYPTO_CHACHA20_X86_64 if X86 && 64BIT
86e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_X86_64 if X86 && 64BIT
87e7096c13SJason A. Donenfeld	select CRYPTO_BLAKE2S_X86 if X86 && 64BIT
88e7096c13SJason A. Donenfeld	select CRYPTO_CURVE25519_X86 if X86 && 64BIT
89bce24739SJason A. Donenfeld	select CRYPTO_CHACHA20_NEON if ARM || (ARM64 && KERNEL_MODE_NEON)
90e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_NEON if ARM64 && KERNEL_MODE_NEON
91e7096c13SJason A. Donenfeld	select CRYPTO_POLY1305_ARM if ARM
92a64bfe7aSEric Biggers	select CRYPTO_BLAKE2S_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
956c810cf2SMaciej W. Rozycki	select CRYPTO_POLY1305_MIPS if MIPS
960d1f7008SVladis Dronov	select CRYPTO_CHACHA_S390 if S390
97e7096c13SJason A. Donenfeld	help
98e7096c13SJason A. Donenfeld	  WireGuard is a secure, fast, and easy to use replacement for IPSec
99e7096c13SJason A. Donenfeld	  that uses modern cryptography and clever networking tricks. It's
100e7096c13SJason A. Donenfeld	  designed to be fairly general purpose and abstract enough to fit most
101e7096c13SJason A. Donenfeld	  use cases, while at the same time remaining extremely simple to
102e7096c13SJason A. Donenfeld	  configure. See www.wireguard.com for more info.
103e7096c13SJason A. Donenfeld
104e7096c13SJason A. Donenfeld	  It's safe to say Y or M here, as the driver is very lightweight and
105e7096c13SJason A. Donenfeld	  is only in use when an administrator chooses to add an interface.
106e7096c13SJason A. Donenfeld
107e7096c13SJason A. Donenfeldconfig WIREGUARD_DEBUG
108e7096c13SJason A. Donenfeld	bool "Debugging checks and verbose messages"
109e7096c13SJason A. Donenfeld	depends on WIREGUARD
110e7096c13SJason A. Donenfeld	help
111e7096c13SJason A. Donenfeld	  This will write log messages for handshake and other events
112e7096c13SJason A. Donenfeld	  that occur for a WireGuard interface. It will also perform some
113e7096c13SJason A. Donenfeld	  extra validation checks and unit tests at various points. This is
114e7096c13SJason A. Donenfeld	  only useful for debugging.
115e7096c13SJason A. Donenfeld
116e7096c13SJason A. Donenfeld	  Say N here unless you know what you're doing.
117e7096c13SJason A. Donenfeld
11888491d81SJeff Kirsherconfig EQUALIZER
11988491d81SJeff Kirsher	tristate "EQL (serial line load balancing) support"
120a7f7f624SMasahiro Yamada	help
12188491d81SJeff Kirsher	  If you have two serial connections to some other computer (this
12288491d81SJeff Kirsher	  usually requires two modems and two telephone lines) and you use
12388491d81SJeff Kirsher	  SLIP (the protocol for sending Internet traffic over telephone
12488491d81SJeff Kirsher	  lines) or PPP (a better SLIP) on them, you can make them behave like
12588491d81SJeff Kirsher	  one double speed connection using this driver.  Naturally, this has
12688491d81SJeff Kirsher	  to be supported at the other end as well, either with a similar EQL
12788491d81SJeff Kirsher	  Linux driver or with a Livingston Portmaster 2e.
1281da177e4SLinus Torvalds
12988491d81SJeff Kirsher	  Say Y if you want this and read
13006df6572SMauro Carvalho Chehab	  <file:Documentation/networking/eql.rst>.  You may also want to read
13188491d81SJeff Kirsher	  section 6.2 of the NET-3-HOWTO, available from
13288491d81SJeff Kirsher	  <http://www.tldp.org/docs.html#howto>.
1331da177e4SLinus Torvalds
1341da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
13588491d81SJeff Kirsher	  will be called eql.  If unsure, say N.
13688491d81SJeff Kirsher
13788491d81SJeff Kirsherconfig NET_FC
13888491d81SJeff Kirsher	bool "Fibre Channel driver support"
13988491d81SJeff Kirsher	depends on SCSI && PCI
14088491d81SJeff Kirsher	help
14188491d81SJeff Kirsher	  Fibre Channel is a high speed serial protocol mainly used to connect
14288491d81SJeff Kirsher	  large storage devices to the computer; it is compatible with and
14388491d81SJeff Kirsher	  intended to replace SCSI.
14488491d81SJeff Kirsher
14588491d81SJeff Kirsher	  If you intend to use Fibre Channel, you need to have a Fibre channel
14688491d81SJeff Kirsher	  adaptor card in your computer; say Y here and to the driver for your
14788491d81SJeff Kirsher	  adaptor below. You also should have said Y to "SCSI support" and
14888491d81SJeff Kirsher	  "SCSI generic support".
14988491d81SJeff Kirsher
15088491d81SJeff Kirsherconfig IFB
15188491d81SJeff Kirsher	tristate "Intermediate Functional Block support"
152046178e7SLukas Wunner	depends on NET_ACT_MIRRED || NFT_FWD_NETDEV
1532c64605bSPablo Neira Ayuso	select NET_REDIRECT
154a7f7f624SMasahiro Yamada	help
15588491d81SJeff Kirsher	  This is an intermediate driver that allows sharing of
15688491d81SJeff Kirsher	  resources.
15788491d81SJeff Kirsher	  To compile this driver as a module, choose M here: the module
15888491d81SJeff Kirsher	  will be called ifb.  If you want to use more than one ifb
15988491d81SJeff Kirsher	  device at a time, you need to compile this driver as a module.
16088491d81SJeff Kirsher	  Instead of 'ifb', the devices will then be called 'ifb0',
16188491d81SJeff Kirsher	  'ifb1' etc.
16288491d81SJeff Kirsher	  Look at the iproute2 documentation directory for usage etc
1631da177e4SLinus Torvalds
1643d249d4cSJiri Pirkosource "drivers/net/team/Kconfig"
1653d249d4cSJiri Pirko
166b863ceb7SPatrick McHardyconfig MACVLAN
167bd085b93SKees Cook	tristate "MAC-VLAN support"
168a7f7f624SMasahiro Yamada	help
169b863ceb7SPatrick McHardy	  This allows one to create virtual interfaces that map packets to
170b863ceb7SPatrick McHardy	  or from specific MAC addresses to a particular interface.
171b863ceb7SPatrick McHardy
1723dbf8d56SPatrick McHardy	  Macvlan devices can be added using the "ip" command from the
1733dbf8d56SPatrick McHardy	  iproute2 package starting with the iproute2-2.6.23 release:
1743dbf8d56SPatrick McHardy
1753dbf8d56SPatrick McHardy	  "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
1763dbf8d56SPatrick McHardy
177b863ceb7SPatrick McHardy	  To compile this driver as a module, choose M here: the module
178b863ceb7SPatrick McHardy	  will be called macvlan.
179b863ceb7SPatrick McHardy
18020d29d7aSArnd Bergmannconfig MACVTAP
181bd085b93SKees Cook	tristate "MAC-VLAN based tap driver"
18220d29d7aSArnd Bergmann	depends on MACVLAN
183de11b0e8SBen Hutchings	depends on INET
1849a393b5dSSainath Grandhi	select TAP
18520d29d7aSArnd Bergmann	help
18620d29d7aSArnd Bergmann	  This adds a specialized tap character device driver that is based
18720d29d7aSArnd Bergmann	  on the MAC-VLAN network interface, called macvtap. A macvtap device
18820d29d7aSArnd Bergmann	  can be added in the same way as a macvlan device, using 'type
189c7966b52SJan Luebbe	  macvtap', and then be accessed through the tap user space interface.
19020d29d7aSArnd Bergmann
19120d29d7aSArnd Bergmann	  To compile this driver as a module, choose M here: the module
19220d29d7aSArnd Bergmann	  will be called macvtap.
19320d29d7aSArnd Bergmann
194c675e06aSDaniel Borkmannconfig IPVLAN_L3S
195c675e06aSDaniel Borkmann	depends on NETFILTER
196a37d45b6SRandy Dunlap	depends on IPVLAN
197c675e06aSDaniel Borkmann	def_bool y
198c675e06aSDaniel Borkmann	select NET_L3_MASTER_DEV
1992ad7bf36SMahesh Bandewar
2002ad7bf36SMahesh Bandewarconfig IPVLAN
2012ad7bf36SMahesh Bandewar	tristate "IP-VLAN support"
202265de6d1SMahesh Bandewar	depends on INET
2037f897db3SArnd Bergmann	depends on IPV6 || !IPV6
204a7f7f624SMasahiro Yamada	help
2052ad7bf36SMahesh Bandewar	  This allows one to create virtual devices off of a main interface
2062ad7bf36SMahesh Bandewar	  and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
2072ad7bf36SMahesh Bandewar	  on packets. All interfaces (including the main interface) share L2
2082ad7bf36SMahesh Bandewar	  making it transparent to the connected L2 switch.
2092ad7bf36SMahesh Bandewar
2102ad7bf36SMahesh Bandewar	  Ipvlan devices can be added using the "ip" command from the
211f4c2b7a0SMahesh Bandewar	  iproute2 package starting with the iproute2-3.19 release:
2122ad7bf36SMahesh Bandewar
2132ad7bf36SMahesh Bandewar	  "ip link add link <main-dev> [ NAME ] type ipvlan"
2142ad7bf36SMahesh Bandewar
2152ad7bf36SMahesh Bandewar	  To compile this driver as a module, choose M here: the module
2162ad7bf36SMahesh Bandewar	  will be called ipvlan.
2172ad7bf36SMahesh Bandewar
218235a9d89SSainath Grandhiconfig IPVTAP
219235a9d89SSainath Grandhi	tristate "IP-VLAN based tap driver"
220235a9d89SSainath Grandhi	depends on IPVLAN
221235a9d89SSainath Grandhi	depends on INET
222235a9d89SSainath Grandhi	select TAP
223a7f7f624SMasahiro Yamada	help
224235a9d89SSainath Grandhi	  This adds a specialized tap character device driver that is based
225235a9d89SSainath Grandhi	  on the IP-VLAN network interface, called ipvtap. An ipvtap device
226235a9d89SSainath Grandhi	  can be added in the same way as a ipvlan device, using 'type
227235a9d89SSainath Grandhi	  ipvtap', and then be accessed through the tap user space interface.
228235a9d89SSainath Grandhi
229235a9d89SSainath Grandhi	  To compile this driver as a module, choose M here: the module
230235a9d89SSainath Grandhi	  will be called ipvtap.
2312ad7bf36SMahesh Bandewar
232d342894cSstephen hemmingerconfig VXLAN
233d342894cSstephen hemminger	tristate "Virtual eXtensible Local Area Network (VXLAN)"
234c9b20a5eSKees Cook	depends on INET
2353ee64f39STom Herbert	select NET_UDP_TUNNEL
23697e219b7SEric Dumazet	select GRO_CELLS
237a7f7f624SMasahiro Yamada	help
238d342894cSstephen hemminger	  This allows one to create vxlan virtual interfaces that provide
239d342894cSstephen hemminger	  Layer 2 Networks over Layer 3 Networks. VXLAN is often used
240d342894cSstephen hemminger	  to tunnel virtual network infrastructure in virtualized environments.
241d342894cSstephen hemminger	  For more information see:
242d342894cSstephen hemminger	    http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
243d342894cSstephen hemminger
244d342894cSstephen hemminger	  To compile this driver as a module, choose M here: the module
245d342894cSstephen hemminger	  will be called vxlan.
246d342894cSstephen hemminger
2472d07dc79SJohn W. Linvilleconfig GENEVE
248371bd106SPravin B Shelar	tristate "Generic Network Virtualization Encapsulation"
249a7603ac1SMatteo Croce	depends on INET
250094be092STobias Regnery	depends on IPV6 || !IPV6
251a7603ac1SMatteo Croce	select NET_UDP_TUNNEL
25297e219b7SEric Dumazet	select GRO_CELLS
253a7f7f624SMasahiro Yamada	help
2542d07dc79SJohn W. Linville	  This allows one to create geneve virtual interfaces that provide
2552d07dc79SJohn W. Linville	  Layer 2 Networks over Layer 3 Networks. GENEVE is often used
2562d07dc79SJohn W. Linville	  to tunnel virtual network infrastructure in virtualized environments.
2572d07dc79SJohn W. Linville	  For more information see:
2582d07dc79SJohn W. Linville	    http://tools.ietf.org/html/draft-gross-geneve-02
2592d07dc79SJohn W. Linville
2602d07dc79SJohn W. Linville	  To compile this driver as a module, choose M here: the module
2612d07dc79SJohn W. Linville	  will be called geneve.
2622d07dc79SJohn W. Linville
263571912c6SMartin Vargheseconfig BAREUDP
264571912c6SMartin Varghese	tristate "Bare UDP Encapsulation"
265571912c6SMartin Varghese	depends on INET
266571912c6SMartin Varghese	depends on IPV6 || !IPV6
267571912c6SMartin Varghese	select NET_UDP_TUNNEL
268571912c6SMartin Varghese	select GRO_CELLS
269571912c6SMartin Varghese	help
270571912c6SMartin Varghese	  This adds a bare UDP tunnel module for tunnelling different
271571912c6SMartin Varghese	  kinds of traffic like MPLS, IP, etc. inside a UDP tunnel.
272571912c6SMartin Varghese
273571912c6SMartin Varghese	  To compile this driver as a module, choose M here: the module
274571912c6SMartin Varghese	  will be called bareudp.
275571912c6SMartin Varghese
276459aa660SPablo Neiraconfig GTP
277459aa660SPablo Neira	tristate "GPRS Tunneling Protocol datapath (GTP-U)"
278c22da366SMatteo Croce	depends on INET
279c22da366SMatteo Croce	select NET_UDP_TUNNEL
280a7f7f624SMasahiro Yamada	help
281459aa660SPablo Neira	  This allows one to create gtp virtual interfaces that provide
282459aa660SPablo Neira	  the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
283459aa660SPablo Neira	  is used to prevent subscribers from accessing mobile carrier core
284459aa660SPablo Neira	  network infrastructure. This driver requires a userspace software that
285459aa660SPablo Neira	  implements the signaling protocol (GTP-C) to update its PDP context
286459aa660SPablo Neira	  base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
287459aa660SPablo Neira	  tunneling protocol is implemented according to the GSM TS 09.60 and
288459aa660SPablo Neira	  3GPP TS 29.060 standards.
289459aa660SPablo Neira
290459aa660SPablo Neira	  To compile this drivers as a module, choose M here: the module
29100649542SColin Ian King	  will be called gtp.
292459aa660SPablo Neira
293b9022b53STaehee Yooconfig AMT
294b9022b53STaehee Yoo	tristate "Automatic Multicast Tunneling (AMT)"
295b9022b53STaehee Yoo	depends on INET && IP_MULTICAST
2969758aba8SArnd Bergmann	depends on IPV6 || !IPV6
297b9022b53STaehee Yoo	select NET_UDP_TUNNEL
298b9022b53STaehee Yoo	help
299b9022b53STaehee Yoo	  This allows one to create AMT(Automatic Multicast Tunneling)
300b9022b53STaehee Yoo	  virtual interfaces that provide multicast tunneling.
301b9022b53STaehee Yoo	  There are two roles, Gateway, and Relay.
302b9022b53STaehee Yoo	  Gateway Encapsulates IGMP/MLD traffic from listeners to the Relay.
303b9022b53STaehee Yoo	  Gateway Decapsulates multicast traffic from the Relay to Listeners.
304b9022b53STaehee Yoo	  Relay Encapsulates multicast traffic from Sources to Gateway.
305b9022b53STaehee Yoo	  Relay Decapsulates IGMP/MLD traffic from Gateway.
306b9022b53STaehee Yoo
307b9022b53STaehee Yoo	  To compile this drivers as a module, choose M here: the module
308b9022b53STaehee Yoo	  will be called amt.
309b9022b53STaehee Yoo
310c09440f7SSabrina Dubrocaconfig MACSEC
311c09440f7SSabrina Dubroca	tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
312ab2ed017SArnd Bergmann	select CRYPTO
313c09440f7SSabrina Dubroca	select CRYPTO_AES
314c09440f7SSabrina Dubroca	select CRYPTO_GCM
31597e219b7SEric Dumazet	select GRO_CELLS
316a7f7f624SMasahiro Yamada	help
317c09440f7SSabrina Dubroca	   MACsec is an encryption standard for Ethernet.
318c09440f7SSabrina Dubroca
31988491d81SJeff Kirsherconfig NETCONSOLE
32088491d81SJeff Kirsher	tristate "Network console logging support"
321a7f7f624SMasahiro Yamada	help
32288491d81SJeff Kirsher	  If you want to log kernel messages over the network, enable this.
323d9d6ef25SMauro Carvalho Chehab	  See <file:Documentation/networking/netconsole.rst> for details.
3241da177e4SLinus Torvalds
32588491d81SJeff Kirsherconfig NETCONSOLE_DYNAMIC
32688491d81SJeff Kirsher	bool "Dynamic reconfiguration of logging targets"
32788491d81SJeff Kirsher	depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
32888491d81SJeff Kirsher			!(NETCONSOLE=y && CONFIGFS_FS=m)
32988491d81SJeff Kirsher	help
33088491d81SJeff Kirsher	  This option enables the ability to dynamically reconfigure target
33188491d81SJeff Kirsher	  parameters (interface, IP addresses, port numbers, MAC addresses)
33288491d81SJeff Kirsher	  at runtime through a userspace interface exported using configfs.
333d9d6ef25SMauro Carvalho Chehab	  See <file:Documentation/networking/netconsole.rst> for details.
3341da177e4SLinus Torvalds
335*fad361a2SBreno Leitaoconfig NETCONSOLE_EXTENDED_LOG
336*fad361a2SBreno Leitao	bool "Set kernel extended message by default"
337*fad361a2SBreno Leitao	depends on NETCONSOLE
338*fad361a2SBreno Leitao	default n
339*fad361a2SBreno Leitao	help
340*fad361a2SBreno Leitao	  Set extended log support for netconsole message. If this option is
341*fad361a2SBreno Leitao	  set, log messages are transmitted with extended metadata header in a
342*fad361a2SBreno Leitao	  format similar to /dev/kmsg.  See
343*fad361a2SBreno Leitao	  <file:Documentation/networking/netconsole.rst> for details.
344*fad361a2SBreno Leitao
345*fad361a2SBreno Leitaoconfig NETCONSOLE_PREPEND_RELEASE
346*fad361a2SBreno Leitao	bool "Prepend kernel release version in the message by default"
347*fad361a2SBreno Leitao	depends on NETCONSOLE_EXTENDED_LOG
348*fad361a2SBreno Leitao	default n
349*fad361a2SBreno Leitao	help
350*fad361a2SBreno Leitao	  Set kernel release to be prepended to each netconsole message by
351*fad361a2SBreno Leitao	  default. If this option is set, the kernel release is prepended into
352*fad361a2SBreno Leitao	  the first field of every netconsole message, so, the netconsole
353*fad361a2SBreno Leitao	  server/peer can easily identify what kernel release is logging each
354*fad361a2SBreno Leitao	  message.  See <file:Documentation/networking/netconsole.rst> for
355*fad361a2SBreno Leitao	  details.
356*fad361a2SBreno Leitao
35788491d81SJeff Kirsherconfig NETPOLL
35888491d81SJeff Kirsher	def_bool NETCONSOLE
35988491d81SJeff Kirsher
36088491d81SJeff Kirsherconfig NET_POLL_CONTROLLER
36188491d81SJeff Kirsher	def_bool NETPOLL
36288491d81SJeff Kirsher
363548c237cSJon Masonconfig NTB_NETDEV
364ec110bc7SAllen Hubbe	tristate "Virtual Ethernet over NTB Transport"
365ec110bc7SAllen Hubbe	depends on NTB_TRANSPORT
366548c237cSJon Mason
36788491d81SJeff Kirsherconfig RIONET
36888491d81SJeff Kirsher	tristate "RapidIO Ethernet over messaging driver support"
36988491d81SJeff Kirsher	depends on RAPIDIO
37088491d81SJeff Kirsher
37188491d81SJeff Kirsherconfig RIONET_TX_SIZE
37288491d81SJeff Kirsher	int "Number of outbound queue entries"
37388491d81SJeff Kirsher	depends on RIONET
37488491d81SJeff Kirsher	default "128"
37588491d81SJeff Kirsher
37688491d81SJeff Kirsherconfig RIONET_RX_SIZE
37788491d81SJeff Kirsher	int "Number of inbound queue entries"
37888491d81SJeff Kirsher	depends on RIONET
37988491d81SJeff Kirsher	default "128"
3801da177e4SLinus Torvalds
3811da177e4SLinus Torvaldsconfig TUN
3821da177e4SLinus Torvalds	tristate "Universal TUN/TAP device driver support"
383de11b0e8SBen Hutchings	depends on INET
3841da177e4SLinus Torvalds	select CRC32
385a7f7f624SMasahiro Yamada	help
3861da177e4SLinus Torvalds	  TUN/TAP provides packet reception and transmission for user space
3871da177e4SLinus Torvalds	  programs.  It can be viewed as a simple Point-to-Point or Ethernet
3881da177e4SLinus Torvalds	  device, which instead of receiving packets from a physical media,
3891da177e4SLinus Torvalds	  receives them from user space program and instead of sending packets
3901da177e4SLinus Torvalds	  via physical media writes them to the user space program.
3911da177e4SLinus Torvalds
3921da177e4SLinus Torvalds	  When a program opens /dev/net/tun, driver creates and registers
3931da177e4SLinus Torvalds	  corresponding net device tunX or tapX.  After a program closed above
3941da177e4SLinus Torvalds	  devices, driver will automatically delete tunXX or tapXX device and
3951da177e4SLinus Torvalds	  all routes corresponding to it.
3961da177e4SLinus Torvalds
397973d55e5SMauro Carvalho Chehab	  Please read <file:Documentation/networking/tuntap.rst> for more
3981da177e4SLinus Torvalds	  information.
3991da177e4SLinus Torvalds
4001da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
4011da177e4SLinus Torvalds	  will be called tun.
4021da177e4SLinus Torvalds
4031da177e4SLinus Torvalds	  If you don't know what to use this for, you don't need it.
4041da177e4SLinus Torvalds
4059a393b5dSSainath Grandhiconfig TAP
4069a393b5dSSainath Grandhi	tristate
407a7f7f624SMasahiro Yamada	help
4089a393b5dSSainath Grandhi	  This option is selected by any driver implementing tap user space
4099a393b5dSSainath Grandhi	  interface for a virtual interface to re-use core tap functionality.
4109a393b5dSSainath Grandhi
4118b8e658bSGreg Kurzconfig TUN_VNET_CROSS_LE
4128b8e658bSGreg Kurz	bool "Support for cross-endian vnet headers on little-endian kernels"
4138b8e658bSGreg Kurz	default n
414a7f7f624SMasahiro Yamada	help
4158b8e658bSGreg Kurz	  This option allows TUN/TAP and MACVTAP device drivers in a
4168b8e658bSGreg Kurz	  little-endian kernel to parse vnet headers that come from a
4178b8e658bSGreg Kurz	  big-endian legacy virtio device.
4188b8e658bSGreg Kurz
4198b8e658bSGreg Kurz	  Userspace programs can control the feature using the TUNSETVNETBE
4208b8e658bSGreg Kurz	  and TUNGETVNETBE ioctls.
4218b8e658bSGreg Kurz
4228b8e658bSGreg Kurz	  Unless you have a little-endian system hosting a big-endian virtual
4238b8e658bSGreg Kurz	  machine with a legacy virtio NIC, you should say N.
4248b8e658bSGreg Kurz
425e314dbdcSPavel Emelyanovconfig VETH
4266a9a0250SRusty Russell	tristate "Virtual ethernet pair device"
4270ebab78cSLorenzo Bianconi	select PAGE_POOL
428a7f7f624SMasahiro Yamada	help
4296a9a0250SRusty Russell	  This device is a local ethernet tunnel. Devices are created in pairs.
4306a9a0250SRusty Russell	  When one end receives the packet it appears on its pair and vice
4316a9a0250SRusty Russell	  versa.
432e314dbdcSPavel Emelyanov
43388491d81SJeff Kirsherconfig VIRTIO_NET
434bd085b93SKees Cook	tristate "Virtio network driver"
435bd085b93SKees Cook	depends on VIRTIO
436ba5e4426SSridhar Samudrala	select NET_FAILOVER
437a7f7f624SMasahiro Yamada	help
43888491d81SJeff Kirsher	  This is the virtual network driver for virtio.  It can be used with
439ecda85e7SJuergen Gross	  QEMU based VMMs (like KVM or Xen).  Say Y or M.
44088491d81SJeff Kirsher
441e4fc408eSDaniel Borkmannconfig NLMON
442e4fc408eSDaniel Borkmann	tristate "Virtual netlink monitoring device"
443a7f7f624SMasahiro Yamada	help
444e4fc408eSDaniel Borkmann	  This option enables a monitoring net device for netlink skbs. The
445e4fc408eSDaniel Borkmann	  purpose of this is to analyze netlink messages with packet sockets.
446e4fc408eSDaniel Borkmann	  Thus applications like tcpdump will be able to see local netlink
447e4fc408eSDaniel Borkmann	  messages if they tap into the netlink device, record pcaps for further
448e4fc408eSDaniel Borkmann	  diagnostics, etc. This is mostly intended for developers or support
449e4fc408eSDaniel Borkmann	  to debug netlink issues. If unsure, say N.
450e4fc408eSDaniel Borkmann
451193125dbSDavid Ahernconfig NET_VRF
452193125dbSDavid Ahern	tristate "Virtual Routing and Forwarding (Lite)"
45335402e31SDavid Ahern	depends on IP_MULTIPLE_TABLES
454ee15ee5dSDavid Ahern	depends on NET_L3_MASTER_DEV
45535402e31SDavid Ahern	depends on IPV6 || IPV6=n
45635402e31SDavid Ahern	depends on IPV6_MULTIPLE_TABLES || IPV6=n
457a7f7f624SMasahiro Yamada	help
458193125dbSDavid Ahern	  This option enables the support for mapping interfaces into VRF's. The
459193125dbSDavid Ahern	  support enables VRF devices.
460193125dbSDavid Ahern
4610b2e6644SGerard Garciaconfig VSOCKMON
4620b2e6644SGerard Garcia	tristate "Virtual vsock monitoring device"
4630b2e6644SGerard Garcia	depends on VHOST_VSOCK
464a7f7f624SMasahiro Yamada	help
4650b2e6644SGerard Garcia	  This option enables a monitoring net device for vsock sockets. It is
4660b2e6644SGerard Garcia	  mostly intended for developers or support to debug vsock issues. If
4670b2e6644SGerard Garcia	  unsure, say N.
4680b2e6644SGerard Garcia
4693ffec6a1SLoic Poulainconfig MHI_NET
4703ffec6a1SLoic Poulain	tristate "MHI network driver"
4713ffec6a1SLoic Poulain	depends on MHI_BUS
4723ffec6a1SLoic Poulain	help
4733ffec6a1SLoic Poulain	  This is the network driver for MHI bus.  It can be used with
4747ffa7542SLoic Poulain	  QCOM based WWAN modems for IP or QMAP/rmnet protocol (like SDX55).
4757ffa7542SLoic Poulain	  Say Y or M.
4763ffec6a1SLoic Poulain
47788491d81SJeff Kirsherendif # NET_CORE
47888491d81SJeff Kirsher
47988491d81SJeff Kirsherconfig SUNGEM_PHY
48088491d81SJeff Kirsher	tristate
48188491d81SJeff Kirsher
48288491d81SJeff Kirshersource "drivers/net/arcnet/Kconfig"
48388491d81SJeff Kirsher
48488491d81SJeff Kirshersource "drivers/atm/Kconfig"
48588491d81SJeff Kirsher
48688491d81SJeff Kirshersource "drivers/net/caif/Kconfig"
48788491d81SJeff Kirsher
4883b158859SBen Hutchingssource "drivers/net/dsa/Kconfig"
4893b158859SBen Hutchings
49088491d81SJeff Kirshersource "drivers/net/ethernet/Kconfig"
49188491d81SJeff Kirsher
49288491d81SJeff Kirshersource "drivers/net/fddi/Kconfig"
49388491d81SJeff Kirsher
494fecc7351SPaul Bollesource "drivers/net/hippi/Kconfig"
495fecc7351SPaul Bolle
49608120d23SAlex Eldersource "drivers/net/ipa/Kconfig"
49708120d23SAlex Elder
4981da177e4SLinus Torvaldsconfig NET_SB1000
4991da177e4SLinus Torvalds	tristate "General Instruments Surfboard 1000"
500cbcd2a4cSRandy Dunlap	depends on PNP
501a7f7f624SMasahiro Yamada	help
5021da177e4SLinus Torvalds	  This is a driver for the General Instrument (also known as
5031da177e4SLinus Torvalds	  NextLevel) SURFboard 1000 internal
5041da177e4SLinus Torvalds	  cable modem. This is an ISA card which is used by a number of cable
5051da177e4SLinus Torvalds	  TV companies to provide cable modem access. It's a one-way
5061da177e4SLinus Torvalds	  downstream-only cable modem, meaning that your upstream net link is
5071da177e4SLinus Torvalds	  provided by your regular phone modem.
5081da177e4SLinus Torvalds
5091da177e4SLinus Torvalds	  At present this driver only compiles as a module, so say M here if
5101da177e4SLinus Torvalds	  you have this card. The module will be called sb1000. Then read
511132db935SJakub Kicinski	  <file:Documentation/networking/device_drivers/cable/sb1000.rst> for
512b255e500SJakub Kicinski	  information on how to use this module, as it needs special ppp
513b255e500SJakub Kicinski	  scripts for establishing a connection. Further documentation
514b255e500SJakub Kicinski	  and the necessary scripts can be found at:
5151da177e4SLinus Torvalds
5161da177e4SLinus Torvalds	  <http://www.jacksonville.net/~fventuri/>
5171da177e4SLinus Torvalds	  <http://home.adelphia.net/~siglercm/sb1000.html>
5181da177e4SLinus Torvalds	  <http://linuxpower.cx/~cable/>
5191da177e4SLinus Torvalds
5201da177e4SLinus Torvalds	  If you don't have this card, of course say N.
5211da177e4SLinus Torvalds
52200db8189SAndy Flemingsource "drivers/net/phy/Kconfig"
52300db8189SAndy Fleming
5243114b075SOleksij Rempelsource "drivers/net/pse-pd/Kconfig"
5253114b075SOleksij Rempel
526d7786af5SVincent Mailholsource "drivers/net/can/Kconfig"
527d7786af5SVincent Mailhol
5284b2e6930SJeremy Kerrsource "drivers/net/mctp/Kconfig"
5294b2e6930SJeremy Kerr
530a9770eacSAndrew Lunnsource "drivers/net/mdio/Kconfig"
531a9770eacSAndrew Lunn
5322fa4e4b7SAndrew Lunnsource "drivers/net/pcs/Kconfig"
5332fa4e4b7SAndrew Lunn
53418e635f4SJeff Kirshersource "drivers/net/plip/Kconfig"
53518e635f4SJeff Kirsher
53688491d81SJeff Kirshersource "drivers/net/ppp/Kconfig"
53788491d81SJeff Kirsher
538b5451d78SJeff Kirshersource "drivers/net/slip/Kconfig"
539b5451d78SJeff Kirsher
54088491d81SJeff Kirshersource "drivers/s390/net/Kconfig"
54188491d81SJeff Kirsher
54288491d81SJeff Kirshersource "drivers/net/usb/Kconfig"
54388491d81SJeff Kirsher
5441da177e4SLinus Torvaldssource "drivers/net/wireless/Kconfig"
5451da177e4SLinus Torvalds
5461da177e4SLinus Torvaldssource "drivers/net/wan/Kconfig"
5471da177e4SLinus Torvalds
5480739d643Salex.bluesman.smirnov@gmail.comsource "drivers/net/ieee802154/Kconfig"
5490739d643Salex.bluesman.smirnov@gmail.com
5509a44c1ccSLoic Poulainsource "drivers/net/wwan/Kconfig"
5519a44c1ccSLoic Poulain
5520d160211SJeremy Fitzhardingeconfig XEN_NETDEV_FRONTEND
5530d160211SJeremy Fitzhardinge	tristate "Xen network device frontend driver"
5540d160211SJeremy Fitzhardinge	depends on XEN
5557003087cSJeremy Fitzhardinge	select XEN_XENBUS_FRONTEND
5566c5aa6fcSDenis Kirjanov	select PAGE_POOL
5570d160211SJeremy Fitzhardinge	default y
5580d160211SJeremy Fitzhardinge	help
559f942dc25SIan Campbell	  This driver provides support for Xen paravirtual network
560f942dc25SIan Campbell	  devices exported by a Xen network driver domain (often
561f942dc25SIan Campbell	  domain 0).
562f942dc25SIan Campbell
563f942dc25SIan Campbell	  The corresponding Linux backend driver is enabled by the
564f942dc25SIan Campbell	  CONFIG_XEN_NETDEV_BACKEND option.
565f942dc25SIan Campbell
566f942dc25SIan Campbell	  If you are compiling a kernel for use as Xen guest, you
567f942dc25SIan Campbell	  should say Y here. To compile this driver as a module, chose
568f942dc25SIan Campbell	  M here: the module will be called xen-netfront.
569f942dc25SIan Campbell
570f942dc25SIan Campbellconfig XEN_NETDEV_BACKEND
571f942dc25SIan Campbell	tristate "Xen backend network device"
572f942dc25SIan Campbell	depends on XEN_BACKEND
573f942dc25SIan Campbell	help
574f942dc25SIan Campbell	  This driver allows the kernel to act as a Xen network driver
575f942dc25SIan Campbell	  domain which exports paravirtual network devices to other
576f942dc25SIan Campbell	  Xen domains. These devices can be accessed by any operating
577f942dc25SIan Campbell	  system that implements a compatible front end.
578f942dc25SIan Campbell
579f942dc25SIan Campbell	  The corresponding Linux frontend driver is enabled by the
580f942dc25SIan Campbell	  CONFIG_XEN_NETDEV_FRONTEND configuration option.
581f942dc25SIan Campbell
582f942dc25SIan Campbell	  The backend driver presents a standard network device
583f942dc25SIan Campbell	  endpoint for each paravirtual network device to the driver
584f942dc25SIan Campbell	  domain network stack. These can then be bridged or routed
585f942dc25SIan Campbell	  etc in order to provide full network connectivity.
586f942dc25SIan Campbell
587f942dc25SIan Campbell	  If you are compiling a kernel to run in a Xen network driver
588f942dc25SIan Campbell	  domain (often this is domain 0) you should say Y here. To
589f942dc25SIan Campbell	  compile this driver as a module, chose M here: the module
590f942dc25SIan Campbell	  will be called xen-netback.
5910d160211SJeremy Fitzhardinge
592d1a890faSShreyas Bhatewaraconfig VMXNET3
593d1a890faSShreyas Bhatewara	tristate "VMware VMXNET3 ethernet driver"
594115924b6SShreyas Bhatewara	depends on PCI && INET
59500169a92SGuenter Roeck	depends on PAGE_SIZE_LESS_THAN_64KB
59654f00cceSWilliam Tu	select PAGE_POOL
597d1a890faSShreyas Bhatewara	help
598d1a890faSShreyas Bhatewara	  This driver supports VMware's vmxnet3 virtual ethernet NIC.
599d1a890faSShreyas Bhatewara	  To compile this driver as a module, choose M here: the
600d1a890faSShreyas Bhatewara	  module will be called vmxnet3.
601d1a890faSShreyas Bhatewara
602658d439bSTaku Izumiconfig FUJITSU_ES
603658d439bSTaku Izumi	tristate "FUJITSU Extended Socket Network Device driver"
604658d439bSTaku Izumi	depends on ACPI
605658d439bSTaku Izumi	help
606658d439bSTaku Izumi	  This driver provides support for Extended Socket network device
607658d439bSTaku Izumi	  on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
608658d439bSTaku Izumi
6090d0950a9SMika Westerbergsource "drivers/net/thunderbolt/Kconfig"
61095fa0405SHaiyang Zhangsource "drivers/net/hyperv/Kconfig"
61195fa0405SHaiyang Zhang
61283c9e13aSJakub Kicinskiconfig NETDEVSIM
61383c9e13aSJakub Kicinski	tristate "Simulated networking device"
61483c9e13aSJakub Kicinski	depends on DEBUG_FS
6151f399fc7SHongbo Yao	depends on INET
61648bb9eb4SIdo Schimmel	depends on IPV6 || IPV6=n
617a8700c3dSIdo Schimmel	depends on PSAMPLE || PSAMPLE=n
618b63e78fcSVladimir Oltean	depends on PTP_1588_CLOCK_MOCK || PTP_1588_CLOCK_MOCK=n
619f6b19b35SJiri Pirko	select NET_DEVLINK
62083c9e13aSJakub Kicinski	help
62183c9e13aSJakub Kicinski	  This driver is a developer testing tool and software model that can
62283c9e13aSJakub Kicinski	  be used to test various control path networking APIs, especially
62383c9e13aSJakub Kicinski	  HW-offload related.
62483c9e13aSJakub Kicinski
62583c9e13aSJakub Kicinski	  To compile this driver as a module, choose M here: the module
62683c9e13aSJakub Kicinski	  will be called netdevsim.
62783c9e13aSJakub Kicinski
628cfc80d9aSSridhar Samudralaconfig NET_FAILOVER
629cfc80d9aSSridhar Samudrala	tristate "Failover driver"
630cfc80d9aSSridhar Samudrala	select FAILOVER
631cfc80d9aSSridhar Samudrala	help
632cfc80d9aSSridhar Samudrala	  This provides an automated failover mechanism via APIs to create
633cfc80d9aSSridhar Samudrala	  and destroy a failover master netdev and manages a primary and
634cfc80d9aSSridhar Samudrala	  standby slave netdevs that get registered via the generic failover
635cfc80d9aSSridhar Samudrala	  infrastructure. This can be used by paravirtual drivers to enable
636cfc80d9aSSridhar Samudrala	  an alternate low latency datapath. It also enables live migration of
637cfc80d9aSSridhar Samudrala	  a VM with direct attached VF by failing over to the paravirtual
638cfc80d9aSSridhar Samudrala	  datapath when the VF is unplugged.
639cfc80d9aSSridhar Samudrala
6404228c394SArnd Bergmannconfig NETDEV_LEGACY_INIT
6414228c394SArnd Bergmann	bool
6424228c394SArnd Bergmann	depends on ISA
6434228c394SArnd Bergmann	help
6444228c394SArnd Bergmann	  Drivers that call netdev_boot_setup_check() should select this
6454228c394SArnd Bergmann	  symbol, everything else no longer needs it.
6464228c394SArnd Bergmann
647d1c0a65fSJan Engelhardtendif # NETDEVICES
648