hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/net/Kconfig
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # Network device configuration
34 #
....@@ -6,7 +7,7 @@
67 default y if UML
78 depends on NET
89 bool "Network device support"
9
- ---help---
10
+ help
1011 You can say N here if you don't intend to connect your Linux box to
1112 any other computer at all.
1213
....@@ -31,7 +32,7 @@
3132 config NET_CORE
3233 default y
3334 bool "Network core driver support"
34
- ---help---
35
+ help
3536 You can say N here if you do not intend to use any of the
3637 networking core drivers (i.e. VLAN, bridging, bonding, etc.)
3738
....@@ -41,7 +42,7 @@
4142 tristate "Bonding driver support"
4243 depends on INET
4344 depends on IPV6 || IPV6=n
44
- ---help---
45
+ help
4546 Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
4647 Channels together. This is called 'Etherchannel' by Cisco,
4748 'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
....@@ -49,7 +50,7 @@
4950 The driver supports multiple bonding modes to allow for both high
5051 performance and high availability operation.
5152
52
- Refer to <file:Documentation/networking/bonding.txt> for more
53
+ Refer to <file:Documentation/networking/bonding.rst> for more
5354 information.
5455
5556 To compile this driver as a module, choose M here: the module
....@@ -57,7 +58,7 @@
5758
5859 config DUMMY
5960 tristate "Dummy net driver support"
60
- ---help---
61
+ help
6162 This is essentially a bit-bucket device (i.e. traffic you send to
6263 this device is consigned into oblivion) with a configurable IP
6364 address. It is most commonly used in order to make your currently
....@@ -79,20 +80,19 @@
7980 select CRYPTO
8081 select CRYPTO_LIB_CURVE25519
8182 select CRYPTO_LIB_CHACHA20POLY1305
82
- select CRYPTO_LIB_BLAKE2S
8383 select CRYPTO_CHACHA20_X86_64 if X86 && 64BIT
8484 select CRYPTO_POLY1305_X86_64 if X86 && 64BIT
8585 select CRYPTO_BLAKE2S_X86 if X86 && 64BIT
8686 select CRYPTO_CURVE25519_X86 if X86 && 64BIT
8787 select ARM_CRYPTO if ARM
8888 select ARM64_CRYPTO if ARM64
89
- select CRYPTO_CHACHA20_NEON if (ARM || ARM64) && KERNEL_MODE_NEON
89
+ select CRYPTO_CHACHA20_NEON if ARM || (ARM64 && KERNEL_MODE_NEON)
9090 select CRYPTO_POLY1305_NEON if ARM64 && KERNEL_MODE_NEON
9191 select CRYPTO_POLY1305_ARM if ARM
9292 select CRYPTO_BLAKE2S_ARM if ARM
9393 select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
9494 select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
95
- select CRYPTO_POLY1305_MIPS if CPU_MIPS32 || (CPU_MIPS64 && 64BIT)
95
+ select CRYPTO_POLY1305_MIPS if MIPS
9696 help
9797 WireGuard is a secure, fast, and easy to use replacement for IPSec
9898 that uses modern cryptography and clever networking tricks. It's
....@@ -116,7 +116,7 @@
116116
117117 config EQUALIZER
118118 tristate "EQL (serial line load balancing) support"
119
- ---help---
119
+ help
120120 If you have two serial connections to some other computer (this
121121 usually requires two modems and two telephone lines) and you use
122122 SLIP (the protocol for sending Internet traffic over telephone
....@@ -126,7 +126,7 @@
126126 Linux driver or with a Livingston Portmaster 2e.
127127
128128 Say Y if you want this and read
129
- <file:Documentation/networking/eql.txt>. You may also want to read
129
+ <file:Documentation/networking/eql.rst>. You may also want to read
130130 section 6.2 of the NET-3-HOWTO, available from
131131 <http://www.tldp.org/docs.html#howto>.
132132
....@@ -148,8 +148,9 @@
148148
149149 config IFB
150150 tristate "Intermediate Functional Block support"
151
- depends on NET_CLS_ACT
152
- ---help---
151
+ depends on NET_ACT_MIRRED || NFT_FWD_NETDEV
152
+ select NET_REDIRECT
153
+ help
153154 This is an intermediate driver that allows sharing of
154155 resources.
155156 To compile this driver as a module, choose M here: the module
....@@ -163,7 +164,7 @@
163164
164165 config MACVLAN
165166 tristate "MAC-VLAN support"
166
- ---help---
167
+ help
167168 This allows one to create virtual interfaces that map packets to
168169 or from specific MAC addresses to a particular interface.
169170
....@@ -189,33 +190,36 @@
189190 To compile this driver as a module, choose M here: the module
190191 will be called macvtap.
191192
193
+config IPVLAN_L3S
194
+ depends on NETFILTER
195
+ depends on IPVLAN
196
+ def_bool y
197
+ select NET_L3_MASTER_DEV
192198
193199 config IPVLAN
194
- tristate "IP-VLAN support"
195
- depends on INET
196
- depends on IPV6 || !IPV6
197
- depends on NETFILTER
198
- select NET_L3_MASTER_DEV
199
- ---help---
200
- This allows one to create virtual devices off of a main interface
201
- and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
202
- on packets. All interfaces (including the main interface) share L2
203
- making it transparent to the connected L2 switch.
200
+ tristate "IP-VLAN support"
201
+ depends on INET
202
+ depends on IPV6 || !IPV6
203
+ help
204
+ This allows one to create virtual devices off of a main interface
205
+ and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
206
+ on packets. All interfaces (including the main interface) share L2
207
+ making it transparent to the connected L2 switch.
204208
205
- Ipvlan devices can be added using the "ip" command from the
206
- iproute2 package starting with the iproute2-3.19 release:
209
+ Ipvlan devices can be added using the "ip" command from the
210
+ iproute2 package starting with the iproute2-3.19 release:
207211
208
- "ip link add link <main-dev> [ NAME ] type ipvlan"
212
+ "ip link add link <main-dev> [ NAME ] type ipvlan"
209213
210
- To compile this driver as a module, choose M here: the module
211
- will be called ipvlan.
214
+ To compile this driver as a module, choose M here: the module
215
+ will be called ipvlan.
212216
213217 config IPVTAP
214218 tristate "IP-VLAN based tap driver"
215219 depends on IPVLAN
216220 depends on INET
217221 select TAP
218
- ---help---
222
+ help
219223 This adds a specialized tap character device driver that is based
220224 on the IP-VLAN network interface, called ipvtap. An ipvtap device
221225 can be added in the same way as a ipvlan device, using 'type
....@@ -225,11 +229,11 @@
225229 will be called ipvtap.
226230
227231 config VXLAN
228
- tristate "Virtual eXtensible Local Area Network (VXLAN)"
229
- depends on INET
230
- select NET_UDP_TUNNEL
231
- select GRO_CELLS
232
- ---help---
232
+ tristate "Virtual eXtensible Local Area Network (VXLAN)"
233
+ depends on INET
234
+ select NET_UDP_TUNNEL
235
+ select GRO_CELLS
236
+ help
233237 This allows one to create vxlan virtual interfaces that provide
234238 Layer 2 Networks over Layer 3 Networks. VXLAN is often used
235239 to tunnel virtual network infrastructure in virtualized environments.
....@@ -240,12 +244,12 @@
240244 will be called vxlan.
241245
242246 config GENEVE
243
- tristate "Generic Network Virtualization Encapsulation"
244
- depends on INET
245
- depends on IPV6 || !IPV6
246
- select NET_UDP_TUNNEL
247
- select GRO_CELLS
248
- ---help---
247
+ tristate "Generic Network Virtualization Encapsulation"
248
+ depends on INET
249
+ depends on IPV6 || !IPV6
250
+ select NET_UDP_TUNNEL
251
+ select GRO_CELLS
252
+ help
249253 This allows one to create geneve virtual interfaces that provide
250254 Layer 2 Networks over Layer 3 Networks. GENEVE is often used
251255 to tunnel virtual network infrastructure in virtualized environments.
....@@ -255,11 +259,24 @@
255259 To compile this driver as a module, choose M here: the module
256260 will be called geneve.
257261
262
+config BAREUDP
263
+ tristate "Bare UDP Encapsulation"
264
+ depends on INET
265
+ depends on IPV6 || !IPV6
266
+ select NET_UDP_TUNNEL
267
+ select GRO_CELLS
268
+ help
269
+ This adds a bare UDP tunnel module for tunnelling different
270
+ kinds of traffic like MPLS, IP, etc. inside a UDP tunnel.
271
+
272
+ To compile this driver as a module, choose M here: the module
273
+ will be called bareudp.
274
+
258275 config GTP
259276 tristate "GPRS Tunneling Protocol datapath (GTP-U)"
260277 depends on INET
261278 select NET_UDP_TUNNEL
262
- ---help---
279
+ help
263280 This allows one to create gtp virtual interfaces that provide
264281 the GPRS Tunneling Protocol datapath (GTP-U). This tunneling protocol
265282 is used to prevent subscribers from accessing mobile carrier core
....@@ -278,14 +295,14 @@
278295 select CRYPTO_AES
279296 select CRYPTO_GCM
280297 select GRO_CELLS
281
- ---help---
298
+ help
282299 MACsec is an encryption standard for Ethernet.
283300
284301 config NETCONSOLE
285302 tristate "Network console logging support"
286
- ---help---
287
- If you want to log kernel messages over the network, enable this.
288
- See <file:Documentation/networking/netconsole.txt> for details.
303
+ help
304
+ If you want to log kernel messages over the network, enable this.
305
+ See <file:Documentation/networking/netconsole.rst> for details.
289306
290307 config NETCONSOLE_DYNAMIC
291308 bool "Dynamic reconfiguration of logging targets"
....@@ -295,7 +312,7 @@
295312 This option enables the ability to dynamically reconfigure target
296313 parameters (interface, IP addresses, port numbers, MAC addresses)
297314 at runtime through a userspace interface exported using configfs.
298
- See <file:Documentation/networking/netconsole.txt> for details.
315
+ See <file:Documentation/networking/netconsole.rst> for details.
299316
300317 config NETPOLL
301318 def_bool NETCONSOLE
....@@ -326,7 +343,7 @@
326343 tristate "Universal TUN/TAP device driver support"
327344 depends on INET
328345 select CRC32
329
- ---help---
346
+ help
330347 TUN/TAP provides packet reception and transmission for user space
331348 programs. It can be viewed as a simple Point-to-Point or Ethernet
332349 device, which instead of receiving packets from a physical media,
....@@ -338,7 +355,7 @@
338355 devices, driver will automatically delete tunXX or tapXX device and
339356 all routes corresponding to it.
340357
341
- Please read <file:Documentation/networking/tuntap.txt> for more
358
+ Please read <file:Documentation/networking/tuntap.rst> for more
342359 information.
343360
344361 To compile this driver as a module, choose M here: the module
....@@ -348,14 +365,14 @@
348365
349366 config TAP
350367 tristate
351
- ---help---
368
+ help
352369 This option is selected by any driver implementing tap user space
353370 interface for a virtual interface to re-use core tap functionality.
354371
355372 config TUN_VNET_CROSS_LE
356373 bool "Support for cross-endian vnet headers on little-endian kernels"
357374 default n
358
- ---help---
375
+ help
359376 This option allows TUN/TAP and MACVTAP device drivers in a
360377 little-endian kernel to parse vnet headers that come from a
361378 big-endian legacy virtio device.
....@@ -368,7 +385,7 @@
368385
369386 config VETH
370387 tristate "Virtual ethernet pair device"
371
- ---help---
388
+ help
372389 This device is a local ethernet tunnel. Devices are created in pairs.
373390 When one end receives the packet it appears on its pair and vice
374391 versa.
....@@ -377,13 +394,13 @@
377394 tristate "Virtio network driver"
378395 depends on VIRTIO
379396 select NET_FAILOVER
380
- ---help---
397
+ help
381398 This is the virtual network driver for virtio. It can be used with
382399 QEMU based VMMs (like KVM or Xen). Say Y or M.
383400
384401 config NLMON
385402 tristate "Virtual netlink monitoring device"
386
- ---help---
403
+ help
387404 This option enables a monitoring net device for netlink skbs. The
388405 purpose of this is to analyze netlink messages with packet sockets.
389406 Thus applications like tcpdump will be able to see local netlink
....@@ -397,17 +414,17 @@
397414 depends on NET_L3_MASTER_DEV
398415 depends on IPV6 || IPV6=n
399416 depends on IPV6_MULTIPLE_TABLES || IPV6=n
400
- ---help---
417
+ help
401418 This option enables the support for mapping interfaces into VRF's. The
402419 support enables VRF devices.
403420
404421 config VSOCKMON
405
- tristate "Virtual vsock monitoring device"
406
- depends on VHOST_VSOCK
407
- ---help---
408
- This option enables a monitoring net device for vsock sockets. It is
409
- mostly intended for developers or support to debug vsock issues. If
410
- unsure, say N.
422
+ tristate "Virtual vsock monitoring device"
423
+ depends on VHOST_VSOCK
424
+ help
425
+ This option enables a monitoring net device for vsock sockets. It is
426
+ mostly intended for developers or support to debug vsock issues. If
427
+ unsure, say N.
411428
412429 endif # NET_CORE
413430
....@@ -428,10 +445,12 @@
428445
429446 source "drivers/net/hippi/Kconfig"
430447
448
+source "drivers/net/ipa/Kconfig"
449
+
431450 config NET_SB1000
432451 tristate "General Instruments Surfboard 1000"
433452 depends on PNP
434
- ---help---
453
+ help
435454 This is a driver for the General Instrument (also known as
436455 NextLevel) SURFboard 1000 internal
437456 cable modem. This is an ISA card which is used by a number of cable
....@@ -441,10 +460,10 @@
441460
442461 At present this driver only compiles as a module, so say M here if
443462 you have this card. The module will be called sb1000. Then read
444
- <file:Documentation/networking/README.sb1000> for information on how
445
- to use this module, as it needs special ppp scripts for establishing
446
- a connection. Further documentation and the necessary scripts can be
447
- found at:
463
+ <file:Documentation/networking/device_drivers/cable/sb1000.rst> for
464
+ information on how to use this module, as it needs special ppp
465
+ scripts for establishing a connection. Further documentation
466
+ and the necessary scripts can be found at:
448467
449468 <http://www.jacksonville.net/~fventuri/>
450469 <http://home.adelphia.net/~siglercm/sb1000.html>
....@@ -453,6 +472,10 @@
453472 If you don't have this card, of course say N.
454473
455474 source "drivers/net/phy/Kconfig"
475
+
476
+source "drivers/net/mdio/Kconfig"
477
+
478
+source "drivers/net/pcs/Kconfig"
456479
457480 source "drivers/net/plip/Kconfig"
458481
....@@ -476,6 +499,7 @@
476499 tristate "Xen network device frontend driver"
477500 depends on XEN
478501 select XEN_XENBUS_FRONTEND
502
+ select PAGE_POOL
479503 default y
480504 help
481505 This driver provides support for Xen paravirtual network
....@@ -527,14 +551,14 @@
527551 depends on ACPI
528552 help
529553 This driver provides support for Extended Socket network device
530
- on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
554
+ on Extended Partitioning of FUJITSU PRIMEQUEST 2000 E2 series.
531555
532
-config THUNDERBOLT_NET
533
- tristate "Networking over Thunderbolt cable"
534
- depends on THUNDERBOLT && INET
556
+config USB4_NET
557
+ tristate "Networking over USB4 and Thunderbolt cables"
558
+ depends on USB4 && INET
535559 help
536
- Select this if you want to create network between two
537
- computers over a Thunderbolt cable. The driver supports Apple
560
+ Select this if you want to create network between two computers
561
+ over a USB4 and Thunderbolt cables. The driver supports Apple
538562 ThunderboltIP protocol and allows communication with any host
539563 supporting the same protocol including Windows and macOS.
540564
....@@ -542,12 +566,13 @@
542566 called thunderbolt-net.
543567
544568 source "drivers/net/hyperv/Kconfig"
545
-source "drivers/net/lte/Kconfig"
546569
547570 config NETDEVSIM
548571 tristate "Simulated networking device"
549572 depends on DEBUG_FS
550
- depends on MAY_USE_DEVLINK
573
+ depends on INET
574
+ depends on IPV6 || IPV6=n
575
+ select NET_DEVLINK
551576 help
552577 This driver is a developer testing tool and software model that can
553578 be used to test various control path networking APIs, especially
....@@ -564,7 +589,7 @@
564589 and destroy a failover master netdev and manages a primary and
565590 standby slave netdevs that get registered via the generic failover
566591 infrastructure. This can be used by paravirtual drivers to enable
567
- an alternate low latency datapath. It alsoenables live migration of
592
+ an alternate low latency datapath. It also enables live migration of
568593 a VM with direct attached VF by failing over to the paravirtual
569594 datapath when the VF is unplugged.
570595