drm/vc4: crtc: Add null pointer error handling
[platform/kernel/linux-rpi.git] / drivers / net / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Network device configuration
4 #
5
6 menuconfig NETDEVICES
7         default y if UML
8         depends on NET
9         bool "Network device support"
10         ---help---
11           You can say N here if you don't intend to connect your Linux box to
12           any other computer at all.
13
14           You'll have to say Y if your computer contains a network card that
15           you want to use under Linux. If you are going to run SLIP or PPP over
16           telephone line or null modem cable you need say Y here. Connecting
17           two machines with parallel ports using PLIP needs this, as well as
18           AX.25/KISS for sending Internet traffic over amateur radio links.
19
20           See also "The Linux Network Administrator's Guide" by Olaf Kirch and
21           Terry Dawson. Available at <http://www.tldp.org/guides.html>.
22
23           If unsure, say Y.
24
25 # All the following symbols are dependent on NETDEVICES - do not repeat
26 # that for each of the symbols.
27 if NETDEVICES
28
29 config MII
30         tristate
31
32 config NET_CORE
33         default y
34         bool "Network core driver support"
35         ---help---
36           You can say N here if you do not intend to use any of the
37           networking core drivers (i.e. VLAN, bridging, bonding, etc.)
38
39 if NET_CORE
40
41 config BONDING
42         tristate "Bonding driver support"
43         depends on INET
44         depends on IPV6 || IPV6=n
45         ---help---
46           Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
47           Channels together. This is called 'Etherchannel' by Cisco,
48           'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
49
50           The driver supports multiple bonding modes to allow for both high
51           performance and high availability operation.
52
53           Refer to <file:Documentation/networking/bonding.txt> for more
54           information.
55
56           To compile this driver as a module, choose M here: the module
57           will be called bonding.
58
59 config DUMMY
60         tristate "Dummy net driver support"
61         ---help---
62           This is essentially a bit-bucket device (i.e. traffic you send to
63           this device is consigned into oblivion) with a configurable IP
64           address. It is most commonly used in order to make your currently
65           inactive SLIP address seem like a real address for local programs.
66           If you use SLIP or PPP, you might want to say Y here. It won't
67           enlarge your kernel. What a deal. Read about it in the Network
68           Administrator's Guide, available from
69           <http://www.tldp.org/docs.html#guide>.
70
71           To compile this driver as a module, choose M here: the module
72           will be called dummy.
73
74 config EQUALIZER
75         tristate "EQL (serial line load balancing) support"
76         ---help---
77           If you have two serial connections to some other computer (this
78           usually requires two modems and two telephone lines) and you use
79           SLIP (the protocol for sending Internet traffic over telephone
80           lines) or PPP (a better SLIP) on them, you can make them behave like
81           one double speed connection using this driver.  Naturally, this has
82           to be supported at the other end as well, either with a similar EQL
83           Linux driver or with a Livingston Portmaster 2e.
84
85           Say Y if you want this and read
86           <file:Documentation/networking/eql.txt>.  You may also want to read
87           section 6.2 of the NET-3-HOWTO, available from
88           <http://www.tldp.org/docs.html#howto>.
89
90           To compile this driver as a module, choose M here: the module
91           will be called eql.  If unsure, say N.
92
93 config NET_FC
94         bool "Fibre Channel driver support"
95         depends on SCSI && PCI
96         help
97           Fibre Channel is a high speed serial protocol mainly used to connect
98           large storage devices to the computer; it is compatible with and
99           intended to replace SCSI.
100
101           If you intend to use Fibre Channel, you need to have a Fibre channel
102           adaptor card in your computer; say Y here and to the driver for your
103           adaptor below. You also should have said Y to "SCSI support" and
104           "SCSI generic support".
105
106 config IFB
107         tristate "Intermediate Functional Block support"
108         depends on NET_CLS_ACT
109         select NET_REDIRECT
110         ---help---
111           This is an intermediate driver that allows sharing of
112           resources.
113           To compile this driver as a module, choose M here: the module
114           will be called ifb.  If you want to use more than one ifb
115           device at a time, you need to compile this driver as a module.
116           Instead of 'ifb', the devices will then be called 'ifb0',
117           'ifb1' etc.
118           Look at the iproute2 documentation directory for usage etc
119
120 source "drivers/net/team/Kconfig"
121
122 config MACVLAN
123         tristate "MAC-VLAN support"
124         ---help---
125           This allows one to create virtual interfaces that map packets to
126           or from specific MAC addresses to a particular interface.
127
128           Macvlan devices can be added using the "ip" command from the
129           iproute2 package starting with the iproute2-2.6.23 release:
130
131           "ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
132
133           To compile this driver as a module, choose M here: the module
134           will be called macvlan.
135
136 config MACVTAP
137         tristate "MAC-VLAN based tap driver"
138         depends on MACVLAN
139         depends on INET
140         select TAP
141         help
142           This adds a specialized tap character device driver that is based
143           on the MAC-VLAN network interface, called macvtap. A macvtap device
144           can be added in the same way as a macvlan device, using 'type
145           macvtap', and then be accessed through the tap user space interface.
146
147           To compile this driver as a module, choose M here: the module
148           will be called macvtap.
149
150 config IPVLAN_L3S
151         depends on NETFILTER
152         depends on IPVLAN
153         def_bool y
154         select NET_L3_MASTER_DEV
155
156 config IPVLAN
157     tristate "IP-VLAN support"
158     depends on INET
159     depends on IPV6 || !IPV6
160     ---help---
161       This allows one to create virtual devices off of a main interface
162       and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
163       on packets. All interfaces (including the main interface) share L2
164       making it transparent to the connected L2 switch.
165
166       Ipvlan devices can be added using the "ip" command from the
167       iproute2 package starting with the iproute2-3.19 release:
168
169       "ip link add link <main-dev> [ NAME ] type ipvlan"
170
171       To compile this driver as a module, choose M here: the module
172       will be called ipvlan.
173
174 config IPVTAP
175         tristate "IP-VLAN based tap driver"
176         depends on IPVLAN
177         depends on INET
178         select TAP
179         ---help---
180           This adds a specialized tap character device driver that is based
181           on the IP-VLAN network interface, called ipvtap. An ipvtap device
182           can be added in the same way as a ipvlan device, using 'type
183           ipvtap', and then be accessed through the tap user space interface.
184
185           To compile this driver as a module, choose M here: the module
186           will be called ipvtap.
187
188 config VXLAN
189        tristate "Virtual eXtensible Local Area Network (VXLAN)"
190        depends on INET
191        select NET_UDP_TUNNEL
192        select GRO_CELLS
193        ---help---
194           This allows one to create vxlan virtual interfaces that provide
195           Layer 2 Networks over Layer 3 Networks. VXLAN is often used
196           to tunnel virtual network infrastructure in virtualized environments.
197           For more information see:
198             http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
199
200           To compile this driver as a module, choose M here: the module
201           will be called vxlan.
202
203 config GENEVE
204        tristate "Generic Network Virtualization Encapsulation"
205        depends on INET
206        depends on IPV6 || !IPV6
207        select NET_UDP_TUNNEL
208        select GRO_CELLS
209        ---help---
210           This allows one to create geneve virtual interfaces that provide
211           Layer 2 Networks over Layer 3 Networks. GENEVE is often used
212           to tunnel virtual network infrastructure in virtualized environments.
213           For more information see:
214             http://tools.ietf.org/html/draft-gross-geneve-02
215
216           To compile this driver as a module, choose M here: the module
217           will be called geneve.
218
219 config GTP
220         tristate "GPRS Tunneling Protocol datapath (GTP-U)"
221         depends on INET
222         select NET_UDP_TUNNEL
223         ---help---
224           This allows one to create gtp virtual interfaces that provide
225           the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
226           is used to prevent subscribers from accessing mobile carrier core
227           network infrastructure. This driver requires a userspace software that
228           implements the signaling protocol (GTP-C) to update its PDP context
229           base, such as OpenGGSN <http://git.osmocom.org/openggsn/). This
230           tunneling protocol is implemented according to the GSM TS 09.60 and
231           3GPP TS 29.060 standards.
232
233           To compile this drivers as a module, choose M here: the module
234           wil be called gtp.
235
236 config MACSEC
237         tristate "IEEE 802.1AE MAC-level encryption (MACsec)"
238         select CRYPTO
239         select CRYPTO_AES
240         select CRYPTO_GCM
241         select GRO_CELLS
242         ---help---
243            MACsec is an encryption standard for Ethernet.
244
245 config NETCONSOLE
246         tristate "Network console logging support"
247         ---help---
248         If you want to log kernel messages over the network, enable this.
249         See <file:Documentation/networking/netconsole.txt> for details.
250
251 config NETCONSOLE_DYNAMIC
252         bool "Dynamic reconfiguration of logging targets"
253         depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
254                         !(NETCONSOLE=y && CONFIGFS_FS=m)
255         help
256           This option enables the ability to dynamically reconfigure target
257           parameters (interface, IP addresses, port numbers, MAC addresses)
258           at runtime through a userspace interface exported using configfs.
259           See <file:Documentation/networking/netconsole.txt> for details.
260
261 config NETPOLL
262         def_bool NETCONSOLE
263         select SRCU
264
265 config NET_POLL_CONTROLLER
266         def_bool NETPOLL
267
268 config NTB_NETDEV
269         tristate "Virtual Ethernet over NTB Transport"
270         depends on NTB_TRANSPORT
271
272 config RIONET
273         tristate "RapidIO Ethernet over messaging driver support"
274         depends on RAPIDIO
275
276 config RIONET_TX_SIZE
277         int "Number of outbound queue entries"
278         depends on RIONET
279         default "128"
280
281 config RIONET_RX_SIZE
282         int "Number of inbound queue entries"
283         depends on RIONET
284         default "128"
285
286 config TUN
287         tristate "Universal TUN/TAP device driver support"
288         depends on INET
289         select CRC32
290         ---help---
291           TUN/TAP provides packet reception and transmission for user space
292           programs.  It can be viewed as a simple Point-to-Point or Ethernet
293           device, which instead of receiving packets from a physical media,
294           receives them from user space program and instead of sending packets
295           via physical media writes them to the user space program.
296
297           When a program opens /dev/net/tun, driver creates and registers
298           corresponding net device tunX or tapX.  After a program closed above
299           devices, driver will automatically delete tunXX or tapXX device and
300           all routes corresponding to it.
301
302           Please read <file:Documentation/networking/tuntap.txt> for more
303           information.
304
305           To compile this driver as a module, choose M here: the module
306           will be called tun.
307
308           If you don't know what to use this for, you don't need it.
309
310 config TAP
311         tristate
312         ---help---
313           This option is selected by any driver implementing tap user space
314           interface for a virtual interface to re-use core tap functionality.
315
316 config TUN_VNET_CROSS_LE
317         bool "Support for cross-endian vnet headers on little-endian kernels"
318         default n
319         ---help---
320           This option allows TUN/TAP and MACVTAP device drivers in a
321           little-endian kernel to parse vnet headers that come from a
322           big-endian legacy virtio device.
323
324           Userspace programs can control the feature using the TUNSETVNETBE
325           and TUNGETVNETBE ioctls.
326
327           Unless you have a little-endian system hosting a big-endian virtual
328           machine with a legacy virtio NIC, you should say N.
329
330 config VETH
331         tristate "Virtual ethernet pair device"
332         ---help---
333           This device is a local ethernet tunnel. Devices are created in pairs.
334           When one end receives the packet it appears on its pair and vice
335           versa.
336
337 config VIRTIO_NET
338         tristate "Virtio network driver"
339         depends on VIRTIO
340         select NET_FAILOVER
341         ---help---
342           This is the virtual network driver for virtio.  It can be used with
343           QEMU based VMMs (like KVM or Xen).  Say Y or M.
344
345 config NLMON
346         tristate "Virtual netlink monitoring device"
347         ---help---
348           This option enables a monitoring net device for netlink skbs. The
349           purpose of this is to analyze netlink messages with packet sockets.
350           Thus applications like tcpdump will be able to see local netlink
351           messages if they tap into the netlink device, record pcaps for further
352           diagnostics, etc. This is mostly intended for developers or support
353           to debug netlink issues. If unsure, say N.
354
355 config NET_VRF
356         tristate "Virtual Routing and Forwarding (Lite)"
357         depends on IP_MULTIPLE_TABLES
358         depends on NET_L3_MASTER_DEV
359         depends on IPV6 || IPV6=n
360         depends on IPV6_MULTIPLE_TABLES || IPV6=n
361         ---help---
362           This option enables the support for mapping interfaces into VRF's. The
363           support enables VRF devices.
364
365 config VSOCKMON
366     tristate "Virtual vsock monitoring device"
367     depends on VHOST_VSOCK
368     ---help---
369      This option enables a monitoring net device for vsock sockets. It is
370      mostly intended for developers or support to debug vsock issues. If
371      unsure, say N.
372
373 endif # NET_CORE
374
375 config SUNGEM_PHY
376         tristate
377
378 source "drivers/net/arcnet/Kconfig"
379
380 source "drivers/atm/Kconfig"
381
382 source "drivers/net/caif/Kconfig"
383
384 source "drivers/net/dsa/Kconfig"
385
386 source "drivers/net/ethernet/Kconfig"
387
388 source "drivers/net/fddi/Kconfig"
389
390 source "drivers/net/hippi/Kconfig"
391
392 config NET_SB1000
393         tristate "General Instruments Surfboard 1000"
394         depends on PNP
395         ---help---
396           This is a driver for the General Instrument (also known as
397           NextLevel) SURFboard 1000 internal
398           cable modem. This is an ISA card which is used by a number of cable
399           TV companies to provide cable modem access. It's a one-way
400           downstream-only cable modem, meaning that your upstream net link is
401           provided by your regular phone modem.
402
403           At present this driver only compiles as a module, so say M here if
404           you have this card. The module will be called sb1000. Then read
405           <file:Documentation/networking/device_drivers/sb1000.txt> for
406           information on how to use this module, as it needs special ppp
407           scripts for establishing a connection. Further documentation
408           and the necessary scripts can be found at:
409
410           <http://www.jacksonville.net/~fventuri/>
411           <http://home.adelphia.net/~siglercm/sb1000.html>
412           <http://linuxpower.cx/~cable/>
413
414           If you don't have this card, of course say N.
415
416 source "drivers/net/phy/Kconfig"
417
418 source "drivers/net/plip/Kconfig"
419
420 source "drivers/net/ppp/Kconfig"
421
422 source "drivers/net/slip/Kconfig"
423
424 source "drivers/s390/net/Kconfig"
425
426 source "drivers/net/usb/Kconfig"
427
428 source "drivers/net/wireless/Kconfig"
429
430 source "drivers/net/wimax/Kconfig"
431
432 source "drivers/net/wan/Kconfig"
433
434 source "drivers/net/ieee802154/Kconfig"
435
436 config XEN_NETDEV_FRONTEND
437         tristate "Xen network device frontend driver"
438         depends on XEN
439         select XEN_XENBUS_FRONTEND
440         default y
441         help
442           This driver provides support for Xen paravirtual network
443           devices exported by a Xen network driver domain (often
444           domain 0).
445
446           The corresponding Linux backend driver is enabled by the
447           CONFIG_XEN_NETDEV_BACKEND option.
448
449           If you are compiling a kernel for use as Xen guest, you
450           should say Y here. To compile this driver as a module, chose
451           M here: the module will be called xen-netfront.
452
453 config XEN_NETDEV_BACKEND
454         tristate "Xen backend network device"
455         depends on XEN_BACKEND
456         help
457           This driver allows the kernel to act as a Xen network driver
458           domain which exports paravirtual network devices to other
459           Xen domains. These devices can be accessed by any operating
460           system that implements a compatible front end.
461
462           The corresponding Linux frontend driver is enabled by the
463           CONFIG_XEN_NETDEV_FRONTEND configuration option.
464
465           The backend driver presents a standard network device
466           endpoint for each paravirtual network device to the driver
467           domain network stack. These can then be bridged or routed
468           etc in order to provide full network connectivity.
469
470           If you are compiling a kernel to run in a Xen network driver
471           domain (often this is domain 0) you should say Y here. To
472           compile this driver as a module, chose M here: the module
473           will be called xen-netback.
474
475 config VMXNET3
476         tristate "VMware VMXNET3 ethernet driver"
477         depends on PCI && INET
478         depends on !(PAGE_SIZE_64KB || ARM64_64K_PAGES || \
479                      IA64_PAGE_SIZE_64KB || MICROBLAZE_64K_PAGES || \
480                      PARISC_PAGE_SIZE_64KB || PPC_64K_PAGES)
481         help
482           This driver supports VMware's vmxnet3 virtual ethernet NIC.
483           To compile this driver as a module, choose M here: the
484           module will be called vmxnet3.
485
486 config FUJITSU_ES
487         tristate "FUJITSU Extended Socket Network Device driver"
488         depends on ACPI
489         help
490           This driver provides support for Extended Socket network device
491           on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
492
493 config THUNDERBOLT_NET
494         tristate "Networking over Thunderbolt cable"
495         depends on THUNDERBOLT && INET
496         help
497           Select this if you want to create network between two
498           computers over a Thunderbolt cable. The driver supports Apple
499           ThunderboltIP protocol and allows communication with any host
500           supporting the same protocol including Windows and macOS.
501
502           To compile this driver a module, choose M here. The module will be
503           called thunderbolt-net.
504
505 source "drivers/net/hyperv/Kconfig"
506
507 config NETDEVSIM
508         tristate "Simulated networking device"
509         depends on DEBUG_FS
510         select NET_DEVLINK
511         help
512           This driver is a developer testing tool and software model that can
513           be used to test various control path networking APIs, especially
514           HW-offload related.
515
516           To compile this driver as a module, choose M here: the module
517           will be called netdevsim.
518
519 config NET_FAILOVER
520         tristate "Failover driver"
521         select FAILOVER
522         help
523           This provides an automated failover mechanism via APIs to create
524           and destroy a failover master netdev and manages a primary and
525           standby slave netdevs that get registered via the generic failover
526           infrastructure. This can be used by paravirtual drivers to enable
527           an alternate low latency datapath. It also enables live migration of
528           a VM with direct attached VF by failing over to the paravirtual
529           datapath when the VF is unplugged.
530
531 endif # NETDEVICES