xref: /OK3568_Linux_fs/kernel/Documentation/admin-guide/sysctl/net.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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