xref: /OK3568_Linux_fs/kernel/net/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Network configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunmenuconfig NET
7*4882a593Smuzhiyun	bool "Networking support"
8*4882a593Smuzhiyun	select NLATTR
9*4882a593Smuzhiyun	select GENERIC_NET_UTILS
10*4882a593Smuzhiyun	select BPF
11*4882a593Smuzhiyun	help
12*4882a593Smuzhiyun	  Unless you really know what you are doing, you should say Y here.
13*4882a593Smuzhiyun	  The reason is that some programs need kernel networking support even
14*4882a593Smuzhiyun	  when running on a stand-alone machine that isn't connected to any
15*4882a593Smuzhiyun	  other computer.
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	  If you are upgrading from an older kernel, you
18*4882a593Smuzhiyun	  should consider updating your networking tools too because changes
19*4882a593Smuzhiyun	  in the kernel and the tools often go hand in hand. The tools are
20*4882a593Smuzhiyun	  contained in the package net-tools, the location and version number
21*4882a593Smuzhiyun	  of which are given in <file:Documentation/Changes>.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	  For a general introduction to Linux networking, it is highly
24*4882a593Smuzhiyun	  recommended to read the NET-HOWTO, available from
25*4882a593Smuzhiyun	  <http://www.tldp.org/docs.html#howto>.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunif NET
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunconfig WANT_COMPAT_NETLINK_MESSAGES
30*4882a593Smuzhiyun	bool
31*4882a593Smuzhiyun	help
32*4882a593Smuzhiyun	  This option can be selected by other options that need compat
33*4882a593Smuzhiyun	  netlink messages.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig COMPAT_NETLINK_MESSAGES
36*4882a593Smuzhiyun	def_bool y
37*4882a593Smuzhiyun	depends on COMPAT
38*4882a593Smuzhiyun	depends on WEXT_CORE || WANT_COMPAT_NETLINK_MESSAGES
39*4882a593Smuzhiyun	help
40*4882a593Smuzhiyun	  This option makes it possible to send different netlink messages
41*4882a593Smuzhiyun	  to tasks depending on whether the task is a compat task or not. To
42*4882a593Smuzhiyun	  achieve this, you need to set skb_shinfo(skb)->frag_list to the
43*4882a593Smuzhiyun	  compat skb before sending the skb, the netlink code will sort out
44*4882a593Smuzhiyun	  which message to actually pass to the task.
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun	  Newly written code should NEVER need this option but do
47*4882a593Smuzhiyun	  compat-independent messages instead!
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunconfig NET_INGRESS
50*4882a593Smuzhiyun	bool
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunconfig NET_EGRESS
53*4882a593Smuzhiyun	bool
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig NET_REDIRECT
56*4882a593Smuzhiyun	bool
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunconfig SKB_EXTENSIONS
59*4882a593Smuzhiyun	bool
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunmenu "Networking options"
62*4882a593Smuzhiyun
63*4882a593Smuzhiyunsource "net/packet/Kconfig"
64*4882a593Smuzhiyunsource "net/unix/Kconfig"
65*4882a593Smuzhiyunsource "net/tls/Kconfig"
66*4882a593Smuzhiyunsource "net/xfrm/Kconfig"
67*4882a593Smuzhiyunsource "net/iucv/Kconfig"
68*4882a593Smuzhiyunsource "net/smc/Kconfig"
69*4882a593Smuzhiyunsource "net/xdp/Kconfig"
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunconfig INET
72*4882a593Smuzhiyun	bool "TCP/IP networking"
73*4882a593Smuzhiyun	help
74*4882a593Smuzhiyun	  These are the protocols used on the Internet and on most local
75*4882a593Smuzhiyun	  Ethernets. It is highly recommended to say Y here (this will enlarge
76*4882a593Smuzhiyun	  your kernel by about 400 KB), since some programs (e.g. the X window
77*4882a593Smuzhiyun	  system) use TCP/IP even if your machine is not connected to any
78*4882a593Smuzhiyun	  other computer. You will get the so-called loopback device which
79*4882a593Smuzhiyun	  allows you to ping yourself (great fun, that!).
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun	  For an excellent introduction to Linux networking, please read the
82*4882a593Smuzhiyun	  Linux Networking HOWTO, available from
83*4882a593Smuzhiyun	  <http://www.tldp.org/docs.html#howto>.
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	  If you say Y here and also to "/proc file system support" and
86*4882a593Smuzhiyun	  "Sysctl support" below, you can change various aspects of the
87*4882a593Smuzhiyun	  behavior of the TCP/IP code by writing to the (virtual) files in
88*4882a593Smuzhiyun	  /proc/sys/net/ipv4/*; the options are explained in the file
89*4882a593Smuzhiyun	  <file:Documentation/networking/ip-sysctl.rst>.
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun	  Short answer: say Y.
92*4882a593Smuzhiyun
93*4882a593Smuzhiyunif INET
94*4882a593Smuzhiyunsource "net/ipv4/Kconfig"
95*4882a593Smuzhiyunsource "net/ipv6/Kconfig"
96*4882a593Smuzhiyunsource "net/netlabel/Kconfig"
97*4882a593Smuzhiyunsource "net/mptcp/Kconfig"
98*4882a593Smuzhiyun
99*4882a593Smuzhiyunendif # if INET
100*4882a593Smuzhiyun
101*4882a593Smuzhiyunconfig NETWORK_SECMARK
102*4882a593Smuzhiyun	bool "Security Marking"
103*4882a593Smuzhiyun	help
104*4882a593Smuzhiyun	  This enables security marking of network packets, similar
105*4882a593Smuzhiyun	  to nfmark, but designated for security purposes.
106*4882a593Smuzhiyun	  If you are unsure how to answer this question, answer N.
107*4882a593Smuzhiyun
108*4882a593Smuzhiyunconfig NET_PTP_CLASSIFY
109*4882a593Smuzhiyun	def_bool n
110*4882a593Smuzhiyun
111*4882a593Smuzhiyunconfig NETWORK_PHY_TIMESTAMPING
112*4882a593Smuzhiyun	bool "Timestamping in PHY devices"
113*4882a593Smuzhiyun	select NET_PTP_CLASSIFY
114*4882a593Smuzhiyun	help
115*4882a593Smuzhiyun	  This allows timestamping of network packets by PHYs (or
116*4882a593Smuzhiyun	  other MII bus snooping devices) with hardware timestamping
117*4882a593Smuzhiyun	  capabilities. This option adds some overhead in the transmit
118*4882a593Smuzhiyun	  and receive paths.
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun	  If you are unsure how to answer this question, answer N.
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunmenuconfig NETFILTER
123*4882a593Smuzhiyun	bool "Network packet filtering framework (Netfilter)"
124*4882a593Smuzhiyun	help
125*4882a593Smuzhiyun	  Netfilter is a framework for filtering and mangling network packets
126*4882a593Smuzhiyun	  that pass through your Linux box.
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun	  The most common use of packet filtering is to run your Linux box as
129*4882a593Smuzhiyun	  a firewall protecting a local network from the Internet. The type of
130*4882a593Smuzhiyun	  firewall provided by this kernel support is called a "packet
131*4882a593Smuzhiyun	  filter", which means that it can reject individual network packets
132*4882a593Smuzhiyun	  based on type, source, destination etc. The other kind of firewall,
133*4882a593Smuzhiyun	  a "proxy-based" one, is more secure but more intrusive and more
134*4882a593Smuzhiyun	  bothersome to set up; it inspects the network traffic much more
135*4882a593Smuzhiyun	  closely, modifies it and has knowledge about the higher level
136*4882a593Smuzhiyun	  protocols, which a packet filter lacks. Moreover, proxy-based
137*4882a593Smuzhiyun	  firewalls often require changes to the programs running on the local
138*4882a593Smuzhiyun	  clients. Proxy-based firewalls don't need support by the kernel, but
139*4882a593Smuzhiyun	  they are often combined with a packet filter, which only works if
140*4882a593Smuzhiyun	  you say Y here.
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun	  You should also say Y here if you intend to use your Linux box as
143*4882a593Smuzhiyun	  the gateway to the Internet for a local network of machines without
144*4882a593Smuzhiyun	  globally valid IP addresses. This is called "masquerading": if one
145*4882a593Smuzhiyun	  of the computers on your local network wants to send something to
146*4882a593Smuzhiyun	  the outside, your box can "masquerade" as that computer, i.e. it
147*4882a593Smuzhiyun	  forwards the traffic to the intended outside destination, but
148*4882a593Smuzhiyun	  modifies the packets to make it look like they came from the
149*4882a593Smuzhiyun	  firewall box itself. It works both ways: if the outside host
150*4882a593Smuzhiyun	  replies, the Linux box will silently forward the traffic to the
151*4882a593Smuzhiyun	  correct local computer. This way, the computers on your local net
152*4882a593Smuzhiyun	  are completely invisible to the outside world, even though they can
153*4882a593Smuzhiyun	  reach the outside and can receive replies. It is even possible to
154*4882a593Smuzhiyun	  run globally visible servers from within a masqueraded local network
155*4882a593Smuzhiyun	  using a mechanism called portforwarding. Masquerading is also often
156*4882a593Smuzhiyun	  called NAT (Network Address Translation).
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	  Another use of Netfilter is in transparent proxying: if a machine on
159*4882a593Smuzhiyun	  the local network tries to connect to an outside host, your Linux
160*4882a593Smuzhiyun	  box can transparently forward the traffic to a local server,
161*4882a593Smuzhiyun	  typically a caching proxy server.
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun	  Yet another use of Netfilter is building a bridging firewall. Using
164*4882a593Smuzhiyun	  a bridge with Network packet filtering enabled makes iptables "see"
165*4882a593Smuzhiyun	  the bridged traffic. For filtering on the lower network and Ethernet
166*4882a593Smuzhiyun	  protocols over the bridge, use ebtables (under bridge netfilter
167*4882a593Smuzhiyun	  configuration).
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun	  Various modules exist for netfilter which replace the previous
170*4882a593Smuzhiyun	  masquerading (ipmasqadm), packet filtering (ipchains), transparent
171*4882a593Smuzhiyun	  proxying, and portforwarding mechanisms. Please see
172*4882a593Smuzhiyun	  <file:Documentation/Changes> under "iptables" for the location of
173*4882a593Smuzhiyun	  these packages.
174*4882a593Smuzhiyun
175*4882a593Smuzhiyunif NETFILTER
176*4882a593Smuzhiyun
177*4882a593Smuzhiyunconfig NETFILTER_ADVANCED
178*4882a593Smuzhiyun	bool "Advanced netfilter configuration"
179*4882a593Smuzhiyun	depends on NETFILTER
180*4882a593Smuzhiyun	default y
181*4882a593Smuzhiyun	help
182*4882a593Smuzhiyun	  If you say Y here you can select between all the netfilter modules.
183*4882a593Smuzhiyun	  If you say N the more unusual ones will not be shown and the
184*4882a593Smuzhiyun	  basic ones needed by most people will default to 'M'.
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun	  If unsure, say Y.
187*4882a593Smuzhiyun
188*4882a593Smuzhiyunconfig BRIDGE_NETFILTER
189*4882a593Smuzhiyun	tristate "Bridged IP/ARP packets filtering"
190*4882a593Smuzhiyun	depends on BRIDGE
191*4882a593Smuzhiyun	depends on NETFILTER && INET
192*4882a593Smuzhiyun	depends on NETFILTER_ADVANCED
193*4882a593Smuzhiyun	select NETFILTER_FAMILY_BRIDGE
194*4882a593Smuzhiyun	select SKB_EXTENSIONS
195*4882a593Smuzhiyun	help
196*4882a593Smuzhiyun	  Enabling this option will let arptables resp. iptables see bridged
197*4882a593Smuzhiyun	  ARP resp. IP traffic. If you want a bridging firewall, you probably
198*4882a593Smuzhiyun	  want this option enabled.
199*4882a593Smuzhiyun	  Enabling or disabling this option doesn't enable or disable
200*4882a593Smuzhiyun	  ebtables.
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun	  If unsure, say N.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyunsource "net/netfilter/Kconfig"
205*4882a593Smuzhiyunsource "net/ipv4/netfilter/Kconfig"
206*4882a593Smuzhiyunsource "net/ipv6/netfilter/Kconfig"
207*4882a593Smuzhiyunsource "net/decnet/netfilter/Kconfig"
208*4882a593Smuzhiyunsource "net/bridge/netfilter/Kconfig"
209*4882a593Smuzhiyun
210*4882a593Smuzhiyunendif
211*4882a593Smuzhiyun
212*4882a593Smuzhiyunsource "net/bpfilter/Kconfig"
213*4882a593Smuzhiyun
214*4882a593Smuzhiyunsource "net/dccp/Kconfig"
215*4882a593Smuzhiyunsource "net/sctp/Kconfig"
216*4882a593Smuzhiyunsource "net/rds/Kconfig"
217*4882a593Smuzhiyunsource "net/tipc/Kconfig"
218*4882a593Smuzhiyunsource "net/atm/Kconfig"
219*4882a593Smuzhiyunsource "net/l2tp/Kconfig"
220*4882a593Smuzhiyunsource "net/802/Kconfig"
221*4882a593Smuzhiyunsource "net/bridge/Kconfig"
222*4882a593Smuzhiyunsource "net/dsa/Kconfig"
223*4882a593Smuzhiyunsource "net/8021q/Kconfig"
224*4882a593Smuzhiyunsource "net/decnet/Kconfig"
225*4882a593Smuzhiyunsource "net/llc/Kconfig"
226*4882a593Smuzhiyunsource "drivers/net/appletalk/Kconfig"
227*4882a593Smuzhiyunsource "net/x25/Kconfig"
228*4882a593Smuzhiyunsource "net/lapb/Kconfig"
229*4882a593Smuzhiyunsource "net/phonet/Kconfig"
230*4882a593Smuzhiyunsource "net/6lowpan/Kconfig"
231*4882a593Smuzhiyunsource "net/ieee802154/Kconfig"
232*4882a593Smuzhiyunsource "net/mac802154/Kconfig"
233*4882a593Smuzhiyunsource "net/sched/Kconfig"
234*4882a593Smuzhiyunsource "net/dcb/Kconfig"
235*4882a593Smuzhiyunsource "net/dns_resolver/Kconfig"
236*4882a593Smuzhiyunsource "net/batman-adv/Kconfig"
237*4882a593Smuzhiyunsource "net/openvswitch/Kconfig"
238*4882a593Smuzhiyunsource "net/vmw_vsock/Kconfig"
239*4882a593Smuzhiyunsource "net/netlink/Kconfig"
240*4882a593Smuzhiyunsource "net/mpls/Kconfig"
241*4882a593Smuzhiyunsource "net/nsh/Kconfig"
242*4882a593Smuzhiyunsource "net/hsr/Kconfig"
243*4882a593Smuzhiyunsource "net/switchdev/Kconfig"
244*4882a593Smuzhiyunsource "net/l3mdev/Kconfig"
245*4882a593Smuzhiyunsource "net/qrtr/Kconfig"
246*4882a593Smuzhiyunsource "net/ncsi/Kconfig"
247*4882a593Smuzhiyun
248*4882a593Smuzhiyunconfig RPS
249*4882a593Smuzhiyun	bool
250*4882a593Smuzhiyun	depends on SMP && SYSFS
251*4882a593Smuzhiyun	default y
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunconfig RFS_ACCEL
254*4882a593Smuzhiyun	bool
255*4882a593Smuzhiyun	depends on RPS
256*4882a593Smuzhiyun	select CPU_RMAP
257*4882a593Smuzhiyun	default y
258*4882a593Smuzhiyun
259*4882a593Smuzhiyunconfig XPS
260*4882a593Smuzhiyun	bool
261*4882a593Smuzhiyun	depends on SMP
262*4882a593Smuzhiyun	default y
263*4882a593Smuzhiyun
264*4882a593Smuzhiyunconfig HWBM
265*4882a593Smuzhiyun	bool
266*4882a593Smuzhiyun
267*4882a593Smuzhiyunconfig CGROUP_NET_PRIO
268*4882a593Smuzhiyun	bool "Network priority cgroup"
269*4882a593Smuzhiyun	depends on CGROUPS
270*4882a593Smuzhiyun	select SOCK_CGROUP_DATA
271*4882a593Smuzhiyun	help
272*4882a593Smuzhiyun	  Cgroup subsystem for use in assigning processes to network priorities on
273*4882a593Smuzhiyun	  a per-interface basis.
274*4882a593Smuzhiyun
275*4882a593Smuzhiyunconfig CGROUP_NET_CLASSID
276*4882a593Smuzhiyun	bool "Network classid cgroup"
277*4882a593Smuzhiyun	depends on CGROUPS
278*4882a593Smuzhiyun	select SOCK_CGROUP_DATA
279*4882a593Smuzhiyun	help
280*4882a593Smuzhiyun	  Cgroup subsystem for use as general purpose socket classid marker that is
281*4882a593Smuzhiyun	  being used in cls_cgroup and for netfilter matching.
282*4882a593Smuzhiyun
283*4882a593Smuzhiyunconfig NET_RX_BUSY_POLL
284*4882a593Smuzhiyun	bool
285*4882a593Smuzhiyun	default y
286*4882a593Smuzhiyun
287*4882a593Smuzhiyunconfig BQL
288*4882a593Smuzhiyun	bool
289*4882a593Smuzhiyun	depends on SYSFS
290*4882a593Smuzhiyun	select DQL
291*4882a593Smuzhiyun	default y
292*4882a593Smuzhiyun
293*4882a593Smuzhiyunconfig BPF_JIT
294*4882a593Smuzhiyun	bool "enable BPF Just In Time compiler"
295*4882a593Smuzhiyun	depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
296*4882a593Smuzhiyun	depends on MODULES
297*4882a593Smuzhiyun	help
298*4882a593Smuzhiyun	  Berkeley Packet Filter filtering capabilities are normally handled
299*4882a593Smuzhiyun	  by an interpreter. This option allows kernel to generate a native
300*4882a593Smuzhiyun	  code when filter is loaded in memory. This should speedup
301*4882a593Smuzhiyun	  packet sniffing (libpcap/tcpdump).
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun	  Note, admin should enable this feature changing:
304*4882a593Smuzhiyun	  /proc/sys/net/core/bpf_jit_enable
305*4882a593Smuzhiyun	  /proc/sys/net/core/bpf_jit_harden   (optional)
306*4882a593Smuzhiyun	  /proc/sys/net/core/bpf_jit_kallsyms (optional)
307*4882a593Smuzhiyun
308*4882a593Smuzhiyunconfig BPF_STREAM_PARSER
309*4882a593Smuzhiyun	bool "enable BPF STREAM_PARSER"
310*4882a593Smuzhiyun	depends on INET
311*4882a593Smuzhiyun	depends on BPF_SYSCALL
312*4882a593Smuzhiyun	depends on CGROUP_BPF
313*4882a593Smuzhiyun	select STREAM_PARSER
314*4882a593Smuzhiyun	select NET_SOCK_MSG
315*4882a593Smuzhiyun	help
316*4882a593Smuzhiyun	  Enabling this allows a stream parser to be used with
317*4882a593Smuzhiyun	  BPF_MAP_TYPE_SOCKMAP.
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun	  BPF_MAP_TYPE_SOCKMAP provides a map type to use with network sockets.
320*4882a593Smuzhiyun	  It can be used to enforce socket policy, implement socket redirects,
321*4882a593Smuzhiyun	  etc.
322*4882a593Smuzhiyun
323*4882a593Smuzhiyunconfig NET_FLOW_LIMIT
324*4882a593Smuzhiyun	bool
325*4882a593Smuzhiyun	depends on RPS
326*4882a593Smuzhiyun	default y
327*4882a593Smuzhiyun	help
328*4882a593Smuzhiyun	  The network stack has to drop packets when a receive processing CPU's
329*4882a593Smuzhiyun	  backlog reaches netdev_max_backlog. If a few out of many active flows
330*4882a593Smuzhiyun	  generate the vast majority of load, drop their traffic earlier to
331*4882a593Smuzhiyun	  maintain capacity for the other flows. This feature provides servers
332*4882a593Smuzhiyun	  with many clients some protection against DoS by a single (spoofed)
333*4882a593Smuzhiyun	  flow that greatly exceeds average workload.
334*4882a593Smuzhiyun
335*4882a593Smuzhiyunmenu "Network testing"
336*4882a593Smuzhiyun
337*4882a593Smuzhiyunconfig NET_PKTGEN
338*4882a593Smuzhiyun	tristate "Packet Generator (USE WITH CAUTION)"
339*4882a593Smuzhiyun	depends on INET && PROC_FS
340*4882a593Smuzhiyun	help
341*4882a593Smuzhiyun	  This module will inject preconfigured packets, at a configurable
342*4882a593Smuzhiyun	  rate, out of a given interface.  It is used for network interface
343*4882a593Smuzhiyun	  stress testing and performance analysis.  If you don't understand
344*4882a593Smuzhiyun	  what was just said, you don't need it: say N.
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun	  Documentation on how to use the packet generator can be found
347*4882a593Smuzhiyun	  at <file:Documentation/networking/pktgen.rst>.
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun	  To compile this code as a module, choose M here: the
350*4882a593Smuzhiyun	  module will be called pktgen.
351*4882a593Smuzhiyun
352*4882a593Smuzhiyunconfig NET_DROP_MONITOR
353*4882a593Smuzhiyun	tristate "Network packet drop alerting service"
354*4882a593Smuzhiyun	depends on INET && TRACEPOINTS
355*4882a593Smuzhiyun	help
356*4882a593Smuzhiyun	  This feature provides an alerting service to userspace in the
357*4882a593Smuzhiyun	  event that packets are discarded in the network stack.  Alerts
358*4882a593Smuzhiyun	  are broadcast via netlink socket to any listening user space
359*4882a593Smuzhiyun	  process.  If you don't need network drop alerts, or if you are ok
360*4882a593Smuzhiyun	  just checking the various proc files and other utilities for
361*4882a593Smuzhiyun	  drop statistics, say N here.
362*4882a593Smuzhiyun
363*4882a593Smuzhiyunendmenu
364*4882a593Smuzhiyun
365*4882a593Smuzhiyunendmenu
366*4882a593Smuzhiyun
367*4882a593Smuzhiyunsource "net/ax25/Kconfig"
368*4882a593Smuzhiyunsource "net/can/Kconfig"
369*4882a593Smuzhiyunsource "net/bluetooth/Kconfig"
370*4882a593Smuzhiyunsource "net/rxrpc/Kconfig"
371*4882a593Smuzhiyunsource "net/kcm/Kconfig"
372*4882a593Smuzhiyunsource "net/strparser/Kconfig"
373*4882a593Smuzhiyun
374*4882a593Smuzhiyunconfig FIB_RULES
375*4882a593Smuzhiyun	bool
376*4882a593Smuzhiyun
377*4882a593Smuzhiyunmenuconfig WIRELESS
378*4882a593Smuzhiyun	bool "Wireless"
379*4882a593Smuzhiyun	depends on !S390
380*4882a593Smuzhiyun	default y
381*4882a593Smuzhiyun
382*4882a593Smuzhiyunif WIRELESS
383*4882a593Smuzhiyun
384*4882a593Smuzhiyunsource "net/wireless/Kconfig"
385*4882a593Smuzhiyunsource "net/mac80211/Kconfig"
386*4882a593Smuzhiyun
387*4882a593Smuzhiyunendif # WIRELESS
388*4882a593Smuzhiyun
389*4882a593Smuzhiyunsource "net/wimax/Kconfig"
390*4882a593Smuzhiyun
391*4882a593Smuzhiyunsource "net/rfkill/Kconfig"
392*4882a593Smuzhiyunsource "net/9p/Kconfig"
393*4882a593Smuzhiyunsource "net/caif/Kconfig"
394*4882a593Smuzhiyunsource "net/ceph/Kconfig"
395*4882a593Smuzhiyunsource "net/nfc/Kconfig"
396*4882a593Smuzhiyunsource "net/psample/Kconfig"
397*4882a593Smuzhiyunsource "net/ife/Kconfig"
398*4882a593Smuzhiyun
399*4882a593Smuzhiyunconfig LWTUNNEL
400*4882a593Smuzhiyun	bool "Network light weight tunnels"
401*4882a593Smuzhiyun	help
402*4882a593Smuzhiyun	  This feature provides an infrastructure to support light weight
403*4882a593Smuzhiyun	  tunnels like mpls. There is no netdevice associated with a light
404*4882a593Smuzhiyun	  weight tunnel endpoint. Tunnel encapsulation parameters are stored
405*4882a593Smuzhiyun	  with light weight tunnel state associated with fib routes.
406*4882a593Smuzhiyun
407*4882a593Smuzhiyunconfig LWTUNNEL_BPF
408*4882a593Smuzhiyun	bool "Execute BPF program as route nexthop action"
409*4882a593Smuzhiyun	depends on LWTUNNEL && INET
410*4882a593Smuzhiyun	default y if LWTUNNEL=y
411*4882a593Smuzhiyun	help
412*4882a593Smuzhiyun	  Allows to run BPF programs as a nexthop action following a route
413*4882a593Smuzhiyun	  lookup for incoming and outgoing packets.
414*4882a593Smuzhiyun
415*4882a593Smuzhiyunconfig DST_CACHE
416*4882a593Smuzhiyun	bool
417*4882a593Smuzhiyun	default n
418*4882a593Smuzhiyun
419*4882a593Smuzhiyunconfig GRO_CELLS
420*4882a593Smuzhiyun	bool
421*4882a593Smuzhiyun	default n
422*4882a593Smuzhiyun
423*4882a593Smuzhiyunconfig SOCK_VALIDATE_XMIT
424*4882a593Smuzhiyun	bool
425*4882a593Smuzhiyun
426*4882a593Smuzhiyunconfig NET_SOCK_MSG
427*4882a593Smuzhiyun	bool
428*4882a593Smuzhiyun	default n
429*4882a593Smuzhiyun	help
430*4882a593Smuzhiyun	  The NET_SOCK_MSG provides a framework for plain sockets (e.g. TCP) or
431*4882a593Smuzhiyun	  ULPs (upper layer modules, e.g. TLS) to process L7 application data
432*4882a593Smuzhiyun	  with the help of BPF programs.
433*4882a593Smuzhiyun
434*4882a593Smuzhiyunconfig NET_DEVLINK
435*4882a593Smuzhiyun	bool
436*4882a593Smuzhiyun	default n
437*4882a593Smuzhiyun
438*4882a593Smuzhiyunconfig PAGE_POOL
439*4882a593Smuzhiyun	bool
440*4882a593Smuzhiyun
441*4882a593Smuzhiyunconfig FAILOVER
442*4882a593Smuzhiyun	tristate "Generic failover module"
443*4882a593Smuzhiyun	help
444*4882a593Smuzhiyun	  The failover module provides a generic interface for paravirtual
445*4882a593Smuzhiyun	  drivers to register a netdev and a set of ops with a failover
446*4882a593Smuzhiyun	  instance. The ops are used as event handlers that get called to
447*4882a593Smuzhiyun	  handle netdev register/unregister/link change/name change events
448*4882a593Smuzhiyun	  on slave pci ethernet devices with the same mac address as the
449*4882a593Smuzhiyun	  failover netdev. This enables paravirtual drivers to use a
450*4882a593Smuzhiyun	  VF as an accelerated low latency datapath. It also allows live
451*4882a593Smuzhiyun	  migration of VMs with direct attached VFs by failing over to the
452*4882a593Smuzhiyun	  paravirtual datapath when the VF is unplugged.
453*4882a593Smuzhiyun
454*4882a593Smuzhiyunconfig ETHTOOL_NETLINK
455*4882a593Smuzhiyun	bool "Netlink interface for ethtool"
456*4882a593Smuzhiyun	default y
457*4882a593Smuzhiyun	help
458*4882a593Smuzhiyun	  An alternative userspace interface for ethtool based on generic
459*4882a593Smuzhiyun	  netlink. It provides better extensibility and some new features,
460*4882a593Smuzhiyun	  e.g. notification messages.
461*4882a593Smuzhiyun
462*4882a593Smuzhiyunendif   # if NET
463*4882a593Smuzhiyun
464*4882a593Smuzhiyun# Used by archs to tell that they support BPF JIT compiler plus which flavour.
465*4882a593Smuzhiyun# Only one of the two can be selected for a specific arch since eBPF JIT supersedes
466*4882a593Smuzhiyun# the cBPF JIT.
467*4882a593Smuzhiyun
468*4882a593Smuzhiyun# Classic BPF JIT (cBPF)
469*4882a593Smuzhiyunconfig HAVE_CBPF_JIT
470*4882a593Smuzhiyun	bool
471*4882a593Smuzhiyun
472*4882a593Smuzhiyun# Extended BPF JIT (eBPF)
473*4882a593Smuzhiyunconfig HAVE_EBPF_JIT
474*4882a593Smuzhiyun	bool
475