162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Network configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig NET
762306a36Sopenharmony_ci	bool "Networking support"
862306a36Sopenharmony_ci	select NLATTR
962306a36Sopenharmony_ci	select GENERIC_NET_UTILS
1062306a36Sopenharmony_ci	select BPF
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  Unless you really know what you are doing, you should say Y here.
1362306a36Sopenharmony_ci	  The reason is that some programs need kernel networking support even
1462306a36Sopenharmony_ci	  when running on a stand-alone machine that isn't connected to any
1562306a36Sopenharmony_ci	  other computer.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	  If you are upgrading from an older kernel, you
1862306a36Sopenharmony_ci	  should consider updating your networking tools too because changes
1962306a36Sopenharmony_ci	  in the kernel and the tools often go hand in hand. The tools are
2062306a36Sopenharmony_ci	  contained in the package net-tools, the location and version number
2162306a36Sopenharmony_ci	  of which are given in <file:Documentation/Changes>.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  For a general introduction to Linux networking, it is highly
2462306a36Sopenharmony_ci	  recommended to read the NET-HOWTO, available from
2562306a36Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciif NET
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig WANT_COMPAT_NETLINK_MESSAGES
3062306a36Sopenharmony_ci	bool
3162306a36Sopenharmony_ci	help
3262306a36Sopenharmony_ci	  This option can be selected by other options that need compat
3362306a36Sopenharmony_ci	  netlink messages.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciconfig COMPAT_NETLINK_MESSAGES
3662306a36Sopenharmony_ci	def_bool y
3762306a36Sopenharmony_ci	depends on COMPAT
3862306a36Sopenharmony_ci	depends on WEXT_CORE || WANT_COMPAT_NETLINK_MESSAGES
3962306a36Sopenharmony_ci	help
4062306a36Sopenharmony_ci	  This option makes it possible to send different netlink messages
4162306a36Sopenharmony_ci	  to tasks depending on whether the task is a compat task or not. To
4262306a36Sopenharmony_ci	  achieve this, you need to set skb_shinfo(skb)->frag_list to the
4362306a36Sopenharmony_ci	  compat skb before sending the skb, the netlink code will sort out
4462306a36Sopenharmony_ci	  which message to actually pass to the task.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	  Newly written code should NEVER need this option but do
4762306a36Sopenharmony_ci	  compat-independent messages instead!
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig NET_INGRESS
5062306a36Sopenharmony_ci	bool
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig NET_EGRESS
5362306a36Sopenharmony_ci	bool
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciconfig NET_XGRESS
5662306a36Sopenharmony_ci	select NET_INGRESS
5762306a36Sopenharmony_ci	select NET_EGRESS
5862306a36Sopenharmony_ci	bool
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig NET_REDIRECT
6162306a36Sopenharmony_ci	bool
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig SKB_EXTENSIONS
6462306a36Sopenharmony_ci	bool
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_cimenu "Networking options"
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cisource "net/packet/Kconfig"
6962306a36Sopenharmony_cisource "net/unix/Kconfig"
7062306a36Sopenharmony_cisource "net/tls/Kconfig"
7162306a36Sopenharmony_cisource "net/xfrm/Kconfig"
7262306a36Sopenharmony_cisource "net/iucv/Kconfig"
7362306a36Sopenharmony_cisource "net/smc/Kconfig"
7462306a36Sopenharmony_cisource "net/xdp/Kconfig"
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciconfig NET_HANDSHAKE
7762306a36Sopenharmony_ci	bool
7862306a36Sopenharmony_ci	depends on SUNRPC || NVME_TARGET_TCP || NVME_TCP
7962306a36Sopenharmony_ci	default y
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciconfig NET_HANDSHAKE_KUNIT_TEST
8262306a36Sopenharmony_ci	tristate "KUnit tests for the handshake upcall mechanism" if !KUNIT_ALL_TESTS
8362306a36Sopenharmony_ci	default KUNIT_ALL_TESTS
8462306a36Sopenharmony_ci	depends on KUNIT
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  This builds the KUnit tests for the handshake upcall mechanism.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci	  KUnit tests run during boot and output the results to the debug
8962306a36Sopenharmony_ci	  log in TAP format (https://testanything.org/). Only useful for
9062306a36Sopenharmony_ci	  kernel devs running KUnit test harness and are not for inclusion
9162306a36Sopenharmony_ci	  into a production build.
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	  For more information on KUnit and unit tests in general, refer
9462306a36Sopenharmony_ci	  to the KUnit documentation in Documentation/dev-tools/kunit/.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciconfig INET
9762306a36Sopenharmony_ci	bool "TCP/IP networking"
9862306a36Sopenharmony_ci	help
9962306a36Sopenharmony_ci	  These are the protocols used on the Internet and on most local
10062306a36Sopenharmony_ci	  Ethernets. It is highly recommended to say Y here (this will enlarge
10162306a36Sopenharmony_ci	  your kernel by about 400 KB), since some programs (e.g. the X window
10262306a36Sopenharmony_ci	  system) use TCP/IP even if your machine is not connected to any
10362306a36Sopenharmony_ci	  other computer. You will get the so-called loopback device which
10462306a36Sopenharmony_ci	  allows you to ping yourself (great fun, that!).
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  For an excellent introduction to Linux networking, please read the
10762306a36Sopenharmony_ci	  Linux Networking HOWTO, available from
10862306a36Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci	  If you say Y here and also to "/proc file system support" and
11162306a36Sopenharmony_ci	  "Sysctl support" below, you can change various aspects of the
11262306a36Sopenharmony_ci	  behavior of the TCP/IP code by writing to the (virtual) files in
11362306a36Sopenharmony_ci	  /proc/sys/net/ipv4/*; the options are explained in the file
11462306a36Sopenharmony_ci	  <file:Documentation/networking/ip-sysctl.rst>.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	  Short answer: say Y.
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciif INET
11962306a36Sopenharmony_cisource "net/ipv4/Kconfig"
12062306a36Sopenharmony_cisource "net/ipv6/Kconfig"
12162306a36Sopenharmony_cisource "net/netlabel/Kconfig"
12262306a36Sopenharmony_cisource "net/mptcp/Kconfig"
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciendif # if INET
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ciconfig NETWORK_SECMARK
12762306a36Sopenharmony_ci	bool "Security Marking"
12862306a36Sopenharmony_ci	help
12962306a36Sopenharmony_ci	  This enables security marking of network packets, similar
13062306a36Sopenharmony_ci	  to nfmark, but designated for security purposes.
13162306a36Sopenharmony_ci	  If you are unsure how to answer this question, answer N.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciconfig NET_PTP_CLASSIFY
13462306a36Sopenharmony_ci	def_bool n
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciconfig NETWORK_PHY_TIMESTAMPING
13762306a36Sopenharmony_ci	bool "Timestamping in PHY devices"
13862306a36Sopenharmony_ci	select NET_PTP_CLASSIFY
13962306a36Sopenharmony_ci	help
14062306a36Sopenharmony_ci	  This allows timestamping of network packets by PHYs (or
14162306a36Sopenharmony_ci	  other MII bus snooping devices) with hardware timestamping
14262306a36Sopenharmony_ci	  capabilities. This option adds some overhead in the transmit
14362306a36Sopenharmony_ci	  and receive paths.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci	  If you are unsure how to answer this question, answer N.
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_cimenuconfig NETFILTER
14862306a36Sopenharmony_ci	bool "Network packet filtering framework (Netfilter)"
14962306a36Sopenharmony_ci	help
15062306a36Sopenharmony_ci	  Netfilter is a framework for filtering and mangling network packets
15162306a36Sopenharmony_ci	  that pass through your Linux box.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci	  The most common use of packet filtering is to run your Linux box as
15462306a36Sopenharmony_ci	  a firewall protecting a local network from the Internet. The type of
15562306a36Sopenharmony_ci	  firewall provided by this kernel support is called a "packet
15662306a36Sopenharmony_ci	  filter", which means that it can reject individual network packets
15762306a36Sopenharmony_ci	  based on type, source, destination etc. The other kind of firewall,
15862306a36Sopenharmony_ci	  a "proxy-based" one, is more secure but more intrusive and more
15962306a36Sopenharmony_ci	  bothersome to set up; it inspects the network traffic much more
16062306a36Sopenharmony_ci	  closely, modifies it and has knowledge about the higher level
16162306a36Sopenharmony_ci	  protocols, which a packet filter lacks. Moreover, proxy-based
16262306a36Sopenharmony_ci	  firewalls often require changes to the programs running on the local
16362306a36Sopenharmony_ci	  clients. Proxy-based firewalls don't need support by the kernel, but
16462306a36Sopenharmony_ci	  they are often combined with a packet filter, which only works if
16562306a36Sopenharmony_ci	  you say Y here.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	  You should also say Y here if you intend to use your Linux box as
16862306a36Sopenharmony_ci	  the gateway to the Internet for a local network of machines without
16962306a36Sopenharmony_ci	  globally valid IP addresses. This is called "masquerading": if one
17062306a36Sopenharmony_ci	  of the computers on your local network wants to send something to
17162306a36Sopenharmony_ci	  the outside, your box can "masquerade" as that computer, i.e. it
17262306a36Sopenharmony_ci	  forwards the traffic to the intended outside destination, but
17362306a36Sopenharmony_ci	  modifies the packets to make it look like they came from the
17462306a36Sopenharmony_ci	  firewall box itself. It works both ways: if the outside host
17562306a36Sopenharmony_ci	  replies, the Linux box will silently forward the traffic to the
17662306a36Sopenharmony_ci	  correct local computer. This way, the computers on your local net
17762306a36Sopenharmony_ci	  are completely invisible to the outside world, even though they can
17862306a36Sopenharmony_ci	  reach the outside and can receive replies. It is even possible to
17962306a36Sopenharmony_ci	  run globally visible servers from within a masqueraded local network
18062306a36Sopenharmony_ci	  using a mechanism called portforwarding. Masquerading is also often
18162306a36Sopenharmony_ci	  called NAT (Network Address Translation).
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci	  Another use of Netfilter is in transparent proxying: if a machine on
18462306a36Sopenharmony_ci	  the local network tries to connect to an outside host, your Linux
18562306a36Sopenharmony_ci	  box can transparently forward the traffic to a local server,
18662306a36Sopenharmony_ci	  typically a caching proxy server.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci	  Yet another use of Netfilter is building a bridging firewall. Using
18962306a36Sopenharmony_ci	  a bridge with Network packet filtering enabled makes iptables "see"
19062306a36Sopenharmony_ci	  the bridged traffic. For filtering on the lower network and Ethernet
19162306a36Sopenharmony_ci	  protocols over the bridge, use ebtables (under bridge netfilter
19262306a36Sopenharmony_ci	  configuration).
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci	  Various modules exist for netfilter which replace the previous
19562306a36Sopenharmony_ci	  masquerading (ipmasqadm), packet filtering (ipchains), transparent
19662306a36Sopenharmony_ci	  proxying, and portforwarding mechanisms. Please see
19762306a36Sopenharmony_ci	  <file:Documentation/Changes> under "iptables" for the location of
19862306a36Sopenharmony_ci	  these packages.
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciif NETFILTER
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ciconfig NETFILTER_ADVANCED
20362306a36Sopenharmony_ci	bool "Advanced netfilter configuration"
20462306a36Sopenharmony_ci	depends on NETFILTER
20562306a36Sopenharmony_ci	default y
20662306a36Sopenharmony_ci	help
20762306a36Sopenharmony_ci	  If you say Y here you can select between all the netfilter modules.
20862306a36Sopenharmony_ci	  If you say N the more unusual ones will not be shown and the
20962306a36Sopenharmony_ci	  basic ones needed by most people will default to 'M'.
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci	  If unsure, say Y.
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ciconfig BRIDGE_NETFILTER
21462306a36Sopenharmony_ci	tristate "Bridged IP/ARP packets filtering"
21562306a36Sopenharmony_ci	depends on BRIDGE
21662306a36Sopenharmony_ci	depends on NETFILTER && INET
21762306a36Sopenharmony_ci	depends on NETFILTER_ADVANCED
21862306a36Sopenharmony_ci	select NETFILTER_FAMILY_BRIDGE
21962306a36Sopenharmony_ci	select SKB_EXTENSIONS
22062306a36Sopenharmony_ci	help
22162306a36Sopenharmony_ci	  Enabling this option will let arptables resp. iptables see bridged
22262306a36Sopenharmony_ci	  ARP resp. IP traffic. If you want a bridging firewall, you probably
22362306a36Sopenharmony_ci	  want this option enabled.
22462306a36Sopenharmony_ci	  Enabling or disabling this option doesn't enable or disable
22562306a36Sopenharmony_ci	  ebtables.
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci	  If unsure, say N.
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_cisource "net/netfilter/Kconfig"
23062306a36Sopenharmony_cisource "net/ipv4/netfilter/Kconfig"
23162306a36Sopenharmony_cisource "net/ipv6/netfilter/Kconfig"
23262306a36Sopenharmony_cisource "net/bridge/netfilter/Kconfig"
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ciendif
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_cisource "net/bpfilter/Kconfig"
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_cisource "net/dccp/Kconfig"
23962306a36Sopenharmony_cisource "net/sctp/Kconfig"
24062306a36Sopenharmony_cisource "net/rds/Kconfig"
24162306a36Sopenharmony_cisource "net/tipc/Kconfig"
24262306a36Sopenharmony_cisource "net/atm/Kconfig"
24362306a36Sopenharmony_cisource "net/l2tp/Kconfig"
24462306a36Sopenharmony_cisource "net/802/Kconfig"
24562306a36Sopenharmony_cisource "net/bridge/Kconfig"
24662306a36Sopenharmony_cisource "net/dsa/Kconfig"
24762306a36Sopenharmony_cisource "net/8021q/Kconfig"
24862306a36Sopenharmony_cisource "net/llc/Kconfig"
24962306a36Sopenharmony_cisource "drivers/net/appletalk/Kconfig"
25062306a36Sopenharmony_cisource "net/x25/Kconfig"
25162306a36Sopenharmony_cisource "net/lapb/Kconfig"
25262306a36Sopenharmony_cisource "net/phonet/Kconfig"
25362306a36Sopenharmony_cisource "net/6lowpan/Kconfig"
25462306a36Sopenharmony_cisource "net/ieee802154/Kconfig"
25562306a36Sopenharmony_cisource "net/mac802154/Kconfig"
25662306a36Sopenharmony_cisource "net/sched/Kconfig"
25762306a36Sopenharmony_cisource "net/dcb/Kconfig"
25862306a36Sopenharmony_cisource "net/dns_resolver/Kconfig"
25962306a36Sopenharmony_cisource "net/batman-adv/Kconfig"
26062306a36Sopenharmony_cisource "net/openvswitch/Kconfig"
26162306a36Sopenharmony_cisource "net/vmw_vsock/Kconfig"
26262306a36Sopenharmony_cisource "net/netlink/Kconfig"
26362306a36Sopenharmony_cisource "net/mpls/Kconfig"
26462306a36Sopenharmony_cisource "net/nsh/Kconfig"
26562306a36Sopenharmony_cisource "net/hsr/Kconfig"
26662306a36Sopenharmony_cisource "net/switchdev/Kconfig"
26762306a36Sopenharmony_cisource "net/l3mdev/Kconfig"
26862306a36Sopenharmony_cisource "net/qrtr/Kconfig"
26962306a36Sopenharmony_cisource "net/ncsi/Kconfig"
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ciconfig PCPU_DEV_REFCNT
27262306a36Sopenharmony_ci	bool "Use percpu variables to maintain network device refcount"
27362306a36Sopenharmony_ci	depends on SMP
27462306a36Sopenharmony_ci	default y
27562306a36Sopenharmony_ci	help
27662306a36Sopenharmony_ci	  network device refcount are using per cpu variables if this option is set.
27762306a36Sopenharmony_ci	  This can be forced to N to detect underflows (with a performance drop).
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciconfig MAX_SKB_FRAGS
28062306a36Sopenharmony_ci	int "Maximum number of fragments per skb_shared_info"
28162306a36Sopenharmony_ci	range 17 45
28262306a36Sopenharmony_ci	default 17
28362306a36Sopenharmony_ci	help
28462306a36Sopenharmony_ci	  Having more fragments per skb_shared_info can help GRO efficiency.
28562306a36Sopenharmony_ci	  This helps BIG TCP workloads, but might expose bugs in some
28662306a36Sopenharmony_ci	  legacy drivers.
28762306a36Sopenharmony_ci	  This also increases memory overhead of small packets,
28862306a36Sopenharmony_ci	  and in drivers using build_skb().
28962306a36Sopenharmony_ci	  If unsure, say 17.
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ciconfig RPS
29262306a36Sopenharmony_ci	bool
29362306a36Sopenharmony_ci	depends on SMP && SYSFS
29462306a36Sopenharmony_ci	default y
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_ciconfig RFS_ACCEL
29762306a36Sopenharmony_ci	bool
29862306a36Sopenharmony_ci	depends on RPS
29962306a36Sopenharmony_ci	select CPU_RMAP
30062306a36Sopenharmony_ci	default y
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_ciconfig SOCK_RX_QUEUE_MAPPING
30362306a36Sopenharmony_ci	bool
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ciconfig XPS
30662306a36Sopenharmony_ci	bool
30762306a36Sopenharmony_ci	depends on SMP
30862306a36Sopenharmony_ci	select SOCK_RX_QUEUE_MAPPING
30962306a36Sopenharmony_ci	default y
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ciconfig HWBM
31262306a36Sopenharmony_ci	bool
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_ciconfig CGROUP_NET_PRIO
31562306a36Sopenharmony_ci	bool "Network priority cgroup"
31662306a36Sopenharmony_ci	depends on CGROUPS
31762306a36Sopenharmony_ci	select SOCK_CGROUP_DATA
31862306a36Sopenharmony_ci	help
31962306a36Sopenharmony_ci	  Cgroup subsystem for use in assigning processes to network priorities on
32062306a36Sopenharmony_ci	  a per-interface basis.
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ciconfig CGROUP_NET_CLASSID
32362306a36Sopenharmony_ci	bool "Network classid cgroup"
32462306a36Sopenharmony_ci	depends on CGROUPS
32562306a36Sopenharmony_ci	select SOCK_CGROUP_DATA
32662306a36Sopenharmony_ci	help
32762306a36Sopenharmony_ci	  Cgroup subsystem for use as general purpose socket classid marker that is
32862306a36Sopenharmony_ci	  being used in cls_cgroup and for netfilter matching.
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ciconfig NET_RX_BUSY_POLL
33162306a36Sopenharmony_ci	bool
33262306a36Sopenharmony_ci	default y if !PREEMPT_RT || (PREEMPT_RT && !NETCONSOLE)
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ciconfig BQL
33562306a36Sopenharmony_ci	bool
33662306a36Sopenharmony_ci	depends on SYSFS
33762306a36Sopenharmony_ci	select DQL
33862306a36Sopenharmony_ci	default y
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ciconfig BPF_STREAM_PARSER
34162306a36Sopenharmony_ci	bool "enable BPF STREAM_PARSER"
34262306a36Sopenharmony_ci	depends on INET
34362306a36Sopenharmony_ci	depends on BPF_SYSCALL
34462306a36Sopenharmony_ci	depends on CGROUP_BPF
34562306a36Sopenharmony_ci	select STREAM_PARSER
34662306a36Sopenharmony_ci	select NET_SOCK_MSG
34762306a36Sopenharmony_ci	help
34862306a36Sopenharmony_ci	  Enabling this allows a TCP stream parser to be used with
34962306a36Sopenharmony_ci	  BPF_MAP_TYPE_SOCKMAP.
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ciconfig NET_FLOW_LIMIT
35262306a36Sopenharmony_ci	bool
35362306a36Sopenharmony_ci	depends on RPS
35462306a36Sopenharmony_ci	default y
35562306a36Sopenharmony_ci	help
35662306a36Sopenharmony_ci	  The network stack has to drop packets when a receive processing CPU's
35762306a36Sopenharmony_ci	  backlog reaches netdev_max_backlog. If a few out of many active flows
35862306a36Sopenharmony_ci	  generate the vast majority of load, drop their traffic earlier to
35962306a36Sopenharmony_ci	  maintain capacity for the other flows. This feature provides servers
36062306a36Sopenharmony_ci	  with many clients some protection against DoS by a single (spoofed)
36162306a36Sopenharmony_ci	  flow that greatly exceeds average workload.
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_cimenu "Network testing"
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_ciconfig NET_PKTGEN
36662306a36Sopenharmony_ci	tristate "Packet Generator (USE WITH CAUTION)"
36762306a36Sopenharmony_ci	depends on INET && PROC_FS
36862306a36Sopenharmony_ci	help
36962306a36Sopenharmony_ci	  This module will inject preconfigured packets, at a configurable
37062306a36Sopenharmony_ci	  rate, out of a given interface.  It is used for network interface
37162306a36Sopenharmony_ci	  stress testing and performance analysis.  If you don't understand
37262306a36Sopenharmony_ci	  what was just said, you don't need it: say N.
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci	  Documentation on how to use the packet generator can be found
37562306a36Sopenharmony_ci	  at <file:Documentation/networking/pktgen.rst>.
37662306a36Sopenharmony_ci
37762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
37862306a36Sopenharmony_ci	  module will be called pktgen.
37962306a36Sopenharmony_ci
38062306a36Sopenharmony_ciconfig NET_DROP_MONITOR
38162306a36Sopenharmony_ci	tristate "Network packet drop alerting service"
38262306a36Sopenharmony_ci	depends on INET && TRACEPOINTS
38362306a36Sopenharmony_ci	help
38462306a36Sopenharmony_ci	  This feature provides an alerting service to userspace in the
38562306a36Sopenharmony_ci	  event that packets are discarded in the network stack.  Alerts
38662306a36Sopenharmony_ci	  are broadcast via netlink socket to any listening user space
38762306a36Sopenharmony_ci	  process.  If you don't need network drop alerts, or if you are ok
38862306a36Sopenharmony_ci	  just checking the various proc files and other utilities for
38962306a36Sopenharmony_ci	  drop statistics, say N here.
39062306a36Sopenharmony_ci
39162306a36Sopenharmony_ciendmenu
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ciendmenu
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_cisource "net/ax25/Kconfig"
39662306a36Sopenharmony_cisource "net/can/Kconfig"
39762306a36Sopenharmony_cisource "net/bluetooth/Kconfig"
39862306a36Sopenharmony_cisource "net/rxrpc/Kconfig"
39962306a36Sopenharmony_cisource "net/kcm/Kconfig"
40062306a36Sopenharmony_cisource "net/strparser/Kconfig"
40162306a36Sopenharmony_cisource "net/mctp/Kconfig"
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_ciconfig FIB_RULES
40462306a36Sopenharmony_ci	bool
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_cimenuconfig WIRELESS
40762306a36Sopenharmony_ci	bool "Wireless"
40862306a36Sopenharmony_ci	depends on !S390
40962306a36Sopenharmony_ci	default y
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ciif WIRELESS
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_cisource "net/wireless/Kconfig"
41462306a36Sopenharmony_cisource "net/mac80211/Kconfig"
41562306a36Sopenharmony_ci
41662306a36Sopenharmony_ciendif # WIRELESS
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_cisource "net/rfkill/Kconfig"
41962306a36Sopenharmony_cisource "net/9p/Kconfig"
42062306a36Sopenharmony_cisource "net/caif/Kconfig"
42162306a36Sopenharmony_cisource "net/ceph/Kconfig"
42262306a36Sopenharmony_cisource "net/nfc/Kconfig"
42362306a36Sopenharmony_cisource "net/psample/Kconfig"
42462306a36Sopenharmony_cisource "net/ife/Kconfig"
42562306a36Sopenharmony_ci
42662306a36Sopenharmony_ciconfig LWTUNNEL
42762306a36Sopenharmony_ci	bool "Network light weight tunnels"
42862306a36Sopenharmony_ci	help
42962306a36Sopenharmony_ci	  This feature provides an infrastructure to support light weight
43062306a36Sopenharmony_ci	  tunnels like mpls. There is no netdevice associated with a light
43162306a36Sopenharmony_ci	  weight tunnel endpoint. Tunnel encapsulation parameters are stored
43262306a36Sopenharmony_ci	  with light weight tunnel state associated with fib routes.
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ciconfig LWTUNNEL_BPF
43562306a36Sopenharmony_ci	bool "Execute BPF program as route nexthop action"
43662306a36Sopenharmony_ci	depends on LWTUNNEL && INET
43762306a36Sopenharmony_ci	default y if LWTUNNEL=y
43862306a36Sopenharmony_ci	help
43962306a36Sopenharmony_ci	  Allows to run BPF programs as a nexthop action following a route
44062306a36Sopenharmony_ci	  lookup for incoming and outgoing packets.
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_ciconfig DST_CACHE
44362306a36Sopenharmony_ci	bool
44462306a36Sopenharmony_ci	default n
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_ciconfig GRO_CELLS
44762306a36Sopenharmony_ci	bool
44862306a36Sopenharmony_ci	default n
44962306a36Sopenharmony_ci
45062306a36Sopenharmony_ciconfig SOCK_VALIDATE_XMIT
45162306a36Sopenharmony_ci	bool
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_ciconfig NET_SELFTESTS
45462306a36Sopenharmony_ci	def_tristate PHYLIB
45562306a36Sopenharmony_ci	depends on PHYLIB && INET
45662306a36Sopenharmony_ci
45762306a36Sopenharmony_ciconfig NET_SOCK_MSG
45862306a36Sopenharmony_ci	bool
45962306a36Sopenharmony_ci	default n
46062306a36Sopenharmony_ci	help
46162306a36Sopenharmony_ci	  The NET_SOCK_MSG provides a framework for plain sockets (e.g. TCP) or
46262306a36Sopenharmony_ci	  ULPs (upper layer modules, e.g. TLS) to process L7 application data
46362306a36Sopenharmony_ci	  with the help of BPF programs.
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ciconfig NET_DEVLINK
46662306a36Sopenharmony_ci	bool
46762306a36Sopenharmony_ci	default n
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_ciconfig PAGE_POOL
47062306a36Sopenharmony_ci	bool
47162306a36Sopenharmony_ci
47262306a36Sopenharmony_ciconfig PAGE_POOL_STATS
47362306a36Sopenharmony_ci	default n
47462306a36Sopenharmony_ci	bool "Page pool stats"
47562306a36Sopenharmony_ci	depends on PAGE_POOL
47662306a36Sopenharmony_ci	help
47762306a36Sopenharmony_ci	  Enable page pool statistics to track page allocation and recycling
47862306a36Sopenharmony_ci	  in page pools. This option incurs additional CPU cost in allocation
47962306a36Sopenharmony_ci	  and recycle paths and additional memory cost to store the statistics.
48062306a36Sopenharmony_ci	  These statistics are only available if this option is enabled and if
48162306a36Sopenharmony_ci	  the driver using the page pool supports exporting this data.
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ci	  If unsure, say N.
48462306a36Sopenharmony_ci
48562306a36Sopenharmony_ciconfig FAILOVER
48662306a36Sopenharmony_ci	tristate "Generic failover module"
48762306a36Sopenharmony_ci	help
48862306a36Sopenharmony_ci	  The failover module provides a generic interface for paravirtual
48962306a36Sopenharmony_ci	  drivers to register a netdev and a set of ops with a failover
49062306a36Sopenharmony_ci	  instance. The ops are used as event handlers that get called to
49162306a36Sopenharmony_ci	  handle netdev register/unregister/link change/name change events
49262306a36Sopenharmony_ci	  on slave pci ethernet devices with the same mac address as the
49362306a36Sopenharmony_ci	  failover netdev. This enables paravirtual drivers to use a
49462306a36Sopenharmony_ci	  VF as an accelerated low latency datapath. It also allows live
49562306a36Sopenharmony_ci	  migration of VMs with direct attached VFs by failing over to the
49662306a36Sopenharmony_ci	  paravirtual datapath when the VF is unplugged.
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_ciconfig ETHTOOL_NETLINK
49962306a36Sopenharmony_ci	bool "Netlink interface for ethtool"
50062306a36Sopenharmony_ci	default y
50162306a36Sopenharmony_ci	help
50262306a36Sopenharmony_ci	  An alternative userspace interface for ethtool based on generic
50362306a36Sopenharmony_ci	  netlink. It provides better extensibility and some new features,
50462306a36Sopenharmony_ci	  e.g. notification messages.
50562306a36Sopenharmony_ci
50662306a36Sopenharmony_ciconfig NETDEV_ADDR_LIST_TEST
50762306a36Sopenharmony_ci	tristate "Unit tests for device address list"
50862306a36Sopenharmony_ci	default KUNIT_ALL_TESTS
50962306a36Sopenharmony_ci	depends on KUNIT
51062306a36Sopenharmony_ci
51162306a36Sopenharmony_ciendif   # if NET
512