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