1*4882a593Smuzhiyun================================ 2*4882a593SmuzhiyunDocumentation for /proc/sys/net/ 3*4882a593Smuzhiyun================================ 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunCopyright 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunCopyright (c) 1999 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun - Terrehon Bowden <terrehon@pacbell.net> 10*4882a593Smuzhiyun - Bodo Bauer <bb@ricochet.net> 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunCopyright (c) 2000 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun - Jorge Nerin <comandante@zaralinux.com> 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunCopyright (c) 2009 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun - Shen Feng <shen@cn.fujitsu.com> 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunFor general info and legal blurb, please look in index.rst. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun------------------------------------------------------------------------------ 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunThis file contains the documentation for the sysctl files in 25*4882a593Smuzhiyun/proc/sys/net 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunThe interface to the networking parts of the kernel is located in 28*4882a593Smuzhiyun/proc/sys/net. The following table shows all possible subdirectories. You may 29*4882a593Smuzhiyunsee only some of them, depending on your kernel's configuration. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunTable : Subdirectories in /proc/sys/net 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun ========= =================== = ========== ================== 35*4882a593Smuzhiyun Directory Content Directory Content 36*4882a593Smuzhiyun ========= =================== = ========== ================== 37*4882a593Smuzhiyun core General parameter appletalk Appletalk protocol 38*4882a593Smuzhiyun unix Unix domain sockets netrom NET/ROM 39*4882a593Smuzhiyun 802 E802 protocol ax25 AX25 40*4882a593Smuzhiyun ethernet Ethernet protocol rose X.25 PLP layer 41*4882a593Smuzhiyun ipv4 IP version 4 x25 X.25 protocol 42*4882a593Smuzhiyun bridge Bridging decnet DEC net 43*4882a593Smuzhiyun ipv6 IP version 6 tipc TIPC 44*4882a593Smuzhiyun ========= =================== = ========== ================== 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun1. /proc/sys/net/core - Network core options 47*4882a593Smuzhiyun============================================ 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunbpf_jit_enable 50*4882a593Smuzhiyun-------------- 51*4882a593Smuzhiyun 52*4882a593SmuzhiyunThis enables the BPF Just in Time (JIT) compiler. BPF is a flexible 53*4882a593Smuzhiyunand efficient infrastructure allowing to execute bytecode at various 54*4882a593Smuzhiyunhook points. It is used in a number of Linux kernel subsystems such 55*4882a593Smuzhiyunas networking (e.g. XDP, tc), tracing (e.g. kprobes, uprobes, tracepoints) 56*4882a593Smuzhiyunand security (e.g. seccomp). LLVM has a BPF back end that can compile 57*4882a593Smuzhiyunrestricted C into a sequence of BPF instructions. After program load 58*4882a593Smuzhiyunthrough bpf(2) and passing a verifier in the kernel, a JIT will then 59*4882a593Smuzhiyuntranslate these BPF proglets into native CPU instructions. There are 60*4882a593Smuzhiyuntwo flavors of JITs, the newer eBPF JIT currently supported on: 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun - x86_64 63*4882a593Smuzhiyun - x86_32 64*4882a593Smuzhiyun - arm64 65*4882a593Smuzhiyun - arm32 66*4882a593Smuzhiyun - ppc64 67*4882a593Smuzhiyun - sparc64 68*4882a593Smuzhiyun - mips64 69*4882a593Smuzhiyun - s390x 70*4882a593Smuzhiyun - riscv64 71*4882a593Smuzhiyun - riscv32 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunAnd the older cBPF JIT supported on the following archs: 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun - mips 76*4882a593Smuzhiyun - ppc 77*4882a593Smuzhiyun - sparc 78*4882a593Smuzhiyun 79*4882a593SmuzhiyuneBPF JITs are a superset of cBPF JITs, meaning the kernel will 80*4882a593Smuzhiyunmigrate cBPF instructions into eBPF instructions and then JIT 81*4882a593Smuzhiyuncompile them transparently. Older cBPF JITs can only translate 82*4882a593Smuzhiyuntcpdump filters, seccomp rules, etc, but not mentioned eBPF 83*4882a593Smuzhiyunprograms loaded through bpf(2). 84*4882a593Smuzhiyun 85*4882a593SmuzhiyunValues: 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun - 0 - disable the JIT (default value) 88*4882a593Smuzhiyun - 1 - enable the JIT 89*4882a593Smuzhiyun - 2 - enable the JIT and ask the compiler to emit traces on kernel log. 90*4882a593Smuzhiyun 91*4882a593Smuzhiyunbpf_jit_harden 92*4882a593Smuzhiyun-------------- 93*4882a593Smuzhiyun 94*4882a593SmuzhiyunThis enables hardening for the BPF JIT compiler. Supported are eBPF 95*4882a593SmuzhiyunJIT backends. Enabling hardening trades off performance, but can 96*4882a593Smuzhiyunmitigate JIT spraying. 97*4882a593Smuzhiyun 98*4882a593SmuzhiyunValues: 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun - 0 - disable JIT hardening (default value) 101*4882a593Smuzhiyun - 1 - enable JIT hardening for unprivileged users only 102*4882a593Smuzhiyun - 2 - enable JIT hardening for all users 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunbpf_jit_kallsyms 105*4882a593Smuzhiyun---------------- 106*4882a593Smuzhiyun 107*4882a593SmuzhiyunWhen BPF JIT compiler is enabled, then compiled images are unknown 108*4882a593Smuzhiyunaddresses to the kernel, meaning they neither show up in traces nor 109*4882a593Smuzhiyunin /proc/kallsyms. This enables export of these addresses, which can 110*4882a593Smuzhiyunbe used for debugging/tracing. If bpf_jit_harden is enabled, this 111*4882a593Smuzhiyunfeature is disabled. 112*4882a593Smuzhiyun 113*4882a593SmuzhiyunValues : 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun - 0 - disable JIT kallsyms export (default value) 116*4882a593Smuzhiyun - 1 - enable JIT kallsyms export for privileged users only 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunbpf_jit_limit 119*4882a593Smuzhiyun------------- 120*4882a593Smuzhiyun 121*4882a593SmuzhiyunThis enforces a global limit for memory allocations to the BPF JIT 122*4882a593Smuzhiyuncompiler in order to reject unprivileged JIT requests once it has 123*4882a593Smuzhiyunbeen surpassed. bpf_jit_limit contains the value of the global limit 124*4882a593Smuzhiyunin bytes. 125*4882a593Smuzhiyun 126*4882a593Smuzhiyundev_weight 127*4882a593Smuzhiyun---------- 128*4882a593Smuzhiyun 129*4882a593SmuzhiyunThe maximum number of packets that kernel can handle on a NAPI interrupt, 130*4882a593Smuzhiyunit's a Per-CPU variable. For drivers that support LRO or GRO_HW, a hardware 131*4882a593Smuzhiyunaggregated packet is counted as one packet in this context. 132*4882a593Smuzhiyun 133*4882a593SmuzhiyunDefault: 64 134*4882a593Smuzhiyun 135*4882a593Smuzhiyundev_weight_rx_bias 136*4882a593Smuzhiyun------------------ 137*4882a593Smuzhiyun 138*4882a593SmuzhiyunRPS (e.g. RFS, aRFS) processing is competing with the registered NAPI poll function 139*4882a593Smuzhiyunof the driver for the per softirq cycle netdev_budget. This parameter influences 140*4882a593Smuzhiyunthe proportion of the configured netdev_budget that is spent on RPS based packet 141*4882a593Smuzhiyunprocessing during RX softirq cycles. It is further meant for making current 142*4882a593Smuzhiyundev_weight adaptable for asymmetric CPU needs on RX/TX side of the network stack. 143*4882a593Smuzhiyun(see dev_weight_tx_bias) It is effective on a per CPU basis. Determination is based 144*4882a593Smuzhiyunon dev_weight and is calculated multiplicative (dev_weight * dev_weight_rx_bias). 145*4882a593Smuzhiyun 146*4882a593SmuzhiyunDefault: 1 147*4882a593Smuzhiyun 148*4882a593Smuzhiyundev_weight_tx_bias 149*4882a593Smuzhiyun------------------ 150*4882a593Smuzhiyun 151*4882a593SmuzhiyunScales the maximum number of packets that can be processed during a TX softirq cycle. 152*4882a593SmuzhiyunEffective on a per CPU basis. Allows scaling of current dev_weight for asymmetric 153*4882a593Smuzhiyunnet stack processing needs. Be careful to avoid making TX softirq processing a CPU hog. 154*4882a593Smuzhiyun 155*4882a593SmuzhiyunCalculation is based on dev_weight (dev_weight * dev_weight_tx_bias). 156*4882a593Smuzhiyun 157*4882a593SmuzhiyunDefault: 1 158*4882a593Smuzhiyun 159*4882a593Smuzhiyundefault_qdisc 160*4882a593Smuzhiyun------------- 161*4882a593Smuzhiyun 162*4882a593SmuzhiyunThe default queuing discipline to use for network devices. This allows 163*4882a593Smuzhiyunoverriding the default of pfifo_fast with an alternative. Since the default 164*4882a593Smuzhiyunqueuing discipline is created without additional parameters so is best suited 165*4882a593Smuzhiyunto queuing disciplines that work well without configuration like stochastic 166*4882a593Smuzhiyunfair queue (sfq), CoDel (codel) or fair queue CoDel (fq_codel). Don't use 167*4882a593Smuzhiyunqueuing disciplines like Hierarchical Token Bucket or Deficit Round Robin 168*4882a593Smuzhiyunwhich require setting up classes and bandwidths. Note that physical multiqueue 169*4882a593Smuzhiyuninterfaces still use mq as root qdisc, which in turn uses this default for its 170*4882a593Smuzhiyunleaves. Virtual devices (like e.g. lo or veth) ignore this setting and instead 171*4882a593Smuzhiyundefault to noqueue. 172*4882a593Smuzhiyun 173*4882a593SmuzhiyunDefault: pfifo_fast 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunbusy_read 176*4882a593Smuzhiyun--------- 177*4882a593Smuzhiyun 178*4882a593SmuzhiyunLow latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) 179*4882a593SmuzhiyunApproximate time in us to busy loop waiting for packets on the device queue. 180*4882a593SmuzhiyunThis sets the default value of the SO_BUSY_POLL socket option. 181*4882a593SmuzhiyunCan be set or overridden per socket by setting socket option SO_BUSY_POLL, 182*4882a593Smuzhiyunwhich is the preferred method of enabling. If you need to enable the feature 183*4882a593Smuzhiyunglobally via sysctl, a value of 50 is recommended. 184*4882a593Smuzhiyun 185*4882a593SmuzhiyunWill increase power usage. 186*4882a593Smuzhiyun 187*4882a593SmuzhiyunDefault: 0 (off) 188*4882a593Smuzhiyun 189*4882a593Smuzhiyunbusy_poll 190*4882a593Smuzhiyun---------------- 191*4882a593SmuzhiyunLow latency busy poll timeout for poll and select. (needs CONFIG_NET_RX_BUSY_POLL) 192*4882a593SmuzhiyunApproximate time in us to busy loop waiting for events. 193*4882a593SmuzhiyunRecommended value depends on the number of sockets you poll on. 194*4882a593SmuzhiyunFor several sockets 50, for several hundreds 100. 195*4882a593SmuzhiyunFor more than that you probably want to use epoll. 196*4882a593SmuzhiyunNote that only sockets with SO_BUSY_POLL set will be busy polled, 197*4882a593Smuzhiyunso you want to either selectively set SO_BUSY_POLL on those sockets or set 198*4882a593Smuzhiyunsysctl.net.busy_read globally. 199*4882a593Smuzhiyun 200*4882a593SmuzhiyunWill increase power usage. 201*4882a593Smuzhiyun 202*4882a593SmuzhiyunDefault: 0 (off) 203*4882a593Smuzhiyun 204*4882a593Smuzhiyunrmem_default 205*4882a593Smuzhiyun------------ 206*4882a593Smuzhiyun 207*4882a593SmuzhiyunThe default setting of the socket receive buffer in bytes. 208*4882a593Smuzhiyun 209*4882a593Smuzhiyunrmem_max 210*4882a593Smuzhiyun-------- 211*4882a593Smuzhiyun 212*4882a593SmuzhiyunThe maximum receive socket buffer size in bytes. 213*4882a593Smuzhiyun 214*4882a593Smuzhiyuntstamp_allow_data 215*4882a593Smuzhiyun----------------- 216*4882a593SmuzhiyunAllow processes to receive tx timestamps looped together with the original 217*4882a593Smuzhiyunpacket contents. If disabled, transmit timestamp requests from unprivileged 218*4882a593Smuzhiyunprocesses are dropped unless socket option SOF_TIMESTAMPING_OPT_TSONLY is set. 219*4882a593Smuzhiyun 220*4882a593SmuzhiyunDefault: 1 (on) 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun 223*4882a593Smuzhiyunwmem_default 224*4882a593Smuzhiyun------------ 225*4882a593Smuzhiyun 226*4882a593SmuzhiyunThe default setting (in bytes) of the socket send buffer. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyunwmem_max 229*4882a593Smuzhiyun-------- 230*4882a593Smuzhiyun 231*4882a593SmuzhiyunThe maximum send socket buffer size in bytes. 232*4882a593Smuzhiyun 233*4882a593Smuzhiyunmessage_burst and message_cost 234*4882a593Smuzhiyun------------------------------ 235*4882a593Smuzhiyun 236*4882a593SmuzhiyunThese parameters are used to limit the warning messages written to the kernel 237*4882a593Smuzhiyunlog from the networking code. They enforce a rate limit to make a 238*4882a593Smuzhiyundenial-of-service attack impossible. A higher message_cost factor, results in 239*4882a593Smuzhiyunfewer messages that will be written. Message_burst controls when messages will 240*4882a593Smuzhiyunbe dropped. The default settings limit warning messages to one every five 241*4882a593Smuzhiyunseconds. 242*4882a593Smuzhiyun 243*4882a593Smuzhiyunwarnings 244*4882a593Smuzhiyun-------- 245*4882a593Smuzhiyun 246*4882a593SmuzhiyunThis sysctl is now unused. 247*4882a593Smuzhiyun 248*4882a593SmuzhiyunThis was used to control console messages from the networking stack that 249*4882a593Smuzhiyunoccur because of problems on the network like duplicate address or bad 250*4882a593Smuzhiyunchecksums. 251*4882a593Smuzhiyun 252*4882a593SmuzhiyunThese messages are now emitted at KERN_DEBUG and can generally be enabled 253*4882a593Smuzhiyunand controlled by the dynamic_debug facility. 254*4882a593Smuzhiyun 255*4882a593Smuzhiyunnetdev_budget 256*4882a593Smuzhiyun------------- 257*4882a593Smuzhiyun 258*4882a593SmuzhiyunMaximum number of packets taken from all interfaces in one polling cycle (NAPI 259*4882a593Smuzhiyunpoll). In one polling cycle interfaces which are registered to polling are 260*4882a593Smuzhiyunprobed in a round-robin manner. Also, a polling cycle may not exceed 261*4882a593Smuzhiyunnetdev_budget_usecs microseconds, even if netdev_budget has not been 262*4882a593Smuzhiyunexhausted. 263*4882a593Smuzhiyun 264*4882a593Smuzhiyunnetdev_budget_usecs 265*4882a593Smuzhiyun--------------------- 266*4882a593Smuzhiyun 267*4882a593SmuzhiyunMaximum number of microseconds in one NAPI polling cycle. Polling 268*4882a593Smuzhiyunwill exit when either netdev_budget_usecs have elapsed during the 269*4882a593Smuzhiyunpoll cycle or the number of packets processed reaches netdev_budget. 270*4882a593Smuzhiyun 271*4882a593Smuzhiyunnetdev_max_backlog 272*4882a593Smuzhiyun------------------ 273*4882a593Smuzhiyun 274*4882a593SmuzhiyunMaximum number of packets, queued on the INPUT side, when the interface 275*4882a593Smuzhiyunreceives packets faster than kernel can process them. 276*4882a593Smuzhiyun 277*4882a593Smuzhiyunnetdev_rss_key 278*4882a593Smuzhiyun-------------- 279*4882a593Smuzhiyun 280*4882a593SmuzhiyunRSS (Receive Side Scaling) enabled drivers use a 40 bytes host key that is 281*4882a593Smuzhiyunrandomly generated. 282*4882a593SmuzhiyunSome user space might need to gather its content even if drivers do not 283*4882a593Smuzhiyunprovide ethtool -x support yet. 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun:: 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun myhost:~# cat /proc/sys/net/core/netdev_rss_key 288*4882a593Smuzhiyun 84:50:f4:00:a8:15:d1:a7:e9:7f:1d:60:35:c7:47:25:42:97:74:ca:56:bb:b6:a1:d8: ... (52 bytes total) 289*4882a593Smuzhiyun 290*4882a593SmuzhiyunFile contains nul bytes if no driver ever called netdev_rss_key_fill() function. 291*4882a593Smuzhiyun 292*4882a593SmuzhiyunNote: 293*4882a593Smuzhiyun /proc/sys/net/core/netdev_rss_key contains 52 bytes of key, 294*4882a593Smuzhiyun but most drivers only use 40 bytes of it. 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun:: 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun myhost:~# ethtool -x eth0 299*4882a593Smuzhiyun RX flow hash indirection table for eth0 with 8 RX ring(s): 300*4882a593Smuzhiyun 0: 0 1 2 3 4 5 6 7 301*4882a593Smuzhiyun RSS hash key: 302*4882a593Smuzhiyun 84:50:f4:00:a8:15:d1:a7:e9:7f:1d:60:35:c7:47:25:42:97:74:ca:56:bb:b6:a1:d8:43:e3:c9:0c:fd:17:55:c2:3a:4d:69:ed:f1:42:89 303*4882a593Smuzhiyun 304*4882a593Smuzhiyunnetdev_tstamp_prequeue 305*4882a593Smuzhiyun---------------------- 306*4882a593Smuzhiyun 307*4882a593SmuzhiyunIf set to 0, RX packet timestamps can be sampled after RPS processing, when 308*4882a593Smuzhiyunthe target CPU processes packets. It might give some delay on timestamps, but 309*4882a593Smuzhiyunpermit to distribute the load on several cpus. 310*4882a593Smuzhiyun 311*4882a593SmuzhiyunIf set to 1 (default), timestamps are sampled as soon as possible, before 312*4882a593Smuzhiyunqueueing. 313*4882a593Smuzhiyun 314*4882a593Smuzhiyunoptmem_max 315*4882a593Smuzhiyun---------- 316*4882a593Smuzhiyun 317*4882a593SmuzhiyunMaximum ancillary buffer size allowed per socket. Ancillary data is a sequence 318*4882a593Smuzhiyunof struct cmsghdr structures with appended data. 319*4882a593Smuzhiyun 320*4882a593Smuzhiyunfb_tunnels_only_for_init_net 321*4882a593Smuzhiyun---------------------------- 322*4882a593Smuzhiyun 323*4882a593SmuzhiyunControls if fallback tunnels (like tunl0, gre0, gretap0, erspan0, 324*4882a593Smuzhiyunsit0, ip6tnl0, ip6gre0) are automatically created. There are 3 possibilities 325*4882a593Smuzhiyun(a) value = 0; respective fallback tunnels are created when module is 326*4882a593Smuzhiyunloaded in every net namespaces (backward compatible behavior). 327*4882a593Smuzhiyun(b) value = 1; [kcmd value: initns] respective fallback tunnels are 328*4882a593Smuzhiyuncreated only in init net namespace and every other net namespace will 329*4882a593Smuzhiyunnot have them. 330*4882a593Smuzhiyun(c) value = 2; [kcmd value: none] fallback tunnels are not created 331*4882a593Smuzhiyunwhen a module is loaded in any of the net namespace. Setting value to 332*4882a593Smuzhiyun"2" is pointless after boot if these modules are built-in, so there is 333*4882a593Smuzhiyuna kernel command-line option that can change this default. Please refer to 334*4882a593SmuzhiyunDocumentation/admin-guide/kernel-parameters.txt for additional details. 335*4882a593Smuzhiyun 336*4882a593SmuzhiyunNot creating fallback tunnels gives control to userspace to create 337*4882a593Smuzhiyunwhatever is needed only and avoid creating devices which are redundant. 338*4882a593Smuzhiyun 339*4882a593SmuzhiyunDefault : 0 (for compatibility reasons) 340*4882a593Smuzhiyun 341*4882a593Smuzhiyundevconf_inherit_init_net 342*4882a593Smuzhiyun------------------------ 343*4882a593Smuzhiyun 344*4882a593SmuzhiyunControls if a new network namespace should inherit all current 345*4882a593Smuzhiyunsettings under /proc/sys/net/{ipv4,ipv6}/conf/{all,default}/. By 346*4882a593Smuzhiyundefault, we keep the current behavior: for IPv4 we inherit all current 347*4882a593Smuzhiyunsettings from init_net and for IPv6 we reset all settings to default. 348*4882a593Smuzhiyun 349*4882a593SmuzhiyunIf set to 1, both IPv4 and IPv6 settings are forced to inherit from 350*4882a593Smuzhiyuncurrent ones in init_net. If set to 2, both IPv4 and IPv6 settings are 351*4882a593Smuzhiyunforced to reset to their default values. If set to 3, both IPv4 and IPv6 352*4882a593Smuzhiyunsettings are forced to inherit from current ones in the netns where this 353*4882a593Smuzhiyunnew netns has been created. 354*4882a593Smuzhiyun 355*4882a593SmuzhiyunDefault : 0 (for compatibility reasons) 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun2. /proc/sys/net/unix - Parameters for Unix domain sockets 358*4882a593Smuzhiyun---------------------------------------------------------- 359*4882a593Smuzhiyun 360*4882a593SmuzhiyunThere is only one file in this directory. 361*4882a593Smuzhiyununix_dgram_qlen limits the max number of datagrams queued in Unix domain 362*4882a593Smuzhiyunsocket's buffer. It will not take effect unless PF_UNIX flag is specified. 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun 365*4882a593Smuzhiyun3. /proc/sys/net/ipv4 - IPV4 settings 366*4882a593Smuzhiyun------------------------------------- 367*4882a593SmuzhiyunPlease see: Documentation/networking/ip-sysctl.rst and 368*4882a593SmuzhiyunDocumentation/admin-guide/sysctl/net.rst for descriptions of these entries. 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun4. Appletalk 372*4882a593Smuzhiyun------------ 373*4882a593Smuzhiyun 374*4882a593SmuzhiyunThe /proc/sys/net/appletalk directory holds the Appletalk configuration data 375*4882a593Smuzhiyunwhen Appletalk is loaded. The configurable parameters are: 376*4882a593Smuzhiyun 377*4882a593Smuzhiyunaarp-expiry-time 378*4882a593Smuzhiyun---------------- 379*4882a593Smuzhiyun 380*4882a593SmuzhiyunThe amount of time we keep an ARP entry before expiring it. Used to age out 381*4882a593Smuzhiyunold hosts. 382*4882a593Smuzhiyun 383*4882a593Smuzhiyunaarp-resolve-time 384*4882a593Smuzhiyun----------------- 385*4882a593Smuzhiyun 386*4882a593SmuzhiyunThe amount of time we will spend trying to resolve an Appletalk address. 387*4882a593Smuzhiyun 388*4882a593Smuzhiyunaarp-retransmit-limit 389*4882a593Smuzhiyun--------------------- 390*4882a593Smuzhiyun 391*4882a593SmuzhiyunThe number of times we will retransmit a query before giving up. 392*4882a593Smuzhiyun 393*4882a593Smuzhiyunaarp-tick-time 394*4882a593Smuzhiyun-------------- 395*4882a593Smuzhiyun 396*4882a593SmuzhiyunControls the rate at which expires are checked. 397*4882a593Smuzhiyun 398*4882a593SmuzhiyunThe directory /proc/net/appletalk holds the list of active Appletalk sockets 399*4882a593Smuzhiyunon a machine. 400*4882a593Smuzhiyun 401*4882a593SmuzhiyunThe fields indicate the DDP type, the local address (in network:node format) 402*4882a593Smuzhiyunthe remote address, the size of the transmit pending queue, the size of the 403*4882a593Smuzhiyunreceived queue (bytes waiting for applications to read) the state and the uid 404*4882a593Smuzhiyunowning the socket. 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun/proc/net/atalk_iface lists all the interfaces configured for appletalk.It 407*4882a593Smuzhiyunshows the name of the interface, its Appletalk address, the network range on 408*4882a593Smuzhiyunthat address (or network number for phase 1 networks), and the status of the 409*4882a593Smuzhiyuninterface. 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun/proc/net/atalk_route lists each known network route. It lists the target 412*4882a593Smuzhiyun(network) that the route leads to, the router (may be directly connected), the 413*4882a593Smuzhiyunroute flags, and the device the route is using. 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun5. TIPC 416*4882a593Smuzhiyun------- 417*4882a593Smuzhiyun 418*4882a593Smuzhiyuntipc_rmem 419*4882a593Smuzhiyun--------- 420*4882a593Smuzhiyun 421*4882a593SmuzhiyunThe TIPC protocol now has a tunable for the receive memory, similar to the 422*4882a593Smuzhiyuntcp_rmem - i.e. a vector of 3 INTEGERs: (min, default, max) 423*4882a593Smuzhiyun 424*4882a593Smuzhiyun:: 425*4882a593Smuzhiyun 426*4882a593Smuzhiyun # cat /proc/sys/net/tipc/tipc_rmem 427*4882a593Smuzhiyun 4252725 34021800 68043600 428*4882a593Smuzhiyun # 429*4882a593Smuzhiyun 430*4882a593SmuzhiyunThe max value is set to CONN_OVERLOAD_LIMIT, and the default and min values 431*4882a593Smuzhiyunare scaled (shifted) versions of that same value. Note that the min value 432*4882a593Smuzhiyunis not at this point in time used in any meaningful way, but the triplet is 433*4882a593Smuzhiyunpreserved in order to be consistent with things like tcp_rmem. 434*4882a593Smuzhiyun 435*4882a593Smuzhiyunnamed_timeout 436*4882a593Smuzhiyun------------- 437*4882a593Smuzhiyun 438*4882a593SmuzhiyunTIPC name table updates are distributed asynchronously in a cluster, without 439*4882a593Smuzhiyunany form of transaction handling. This means that different race scenarios are 440*4882a593Smuzhiyunpossible. One such is that a name withdrawal sent out by one node and received 441*4882a593Smuzhiyunby another node may arrive after a second, overlapping name publication already 442*4882a593Smuzhiyunhas been accepted from a third node, although the conflicting updates 443*4882a593Smuzhiyunoriginally may have been issued in the correct sequential order. 444*4882a593SmuzhiyunIf named_timeout is nonzero, failed topology updates will be placed on a defer 445*4882a593Smuzhiyunqueue until another event arrives that clears the error, or until the timeout 446*4882a593Smuzhiyunexpires. Value is in milliseconds. 447