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