xref: /linux/drivers/net/Kconfig (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
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
44285715acSArnd Bergmann	depends on TLS || TLS_DEVICE=n
45a7f7f624SMasahiro Yamada	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
53a362032eSMauro Carvalho Chehab	  Refer to <file:Documentation/networking/bonding.rst> 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"
61a7f7f624SMasahiro Yamada	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	select NET_UDP_TUNNEL
78e7096c13SJason A. Donenfeld	select DST_CACHE
79e7096c13SJason A. Donenfeld	select CRYPTO_LIB_CURVE25519
80e7096c13SJason A. Donenfeld	select CRYPTO_LIB_CHACHA20POLY1305
8154e7bb6aSEric Biggers	select CRYPTO_LIB_UTILS
82e7096c13SJason A. Donenfeld	help
83e7096c13SJason A. Donenfeld	  WireGuard is a secure, fast, and easy to use replacement for IPSec
84e7096c13SJason A. Donenfeld	  that uses modern cryptography and clever networking tricks. It's
85e7096c13SJason A. Donenfeld	  designed to be fairly general purpose and abstract enough to fit most
86e7096c13SJason A. Donenfeld	  use cases, while at the same time remaining extremely simple to
87e7096c13SJason A. Donenfeld	  configure. See www.wireguard.com for more info.
88e7096c13SJason A. Donenfeld
89e7096c13SJason A. Donenfeld	  It's safe to say Y or M here, as the driver is very lightweight and
90e7096c13SJason A. Donenfeld	  is only in use when an administrator chooses to add an interface.
91e7096c13SJason A. Donenfeld
92e7096c13SJason A. Donenfeldconfig WIREGUARD_DEBUG
93e7096c13SJason A. Donenfeld	bool "Debugging checks and verbose messages"
94e7096c13SJason A. Donenfeld	depends on WIREGUARD
95e7096c13SJason A. Donenfeld	help
96e7096c13SJason A. Donenfeld	  This will write log messages for handshake and other events
97e7096c13SJason A. Donenfeld	  that occur for a WireGuard interface. It will also perform some
98e7096c13SJason A. Donenfeld	  extra validation checks and unit tests at various points. This is
99e7096c13SJason A. Donenfeld	  only useful for debugging.
100e7096c13SJason A. Donenfeld
101e7096c13SJason A. Donenfeld	  Say N here unless you know what you're doing.
102e7096c13SJason A. Donenfeld
1039f23d943SAntonio Quartulliconfig OVPN
1049f23d943SAntonio Quartulli	tristate "OpenVPN data channel offload"
1059f23d943SAntonio Quartulli	depends on NET && INET
10680747caeSAntonio Quartulli	select DST_CACHE
10708857b5eSAntonio Quartulli	select NET_UDP_TUNNEL
1088534731dSAntonio Quartulli	select CRYPTO
1098534731dSAntonio Quartulli	select CRYPTO_AES
1108534731dSAntonio Quartulli	select CRYPTO_GCM
1118534731dSAntonio Quartulli	select CRYPTO_CHACHA20POLY1305
11211851cbdSAntonio Quartulli	select STREAM_PARSER
1139f23d943SAntonio Quartulli	help
1149f23d943SAntonio Quartulli	  This module enhances the performance of the OpenVPN userspace software
1159f23d943SAntonio Quartulli	  by offloading the data channel processing to kernelspace.
1169f23d943SAntonio Quartulli
11788491d81SJeff Kirsherconfig EQUALIZER
11888491d81SJeff Kirsher	tristate "EQL (serial line load balancing) support"
119a7f7f624SMasahiro Yamada	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
12906df6572SMauro Carvalho Chehab	  <file:Documentation/networking/eql.rst>.  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"
151046178e7SLukas Wunner	depends on NET_ACT_MIRRED || NFT_FWD_NETDEV
1522c64605bSPablo Neira Ayuso	select NET_REDIRECT
153a7f7f624SMasahiro Yamada	help
15488491d81SJeff Kirsher	  This is an intermediate driver that allows sharing of
15588491d81SJeff Kirsher	  resources.
15688491d81SJeff Kirsher	  To compile this driver as a module, choose M here: the module
15788491d81SJeff Kirsher	  will be called ifb.  If you want to use more than one ifb
15888491d81SJeff Kirsher	  device at a time, you need to compile this driver as a module.
15988491d81SJeff Kirsher	  Instead of 'ifb', the devices will then be called 'ifb0',
16088491d81SJeff Kirsher	  'ifb1' etc.
16188491d81SJeff Kirsher	  Look at the iproute2 documentation directory for usage etc
1621da177e4SLinus Torvalds
1633d249d4cSJiri Pirkosource "drivers/net/team/Kconfig"
1643d249d4cSJiri Pirko
165b863ceb7SPatrick McHardyconfig MACVLAN
166bd085b93SKees Cook	tristate "MAC-VLAN support"
167a7f7f624SMasahiro Yamada	help
168b863ceb7SPatrick McHardy	  This allows one to create virtual interfaces that map packets to
169b863ceb7SPatrick McHardy	  or from specific MAC addresses to a particular interface.
170b863ceb7SPatrick McHardy
1713dbf8d56SPatrick McHardy	  Macvlan devices can be added using the "ip" command from the
1723dbf8d56SPatrick McHardy	  iproute2 package starting with the iproute2-2.6.23 release:
1733dbf8d56SPatrick McHardy
1743dbf8d56SPatrick McHardy	  "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
1753dbf8d56SPatrick McHardy
176b863ceb7SPatrick McHardy	  To compile this driver as a module, choose M here: the module
177b863ceb7SPatrick McHardy	  will be called macvlan.
178b863ceb7SPatrick McHardy
17920d29d7aSArnd Bergmannconfig MACVTAP
180bd085b93SKees Cook	tristate "MAC-VLAN based tap driver"
18120d29d7aSArnd Bergmann	depends on MACVLAN
182de11b0e8SBen Hutchings	depends on INET
1839a393b5dSSainath Grandhi	select TAP
18420d29d7aSArnd Bergmann	help
18520d29d7aSArnd Bergmann	  This adds a specialized tap character device driver that is based
18620d29d7aSArnd Bergmann	  on the MAC-VLAN network interface, called macvtap. A macvtap device
18720d29d7aSArnd Bergmann	  can be added in the same way as a macvlan device, using 'type
188c7966b52SJan Luebbe	  macvtap', and then be accessed through the tap user space interface.
18920d29d7aSArnd Bergmann
19020d29d7aSArnd Bergmann	  To compile this driver as a module, choose M here: the module
19120d29d7aSArnd Bergmann	  will be called macvtap.
19220d29d7aSArnd Bergmann
193c675e06aSDaniel Borkmannconfig IPVLAN_L3S
194c675e06aSDaniel Borkmann	depends on NETFILTER
195a37d45b6SRandy Dunlap	depends on IPVLAN
196c675e06aSDaniel Borkmann	def_bool y
197c675e06aSDaniel Borkmann	select NET_L3_MASTER_DEV
1982ad7bf36SMahesh Bandewar
1992ad7bf36SMahesh Bandewarconfig IPVLAN
2002ad7bf36SMahesh Bandewar	tristate "IP-VLAN support"
201265de6d1SMahesh Bandewar	depends on INET
202a7f7f624SMasahiro Yamada	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
221a7f7f624SMasahiro Yamada	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
235a7f7f624SMasahiro Yamada	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
248a7603ac1SMatteo Croce	select NET_UDP_TUNNEL
24997e219b7SEric Dumazet	select GRO_CELLS
250a7f7f624SMasahiro Yamada	help
2512d07dc79SJohn W. Linville	  This allows one to create geneve virtual interfaces that provide
2522d07dc79SJohn W. Linville	  Layer 2 Networks over Layer 3 Networks. GENEVE is often used
2532d07dc79SJohn W. Linville	  to tunnel virtual network infrastructure in virtualized environments.
2542d07dc79SJohn W. Linville	  For more information see:
2552d07dc79SJohn W. Linville	    http://tools.ietf.org/html/draft-gross-geneve-02
2562d07dc79SJohn W. Linville
2572d07dc79SJohn W. Linville	  To compile this driver as a module, choose M here: the module
2582d07dc79SJohn W. Linville	  will be called geneve.
2592d07dc79SJohn W. Linville
260571912c6SMartin Vargheseconfig BAREUDP
261571912c6SMartin Varghese	tristate "Bare UDP Encapsulation"
262571912c6SMartin Varghese	depends on INET
263571912c6SMartin Varghese	select NET_UDP_TUNNEL
264571912c6SMartin Varghese	select GRO_CELLS
265571912c6SMartin Varghese	help
266571912c6SMartin Varghese	  This adds a bare UDP tunnel module for tunnelling different
267571912c6SMartin Varghese	  kinds of traffic like MPLS, IP, etc. inside a UDP tunnel.
268571912c6SMartin Varghese
269571912c6SMartin Varghese	  To compile this driver as a module, choose M here: the module
270571912c6SMartin Varghese	  will be called bareudp.
271571912c6SMartin Varghese
272459aa660SPablo Neiraconfig GTP
273459aa660SPablo Neira	tristate "GPRS Tunneling Protocol datapath (GTP-U)"
274c22da366SMatteo Croce	depends on INET
275c22da366SMatteo Croce	select NET_UDP_TUNNEL
276a7f7f624SMasahiro Yamada	help
277459aa660SPablo Neira	  This allows one to create gtp virtual interfaces that provide
278459aa660SPablo Neira	  the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
279459aa660SPablo Neira	  is used to prevent subscribers from accessing mobile carrier core
280459aa660SPablo Neira	  network infrastructure. This driver requires a userspace software that
281459aa660SPablo Neira	  implements the signaling protocol (GTP-C) to update its PDP context
282459aa660SPablo Neira	  base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
283459aa660SPablo Neira	  tunneling protocol is implemented according to the GSM TS 09.60 and
284459aa660SPablo Neira	  3GPP TS 29.060 standards.
285459aa660SPablo Neira
286459aa660SPablo Neira	  To compile this drivers as a module, choose M here: the module
28700649542SColin Ian King	  will be called gtp.
288459aa660SPablo Neira
28976c8764eSWojciech Drewekconfig PFCP
29076c8764eSWojciech Drewek	tristate "Packet Forwarding Control Protocol (PFCP)"
29176c8764eSWojciech Drewek	depends on INET
29276c8764eSWojciech Drewek	select NET_UDP_TUNNEL
29376c8764eSWojciech Drewek	help
29476c8764eSWojciech Drewek	  This allows one to create PFCP virtual interfaces that allows to
29576c8764eSWojciech Drewek	  set up software and hardware offload of PFCP packets.
29676c8764eSWojciech Drewek	  Note that this module does not support PFCP protocol in the kernel space.
29776c8764eSWojciech Drewek	  There is no support for parsing any PFCP messages.
29876c8764eSWojciech Drewek
29976c8764eSWojciech Drewek	  To compile this drivers as a module, choose M here: the module
30076c8764eSWojciech Drewek	  will be called pfcp.
30176c8764eSWojciech Drewek
302b9022b53STaehee Yooconfig AMT
303b9022b53STaehee Yoo	tristate "Automatic Multicast Tunneling (AMT)"
304b9022b53STaehee Yoo	depends on INET && IP_MULTICAST
305b9022b53STaehee Yoo	select NET_UDP_TUNNEL
306b9022b53STaehee Yoo	help
307b9022b53STaehee Yoo	  This allows one to create AMT(Automatic Multicast Tunneling)
308b9022b53STaehee Yoo	  virtual interfaces that provide multicast tunneling.
309b9022b53STaehee Yoo	  There are two roles, Gateway, and Relay.
310b9022b53STaehee Yoo	  Gateway Encapsulates IGMP/MLD traffic from listeners to the Relay.
311b9022b53STaehee Yoo	  Gateway Decapsulates multicast traffic from the Relay to Listeners.
312b9022b53STaehee Yoo	  Relay Encapsulates multicast traffic from Sources to Gateway.
313b9022b53STaehee Yoo	  Relay Decapsulates IGMP/MLD traffic from Gateway.
314b9022b53STaehee Yoo
315b9022b53STaehee Yoo	  To compile this drivers as a module, choose M here: the module
316b9022b53STaehee Yoo	  will be called amt.
317b9022b53STaehee Yoo
318c09440f7SSabrina Dubrocaconfig MACSEC
319c09440f7SSabrina Dubroca	tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
320ab2ed017SArnd Bergmann	select CRYPTO
321c09440f7SSabrina Dubroca	select CRYPTO_AES
322c09440f7SSabrina Dubroca	select CRYPTO_GCM
32397e219b7SEric Dumazet	select GRO_CELLS
324a7f7f624SMasahiro Yamada	help
325c09440f7SSabrina Dubroca	   MACsec is an encryption standard for Ethernet.
326c09440f7SSabrina Dubroca
32788491d81SJeff Kirsherconfig NETCONSOLE
32888491d81SJeff Kirsher	tristate "Network console logging support"
329636fd32dSArnd Bergmann	depends on PRINTK
330a7f7f624SMasahiro Yamada	help
33188491d81SJeff Kirsher	  If you want to log kernel messages over the network, enable this.
332d9d6ef25SMauro Carvalho Chehab	  See <file:Documentation/networking/netconsole.rst> for details.
3331da177e4SLinus Torvalds
33488491d81SJeff Kirsherconfig NETCONSOLE_DYNAMIC
33588491d81SJeff Kirsher	bool "Dynamic reconfiguration of logging targets"
33688491d81SJeff Kirsher	depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
33788491d81SJeff Kirsher			!(NETCONSOLE=y && CONFIGFS_FS=m)
33860325c27SBreno Leitao	select PRINTK_EXECUTION_CTX
33988491d81SJeff Kirsher	help
34088491d81SJeff Kirsher	  This option enables the ability to dynamically reconfigure target
34188491d81SJeff Kirsher	  parameters (interface, IP addresses, port numbers, MAC addresses)
34288491d81SJeff Kirsher	  at runtime through a userspace interface exported using configfs.
343d9d6ef25SMauro Carvalho Chehab	  See <file:Documentation/networking/netconsole.rst> for details.
3441da177e4SLinus Torvalds
345fad361a2SBreno Leitaoconfig NETCONSOLE_EXTENDED_LOG
346fad361a2SBreno Leitao	bool "Set kernel extended message by default"
347fad361a2SBreno Leitao	depends on NETCONSOLE
348fad361a2SBreno Leitao	default n
349fad361a2SBreno Leitao	help
350fad361a2SBreno Leitao	  Set extended log support for netconsole message. If this option is
351fad361a2SBreno Leitao	  set, log messages are transmitted with extended metadata header in a
352fad361a2SBreno Leitao	  format similar to /dev/kmsg.  See
353fad361a2SBreno Leitao	  <file:Documentation/networking/netconsole.rst> for details.
354fad361a2SBreno Leitao
355fad361a2SBreno Leitaoconfig NETCONSOLE_PREPEND_RELEASE
356fad361a2SBreno Leitao	bool "Prepend kernel release version in the message by default"
357fad361a2SBreno Leitao	depends on NETCONSOLE_EXTENDED_LOG
358fad361a2SBreno Leitao	default n
359fad361a2SBreno Leitao	help
360fad361a2SBreno Leitao	  Set kernel release to be prepended to each netconsole message by
361fad361a2SBreno Leitao	  default. If this option is set, the kernel release is prepended into
362fad361a2SBreno Leitao	  the first field of every netconsole message, so, the netconsole
363fad361a2SBreno Leitao	  server/peer can easily identify what kernel release is logging each
364fad361a2SBreno Leitao	  message.  See <file:Documentation/networking/netconsole.rst> for
365fad361a2SBreno Leitao	  details.
366fad361a2SBreno Leitao
36788491d81SJeff Kirsherconfig NETPOLL
36888491d81SJeff Kirsher	def_bool NETCONSOLE
36988491d81SJeff Kirsher
37088491d81SJeff Kirsherconfig NET_POLL_CONTROLLER
37188491d81SJeff Kirsher	def_bool NETPOLL
37288491d81SJeff Kirsher
373548c237cSJon Masonconfig NTB_NETDEV
374ec110bc7SAllen Hubbe	tristate "Virtual Ethernet over NTB Transport"
375ec110bc7SAllen Hubbe	depends on NTB_TRANSPORT
376548c237cSJon Mason
37788491d81SJeff Kirsherconfig RIONET
37888491d81SJeff Kirsher	tristate "RapidIO Ethernet over messaging driver support"
37988491d81SJeff Kirsher	depends on RAPIDIO
38088491d81SJeff Kirsher
38188491d81SJeff Kirsherconfig RIONET_TX_SIZE
38288491d81SJeff Kirsher	int "Number of outbound queue entries"
38388491d81SJeff Kirsher	depends on RIONET
38488491d81SJeff Kirsher	default "128"
38588491d81SJeff Kirsher
38688491d81SJeff Kirsherconfig RIONET_RX_SIZE
38788491d81SJeff Kirsher	int "Number of inbound queue entries"
38888491d81SJeff Kirsher	depends on RIONET
38988491d81SJeff Kirsher	default "128"
3901da177e4SLinus Torvalds
3911da177e4SLinus Torvaldsconfig TUN
3921da177e4SLinus Torvalds	tristate "Universal TUN/TAP device driver support"
393de11b0e8SBen Hutchings	depends on INET
3941da177e4SLinus Torvalds	select CRC32
395a7f7f624SMasahiro Yamada	help
3961da177e4SLinus Torvalds	  TUN/TAP provides packet reception and transmission for user space
3971da177e4SLinus Torvalds	  programs.  It can be viewed as a simple Point-to-Point or Ethernet
3981da177e4SLinus Torvalds	  device, which instead of receiving packets from a physical media,
3991da177e4SLinus Torvalds	  receives them from user space program and instead of sending packets
4001da177e4SLinus Torvalds	  via physical media writes them to the user space program.
4011da177e4SLinus Torvalds
4021da177e4SLinus Torvalds	  When a program opens /dev/net/tun, driver creates and registers
4031da177e4SLinus Torvalds	  corresponding net device tunX or tapX.  After a program closed above
4041da177e4SLinus Torvalds	  devices, driver will automatically delete tunXX or tapXX device and
4051da177e4SLinus Torvalds	  all routes corresponding to it.
4061da177e4SLinus Torvalds
407973d55e5SMauro Carvalho Chehab	  Please read <file:Documentation/networking/tuntap.rst> for more
4081da177e4SLinus Torvalds	  information.
4091da177e4SLinus Torvalds
4101da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
4111da177e4SLinus Torvalds	  will be called tun.
4121da177e4SLinus Torvalds
4131da177e4SLinus Torvalds	  If you don't know what to use this for, you don't need it.
4141da177e4SLinus Torvalds
4159a393b5dSSainath Grandhiconfig TAP
4169a393b5dSSainath Grandhi	tristate
417a7f7f624SMasahiro Yamada	help
4189a393b5dSSainath Grandhi	  This option is selected by any driver implementing tap user space
4199a393b5dSSainath Grandhi	  interface for a virtual interface to re-use core tap functionality.
4209a393b5dSSainath Grandhi
4218b8e658bSGreg Kurzconfig TUN_VNET_CROSS_LE
4228b8e658bSGreg Kurz	bool "Support for cross-endian vnet headers on little-endian kernels"
4238b8e658bSGreg Kurz	default n
424a7f7f624SMasahiro Yamada	help
4258b8e658bSGreg Kurz	  This option allows TUN/TAP and MACVTAP device drivers in a
4268b8e658bSGreg Kurz	  little-endian kernel to parse vnet headers that come from a
4278b8e658bSGreg Kurz	  big-endian legacy virtio device.
4288b8e658bSGreg Kurz
4298b8e658bSGreg Kurz	  Userspace programs can control the feature using the TUNSETVNETBE
4308b8e658bSGreg Kurz	  and TUNGETVNETBE ioctls.
4318b8e658bSGreg Kurz
4328b8e658bSGreg Kurz	  Unless you have a little-endian system hosting a big-endian virtual
4338b8e658bSGreg Kurz	  machine with a legacy virtio NIC, you should say N.
4348b8e658bSGreg Kurz
435e314dbdcSPavel Emelyanovconfig VETH
4366a9a0250SRusty Russell	tristate "Virtual ethernet pair device"
4370ebab78cSLorenzo Bianconi	select PAGE_POOL
438a7f7f624SMasahiro Yamada	help
4396a9a0250SRusty Russell	  This device is a local ethernet tunnel. Devices are created in pairs.
4406a9a0250SRusty Russell	  When one end receives the packet it appears on its pair and vice
4416a9a0250SRusty Russell	  versa.
442e314dbdcSPavel Emelyanov
44388491d81SJeff Kirsherconfig VIRTIO_NET
444bd085b93SKees Cook	tristate "Virtio network driver"
445bd085b93SKees Cook	depends on VIRTIO
446ba5e4426SSridhar Samudrala	select NET_FAILOVER
44762087995SHeng Qi	select DIMLIB
448*24fbd396SVishwanath Seshagiri	select PAGE_POOL
449a7f7f624SMasahiro Yamada	help
45088491d81SJeff Kirsher	  This is the virtual network driver for virtio.  It can be used with
451ecda85e7SJuergen Gross	  QEMU based VMMs (like KVM or Xen).  Say Y or M.
45288491d81SJeff Kirsher
453e4fc408eSDaniel Borkmannconfig NLMON
454e4fc408eSDaniel Borkmann	tristate "Virtual netlink monitoring device"
455a7f7f624SMasahiro Yamada	help
456e4fc408eSDaniel Borkmann	  This option enables a monitoring net device for netlink skbs. The
457e4fc408eSDaniel Borkmann	  purpose of this is to analyze netlink messages with packet sockets.
458e4fc408eSDaniel Borkmann	  Thus applications like tcpdump will be able to see local netlink
459e4fc408eSDaniel Borkmann	  messages if they tap into the netlink device, record pcaps for further
460e4fc408eSDaniel Borkmann	  diagnostics, etc. This is mostly intended for developers or support
461e4fc408eSDaniel Borkmann	  to debug netlink issues. If unsure, say N.
462e4fc408eSDaniel Borkmann
46335dfaad7SDaniel Borkmannconfig NETKIT
46435dfaad7SDaniel Borkmann	bool "BPF-programmable network device"
46535dfaad7SDaniel Borkmann	depends on BPF_SYSCALL
46635dfaad7SDaniel Borkmann	help
46735dfaad7SDaniel Borkmann	  The netkit device is a virtual networking device where BPF programs
46835dfaad7SDaniel Borkmann	  can be attached to the device(s) transmission routine in order to
46935dfaad7SDaniel Borkmann	  implement the driver's internal logic. The device can be configured
47035dfaad7SDaniel Borkmann	  to operate in L3 or L2 mode. If unsure, say N.
47135dfaad7SDaniel Borkmann
472193125dbSDavid Ahernconfig NET_VRF
473193125dbSDavid Ahern	tristate "Virtual Routing and Forwarding (Lite)"
47435402e31SDavid Ahern	depends on IP_MULTIPLE_TABLES
475ee15ee5dSDavid Ahern	depends on NET_L3_MASTER_DEV
47635402e31SDavid Ahern	depends on IPV6_MULTIPLE_TABLES || IPV6=n
477a7f7f624SMasahiro Yamada	help
478193125dbSDavid Ahern	  This option enables the support for mapping interfaces into VRF's. The
479193125dbSDavid Ahern	  support enables VRF devices.
480193125dbSDavid Ahern
4810b2e6644SGerard Garciaconfig VSOCKMON
4820b2e6644SGerard Garcia	tristate "Virtual vsock monitoring device"
4830b2e6644SGerard Garcia	depends on VHOST_VSOCK
484a7f7f624SMasahiro Yamada	help
4850b2e6644SGerard Garcia	  This option enables a monitoring net device for vsock sockets. It is
4860b2e6644SGerard Garcia	  mostly intended for developers or support to debug vsock issues. If
4870b2e6644SGerard Garcia	  unsure, say N.
4880b2e6644SGerard Garcia
4893ffec6a1SLoic Poulainconfig MHI_NET
4903ffec6a1SLoic Poulain	tristate "MHI network driver"
4913ffec6a1SLoic Poulain	depends on MHI_BUS
4923ffec6a1SLoic Poulain	help
4933ffec6a1SLoic Poulain	  This is the network driver for MHI bus.  It can be used with
4947ffa7542SLoic Poulain	  QCOM based WWAN modems for IP or QMAP/rmnet protocol (like SDX55).
4957ffa7542SLoic Poulain	  Say Y or M.
4963ffec6a1SLoic Poulain
49788491d81SJeff Kirsherendif # NET_CORE
49888491d81SJeff Kirsher
49988491d81SJeff Kirsherconfig SUNGEM_PHY
50088491d81SJeff Kirsher	tristate
50188491d81SJeff Kirsher
50288491d81SJeff Kirshersource "drivers/net/arcnet/Kconfig"
50388491d81SJeff Kirsher
50488491d81SJeff Kirshersource "drivers/atm/Kconfig"
50588491d81SJeff Kirsher
5063b158859SBen Hutchingssource "drivers/net/dsa/Kconfig"
5073b158859SBen Hutchings
50888491d81SJeff Kirshersource "drivers/net/ethernet/Kconfig"
50988491d81SJeff Kirsher
51088491d81SJeff Kirshersource "drivers/net/fddi/Kconfig"
51188491d81SJeff Kirsher
51208120d23SAlex Eldersource "drivers/net/ipa/Kconfig"
51308120d23SAlex Elder
51400db8189SAndy Flemingsource "drivers/net/phy/Kconfig"
51500db8189SAndy Fleming
5163114b075SOleksij Rempelsource "drivers/net/pse-pd/Kconfig"
5173114b075SOleksij Rempel
518d7786af5SVincent Mailholsource "drivers/net/can/Kconfig"
519d7786af5SVincent Mailhol
5204b2e6930SJeremy Kerrsource "drivers/net/mctp/Kconfig"
5214b2e6930SJeremy Kerr
522a9770eacSAndrew Lunnsource "drivers/net/mdio/Kconfig"
523a9770eacSAndrew Lunn
5242fa4e4b7SAndrew Lunnsource "drivers/net/pcs/Kconfig"
5252fa4e4b7SAndrew Lunn
52618e635f4SJeff Kirshersource "drivers/net/plip/Kconfig"
52718e635f4SJeff Kirsher
52888491d81SJeff Kirshersource "drivers/net/ppp/Kconfig"
52988491d81SJeff Kirsher
530b5451d78SJeff Kirshersource "drivers/net/slip/Kconfig"
531b5451d78SJeff Kirsher
53288491d81SJeff Kirshersource "drivers/s390/net/Kconfig"
53388491d81SJeff Kirsher
53488491d81SJeff Kirshersource "drivers/net/usb/Kconfig"
53588491d81SJeff Kirsher
5361da177e4SLinus Torvaldssource "drivers/net/wireless/Kconfig"
5371da177e4SLinus Torvalds
5381da177e4SLinus Torvaldssource "drivers/net/wan/Kconfig"
5391da177e4SLinus Torvalds
5400739d643Salex.bluesman.smirnov@gmail.comsource "drivers/net/ieee802154/Kconfig"
5410739d643Salex.bluesman.smirnov@gmail.com
5429a44c1ccSLoic Poulainsource "drivers/net/wwan/Kconfig"
5439a44c1ccSLoic Poulain
5440d160211SJeremy Fitzhardingeconfig XEN_NETDEV_FRONTEND
5450d160211SJeremy Fitzhardinge	tristate "Xen network device frontend driver"
5460d160211SJeremy Fitzhardinge	depends on XEN
5477003087cSJeremy Fitzhardinge	select XEN_XENBUS_FRONTEND
5486c5aa6fcSDenis Kirjanov	select PAGE_POOL
5490d160211SJeremy Fitzhardinge	default y
5500d160211SJeremy Fitzhardinge	help
551f942dc25SIan Campbell	  This driver provides support for Xen paravirtual network
552f942dc25SIan Campbell	  devices exported by a Xen network driver domain (often
553f942dc25SIan Campbell	  domain 0).
554f942dc25SIan Campbell
555f942dc25SIan Campbell	  The corresponding Linux backend driver is enabled by the
556f942dc25SIan Campbell	  CONFIG_XEN_NETDEV_BACKEND option.
557f942dc25SIan Campbell
558f942dc25SIan Campbell	  If you are compiling a kernel for use as Xen guest, you
559f942dc25SIan Campbell	  should say Y here. To compile this driver as a module, chose
560f942dc25SIan Campbell	  M here: the module will be called xen-netfront.
561f942dc25SIan Campbell
562f942dc25SIan Campbellconfig XEN_NETDEV_BACKEND
563f942dc25SIan Campbell	tristate "Xen backend network device"
564f942dc25SIan Campbell	depends on XEN_BACKEND
565f942dc25SIan Campbell	help
566f942dc25SIan Campbell	  This driver allows the kernel to act as a Xen network driver
567f942dc25SIan Campbell	  domain which exports paravirtual network devices to other
568f942dc25SIan Campbell	  Xen domains. These devices can be accessed by any operating
569f942dc25SIan Campbell	  system that implements a compatible front end.
570f942dc25SIan Campbell
571f942dc25SIan Campbell	  The corresponding Linux frontend driver is enabled by the
572f942dc25SIan Campbell	  CONFIG_XEN_NETDEV_FRONTEND configuration option.
573f942dc25SIan Campbell
574f942dc25SIan Campbell	  The backend driver presents a standard network device
575f942dc25SIan Campbell	  endpoint for each paravirtual network device to the driver
576f942dc25SIan Campbell	  domain network stack. These can then be bridged or routed
577f942dc25SIan Campbell	  etc in order to provide full network connectivity.
578f942dc25SIan Campbell
579f942dc25SIan Campbell	  If you are compiling a kernel to run in a Xen network driver
580f942dc25SIan Campbell	  domain (often this is domain 0) you should say Y here. To
581f942dc25SIan Campbell	  compile this driver as a module, chose M here: the module
582f942dc25SIan Campbell	  will be called xen-netback.
5830d160211SJeremy Fitzhardinge
584d1a890faSShreyas Bhatewaraconfig VMXNET3
585d1a890faSShreyas Bhatewara	tristate "VMware VMXNET3 ethernet driver"
586115924b6SShreyas Bhatewara	depends on PCI && INET
58700169a92SGuenter Roeck	depends on PAGE_SIZE_LESS_THAN_64KB
58854f00cceSWilliam Tu	select PAGE_POOL
589d1a890faSShreyas Bhatewara	help
590d1a890faSShreyas Bhatewara	  This driver supports VMware's vmxnet3 virtual ethernet NIC.
591d1a890faSShreyas Bhatewara	  To compile this driver as a module, choose M here: the
592d1a890faSShreyas Bhatewara	  module will be called vmxnet3.
593d1a890faSShreyas Bhatewara
594658d439bSTaku Izumiconfig FUJITSU_ES
595658d439bSTaku Izumi	tristate "FUJITSU Extended Socket Network Device driver"
596658d439bSTaku Izumi	depends on ACPI
597658d439bSTaku Izumi	help
598658d439bSTaku Izumi	  This driver provides support for Extended Socket network device
599658d439bSTaku Izumi	  on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
600658d439bSTaku Izumi
6010d0950a9SMika Westerbergsource "drivers/net/thunderbolt/Kconfig"
60295fa0405SHaiyang Zhangsource "drivers/net/hyperv/Kconfig"
60395fa0405SHaiyang Zhang
60483c9e13aSJakub Kicinskiconfig NETDEVSIM
60583c9e13aSJakub Kicinski	tristate "Simulated networking device"
60683c9e13aSJakub Kicinski	depends on DEBUG_FS
6071f399fc7SHongbo Yao	depends on INET
608a8700c3dSIdo Schimmel	depends on PSAMPLE || PSAMPLE=n
609b63e78fcSVladimir Oltean	depends on PTP_1588_CLOCK_MOCK || PTP_1588_CLOCK_MOCK=n
610f6b19b35SJiri Pirko	select NET_DEVLINK
61194e2a19aSJakub Kicinski	select PAGE_POOL
612b3ea4164SPaolo Abeni	select NET_SHAPER
61383c9e13aSJakub Kicinski	help
61483c9e13aSJakub Kicinski	  This driver is a developer testing tool and software model that can
61583c9e13aSJakub Kicinski	  be used to test various control path networking APIs, especially
61683c9e13aSJakub Kicinski	  HW-offload related.
61783c9e13aSJakub Kicinski
61883c9e13aSJakub Kicinski	  To compile this driver as a module, choose M here: the module
61983c9e13aSJakub Kicinski	  will be called netdevsim.
62083c9e13aSJakub Kicinski
621cfc80d9aSSridhar Samudralaconfig NET_FAILOVER
622cfc80d9aSSridhar Samudrala	tristate "Failover driver"
623cfc80d9aSSridhar Samudrala	select FAILOVER
624cfc80d9aSSridhar Samudrala	help
625cfc80d9aSSridhar Samudrala	  This provides an automated failover mechanism via APIs to create
626cfc80d9aSSridhar Samudrala	  and destroy a failover master netdev and manages a primary and
627cfc80d9aSSridhar Samudrala	  standby slave netdevs that get registered via the generic failover
628cfc80d9aSSridhar Samudrala	  infrastructure. This can be used by paravirtual drivers to enable
629cfc80d9aSSridhar Samudrala	  an alternate low latency datapath. It also enables live migration of
630cfc80d9aSSridhar Samudrala	  a VM with direct attached VF by failing over to the paravirtual
631cfc80d9aSSridhar Samudrala	  datapath when the VF is unplugged.
632cfc80d9aSSridhar Samudrala
633d1c0a65fSJan Engelhardtendif # NETDEVICES
634