18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Network configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenuconfig NET
78c2ecf20Sopenharmony_ci	bool "Networking support"
88c2ecf20Sopenharmony_ci	select NLATTR
98c2ecf20Sopenharmony_ci	select GENERIC_NET_UTILS
108c2ecf20Sopenharmony_ci	select BPF
118c2ecf20Sopenharmony_ci	help
128c2ecf20Sopenharmony_ci	  Unless you really know what you are doing, you should say Y here.
138c2ecf20Sopenharmony_ci	  The reason is that some programs need kernel networking support even
148c2ecf20Sopenharmony_ci	  when running on a stand-alone machine that isn't connected to any
158c2ecf20Sopenharmony_ci	  other computer.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	  If you are upgrading from an older kernel, you
188c2ecf20Sopenharmony_ci	  should consider updating your networking tools too because changes
198c2ecf20Sopenharmony_ci	  in the kernel and the tools often go hand in hand. The tools are
208c2ecf20Sopenharmony_ci	  contained in the package net-tools, the location and version number
218c2ecf20Sopenharmony_ci	  of which are given in <file:Documentation/Changes>.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	  For a general introduction to Linux networking, it is highly
248c2ecf20Sopenharmony_ci	  recommended to read the NET-HOWTO, available from
258c2ecf20Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciif NET
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciconfig WANT_COMPAT_NETLINK_MESSAGES
308c2ecf20Sopenharmony_ci	bool
318c2ecf20Sopenharmony_ci	help
328c2ecf20Sopenharmony_ci	  This option can be selected by other options that need compat
338c2ecf20Sopenharmony_ci	  netlink messages.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig COMPAT_NETLINK_MESSAGES
368c2ecf20Sopenharmony_ci	def_bool y
378c2ecf20Sopenharmony_ci	depends on COMPAT
388c2ecf20Sopenharmony_ci	depends on WEXT_CORE || WANT_COMPAT_NETLINK_MESSAGES
398c2ecf20Sopenharmony_ci	help
408c2ecf20Sopenharmony_ci	  This option makes it possible to send different netlink messages
418c2ecf20Sopenharmony_ci	  to tasks depending on whether the task is a compat task or not. To
428c2ecf20Sopenharmony_ci	  achieve this, you need to set skb_shinfo(skb)->frag_list to the
438c2ecf20Sopenharmony_ci	  compat skb before sending the skb, the netlink code will sort out
448c2ecf20Sopenharmony_ci	  which message to actually pass to the task.
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	  Newly written code should NEVER need this option but do
478c2ecf20Sopenharmony_ci	  compat-independent messages instead!
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciconfig NET_INGRESS
508c2ecf20Sopenharmony_ci	bool
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciconfig NET_EGRESS
538c2ecf20Sopenharmony_ci	bool
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciconfig NET_REDIRECT
568c2ecf20Sopenharmony_ci	bool
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciconfig SKB_EXTENSIONS
598c2ecf20Sopenharmony_ci	bool
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_cimenu "Networking options"
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_cisource "net/packet/Kconfig"
648c2ecf20Sopenharmony_cisource "net/unix/Kconfig"
658c2ecf20Sopenharmony_cisource "net/tls/Kconfig"
668c2ecf20Sopenharmony_cisource "net/xfrm/Kconfig"
678c2ecf20Sopenharmony_cisource "net/iucv/Kconfig"
688c2ecf20Sopenharmony_cisource "net/smc/Kconfig"
698c2ecf20Sopenharmony_cisource "net/xdp/Kconfig"
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciconfig INET
728c2ecf20Sopenharmony_ci	bool "TCP/IP networking"
738c2ecf20Sopenharmony_ci	help
748c2ecf20Sopenharmony_ci	  These are the protocols used on the Internet and on most local
758c2ecf20Sopenharmony_ci	  Ethernets. It is highly recommended to say Y here (this will enlarge
768c2ecf20Sopenharmony_ci	  your kernel by about 400 KB), since some programs (e.g. the X window
778c2ecf20Sopenharmony_ci	  system) use TCP/IP even if your machine is not connected to any
788c2ecf20Sopenharmony_ci	  other computer. You will get the so-called loopback device which
798c2ecf20Sopenharmony_ci	  allows you to ping yourself (great fun, that!).
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci	  For an excellent introduction to Linux networking, please read the
828c2ecf20Sopenharmony_ci	  Linux Networking HOWTO, available from
838c2ecf20Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	  If you say Y here and also to "/proc file system support" and
868c2ecf20Sopenharmony_ci	  "Sysctl support" below, you can change various aspects of the
878c2ecf20Sopenharmony_ci	  behavior of the TCP/IP code by writing to the (virtual) files in
888c2ecf20Sopenharmony_ci	  /proc/sys/net/ipv4/*; the options are explained in the file
898c2ecf20Sopenharmony_ci	  <file:Documentation/networking/ip-sysctl.rst>.
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci	  Short answer: say Y.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ciif INET
948c2ecf20Sopenharmony_cisource "net/ipv4/Kconfig"
958c2ecf20Sopenharmony_cisource "net/ipv6/Kconfig"
968c2ecf20Sopenharmony_cisource "net/netlabel/Kconfig"
978c2ecf20Sopenharmony_cisource "net/mptcp/Kconfig"
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ciendif # if INET
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ciconfig NETWORK_SECMARK
1028c2ecf20Sopenharmony_ci	bool "Security Marking"
1038c2ecf20Sopenharmony_ci	help
1048c2ecf20Sopenharmony_ci	  This enables security marking of network packets, similar
1058c2ecf20Sopenharmony_ci	  to nfmark, but designated for security purposes.
1068c2ecf20Sopenharmony_ci	  If you are unsure how to answer this question, answer N.
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciconfig NET_PTP_CLASSIFY
1098c2ecf20Sopenharmony_ci	def_bool n
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciconfig NETWORK_PHY_TIMESTAMPING
1128c2ecf20Sopenharmony_ci	bool "Timestamping in PHY devices"
1138c2ecf20Sopenharmony_ci	select NET_PTP_CLASSIFY
1148c2ecf20Sopenharmony_ci	help
1158c2ecf20Sopenharmony_ci	  This allows timestamping of network packets by PHYs (or
1168c2ecf20Sopenharmony_ci	  other MII bus snooping devices) with hardware timestamping
1178c2ecf20Sopenharmony_ci	  capabilities. This option adds some overhead in the transmit
1188c2ecf20Sopenharmony_ci	  and receive paths.
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci	  If you are unsure how to answer this question, answer N.
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_cimenuconfig NETFILTER
1238c2ecf20Sopenharmony_ci	bool "Network packet filtering framework (Netfilter)"
1248c2ecf20Sopenharmony_ci	help
1258c2ecf20Sopenharmony_ci	  Netfilter is a framework for filtering and mangling network packets
1268c2ecf20Sopenharmony_ci	  that pass through your Linux box.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci	  The most common use of packet filtering is to run your Linux box as
1298c2ecf20Sopenharmony_ci	  a firewall protecting a local network from the Internet. The type of
1308c2ecf20Sopenharmony_ci	  firewall provided by this kernel support is called a "packet
1318c2ecf20Sopenharmony_ci	  filter", which means that it can reject individual network packets
1328c2ecf20Sopenharmony_ci	  based on type, source, destination etc. The other kind of firewall,
1338c2ecf20Sopenharmony_ci	  a "proxy-based" one, is more secure but more intrusive and more
1348c2ecf20Sopenharmony_ci	  bothersome to set up; it inspects the network traffic much more
1358c2ecf20Sopenharmony_ci	  closely, modifies it and has knowledge about the higher level
1368c2ecf20Sopenharmony_ci	  protocols, which a packet filter lacks. Moreover, proxy-based
1378c2ecf20Sopenharmony_ci	  firewalls often require changes to the programs running on the local
1388c2ecf20Sopenharmony_ci	  clients. Proxy-based firewalls don't need support by the kernel, but
1398c2ecf20Sopenharmony_ci	  they are often combined with a packet filter, which only works if
1408c2ecf20Sopenharmony_ci	  you say Y here.
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci	  You should also say Y here if you intend to use your Linux box as
1438c2ecf20Sopenharmony_ci	  the gateway to the Internet for a local network of machines without
1448c2ecf20Sopenharmony_ci	  globally valid IP addresses. This is called "masquerading": if one
1458c2ecf20Sopenharmony_ci	  of the computers on your local network wants to send something to
1468c2ecf20Sopenharmony_ci	  the outside, your box can "masquerade" as that computer, i.e. it
1478c2ecf20Sopenharmony_ci	  forwards the traffic to the intended outside destination, but
1488c2ecf20Sopenharmony_ci	  modifies the packets to make it look like they came from the
1498c2ecf20Sopenharmony_ci	  firewall box itself. It works both ways: if the outside host
1508c2ecf20Sopenharmony_ci	  replies, the Linux box will silently forward the traffic to the
1518c2ecf20Sopenharmony_ci	  correct local computer. This way, the computers on your local net
1528c2ecf20Sopenharmony_ci	  are completely invisible to the outside world, even though they can
1538c2ecf20Sopenharmony_ci	  reach the outside and can receive replies. It is even possible to
1548c2ecf20Sopenharmony_ci	  run globally visible servers from within a masqueraded local network
1558c2ecf20Sopenharmony_ci	  using a mechanism called portforwarding. Masquerading is also often
1568c2ecf20Sopenharmony_ci	  called NAT (Network Address Translation).
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci	  Another use of Netfilter is in transparent proxying: if a machine on
1598c2ecf20Sopenharmony_ci	  the local network tries to connect to an outside host, your Linux
1608c2ecf20Sopenharmony_ci	  box can transparently forward the traffic to a local server,
1618c2ecf20Sopenharmony_ci	  typically a caching proxy server.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	  Yet another use of Netfilter is building a bridging firewall. Using
1648c2ecf20Sopenharmony_ci	  a bridge with Network packet filtering enabled makes iptables "see"
1658c2ecf20Sopenharmony_ci	  the bridged traffic. For filtering on the lower network and Ethernet
1668c2ecf20Sopenharmony_ci	  protocols over the bridge, use ebtables (under bridge netfilter
1678c2ecf20Sopenharmony_ci	  configuration).
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci	  Various modules exist for netfilter which replace the previous
1708c2ecf20Sopenharmony_ci	  masquerading (ipmasqadm), packet filtering (ipchains), transparent
1718c2ecf20Sopenharmony_ci	  proxying, and portforwarding mechanisms. Please see
1728c2ecf20Sopenharmony_ci	  <file:Documentation/Changes> under "iptables" for the location of
1738c2ecf20Sopenharmony_ci	  these packages.
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ciif NETFILTER
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ciconfig NETFILTER_ADVANCED
1788c2ecf20Sopenharmony_ci	bool "Advanced netfilter configuration"
1798c2ecf20Sopenharmony_ci	depends on NETFILTER
1808c2ecf20Sopenharmony_ci	default y
1818c2ecf20Sopenharmony_ci	help
1828c2ecf20Sopenharmony_ci	  If you say Y here you can select between all the netfilter modules.
1838c2ecf20Sopenharmony_ci	  If you say N the more unusual ones will not be shown and the
1848c2ecf20Sopenharmony_ci	  basic ones needed by most people will default to 'M'.
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci	  If unsure, say Y.
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ciconfig BRIDGE_NETFILTER
1898c2ecf20Sopenharmony_ci	tristate "Bridged IP/ARP packets filtering"
1908c2ecf20Sopenharmony_ci	depends on BRIDGE
1918c2ecf20Sopenharmony_ci	depends on NETFILTER && INET
1928c2ecf20Sopenharmony_ci	depends on NETFILTER_ADVANCED
1938c2ecf20Sopenharmony_ci	select NETFILTER_FAMILY_BRIDGE
1948c2ecf20Sopenharmony_ci	select SKB_EXTENSIONS
1958c2ecf20Sopenharmony_ci	help
1968c2ecf20Sopenharmony_ci	  Enabling this option will let arptables resp. iptables see bridged
1978c2ecf20Sopenharmony_ci	  ARP resp. IP traffic. If you want a bridging firewall, you probably
1988c2ecf20Sopenharmony_ci	  want this option enabled.
1998c2ecf20Sopenharmony_ci	  Enabling or disabling this option doesn't enable or disable
2008c2ecf20Sopenharmony_ci	  ebtables.
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci	  If unsure, say N.
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_cisource "net/netfilter/Kconfig"
2058c2ecf20Sopenharmony_cisource "net/ipv4/netfilter/Kconfig"
2068c2ecf20Sopenharmony_cisource "net/ipv6/netfilter/Kconfig"
2078c2ecf20Sopenharmony_cisource "net/bridge/netfilter/Kconfig"
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ciendif
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_cisource "net/bpfilter/Kconfig"
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_cisource "net/dccp/Kconfig"
2148c2ecf20Sopenharmony_cisource "net/sctp/Kconfig"
2158c2ecf20Sopenharmony_cisource "net/rds/Kconfig"
2168c2ecf20Sopenharmony_cisource "net/tipc/Kconfig"
2178c2ecf20Sopenharmony_cisource "net/atm/Kconfig"
2188c2ecf20Sopenharmony_cisource "net/l2tp/Kconfig"
2198c2ecf20Sopenharmony_cisource "net/802/Kconfig"
2208c2ecf20Sopenharmony_cisource "net/bridge/Kconfig"
2218c2ecf20Sopenharmony_cisource "net/dsa/Kconfig"
2228c2ecf20Sopenharmony_cisource "net/8021q/Kconfig"
2238c2ecf20Sopenharmony_cisource "net/llc/Kconfig"
2248c2ecf20Sopenharmony_cisource "drivers/net/appletalk/Kconfig"
2258c2ecf20Sopenharmony_cisource "net/x25/Kconfig"
2268c2ecf20Sopenharmony_cisource "net/lapb/Kconfig"
2278c2ecf20Sopenharmony_cisource "net/phonet/Kconfig"
2288c2ecf20Sopenharmony_cisource "net/6lowpan/Kconfig"
2298c2ecf20Sopenharmony_cisource "net/ieee802154/Kconfig"
2308c2ecf20Sopenharmony_cisource "net/mac802154/Kconfig"
2318c2ecf20Sopenharmony_cisource "net/sched/Kconfig"
2328c2ecf20Sopenharmony_cisource "net/dcb/Kconfig"
2338c2ecf20Sopenharmony_cisource "net/dns_resolver/Kconfig"
2348c2ecf20Sopenharmony_cisource "net/batman-adv/Kconfig"
2358c2ecf20Sopenharmony_cisource "net/openvswitch/Kconfig"
2368c2ecf20Sopenharmony_cisource "net/vmw_vsock/Kconfig"
2378c2ecf20Sopenharmony_cisource "net/netlink/Kconfig"
2388c2ecf20Sopenharmony_cisource "net/mpls/Kconfig"
2398c2ecf20Sopenharmony_cisource "net/nsh/Kconfig"
2408c2ecf20Sopenharmony_cisource "net/hsr/Kconfig"
2418c2ecf20Sopenharmony_cisource "net/switchdev/Kconfig"
2428c2ecf20Sopenharmony_cisource "net/l3mdev/Kconfig"
2438c2ecf20Sopenharmony_cisource "net/qrtr/Kconfig"
2448c2ecf20Sopenharmony_cisource "net/ncsi/Kconfig"
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ciconfig RPS
2478c2ecf20Sopenharmony_ci	bool
2488c2ecf20Sopenharmony_ci	depends on SMP && SYSFS
2498c2ecf20Sopenharmony_ci	default y
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ciconfig RFS_ACCEL
2528c2ecf20Sopenharmony_ci	bool
2538c2ecf20Sopenharmony_ci	depends on RPS
2548c2ecf20Sopenharmony_ci	select CPU_RMAP
2558c2ecf20Sopenharmony_ci	default y
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ciconfig XPS
2588c2ecf20Sopenharmony_ci	bool
2598c2ecf20Sopenharmony_ci	depends on SMP
2608c2ecf20Sopenharmony_ci	default y
2618c2ecf20Sopenharmony_ci
2628c2ecf20Sopenharmony_ciconfig HWBM
2638c2ecf20Sopenharmony_ci	bool
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ciconfig CGROUP_NET_PRIO
2668c2ecf20Sopenharmony_ci	bool "Network priority cgroup"
2678c2ecf20Sopenharmony_ci	depends on CGROUPS
2688c2ecf20Sopenharmony_ci	select SOCK_CGROUP_DATA
2698c2ecf20Sopenharmony_ci	help
2708c2ecf20Sopenharmony_ci	  Cgroup subsystem for use in assigning processes to network priorities on
2718c2ecf20Sopenharmony_ci	  a per-interface basis.
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ciconfig CGROUP_NET_CLASSID
2748c2ecf20Sopenharmony_ci	bool "Network classid cgroup"
2758c2ecf20Sopenharmony_ci	depends on CGROUPS
2768c2ecf20Sopenharmony_ci	select SOCK_CGROUP_DATA
2778c2ecf20Sopenharmony_ci	help
2788c2ecf20Sopenharmony_ci	  Cgroup subsystem for use as general purpose socket classid marker that is
2798c2ecf20Sopenharmony_ci	  being used in cls_cgroup and for netfilter matching.
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ciconfig NET_RX_BUSY_POLL
2828c2ecf20Sopenharmony_ci	bool
2838c2ecf20Sopenharmony_ci	default y
2848c2ecf20Sopenharmony_ci
2858c2ecf20Sopenharmony_ciconfig BQL
2868c2ecf20Sopenharmony_ci	bool
2878c2ecf20Sopenharmony_ci	depends on SYSFS
2888c2ecf20Sopenharmony_ci	select DQL
2898c2ecf20Sopenharmony_ci	default y
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ciconfig BPF_JIT
2928c2ecf20Sopenharmony_ci	bool "enable BPF Just In Time compiler"
2938c2ecf20Sopenharmony_ci	depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
2948c2ecf20Sopenharmony_ci	depends on MODULES
2958c2ecf20Sopenharmony_ci	help
2968c2ecf20Sopenharmony_ci	  Berkeley Packet Filter filtering capabilities are normally handled
2978c2ecf20Sopenharmony_ci	  by an interpreter. This option allows kernel to generate a native
2988c2ecf20Sopenharmony_ci	  code when filter is loaded in memory. This should speedup
2998c2ecf20Sopenharmony_ci	  packet sniffing (libpcap/tcpdump).
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_ci	  Note, admin should enable this feature changing:
3028c2ecf20Sopenharmony_ci	  /proc/sys/net/core/bpf_jit_enable
3038c2ecf20Sopenharmony_ci	  /proc/sys/net/core/bpf_jit_harden   (optional)
3048c2ecf20Sopenharmony_ci	  /proc/sys/net/core/bpf_jit_kallsyms (optional)
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ciconfig BPF_STREAM_PARSER
3078c2ecf20Sopenharmony_ci	bool "enable BPF STREAM_PARSER"
3088c2ecf20Sopenharmony_ci	depends on INET
3098c2ecf20Sopenharmony_ci	depends on BPF_SYSCALL
3108c2ecf20Sopenharmony_ci	depends on CGROUP_BPF
3118c2ecf20Sopenharmony_ci	select STREAM_PARSER
3128c2ecf20Sopenharmony_ci	select NET_SOCK_MSG
3138c2ecf20Sopenharmony_ci	help
3148c2ecf20Sopenharmony_ci	  Enabling this allows a stream parser to be used with
3158c2ecf20Sopenharmony_ci	  BPF_MAP_TYPE_SOCKMAP.
3168c2ecf20Sopenharmony_ci
3178c2ecf20Sopenharmony_ci	  BPF_MAP_TYPE_SOCKMAP provides a map type to use with network sockets.
3188c2ecf20Sopenharmony_ci	  It can be used to enforce socket policy, implement socket redirects,
3198c2ecf20Sopenharmony_ci	  etc.
3208c2ecf20Sopenharmony_ci
3218c2ecf20Sopenharmony_ciconfig NET_FLOW_LIMIT
3228c2ecf20Sopenharmony_ci	bool
3238c2ecf20Sopenharmony_ci	depends on RPS
3248c2ecf20Sopenharmony_ci	default y
3258c2ecf20Sopenharmony_ci	help
3268c2ecf20Sopenharmony_ci	  The network stack has to drop packets when a receive processing CPU's
3278c2ecf20Sopenharmony_ci	  backlog reaches netdev_max_backlog. If a few out of many active flows
3288c2ecf20Sopenharmony_ci	  generate the vast majority of load, drop their traffic earlier to
3298c2ecf20Sopenharmony_ci	  maintain capacity for the other flows. This feature provides servers
3308c2ecf20Sopenharmony_ci	  with many clients some protection against DoS by a single (spoofed)
3318c2ecf20Sopenharmony_ci	  flow that greatly exceeds average workload.
3328c2ecf20Sopenharmony_ci
3338c2ecf20Sopenharmony_cimenu "Network testing"
3348c2ecf20Sopenharmony_ci
3358c2ecf20Sopenharmony_ciconfig NET_PKTGEN
3368c2ecf20Sopenharmony_ci	tristate "Packet Generator (USE WITH CAUTION)"
3378c2ecf20Sopenharmony_ci	depends on INET && PROC_FS
3388c2ecf20Sopenharmony_ci	help
3398c2ecf20Sopenharmony_ci	  This module will inject preconfigured packets, at a configurable
3408c2ecf20Sopenharmony_ci	  rate, out of a given interface.  It is used for network interface
3418c2ecf20Sopenharmony_ci	  stress testing and performance analysis.  If you don't understand
3428c2ecf20Sopenharmony_ci	  what was just said, you don't need it: say N.
3438c2ecf20Sopenharmony_ci
3448c2ecf20Sopenharmony_ci	  Documentation on how to use the packet generator can be found
3458c2ecf20Sopenharmony_ci	  at <file:Documentation/networking/pktgen.rst>.
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
3488c2ecf20Sopenharmony_ci	  module will be called pktgen.
3498c2ecf20Sopenharmony_ci
3508c2ecf20Sopenharmony_ciconfig NET_DROP_MONITOR
3518c2ecf20Sopenharmony_ci	tristate "Network packet drop alerting service"
3528c2ecf20Sopenharmony_ci	depends on INET && TRACEPOINTS
3538c2ecf20Sopenharmony_ci	help
3548c2ecf20Sopenharmony_ci	  This feature provides an alerting service to userspace in the
3558c2ecf20Sopenharmony_ci	  event that packets are discarded in the network stack.  Alerts
3568c2ecf20Sopenharmony_ci	  are broadcast via netlink socket to any listening user space
3578c2ecf20Sopenharmony_ci	  process.  If you don't need network drop alerts, or if you are ok
3588c2ecf20Sopenharmony_ci	  just checking the various proc files and other utilities for
3598c2ecf20Sopenharmony_ci	  drop statistics, say N here.
3608c2ecf20Sopenharmony_ci
3618c2ecf20Sopenharmony_ciendmenu
3628c2ecf20Sopenharmony_ci
3638c2ecf20Sopenharmony_ciendmenu
3648c2ecf20Sopenharmony_ci
3658c2ecf20Sopenharmony_cisource "net/ax25/Kconfig"
3668c2ecf20Sopenharmony_cisource "net/can/Kconfig"
3678c2ecf20Sopenharmony_cisource "net/bluetooth/Kconfig"
3688c2ecf20Sopenharmony_cisource "net/rxrpc/Kconfig"
3698c2ecf20Sopenharmony_cisource "net/kcm/Kconfig"
3708c2ecf20Sopenharmony_cisource "net/strparser/Kconfig"
3718c2ecf20Sopenharmony_ci
3728c2ecf20Sopenharmony_ciconfig FIB_RULES
3738c2ecf20Sopenharmony_ci	bool
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_cimenuconfig WIRELESS
3768c2ecf20Sopenharmony_ci	bool "Wireless"
3778c2ecf20Sopenharmony_ci	depends on !S390
3788c2ecf20Sopenharmony_ci	default y
3798c2ecf20Sopenharmony_ci
3808c2ecf20Sopenharmony_ciif WIRELESS
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_cisource "net/wireless/Kconfig"
3838c2ecf20Sopenharmony_cisource "net/mac80211/Kconfig"
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ciendif # WIRELESS
3868c2ecf20Sopenharmony_ci
3878c2ecf20Sopenharmony_cisource "net/wimax/Kconfig"
3888c2ecf20Sopenharmony_ci
3898c2ecf20Sopenharmony_cisource "net/rfkill/Kconfig"
3908c2ecf20Sopenharmony_cisource "net/9p/Kconfig"
3918c2ecf20Sopenharmony_cisource "net/caif/Kconfig"
3928c2ecf20Sopenharmony_cisource "net/ceph/Kconfig"
3938c2ecf20Sopenharmony_cisource "net/nfc/Kconfig"
3948c2ecf20Sopenharmony_cisource "net/psample/Kconfig"
3958c2ecf20Sopenharmony_cisource "net/ife/Kconfig"
3968c2ecf20Sopenharmony_ci
3978c2ecf20Sopenharmony_ciconfig LWTUNNEL
3988c2ecf20Sopenharmony_ci	bool "Network light weight tunnels"
3998c2ecf20Sopenharmony_ci	help
4008c2ecf20Sopenharmony_ci	  This feature provides an infrastructure to support light weight
4018c2ecf20Sopenharmony_ci	  tunnels like mpls. There is no netdevice associated with a light
4028c2ecf20Sopenharmony_ci	  weight tunnel endpoint. Tunnel encapsulation parameters are stored
4038c2ecf20Sopenharmony_ci	  with light weight tunnel state associated with fib routes.
4048c2ecf20Sopenharmony_ci
4058c2ecf20Sopenharmony_ciconfig LWTUNNEL_BPF
4068c2ecf20Sopenharmony_ci	bool "Execute BPF program as route nexthop action"
4078c2ecf20Sopenharmony_ci	depends on LWTUNNEL && INET
4088c2ecf20Sopenharmony_ci	default y if LWTUNNEL=y
4098c2ecf20Sopenharmony_ci	help
4108c2ecf20Sopenharmony_ci	  Allows to run BPF programs as a nexthop action following a route
4118c2ecf20Sopenharmony_ci	  lookup for incoming and outgoing packets.
4128c2ecf20Sopenharmony_ci
4138c2ecf20Sopenharmony_ciconfig DST_CACHE
4148c2ecf20Sopenharmony_ci	bool
4158c2ecf20Sopenharmony_ci	default n
4168c2ecf20Sopenharmony_ci
4178c2ecf20Sopenharmony_ciconfig GRO_CELLS
4188c2ecf20Sopenharmony_ci	bool
4198c2ecf20Sopenharmony_ci	default n
4208c2ecf20Sopenharmony_ci
4218c2ecf20Sopenharmony_ciconfig SOCK_VALIDATE_XMIT
4228c2ecf20Sopenharmony_ci	bool
4238c2ecf20Sopenharmony_ci
4248c2ecf20Sopenharmony_ciconfig NET_SOCK_MSG
4258c2ecf20Sopenharmony_ci	bool
4268c2ecf20Sopenharmony_ci	default n
4278c2ecf20Sopenharmony_ci	help
4288c2ecf20Sopenharmony_ci	  The NET_SOCK_MSG provides a framework for plain sockets (e.g. TCP) or
4298c2ecf20Sopenharmony_ci	  ULPs (upper layer modules, e.g. TLS) to process L7 application data
4308c2ecf20Sopenharmony_ci	  with the help of BPF programs.
4318c2ecf20Sopenharmony_ci
4328c2ecf20Sopenharmony_ciconfig NET_DEVLINK
4338c2ecf20Sopenharmony_ci	bool
4348c2ecf20Sopenharmony_ci	default n
4358c2ecf20Sopenharmony_ci
4368c2ecf20Sopenharmony_ciconfig PAGE_POOL
4378c2ecf20Sopenharmony_ci	bool
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ciconfig FAILOVER
4408c2ecf20Sopenharmony_ci	tristate "Generic failover module"
4418c2ecf20Sopenharmony_ci	help
4428c2ecf20Sopenharmony_ci	  The failover module provides a generic interface for paravirtual
4438c2ecf20Sopenharmony_ci	  drivers to register a netdev and a set of ops with a failover
4448c2ecf20Sopenharmony_ci	  instance. The ops are used as event handlers that get called to
4458c2ecf20Sopenharmony_ci	  handle netdev register/unregister/link change/name change events
4468c2ecf20Sopenharmony_ci	  on slave pci ethernet devices with the same mac address as the
4478c2ecf20Sopenharmony_ci	  failover netdev. This enables paravirtual drivers to use a
4488c2ecf20Sopenharmony_ci	  VF as an accelerated low latency datapath. It also allows live
4498c2ecf20Sopenharmony_ci	  migration of VMs with direct attached VFs by failing over to the
4508c2ecf20Sopenharmony_ci	  paravirtual datapath when the VF is unplugged.
4518c2ecf20Sopenharmony_ci
4528c2ecf20Sopenharmony_ciconfig ETHTOOL_NETLINK
4538c2ecf20Sopenharmony_ci	bool "Netlink interface for ethtool"
4548c2ecf20Sopenharmony_ci	default y
4558c2ecf20Sopenharmony_ci	help
4568c2ecf20Sopenharmony_ci	  An alternative userspace interface for ethtool based on generic
4578c2ecf20Sopenharmony_ci	  netlink. It provides better extensibility and some new features,
4588c2ecf20Sopenharmony_ci	  e.g. notification messages.
4598c2ecf20Sopenharmony_ci
4608c2ecf20Sopenharmony_cisource "net/newip/Kconfig"
4618c2ecf20Sopenharmony_ci
4628c2ecf20Sopenharmony_ciconfig TCP_NATA_URC
4638c2ecf20Sopenharmony_ci        bool "Nata Ultra-Reliable Connection Feature"
4648c2ecf20Sopenharmony_ci        default n
4658c2ecf20Sopenharmony_ci        help
4668c2ecf20Sopenharmony_ci          This option enables the Nata Ultra-Reliable Connection feature.
4678c2ecf20Sopenharmony_ci          When enabled, the kernel will include support for CONFIG_TCP_NATA_URC.
4688c2ecf20Sopenharmony_ci
4698c2ecf20Sopenharmony_ciconfig TCP_NATA_STL
4708c2ecf20Sopenharmony_ci        bool "Nata Satellite Connection Feature"
4718c2ecf20Sopenharmony_ci        default n
4728c2ecf20Sopenharmony_ci        help
4738c2ecf20Sopenharmony_ci          This option enables the Nata Satellite Connection feature.
4748c2ecf20Sopenharmony_ci          When enabled, the kernel will include support for CONFIG_TCP_NATA_STL.
4758c2ecf20Sopenharmony_ci
4768c2ecf20Sopenharmony_ciconfig LOWPOWER_PROTOCOL
4778c2ecf20Sopenharmony_ci        bool "lowpower protocol"
4788c2ecf20Sopenharmony_ci        default n
4798c2ecf20Sopenharmony_ci        help
4808c2ecf20Sopenharmony_ci          This option enables the lowpower protocol feature.
4818c2ecf20Sopenharmony_ci          When enabled, the kernel will include support for CONFIG_LOWPOWER_PROTOCOL.
4828c2ecf20Sopenharmony_ci
4838c2ecf20Sopenharmony_ciconfig TCP_SOCK_DESTROY
4848c2ecf20Sopenharmony_ci        bool "TCP socket destroy feature"
4858c2ecf20Sopenharmony_ci        default n
4868c2ecf20Sopenharmony_ci        help
4878c2ecf20Sopenharmony_ci          This option enables the tcp sock destroy feature.
4888c2ecf20Sopenharmony_ci          When enabled, the kernel will include support for CONFIG_TCP_SOCK_DESTROY.
4898c2ecf20Sopenharmony_ci
4908c2ecf20Sopenharmony_ciendif   # if NET
4918c2ecf20Sopenharmony_ci
4928c2ecf20Sopenharmony_ci# Used by archs to tell that they support BPF JIT compiler plus which flavour.
4938c2ecf20Sopenharmony_ci# Only one of the two can be selected for a specific arch since eBPF JIT supersedes
4948c2ecf20Sopenharmony_ci# the cBPF JIT.
4958c2ecf20Sopenharmony_ci
4968c2ecf20Sopenharmony_ci# Classic BPF JIT (cBPF)
4978c2ecf20Sopenharmony_ciconfig HAVE_CBPF_JIT
4988c2ecf20Sopenharmony_ci	bool
4998c2ecf20Sopenharmony_ci
5008c2ecf20Sopenharmony_ci# Extended BPF JIT (eBPF)
5018c2ecf20Sopenharmony_ciconfig HAVE_EBPF_JIT
5028c2ecf20Sopenharmony_ci	bool
503