€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ*/translations/zh_CN/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/zh_TW/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/it_IT/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ja_JP/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ko_KR/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/pt_BR/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/sp_SP/admin-guide/sysctl/net”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ Documentation for /proc/sys/net/”h]”hŒ Documentation for /proc/sys/net/”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒD/var/lib/git/docbuild/linux/Documentation/admin-guide/sysctl/net.rst”h´KubhŒ paragraph”“”)�”}”(hŒ Copyright”h]”hŒ Copyright”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒCopyright (c) 1999”h]”hŒCopyright (c) 1999”…”�”}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ block_quote”“”)�”}”(hŒH- Terrehon Bowden - Bodo Bauer ”h]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ&Terrehon Bowden ”h]”hÌ)�”}”(hhøh]”(hŒTerrehon Bowden <”…”�”}”(hhúh²hh³Nh´NubhŒ reference”“”)�”}”(hŒterrehon@pacbell.net”h]”hŒterrehon@pacbell.net”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:terrehon@pacbell.net”uh1jhhúubhŒ>”…”�”}”(hhúh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhöubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhhñubhõ)�”}”(hŒBodo Bauer ”h]”hÌ)�”}”(hŒBodo Bauer ”h]”(hŒ Bodo Bauer <”…”�”}”(hj'h²hh³Nh´Nubj)�”}”(hŒbb@ricochet.net”h]”hŒbb@ricochet.net”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:bb@ricochet.net”uh1jhj'ubhŒ>”…”�”}”(hj'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhhñubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1hïh³hÊh´K hhëubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´K hh·h²hubhÌ)�”}”(hŒCopyright (c) 2000”h]”hŒCopyright (c) 2000”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhê)�”}”(hŒ)- Jorge Nerin ”h]”hð)�”}”(hhh]”hõ)�”}”(hŒ'Jorge Nerin ”h]”hÌ)�”}”(hŒ&Jorge Nerin ”h]”(hŒ Jorge Nerin <”…”�”}”(hjvh²hh³Nh´Nubj)�”}”(hŒcomandante@zaralinux.com”h]”hŒcomandante@zaralinux.com”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:comandante@zaralinux.com”uh1jhjvubhŒ>”…”�”}”(hjvh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjrubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjoubah}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´Khjkubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´Khh·h²hubhÌ)�”}”(hŒCopyright (c) 2009”h]”hŒCopyright (c) 2009”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhê)�”}”(hŒ"- Shen Feng ”h]”hð)�”}”(hhh]”hõ)�”}”(hŒ Shen Feng ”h]”hÌ)�”}”(hŒShen Feng ”h]”(hŒ Shen Feng <”…”�”}”(hjÃh²hh³Nh´Nubj)�”}”(hŒshen@cn.fujitsu.com”h]”hŒshen@cn.fujitsu.com”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:shen@cn.fujitsu.com”uh1jhjÃubhŒ>”…”�”}”(hjÃh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj¼ubah}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´Khj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´Khh·h²hubhÌ)�”}”(hŒ;For general info and legal blurb, please look in index.rst.”h]”hŒ;For general info and legal blurb, please look in index.rst.”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ transition”“”)�”}”(hŒN------------------------------------------------------------------------------”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´Khh·h²hubhÌ)�”}”(hŒJThis file contains the documentation for the sysctl files in /proc/sys/net”h]”hŒJThis file contains the documentation for the sysctl files in /proc/sys/net”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒÛThe interface to the networking parts of the kernel is located in /proc/sys/net. The following table shows all possible subdirectories. You may see only some of them, depending on your kernel's configuration.”h]”hŒÝThe interface to the networking parts of the kernel is located in /proc/sys/net. The following table shows all possible subdirectories. You may see only some of them, depending on your kernel’s configuration.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒ'Table : Subdirectories in /proc/sys/net”h]”hŒ'Table : Subdirectories in /proc/sys/net”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhê)�”}”(hX[========= =================== = ========== =================== Directory Content Directory Content ========= =================== = ========== =================== 802 E802 protocol mptcp Multipath TCP appletalk Appletalk protocol netfilter Network Filter bridge Bridging tipc TIPC core General parameter unix Unix domain sockets ethernet Ethernet protocol vsock VSOCK sockets ipv4 IP version 4 x25 X.25 protocol ipv6 IP version 6 ========= =================== = ========== =================== ”h]”hŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jIhjFubjJ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jIhjFubjJ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jIhjFubjJ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jIhjFubjJ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jIhjFubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÌ)�”}”(hŒ Directory”h]”hŒ Directory”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj„ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒContent”h]”hŒContent”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj„ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj„ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ Directory”h]”hŒ Directory”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj„ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒContent”h]”hŒContent”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjFubhŒtbody”“”)�”}”(hhh]”(jƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒ802”h]”hŒ802”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K%hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÿubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ E802 protocol”h]”hŒ E802 protocol”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K%hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÿubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÿubjˆ)�”}”(hhh]”hÌ)�”}”(hŒmptcp”h]”hŒmptcp”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K%hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÿubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ Multipath TCP”h]”hŒ Multipath TCP”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K%hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubjƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒ appletalk”h]”hŒ appletalk”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjmubjˆ)�”}”(hhh]”hÌ)�”}”(hŒAppletalk protocol”h]”hŒAppletalk protocol”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjmubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjmubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ netfilter”h]”hŒ netfilter”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjmubjˆ)�”}”(hhh]”hÌ)�”}”(hŒNetwork Filter”h]”hŒNetwork Filter”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjmubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubjƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒbridge”h]”hŒbridge”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÛubjˆ)�”}”(hhh]”hÌ)�”}”(hŒBridging”h]”hŒBridging”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÛubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÛubjˆ)�”}”(hhh]”hÌ)�”}”(hŒtipc”h]”hŒtipc”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÛubjˆ)�”}”(hhh]”hÌ)�”}”(hŒTIPC”h]”hŒTIPC”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubjƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒcore”h]”hŒcore”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjIubjˆ)�”}”(hhh]”hÌ)�”}”(hŒGeneral parameter”h]”hŒGeneral parameter”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjIubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjIubjˆ)�”}”(hhh]”hÌ)�”}”(hŒunix”h]”hŒunix”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjIubjˆ)�”}”(hhh]”hÌ)�”}”(hŒUnix domain sockets”h]”hŒUnix domain sockets”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubjƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒethernet”h]”hŒethernet”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj·ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒEthernet protocol”h]”hŒEthernet protocol”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj·ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj·ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒvsock”h]”hŒvsock”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj·ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ VSOCK sockets”h]”hŒ VSOCK sockets”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubjƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒipv4”h]”hŒipv4”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj%ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ IP version 4”h]”hŒ IP version 4”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj%ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj%ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒx25”h]”hŒx25”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj%ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ X.25 protocol”h]”hŒ X.25 protocol”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubjƒ)�”}”(hhh]”(jˆ)�”}”(hhh]”hÌ)�”}”(hŒipv6”h]”hŒipv6”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj“ubjˆ)�”}”(hhh]”hÌ)�”}”(hŒ IP version 6”h]”hŒ IP version 6”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj“ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj“ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj“ubjˆ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j‡hj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1júhjFubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jDhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j?hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´K"hh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒ,1. /proc/sys/net/core - Network core options”h]”hŒ,1. /proc/sys/net/core - Network core options”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjþh²hh³hÊh´K/ubh¶)�”}”(hhh]”(h»)�”}”(hŒbpf_jit_enable”h]”hŒbpf_jit_enable”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´K2ubhÌ)�”}”(hXlThis enables the BPF Just in Time (JIT) compiler. BPF is a flexible and efficient infrastructure allowing to execute bytecode at various hook points. It is used in a number of Linux kernel subsystems such as networking (e.g. XDP, tc), tracing (e.g. kprobes, uprobes, tracepoints) and security (e.g. seccomp). LLVM has a BPF back end that can compile restricted C into a sequence of BPF instructions. After program load through bpf(2) and passing a verifier in the kernel, a JIT will then translate these BPF proglets into native CPU instructions. There are two flavors of JITs, the newer eBPF JIT currently supported on:”h]”hXlThis enables the BPF Just in Time (JIT) compiler. BPF is a flexible and efficient infrastructure allowing to execute bytecode at various hook points. It is used in a number of Linux kernel subsystems such as networking (e.g. XDP, tc), tracing (e.g. kprobes, uprobes, tracepoints) and security (e.g. seccomp). LLVM has a BPF back end that can compile restricted C into a sequence of BPF instructions. After program load through bpf(2) and passing a verifier in the kernel, a JIT will then translate these BPF proglets into native CPU instructions. There are two flavors of JITs, the newer eBPF JIT currently supported on:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hjh²hubhê)�”}”(hŒu- x86_64 - x86_32 - arm64 - arm32 - ppc64 - ppc32 - sparc64 - mips64 - s390x - riscv64 - riscv32 - loongarch64 - arc ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒx86_64”h]”hÌ)�”}”(hj7h]”hŒx86_64”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K>hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒx86_32”h]”hÌ)�”}”(hjNh]”hŒx86_32”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K?hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒarm64”h]”hÌ)�”}”(hjeh]”hŒarm64”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K@hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒarm32”h]”hÌ)�”}”(hj|h]”hŒarm32”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KAhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒppc64”h]”hÌ)�”}”(hj“h]”hŒppc64”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒppc32”h]”hÌ)�”}”(hjªh]”hŒppc32”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KChj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒsparc64”h]”hÌ)�”}”(hjÁh]”hŒsparc64”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KDhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒmips64”h]”hÌ)�”}”(hjØh]”hŒmips64”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KEhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒs390x”h]”hÌ)�”}”(hjïh]”hŒs390x”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KFhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒriscv64”h]”hÌ)�”}”(hjh]”hŒriscv64”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KGhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒriscv32”h]”hÌ)�”}”(hjh]”hŒriscv32”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KHhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒ loongarch64”h]”hÌ)�”}”(hj4h]”hŒ loongarch64”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KIhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubhõ)�”}”(hŒarc ”h]”hÌ)�”}”(hŒarc”h]”hŒarc”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj2ubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´K>hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´K>hjh²hubhÌ)�”}”(hŒ8And the older cBPF JIT supported on the following archs:”h]”hŒ8And the older cBPF JIT supported on the following archs:”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KLhjh²hubhê)�”}”(hŒ- mips - sparc ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒmips”h]”hÌ)�”}”(hj„h]”hŒmips”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjubhõ)�”}”(hŒsparc ”h]”hÌ)�”}”(hŒsparc”h]”hŒsparc”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KOhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´KNhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´KNhjh²hubhÌ)�”}”(hXeBPF JITs are a superset of cBPF JITs, meaning the kernel will migrate cBPF instructions into eBPF instructions and then JIT compile them transparently. Older cBPF JITs can only translate tcpdump filters, seccomp rules, etc, but not mentioned eBPF programs loaded through bpf(2).”h]”hXeBPF JITs are a superset of cBPF JITs, meaning the kernel will migrate cBPF instructions into eBPF instructions and then JIT compile them transparently. Older cBPF JITs can only translate tcpdump filters, seccomp rules, etc, but not mentioned eBPF programs loaded through bpf(2).”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KQhjh²hubhÌ)�”}”(hŒValues:”h]”hŒValues:”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KWhjh²hubhê)�”}”(hŒƒ- 0 - disable the JIT (default value) - 1 - enable the JIT - 2 - enable the JIT and ask the compiler to emit traces on kernel log. ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒ#0 - disable the JIT (default value)”h]”hÌ)�”}”(hjâh]”hŒ#0 - disable the JIT (default value)”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KYhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjÝubhõ)�”}”(hŒ1 - enable the JIT”h]”hÌ)�”}”(hjùh]”hŒ1 - enable the JIT”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KZhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjÝubhõ)�”}”(hŒF2 - enable the JIT and ask the compiler to emit traces on kernel log. ”h]”hÌ)�”}”(hŒE2 - enable the JIT and ask the compiler to emit traces on kernel log.”h]”hŒE2 - enable the JIT and ask the compiler to emit traces on kernel log.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K[hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjÝubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´KYhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´KYhjh²hubeh}”(h]”Œbpf-jit-enable”ah ]”h"]”Œbpf_jit_enable”ah$]”h&]”uh1hµhjþh²hh³hÊh´K2ubh¶)�”}”(hhh]”(h»)�”}”(hŒbpf_jit_harden”h]”hŒbpf_jit_harden”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj:h²hh³hÊh´K^ubhÌ)�”}”(hŒ›This enables hardening for the BPF JIT compiler. Supported are eBPF JIT backends. Enabling hardening trades off performance, but can mitigate JIT spraying.”h]”hŒ›This enables hardening for the BPF JIT compiler. Supported are eBPF JIT backends. Enabling hardening trades off performance, but can mitigate JIT spraying.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K`hj:h²hubhÌ)�”}”(hŒValues:”h]”hŒValues:”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kdhj:h²hubhê)�”}”(hŒŒ- 0 - disable JIT hardening (default value) - 1 - enable JIT hardening for unprivileged users only - 2 - enable JIT hardening for all users ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒ)0 - disable JIT hardening (default value)”h]”hÌ)�”}”(hjph]”hŒ)0 - disable JIT hardening (default value)”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kfhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjkubhõ)�”}”(hŒ41 - enable JIT hardening for unprivileged users only”h]”hÌ)�”}”(hj‡h]”hŒ41 - enable JIT hardening for unprivileged users only”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kghj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjkubhõ)�”}”(hŒ'2 - enable JIT hardening for all users ”h]”hÌ)�”}”(hŒ&2 - enable JIT hardening for all users”h]”hŒ&2 - enable JIT hardening for all users”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjkubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´Kfhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´Kfhj:h²hubhÌ)�”}”(hŒtwhere "privileged user" in this context means a process having CAP_BPF or CAP_SYS_ADMIN in the root user name space.”h]”hŒxwhere “privileged userâ€� in this context means a process having CAP_BPF or CAP_SYS_ADMIN in the root user name space.”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kjhj:h²hubeh}”(h]”Œbpf-jit-harden”ah ]”h"]”Œbpf_jit_harden”ah$]”h&]”uh1hµhjþh²hh³hÊh´K^ubh¶)�”}”(hhh]”(h»)�”}”(hŒbpf_jit_kallsyms”h]”hŒbpf_jit_kallsyms”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÖh²hh³hÊh´KnubhÌ)�”}”(hX"When BPF JIT compiler is enabled, then compiled images are unknown addresses to the kernel, meaning they neither show up in traces nor in /proc/kallsyms. This enables export of these addresses, which can be used for debugging/tracing. If bpf_jit_harden is enabled, this feature is disabled.”h]”hX"When BPF JIT compiler is enabled, then compiled images are unknown addresses to the kernel, meaning they neither show up in traces nor in /proc/kallsyms. This enables export of these addresses, which can be used for debugging/tracing. If bpf_jit_harden is enabled, this feature is disabled.”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KphjÖh²hubhÌ)�”}”(hŒValues :”h]”hŒValues :”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KvhjÖh²hubhê)�”}”(hŒm- 0 - disable JIT kallsyms export (default value) - 1 - enable JIT kallsyms export for privileged users only ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒ/0 - disable JIT kallsyms export (default value)”h]”hÌ)�”}”(hj h]”hŒ/0 - disable JIT kallsyms export (default value)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kxhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj ubhõ)�”}”(hŒ91 - enable JIT kallsyms export for privileged users only ”h]”hÌ)�”}”(hŒ81 - enable JIT kallsyms export for privileged users only”h]”hŒ81 - enable JIT kallsyms export for privileged users only”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kyhj! ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj ubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´Kxhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´KxhjÖh²hubeh}”(h]”Œbpf-jit-kallsyms”ah ]”h"]”Œbpf_jit_kallsyms”ah$]”h&]”uh1hµhjþh²hh³hÊh´Knubh¶)�”}”(hhh]”(h»)�”}”(hŒ bpf_jit_limit”h]”hŒ bpf_jit_limit”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjM h²hh³hÊh´K|ubhÌ)�”}”(hŒÓThis enforces a global limit for memory allocations to the BPF JIT compiler in order to reject unprivileged JIT requests once it has been surpassed. bpf_jit_limit contains the value of the global limit in bytes.”h]”hŒÓThis enforces a global limit for memory allocations to the BPF JIT compiler in order to reject unprivileged JIT requests once it has been surpassed. bpf_jit_limit contains the value of the global limit in bytes.”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hjM h²hubeh}”(h]”Œ bpf-jit-limit”ah ]”h"]”Œ bpf_jit_limit”ah$]”h&]”uh1hµhjþh²hh³hÊh´K|ubh¶)�”}”(hhh]”(h»)�”}”(hŒ dev_weight”h]”hŒ dev_weight”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjt h²hh³hÊh´K„ubhÌ)�”}”(hŒÑThe maximum number of packets that kernel can handle on a NAPI interrupt, it's a Per-CPU variable. For drivers that support LRO or GRO_HW, a hardware aggregated packet is counted as one packet in this context.”h]”hŒÓThe maximum number of packets that kernel can handle on a NAPI interrupt, it’s a Per-CPU variable. For drivers that support LRO or GRO_HW, a hardware aggregated packet is counted as one packet in this context.”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K†hjt h²hubhÌ)�”}”(hŒ Default: 64”h]”hŒ Default: 64”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŠhjt h²hubeh}”(h]”Œ dev-weight”ah ]”h"]”Œ dev_weight”ah$]”h&]”uh1hµhjþh²hh³hÊh´K„ubh¶)�”}”(hhh]”(h»)�”}”(hŒdev_weight_rx_bias”h]”hŒdev_weight_rx_bias”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj© h²hh³hÊh´K�ubhÌ)�”}”(hX9RPS (e.g. RFS, aRFS) processing is competing with the registered NAPI poll function of the driver for the per softirq cycle netdev_budget. This parameter influences the proportion of the configured netdev_budget that is spent on RPS based packet processing during RX softirq cycles. It is further meant for making current dev_weight adaptable for asymmetric CPU needs on RX/TX side of the network stack. (see dev_weight_tx_bias) It is effective on a per CPU basis. Determination is based on dev_weight and is calculated multiplicative (dev_weight * dev_weight_rx_bias).”h]”hX9RPS (e.g. RFS, aRFS) processing is competing with the registered NAPI poll function of the driver for the per softirq cycle netdev_budget. This parameter influences the proportion of the configured netdev_budget that is spent on RPS based packet processing during RX softirq cycles. It is further meant for making current dev_weight adaptable for asymmetric CPU needs on RX/TX side of the network stack. (see dev_weight_tx_bias) It is effective on a per CPU basis. Determination is based on dev_weight and is calculated multiplicative (dev_weight * dev_weight_rx_bias).”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hj© h²hubhÌ)�”}”(hŒ Default: 1”h]”hŒ Default: 1”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K—hj© h²hubeh}”(h]”Œdev-weight-rx-bias”ah ]”h"]”Œdev_weight_rx_bias”ah$]”h&]”uh1hµhjþh²hh³hÊh´K�ubh¶)�”}”(hhh]”(h»)�”}”(hŒdev_weight_tx_bias”h]”hŒdev_weight_tx_bias”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÞ h²hh³hÊh´KšubhÌ)�”}”(hŒÿScales the maximum number of packets that can be processed during a TX softirq cycle. Effective on a per CPU basis. Allows scaling of current dev_weight for asymmetric net stack processing needs. Be careful to avoid making TX softirq processing a CPU hog.”h]”hŒÿScales the maximum number of packets that can be processed during a TX softirq cycle. Effective on a per CPU basis. Allows scaling of current dev_weight for asymmetric net stack processing needs. Be careful to avoid making TX softirq processing a CPU hog.”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KœhjÞ h²hubhÌ)�”}”(hŒECalculation is based on dev_weight (dev_weight * dev_weight_tx_bias).”h]”hŒECalculation is based on dev_weight (dev_weight * dev_weight_tx_bias).”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjÞ h²hubhÌ)�”}”(hŒ Default: 1”h]”hŒ Default: 1”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¢hjÞ h²hubeh}”(h]”Œdev-weight-tx-bias”ah ]”h"]”Œdev_weight_tx_bias”ah$]”h&]”uh1hµhjþh²hh³hÊh´Kšubh¶)�”}”(hhh]”(h»)�”}”(hŒ default_qdisc”h]”hŒ default_qdisc”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj! h²hh³hÊh´K¥ubhÌ)�”}”(hXÁThe default queuing discipline to use for network devices. This allows overriding the default of pfifo_fast with an alternative. Since the default queuing discipline is created without additional parameters so is best suited to queuing disciplines that work well without configuration like stochastic fair queue (sfq), CoDel (codel) or fair queue CoDel (fq_codel). Don't use queuing disciplines like Hierarchical Token Bucket or Deficit Round Robin which require setting up classes and bandwidths. Note that physical multiqueue interfaces still use mq as root qdisc, which in turn uses this default for its leaves. Virtual devices (like e.g. lo or veth) ignore this setting and instead default to noqueue.”h]”hXÃThe default queuing discipline to use for network devices. This allows overriding the default of pfifo_fast with an alternative. Since the default queuing discipline is created without additional parameters so is best suited to queuing disciplines that work well without configuration like stochastic fair queue (sfq), CoDel (codel) or fair queue CoDel (fq_codel). Don’t use queuing disciplines like Hierarchical Token Bucket or Deficit Round Robin which require setting up classes and bandwidths. Note that physical multiqueue interfaces still use mq as root qdisc, which in turn uses this default for its leaves. Virtual devices (like e.g. lo or veth) ignore this setting and instead default to noqueue.”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K§hj! h²hubhÌ)�”}”(hŒDefault: pfifo_fast”h]”hŒDefault: pfifo_fast”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K²hj! h²hubeh}”(h]”Œ default-qdisc”ah ]”h"]”Œ default_qdisc”ah$]”h&]”uh1hµhjþh²hh³hÊh´K¥ubh¶)�”}”(hhh]”(h»)�”}”(hŒ busy_read”h]”hŒ busy_read”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjV h²hh³hÊh´KµubhÌ)�”}”(hX¦Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) Approximate time in us to busy loop waiting for packets on the device queue. This sets the default value of the SO_BUSY_POLL socket option. Can be set or overridden per socket by setting socket option SO_BUSY_POLL, which is the preferred method of enabling. If you need to enable the feature globally via sysctl, a value of 50 is recommended.”h]”hX¦Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) Approximate time in us to busy loop waiting for packets on the device queue. This sets the default value of the SO_BUSY_POLL socket option. Can be set or overridden per socket by setting socket option SO_BUSY_POLL, which is the preferred method of enabling. If you need to enable the feature globally via sysctl, a value of 50 is recommended.”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K·hjV h²hubhÌ)�”}”(hŒWill increase power usage.”h]”hŒWill increase power usage.”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¾hjV h²hubhÌ)�”}”(hŒDefault: 0 (off)”h]”hŒDefault: 0 (off)”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÀhjV h²hubeh}”(h]”Œ busy-read”ah ]”h"]”Œ busy_read”ah$]”h&]”uh1hµhjþh²hh³hÊh´Kµubh¶)�”}”(hhh]”(h»)�”}”(hŒ busy_poll”h]”hŒ busy_poll”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj™ h²hh³hÊh´KÃubhÌ)�”}”(hXÛLow latency busy poll timeout for poll and select. (needs CONFIG_NET_RX_BUSY_POLL) Approximate time in us to busy loop waiting for events. Recommended value depends on the number of sockets you poll on. For several sockets 50, for several hundreds 100. For more than that you probably want to use epoll. Note that only sockets with SO_BUSY_POLL set will be busy polled, so you want to either selectively set SO_BUSY_POLL on those sockets or set sysctl.net.busy_read globally.”h]”hXÛLow latency busy poll timeout for poll and select. (needs CONFIG_NET_RX_BUSY_POLL) Approximate time in us to busy loop waiting for events. Recommended value depends on the number of sockets you poll on. For several sockets 50, for several hundreds 100. For more than that you probably want to use epoll. Note that only sockets with SO_BUSY_POLL set will be busy polled, so you want to either selectively set SO_BUSY_POLL on those sockets or set sysctl.net.busy_read globally.”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÄhj™ h²hubhÌ)�”}”(hŒWill increase power usage.”h]”hŒWill increase power usage.”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÍhj™ h²hubhÌ)�”}”(hŒDefault: 0 (off)”h]”hŒDefault: 0 (off)”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÏhj™ h²hubeh}”(h]”Œ busy-poll”ah ]”h"]”Œ busy_poll”ah$]”h&]”uh1hµhjþh²hh³hÊh´KÃubh¶)�”}”(hhh]”(h»)�”}”(hŒ mem_pcpu_rsv”h]”hŒ mem_pcpu_rsv”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÜ h²hh³hÊh´KÒubhÌ)�”}”(hŒMPer-cpu reserved forward alloc cache size in page units. Default 1MB per CPU.”h]”hŒMPer-cpu reserved forward alloc cache size in page units. Default 1MB per CPU.”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÔhjÜ h²hubeh}”(h]”Œ mem-pcpu-rsv”ah ]”h"]”Œ mem_pcpu_rsv”ah$]”h&]”uh1hµhjþh²hh³hÊh´KÒubh¶)�”}”(hhh]”(h»)�”}”(hŒbypass_prot_mem”h]”hŒbypass_prot_mem”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´K×ubhÌ)�”}”(hŒ€Skip charging socket buffers to the global per-protocol memory accounting controlled by net.ipv4.tcp_mem, net.ipv4.udp_mem, etc.”h]”hŒ€Skip charging socket buffers to the global per-protocol memory accounting controlled by net.ipv4.tcp_mem, net.ipv4.udp_mem, etc.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÙhj h²hubhÌ)�”}”(hŒDefault: 0 (off)”h]”hŒDefault: 0 (off)”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÜhj h²hubeh}”(h]”Œbypass-prot-mem”ah ]”h"]”Œbypass_prot_mem”ah$]”h&]”uh1hµhjþh²hh³hÊh´K×ubh¶)�”}”(hhh]”(h»)�”}”(hŒ rmem_default”h]”hŒ rmem_default”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj8 h²hh³hÊh´KßubhÌ)�”}”(hŒ:The default setting of the socket receive buffer in bytes.”h]”hŒ:The default setting of the socket receive buffer in bytes.”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Káhj8 h²hubeh}”(h]”Œ rmem-default”ah ]”h"]”Œ rmem_default”ah$]”h&]”uh1hµhjþh²hh³hÊh´Kßubh¶)�”}”(hhh]”(h»)�”}”(hŒrmem_max”h]”hŒrmem_max”…”�”}”(hjb h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj_ h²hh³hÊh´KäubhÌ)�”}”(hŒ0The maximum receive socket buffer size in bytes.”h]”hŒ0The maximum receive socket buffer size in bytes.”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kæhj_ h²hubhÌ)�”}”(hŒDefault: 4194304”h]”hŒDefault: 4194304”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kèhj_ h²hubeh}”(h]”Œrmem-max”ah ]”h"]”Œrmem_max”ah$]”h&]”uh1hµhjþh²hh³hÊh´Käubh¶)�”}”(hhh]”(h»)�”}”(hŒrps_default_mask”h]”hŒrps_default_mask”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj” h²hh³hÊh´KëubhÌ)�”}”(hŒlThe default RPS CPU mask used on newly created network devices. An empty mask means RPS disabled by default.”h]”hŒlThe default RPS CPU mask used on newly created network devices. An empty mask means RPS disabled by default.”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kíhj” h²hubeh}”(h]”Œrps-default-mask”ah ]”h"]”Œrps_default_mask”ah$]”h&]”uh1hµhjþh²hh³hÊh´Këubh¶)�”}”(hhh]”(h»)�”}”(hŒtstamp_allow_data”h]”hŒtstamp_allow_data”…”�”}”(hj¾ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj» h²hh³hÊh´KñubhÌ)�”}”(hŒåAllow processes to receive tx timestamps looped together with the original packet contents. If disabled, transmit timestamp requests from unprivileged processes are dropped unless socket option SOF_TIMESTAMPING_OPT_TSONLY is set.”h]”hŒåAllow processes to receive tx timestamps looped together with the original packet contents. If disabled, transmit timestamp requests from unprivileged processes are dropped unless socket option SOF_TIMESTAMPING_OPT_TSONLY is set.”…”�”}”(hjÌ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kòhj» h²hubhÌ)�”}”(hŒDefault: 1 (on)”h]”hŒDefault: 1 (on)”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Köhj» h²hubeh}”(h]”Œtstamp-allow-data”ah ]”h"]”Œtstamp_allow_data”ah$]”h&]”uh1hµhjþh²hh³hÊh´Kñubh¶)�”}”(hhh]”(h»)�”}”(hŒ wmem_default”h]”hŒ wmem_default”…”�”}”(hjó h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjð h²hh³hÊh´KúubhÌ)�”}”(hŒ9The default setting (in bytes) of the socket send buffer.”h]”hŒ9The default setting (in bytes) of the socket send buffer.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kühjð h²hubeh}”(h]”Œ wmem-default”ah ]”h"]”Œ wmem_default”ah$]”h&]”uh1hµhjþh²hh³hÊh´Kúubh¶)�”}”(hhh]”(h»)�”}”(hŒwmem_max”h]”hŒwmem_max”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´KÿubhÌ)�”}”(hŒ-The maximum send socket buffer size in bytes.”h]”hŒ-The maximum send socket buffer size in bytes.”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj h²hubhÌ)�”}”(hŒDefault: 4194304”h]”hŒDefault: 4194304”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj h²hubeh}”(h]”Œwmem-max”ah ]”h"]”Œwmem_max”ah$]”h&]”uh1hµhjþh²hh³hÊh´Kÿubh¶)�”}”(hhh]”(h»)�”}”(hŒmessage_burst and message_cost”h]”hŒmessage_burst and message_cost”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjL h²hh³hÊh´MubhÌ)�”}”(hX‘These parameters are used to limit the warning messages written to the kernel log from the networking code. They enforce a rate limit to make a denial-of-service attack impossible. A higher message_cost factor, results in fewer messages that will be written. Message_burst controls when messages will be dropped. The default settings limit warning messages to one every five seconds.”h]”hX‘These parameters are used to limit the warning messages written to the kernel log from the networking code. They enforce a rate limit to make a denial-of-service attack impossible. A higher message_cost factor, results in fewer messages that will be written. Message_burst controls when messages will be dropped. The default settings limit warning messages to one every five seconds.”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjL h²hubeh}”(h]”Œmessage-burst-and-message-cost”ah ]”h"]”Œmessage_burst and message_cost”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mubh¶)�”}”(hhh]”(h»)�”}”(hŒwarnings”h]”hŒwarnings”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjs h²hh³hÊh´MubhÌ)�”}”(hŒThis sysctl is now unused.”h]”hŒThis sysctl is now unused.”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjs h²hubhÌ)�”}”(hŒšThis was used to control console messages from the networking stack that occur because of problems on the network like duplicate address or bad checksums.”h]”hŒšThis was used to control console messages from the networking stack that occur because of problems on the network like duplicate address or bad checksums.”…”�”}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjs h²hubhÌ)�”}”(hŒwThese messages are now emitted at KERN_DEBUG and can generally be enabled and controlled by the dynamic_debug facility.”h]”hŒwThese messages are now emitted at KERN_DEBUG and can generally be enabled and controlled by the dynamic_debug facility.”…”�”}”(hj  h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjs h²hubeh}”(h]”Œwarnings”ah ]”h"]”Œwarnings”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mubh¶)�”}”(hhh]”(h»)�”}”(hŒ netdev_budget”h]”hŒ netdev_budget”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¶ h²hh³hÊh´MubhÌ)�”}”(hX.Maximum number of packets taken from all interfaces in one polling cycle (NAPI poll). In one polling cycle interfaces which are registered to polling are probed in a round-robin manner. Also, a polling cycle may not exceed netdev_budget_usecs microseconds, even if netdev_budget has not been exhausted.”h]”hX.Maximum number of packets taken from all interfaces in one polling cycle (NAPI poll). In one polling cycle interfaces which are registered to polling are probed in a round-robin manner. Also, a polling cycle may not exceed netdev_budget_usecs microseconds, even if netdev_budget has not been exhausted.”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj¶ h²hubeh}”(h]”Œ netdev-budget”ah ]”h"]”Œ netdev_budget”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mubh¶)�”}”(hhh]”(h»)�”}”(hŒnetdev_budget_usecs”h]”hŒnetdev_budget_usecs”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÝ h²hh³hÊh´M%ubhÌ)�”}”(hŒÈMaximum number of microseconds in one NAPI polling cycle. Polling will exit when either netdev_budget_usecs have elapsed during the poll cycle or the number of packets processed reaches netdev_budget.”h]”hŒÈMaximum number of microseconds in one NAPI polling cycle. Polling will exit when either netdev_budget_usecs have elapsed during the poll cycle or the number of packets processed reaches netdev_budget.”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M'hjÝ h²hubeh}”(h]”Œnetdev-budget-usecs”ah ]”h"]”Œnetdev_budget_usecs”ah$]”h&]”uh1hµhjþh²hh³hÊh´M%ubh¶)�”}”(hhh]”(h»)�”}”(hŒnetdev_max_backlog”h]”hŒnetdev_max_backlog”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´M,ubhÌ)�”}”(hŒ}Maximum number of packets, queued on the INPUT side, when the interface receives packets faster than kernel can process them.”h]”hŒ}Maximum number of packets, queued on the INPUT side, when the interface receives packets faster than kernel can process them.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M.hj h²hubeh}”(h]”Œnetdev-max-backlog”ah ]”h"]”Œnetdev_max_backlog”ah$]”h&]”uh1hµhjþh²hh³hÊh´M,ubh¶)�”}”(hhh]”(h»)�”}”(hŒqdisc_max_burst”h]”hŒqdisc_max_burst”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj+ h²hh³hÊh´M2ubhÌ)�”}”(hŒOMaximum number of packets that can be temporarily stored before reaching qdisc.”h]”hŒOMaximum number of packets that can be temporarily stored before reaching qdisc.”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M4hj+ h²hubhÌ)�”}”(hŒ Default: 1000”h]”hŒ Default: 1000”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M7hj+ h²hubeh}”(h]”Œqdisc-max-burst”ah ]”h"]”Œqdisc_max_burst”ah$]”h&]”uh1hµhjþh²hh³hÊh´M2ubh¶)�”}”(hhh]”(h»)�”}”(hŒnetdev_rss_key”h]”hŒnetdev_rss_key”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj` h²hh³hÊh´M:ubhÌ)�”}”(hŒ½RSS (Receive Side Scaling) enabled drivers use a host key that is randomly generated. Some user space might need to gather its content even if drivers do not provide ethtool -x support yet.”h]”hŒ½RSS (Receive Side Scaling) enabled drivers use a host key that is randomly generated. Some user space might need to gather its content even if drivers do not provide ethtool -x support yet.”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M<hj` h²hubhŒ literal_block”“”)�”}”(hŒ‘myhost:~# cat /proc/sys/net/core/netdev_rss_key 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: ... (256 bytes total)”h]”hŒ‘myhost:~# cat /proc/sys/net/core/netdev_rss_key 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: ... (256 bytes total)”…”�”}”hj� sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j h³hÊh´MChj` h²hubhÌ)�”}”(hŒTFile contains all nul bytes if no driver ever called netdev_rss_key_fill() function.”h]”hŒTFile contains all nul bytes if no driver ever called netdev_rss_key_fill() function.”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MFhj` h²hubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒsNote: /proc/sys/net/core/netdev_rss_key contains 256 bytes of key, but many drivers only use 40 or 52 bytes of it. ”h]”(hŒterm”“”)�”}”(hŒNote:”h]”hŒNote:”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jª h³hÊh´MKhj¦ ubhŒ definition”“”)�”}”(hhh]”hÌ)�”}”(hŒl/proc/sys/net/core/netdev_rss_key contains 256 bytes of key, but many drivers only use 40 or 52 bytes of it.”h]”hŒl/proc/sys/net/core/netdev_rss_key contains 256 bytes of key, but many drivers only use 40 or 52 bytes of it.”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MJhj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jº hj¦ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤ h³hÊh´MKhj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸ hj` h²hh³hÊh´Nubj€ )�”}”(hXmyhost:~# ethtool -x eth0 RX flow hash indirection table for eth0 with 8 RX ring(s): 0: 0 1 2 3 4 5 6 7 RSS hash key: 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”h]”hXmyhost:~# ethtool -x eth0 RX flow hash indirection table for eth0 with 8 RX ring(s): 0: 0 1 2 3 4 5 6 7 RSS hash key: 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”…”�”}”hjß sbah}”(h]”h ]”h"]”h$]”h&]”j� j� uh1j h³hÊh´MOhj` h²hubeh}”(h]”Œnetdev-rss-key”ah ]”h"]”Œnetdev_rss_key”ah$]”h&]”uh1hµhjþh²hh³hÊh´M:ubh¶)�”}”(hhh]”(h»)�”}”(hŒnetdev_tstamp_prequeue”h]”hŒnetdev_tstamp_prequeue”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjõ h²hh³hÊh´MVubhÌ)�”}”(hŒÈIf set to 0, RX packet timestamps can be sampled after RPS processing, when the target CPU processes packets. It might give some delay on timestamps, but permit to distribute the load on several cpus.”h]”hŒÈIf set to 0, RX packet timestamps can be sampled after RPS processing, when the target CPU processes packets. It might give some delay on timestamps, but permit to distribute the load on several cpus.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MXhjõ h²hubhÌ)�”}”(hŒSIf set to 1 (default), timestamps are sampled as soon as possible, before queueing.”h]”hŒSIf set to 1 (default), timestamps are sampled as soon as possible, before queueing.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M\hjõ h²hubeh}”(h]”Œnetdev-tstamp-prequeue”ah ]”h"]”Œnetdev_tstamp_prequeue”ah$]”h&]”uh1hµhjþh²hh³hÊh´MVubh¶)�”}”(hhh]”(h»)�”}”(hŒnetdev_unregister_timeout_secs”h]”hŒnetdev_unregister_timeout_secs”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj*h²hh³hÊh´M`ubhÌ)�”}”(hX™Unregister network device timeout in seconds. This option controls the timeout (in seconds) used to issue a warning while waiting for a network device refcount to drop to 0 during device unregistration. A lower value may be useful during bisection to detect a leaked reference faster. A larger value may be useful to prevent false warnings on slow/loaded systems. Default value is 10, minimum 1, maximum 3600.”h]”hX™Unregister network device timeout in seconds. This option controls the timeout (in seconds) used to issue a warning while waiting for a network device refcount to drop to 0 during device unregistration. A lower value may be useful during bisection to detect a leaked reference faster. A larger value may be useful to prevent false warnings on slow/loaded systems. Default value is 10, minimum 1, maximum 3600.”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mbhj*h²hubeh}”(h]”Œnetdev-unregister-timeout-secs”ah ]”h"]”Œnetdev_unregister_timeout_secs”ah$]”h&]”uh1hµhjþh²hh³hÊh´M`ubh¶)�”}”(hhh]”(h»)�”}”(hŒ skb_defer_max”h]”hŒ skb_defer_max”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjQh²hh³hÊh´MkubhÌ)�”}”(hŒ[Max size (in skbs) of the per-cpu list of skbs being freed by the cpu which allocated them.”h]”hŒ[Max size (in skbs) of the per-cpu list of skbs being freed by the cpu which allocated them.”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MmhjQh²hubhÌ)�”}”(hŒ Default: 128”h]”hŒ Default: 128”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MphjQh²hubeh}”(h]”Œ skb-defer-max”ah ]”h"]”Œ skb_defer_max”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mkubh¶)�”}”(hhh]”(h»)�”}”(hŒ optmem_max”h]”hŒ optmem_max”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj†h²hh³hÊh´MsubhÌ)�”}”(hŒÌMaximum ancillary buffer size allowed per socket. Ancillary data is a sequence of struct cmsghdr structures with appended data. TCP tx zerocopy also uses optmem_max as a limit for its internal structures.”h]”hŒÌMaximum ancillary buffer size allowed per socket. Ancillary data is a sequence of struct cmsghdr structures with appended data. TCP tx zerocopy also uses optmem_max as a limit for its internal structures.”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Muhj†h²hubhÌ)�”}”(hŒDefault : 128 KB”h]”hŒDefault : 128 KB”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Myhj†h²hubeh}”(h]”Œ optmem-max”ah ]”h"]”Œ optmem_max”ah$]”h&]”uh1hµhjþh²hh³hÊh´Msubh¶)�”}”(hhh]”(h»)�”}”(hŒfb_tunnels_only_for_init_net”h]”hŒfb_tunnels_only_for_init_net”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj»h²hh³hÊh´M|ubhÌ)�”}”(hXControls if fallback tunnels (like tunl0, gre0, gretap0, erspan0, sit0, ip6tnl0, ip6gre0) are automatically created. There are 3 possibilities (a) value = 0; respective fallback tunnels are created when module is loaded in every net namespaces (backward compatible behavior). (b) value = 1; [kcmd value: initns] respective fallback tunnels are created only in init net namespace and every other net namespace will not have them. (c) value = 2; [kcmd value: none] fallback tunnels are not created when a module is loaded in any of the net namespace. Setting value to "2" is pointless after boot if these modules are built-in, so there is a kernel command-line option that can change this default. Please refer to Documentation/admin-guide/kernel-parameters.txt for additional details.”h]”hXControls if fallback tunnels (like tunl0, gre0, gretap0, erspan0, sit0, ip6tnl0, ip6gre0) are automatically created. There are 3 possibilities (a) value = 0; respective fallback tunnels are created when module is loaded in every net namespaces (backward compatible behavior). (b) value = 1; [kcmd value: initns] respective fallback tunnels are created only in init net namespace and every other net namespace will not have them. (c) value = 2; [kcmd value: none] fallback tunnels are not created when a module is loaded in any of the net namespace. Setting value to “2â€� is pointless after boot if these modules are built-in, so there is a kernel command-line option that can change this default. Please refer to Documentation/admin-guide/kernel-parameters.txt for additional details.”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M~hj»h²hubhÌ)�”}”(hŒŠNot creating fallback tunnels gives control to userspace to create whatever is needed only and avoid creating devices which are redundant.”h]”hŒŠNot creating fallback tunnels gives control to userspace to create whatever is needed only and avoid creating devices which are redundant.”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M‹hj»h²hubhÌ)�”}”(hŒ(Default : 0 (for compatibility reasons)”h]”hŒ(Default : 0 (for compatibility reasons)”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MŽhj»h²hubeh}”(h]”Œfb-tunnels-only-for-init-net”ah ]”h"]”Œfb_tunnels_only_for_init_net”ah$]”h&]”uh1hµhjþh²hh³hÊh´M|ubh¶)�”}”(hhh]”(h»)�”}”(hŒdevconf_inherit_init_net”h]”hŒdevconf_inherit_init_net”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjþh²hh³hÊh´M‘ubhÌ)�”}”(hX Controls if a new network namespace should inherit all current settings under /proc/sys/net/{ipv4,ipv6}/conf/{all,default}/. By default, we keep the current behavior: for IPv4 we inherit all current settings from init_net and for IPv6 we reset all settings to default.”h]”hX Controls if a new network namespace should inherit all current settings under /proc/sys/net/{ipv4,ipv6}/conf/{all,default}/. By default, we keep the current behavior: for IPv4 we inherit all current settings from init_net and for IPv6 we reset all settings to default.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M“hjþh²hubhÌ)�”}”(hX8If set to 1, both IPv4 and IPv6 settings are forced to inherit from current ones in init_net. If set to 2, both IPv4 and IPv6 settings are forced to reset to their default values. If set to 3, both IPv4 and IPv6 settings are forced to inherit from current ones in the netns where this new netns has been created.”h]”hX8If set to 1, both IPv4 and IPv6 settings are forced to inherit from current ones in init_net. If set to 2, both IPv4 and IPv6 settings are forced to reset to their default values. If set to 3, both IPv4 and IPv6 settings are forced to inherit from current ones in the netns where this new netns has been created.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M˜hjþh²hubhÌ)�”}”(hŒ(Default : 0 (for compatibility reasons)”h]”hŒ(Default : 0 (for compatibility reasons)”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mžhjþh²hubeh}”(h]”Œdevconf-inherit-init-net”ah ]”h"]”Œdevconf_inherit_init_net”ah$]”h&]”uh1hµhjþh²hh³hÊh´M‘ubh¶)�”}”(hhh]”(h»)�”}”(hŒtxrehash”h]”hŒtxrehash”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjAh²hh³hÊh´M¡ubhÌ)�”}”(hŒ�Controls default hash rethink behaviour on socket when SO_TXREHASH option is set to SOCK_TXREHASH_DEFAULT (i. e. not overridden by setsockopt).”h]”hŒ�Controls default hash rethink behaviour on socket when SO_TXREHASH option is set to SOCK_TXREHASH_DEFAULT (i. e. not overridden by setsockopt).”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M£hjAh²hubhÌ)�”}”(hŒqIf set to 1 (default), hash rethink is performed on listening socket. If set to 0, hash rethink is not performed.”h]”hŒqIf set to 1 (default), hash rethink is performed on listening socket. If set to 0, hash rethink is not performed.”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¦hjAh²hubeh}”(h]”Œtxrehash”ah ]”h"]”Œtxrehash”ah$]”h&]”uh1hµhjþh²hh³hÊh´M¡ubh¶)�”}”(hhh]”(h»)�”}”(hŒtxq_reselection_ms”h]”hŒtxq_reselection_ms”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjvh²hh³hÊh´MªubhÌ)�”}”(hŒMControls how often (in ms) a busy connected flow can select another tx queue.”h]”hŒMControls how often (in ms) a busy connected flow can select another tx queue.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¬hjvh²hubhÌ)�”}”(hŒšA resection is desirable when/if user thread has migrated and XPS would select a different queue. Same can occur without XPS if the flow hash has changed.”h]”hŒšA resection is desirable when/if user thread has migrated and XPS would select a different queue. Same can occur without XPS if the flow hash has changed.”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M®hjvh²hubhÌ)�”}”(hŒ¥But switching txq can introduce reorders, especially if the old queue is under high pressure. Modern TCP stacks deal well with reorders if they happen not too often.”h]”hŒ¥But switching txq can introduce reorders, especially if the old queue is under high pressure. Modern TCP stacks deal well with reorders if they happen not too often.”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M²hjvh²hubhÌ)�”}”(hŒ,To disable this feature, set the value to 0.”h]”hŒ,To disable this feature, set the value to 0.”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¶hjvh²hubhÌ)�”}”(hŒDefault : 1000”h]”hŒDefault : 1000”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¸hjvh²hubeh}”(h]”Œtxq-reselection-ms”ah ]”h"]”Œtxq_reselection_ms”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mªubh¶)�”}”(hhh]”(h»)�”}”(hŒgro_normal_batch”h]”hŒgro_normal_batch”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÕh²hh³hÊh´M»ubhÌ)�”}”(hX=Maximum number of the segments to batch up on output of GRO. When a packet exits GRO, either as a coalesced superframe or as an original packet which GRO has decided not to coalesce, it is placed on a per-NAPI list. This list is then passed to the stack when the number of segments reaches the gro_normal_batch limit.”h]”hX=Maximum number of the segments to batch up on output of GRO. When a packet exits GRO, either as a coalesced superframe or as an original packet which GRO has decided not to coalesce, it is placed on a per-NAPI list. This list is then passed to the stack when the number of segments reaches the gro_normal_batch limit.”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M½hjÕh²hubeh}”(h]”Œgro-normal-batch”ah ]”h"]”Œgro_normal_batch”ah$]”h&]”uh1hµhjþh²hh³hÊh´M»ubh¶)�”}”(hhh]”(h»)�”}”(hŒhigh_order_alloc_disable”h]”hŒhigh_order_alloc_disable”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjüh²hh³hÊh´MÄubhÌ)�”}”(hX¤By default the allocator for page frags tries to use high order pages (order-3 on x86). While the default behavior gives good results in most cases, some users might have hit a contention in page allocations/freeing. This was especially true on older kernels (< 5.14) when high-order pages were not stored on per-cpu lists. This allows to opt-in for order-0 allocation instead but is now mostly of historical importance.”h]”hX¤By default the allocator for page frags tries to use high order pages (order-3 on x86). While the default behavior gives good results in most cases, some users might have hit a contention in page allocations/freeing. This was especially true on older kernels (< 5.14) when high-order pages were not stored on per-cpu lists. This allows to opt-in for order-0 allocation instead but is now mostly of historical importance.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MÆhjüh²hubhÌ)�”}”(hŒ Default: 0”h]”hŒ Default: 0”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MÍhjüh²hubeh}”(h]”Œhigh-order-alloc-disable”ah ]”h"]”Œhigh_order_alloc_disable”ah$]”h&]”uh1hµhjþh²hh³hÊh´MÄubh¶)�”}”(hhh]”(h»)�”}”(hŒ:2. /proc/sys/net/unix - Parameters for Unix domain sockets”h]”hŒ:2. /proc/sys/net/unix - Parameters for Unix domain sockets”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj1h²hh³hÊh´MÐubhÌ)�”}”(hŒ½There is only one file in this directory. unix_dgram_qlen limits the max number of datagrams queued in Unix domain socket's buffer. It will not take effect unless PF_UNIX flag is specified.”h]”hŒ¿There is only one file in this directory. unix_dgram_qlen limits the max number of datagrams queued in Unix domain socket’s buffer. It will not take effect unless PF_UNIX flag is specified.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MÒhj1h²hubeh}”(h]”Œ4proc-sys-net-unix-parameters-for-unix-domain-sockets”ah ]”h"]”Œ:2. /proc/sys/net/unix - parameters for unix domain sockets”ah$]”h&]”uh1hµhjþh²hh³hÊh´MÐubh¶)�”}”(hhh]”(h»)�”}”(hŒ%3. /proc/sys/net/ipv4 - IPV4 settings”h]”hŒ%3. /proc/sys/net/ipv4 - IPV4 settings”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjXh²hh³hÊh´MØubhÌ)�”}”(hŒ‚Please see: Documentation/networking/ip-sysctl.rst and Documentation/admin-guide/sysctl/net.rst for descriptions of these entries.”h]”hŒ‚Please see: Documentation/networking/ip-sysctl.rst and Documentation/admin-guide/sysctl/net.rst for descriptions of these entries.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MÙhjXh²hubeh}”(h]”Œproc-sys-net-ipv4-ipv4-settings”ah ]”h"]”Œ%3. /proc/sys/net/ipv4 - ipv4 settings”ah$]”h&]”uh1hµhjþh²hh³hÊh´MØubh¶)�”}”(hhh]”h»)�”}”(hŒ4. TIPC”h]”hŒ4. TIPC”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´MÞubah}”(h]”Œtipc”ah ]”h"]”Œ4. tipc”ah$]”h&]”uh1hµhjþh²hh³hÊh´MÞubh¶)�”}”(hhh]”(h»)�”}”(hŒ tipc_rmem”h]”hŒ tipc_rmem”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj˜h²hh³hÊh´MáubhÌ)�”}”(hŒ†The TIPC protocol now has a tunable for the receive memory, similar to the tcp_rmem - i.e. a vector of 3 INTEGERs: (min, default, max)”h]”hŒ†The TIPC protocol now has a tunable for the receive memory, similar to the tcp_rmem - i.e. a vector of 3 INTEGERs: (min, default, max)”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mãhj˜h²hubj€ )�”}”(hŒE# cat /proc/sys/net/tipc/tipc_rmem 4252725 34021800 68043600 #”h]”hŒE# cat /proc/sys/net/tipc/tipc_rmem 4252725 34021800 68043600 #”…”�”}”hj·sbah}”(h]”h ]”h"]”h$]”h&]”j� j� uh1j h³hÊh´Mèhj˜h²hubhÌ)�”}”(hX!The max value is set to CONN_OVERLOAD_LIMIT, and the default and min values are scaled (shifted) versions of that same value. Note that the min value is not at this point in time used in any meaningful way, but the triplet is preserved in order to be consistent with things like tcp_rmem.”h]”hX!The max value is set to CONN_OVERLOAD_LIMIT, and the default and min values are scaled (shifted) versions of that same value. Note that the min value is not at this point in time used in any meaningful way, but the triplet is preserved in order to be consistent with things like tcp_rmem.”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mìhj˜h²hubeh}”(h]”Œ tipc-rmem”ah ]”h"]”Œ tipc_rmem”ah$]”h&]”uh1hµhjþh²hh³hÊh´Máubh¶)�”}”(hhh]”(h»)�”}”(hŒ named_timeout”h]”hŒ named_timeout”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÛh²hh³hÊh´MòubhÌ)�”}”(hX�TIPC name table updates are distributed asynchronously in a cluster, without any form of transaction handling. This means that different race scenarios are possible. One such is that a name withdrawal sent out by one node and received by another node may arrive after a second, overlapping name publication already has been accepted from a third node, although the conflicting updates originally may have been issued in the correct sequential order. If named_timeout is nonzero, failed topology updates will be placed on a defer queue until another event arrives that clears the error, or until the timeout expires. Value is in milliseconds.”h]”hX�TIPC name table updates are distributed asynchronously in a cluster, without any form of transaction handling. This means that different race scenarios are possible. One such is that a name withdrawal sent out by one node and received by another node may arrive after a second, overlapping name publication already has been accepted from a third node, although the conflicting updates originally may have been issued in the correct sequential order. If named_timeout is nonzero, failed topology updates will be placed on a defer queue until another event arrives that clears the error, or until the timeout expires. Value is in milliseconds.”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MôhjÛh²hubeh}”(h]”Œ named-timeout”ah ]”h"]”Œ named_timeout”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mòubh¶)�”}”(hhh]”(h»)�”}”(hŒ&6. /proc/sys/net/vsock - VSOCK sockets”h]”hŒ&6. /proc/sys/net/vsock - VSOCK sockets”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´MÿubhÌ)�”}”(hX.VSOCK sockets (AF_VSOCK) provide communication between virtual machines and their hosts. The behavior of VSOCK sockets in a network namespace is determined by the namespace's mode (``global`` or ``local``), which controls how CIDs (Context IDs) are allocated and how sockets interact across namespaces.”h]”(hŒ·VSOCK sockets (AF_VSOCK) provide communication between virtual machines and their hosts. The behavior of VSOCK sockets in a network namespace is determined by the namespace’s mode (”…”�”}”(hjh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``global``”h]”hŒglobal”…”�”}”(hjh²hh³Nh´Nuba•@h}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ or ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``local``”h]”hŒlocal”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒb), which controls how CIDs (Context IDs) are allocated and how sockets interact across namespaces.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjh²hubeh}”(h]”Œ proc-sys-net-vsock-vsock-sockets”ah ]”h"]”Œ&6. /proc/sys/net/vsock - vsock sockets”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mÿubh¶)�”}”(hhh]”(h»)�”}”(hŒns_mode”h]”hŒns_mode”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjOh²hh³hÊh´MubhÌ)�”}”(hŒdRead-only. Reports the current namespace's mode, set at namespace creation and immutable thereafter.”h]”hŒfRead-only. Reports the current namespace’s mode, set at namespace creation and immutable thereafter.”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M hjOh²hubhÌ)�”}”(hŒValues:”h]”hŒValues:”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M hjOh²hubhê)�”}”(hXV- ``global`` - the namespace shares system-wide CID allocation and its sockets can reach any VM or socket in any global namespace. Sockets in this namespace cannot reach sockets in local namespaces. - ``local`` - the namespace has private CID allocation and its sockets can only connect to VMs or sockets within the same namespace. ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒÄ``global`` - the namespace shares system-wide CID allocation and its sockets can reach any VM or socket in any global namespace. Sockets in this namespace cannot reach sockets in local namespaces.”h]”hÌ)�”}”(hŒÄ``global`` - the namespace shares system-wide CID allocation and its sockets can reach any VM or socket in any global namespace. Sockets in this namespace cannot reach sockets in local namespaces.”h]”(j)�”}”(hŒ ``global``”h]”hŒglobal”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ubhŒº - the namespace shares system-wide CID allocation and its sockets can reach any VM or socket in any global namespace. Sockets in this namespace cannot reach sockets in local namespaces.”…”�”}”(hj‡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj€ubhõ)�”}”(hŒƒ``local`` - the namespace has private CID allocation and its sockets can only connect to VMs or sockets within the same namespace. ”h]”hÌ)�”}”(hŒ‚``local`` - the namespace has private CID allocation and its sockets can only connect to VMs or sockets within the same namespace.”h]”(j)�”}”(hŒ ``local``”h]”hŒlocal”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­ubhŒy - the namespace has private CID allocation and its sockets can only connect to VMs or sockets within the same namespace.”…”�”}”(hj­h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhj€ubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´Mhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´MhjOh²hubhÌ)�”}”(hŒ'The init_net mode is always ``global``.”h]”(hŒThe init_net mode is always ”…”�”}”(hjÛh²hh³Nh´Nubj)�”}”(hŒ ``global``”h]”hŒglobal”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛubhŒ.”…”�”}”(hjÛh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjOh²hubeh}”(h]”Œns-mode”ah ]”h"]”Œns_mode”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mubh¶)�”}”(hhh]”(h»)�”}”(hŒ child_ns_mode”h]”hŒ child_ns_mode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´MubhÌ)�”}”(hŒÏControls what mode newly created child namespaces will inherit. At namespace creation, ``ns_mode`` is inherited from the parent's ``child_ns_mode``. The initial value matches the namespace's own ``ns_mode``.”h]”(hŒWControls what mode newly created child namespaces will inherit. At namespace creation, ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``ns_mode``”h]”hŒns_mode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ" is inherited from the parent’s ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ``child_ns_mode``”h]”hŒ child_ns_mode”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ2. The initial value matches the namespace’s own ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``ns_mode``”h]”hŒns_mode”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjh²hubhÌ)�”}”(hŒValues:”h]”hŒValues:”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjh²hubhê)�”}”(hX+- ``global`` - child namespaces will share system-wide CID allocation and their sockets will be able to reach any VM or socket in any global namespace. - ``local`` - child namespaces will have private CID allocation and their sockets will only be able to connect within their own namespace. ”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒ•``global`` - child namespaces will share system-wide CID allocation and their sockets will be able to reach any VM or socket in any global namespace.”h]”hÌ)�”}”(hŒ•``global`` - child namespaces will share system-wide CID allocation and their sockets will be able to reach any VM or socket in any global namespace.”h]”(j)�”}”(hŒ ``global``”h]”hŒglobal”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjqubhŒ‹ - child namespaces will share system-wide CID allocation and their sockets will be able to reach any VM or socket in any global namespace.”…”�”}”(hjqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M!hjmubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjjubhõ)�”}”(hŒ‰``local`` - child namespaces will have private CID allocation and their sockets will only be able to connect within their own namespace. ”h]”hÌ)�”}”(hŒˆ``local`` - child namespaces will have private CID allocation and their sockets will only be able to connect within their own namespace.”h]”(j)�”}”(hŒ ``local``”h]”hŒlocal”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj—ubhŒ - child namespaces will have private CID allocation and their sockets will only be able to connect within their own namespace.”…”�”}”(hj—h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M$hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjjubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´M!hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´M!hjh²hubhÌ)�”}”(hŒ”The first write to ``child_ns_mode`` locks its value. Subsequent writes of the same value succeed, but writing a different value returns ``-EBUSY``.”h]”(hŒThe first write to ”…”�”}”(hjÅh²hh³Nh´Nubj)�”}”(hŒ``child_ns_mode``”h]”hŒ child_ns_mode”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅubhŒe locks its value. Subsequent writes of the same value succeed, but writing a different value returns ”…”�”}”(hjÅh²hh³Nh´Nubj)�”}”(hŒ ``-EBUSY``”h]”hŒ-EBUSY”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅubhŒ.”…”�”}”(hjÅh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M(hjh²hubhÌ)�”}”(hŒ�Changing ``child_ns_mode`` only affects namespaces created after the change; it does not modify the current namespace or any existing children.”h]”(hŒ Changing ”…”�”}”(hj÷h²hh³Nh´Nubj)�”}”(hŒ``child_ns_mode``”h]”hŒ child_ns_mode”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubhŒu only affects namespaces created after the change; it does not modify the current namespace or any existing children.”…”�”}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M+hjh²hubhÌ)�”}”(hŒqA namespace with ``ns_mode`` set to ``local`` cannot change ``child_ns_mode`` to ``global`` (returns ``-EPERM``).”h]”(hŒA namespace with ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``ns_mode``”h]”hŒns_mode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ set to ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``local``”h]”hŒlocal”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ cannot change ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ``child_ns_mode``”h]”hŒ child_ns_mode”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ to ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``global``”h]”hŒglobal”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ (returns ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ ``-EPERM``”h]”hŒ-EPERM”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ).”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M.hjh²hubeh}”(h]”Œ child-ns-mode”ah ]”h"]”Œ child_ns_mode”ah$]”h&]”uh1hµhjþh²hh³hÊh´Mubh¶)�”}”(hhh]”(h»)�”}”(hŒ g2h_fallback”h]”hŒ g2h_fallback”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj‡h²hh³hÊh´M2ubhÌ)�”}”(hŒ‘Controls whether connections to CIDs not owned by the host-to-guest (H2G) transport automatically fall back to the guest-to-host (G2H) transport.”h]”hŒ‘Controls whether connections to CIDs not owned by the host-to-guest (H2G) transport automatically fall back to the guest-to-host (G2H) transport.”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M4hj‡h²hubhÌ)�”}”(hXÄWhen enabled, if a connect targets a CID that the H2G transport (e.g. vhost-vsock) does not serve, or if no H2G transport is loaded at all, the connection is routed via the G2H transport (e.g. virtio-vsock) instead. This allows a host running both nested VMs (via vhost-vsock) and sibling VMs reachable through the hypervisor (e.g. Nitro Enclaves) to address both using a single CID space, without requiring applications to set ``VMADDR_FLAG_TO_HOST``.”h]”(hX¬When enabled, if a connect targets a CID that the H2G transport (e.g. vhost-vsock) does not serve, or if no H2G transport is loaded at all, the connection is routed via the G2H transport (e.g. virtio-vsock) instead. This allows a host running both nested VMs (via vhost-vsock) and sibling VMs reachable through the hypervisor (e.g. Nitro Enclaves) to address both using a single CID space, without requiring applications to set ”…”�”}”(hj¦h²hh³Nh´Nubj)�”}”(hŒ``VMADDR_FLAG_TO_HOST``”h]”hŒVMADDR_FLAG_TO_HOST”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦ubhŒ.”…”�”}”(hj¦h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M7hj‡h²hubhÌ)�”}”(hŒžWhen the fallback is taken, ``VMADDR_FLAG_TO_HOST`` is automatically set on the remote address so that userspace can determine the path via ``getpeername()``.”h]”(hŒWhen the fallback is taken, ”…”�”}”(hjÆh²hh³Nh´Nubj)�”}”(hŒ``VMADDR_FLAG_TO_HOST``”h]”hŒVMADDR_FLAG_TO_HOST”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆubhŒY is automatically set on the remote address so that userspace can determine the path via ”…”�”}”(hjÆh²hh³Nh´Nubj)�”}”(hŒ``getpeername()``”h]”hŒ getpeername()”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆubhŒ.”…”�”}”(hjÆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M?hj‡h²hubhÌ)�”}”(hŒÞNote: With this sysctl enabled, user space that attempts to talk to a guest CID which is not implemented by the H2G transport will create host vsock traffic. Environments that rely on H2G-only isolation should set it to 0.”h]”hŒÞNote: With this sysctl enabled, user space that attempts to talk to a guest CID which is not implemented by the H2G transport will create host vsock traffic. Environments that rely on H2G-only isolation should set it to 0.”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MChj‡h²hubhÌ)�”}”(hŒValues:”h]”hŒValues:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MGhj‡h²hubhê)�”}”(hŒË- 0 - Connections to CIDs <= 2 or with VMADDR_FLAG_TO_HOST use G2H; all others use H2G (or fail with ENODEV if H2G is not loaded). - 1 - Connections to CIDs not owned by H2G fall back to G2H. (default)”h]”hð)�”}”(hhh]”(hõ)�”}”(hŒ€0 - Connections to CIDs <= 2 or with VMADDR_FLAG_TO_HOST use G2H; all others use H2G (or fail with ENODEV if H2G is not loaded).”h]”hÌ)�”}”(hŒ€0 - Connections to CIDs <= 2 or with VMADDR_FLAG_TO_HOST use G2H; all others use H2G (or fail with ENODEV if H2G is not loaded).”h]”hŒ€0 - Connections to CIDs <= 2 or with VMADDR_FLAG_TO_HOST use G2H; all others use H2G (or fail with ENODEV if H2G is not loaded).”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MIhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjubhõ)�”}”(hŒD1 - Connections to CIDs not owned by H2G fall back to G2H. (default)”h]”hÌ)�”}”(hj5h]”hŒD1 - Connections to CIDs not owned by H2G fall back to G2H. (default)”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MKhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hôhjubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1hïh³hÊh´MIhjubah}”(h]”h ]”h"]”h$]”h&]”uh1héh³hÊh´MIhj‡h²hubeh}”(h]”Œ g2h-fallback”ah ]”h"]”Œ g2h_fallback”ah$]”h&]”uh1hµhjþh²hh³hÊh´M2ubeh}”(h]”Œ&proc-sys-net-core-network-core-options”ah ]”h"]”Œ,1. /proc/sys/net/core - network core options”ah$]”h&]”uh1hµhh·h²hh³hÊh´K/ubeh}”(h]”Œdocumentation-for-proc-sys-net”ah ]”h"]”Œ documentation for /proc/sys/net/”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”j‡Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j�Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jkjhjcj`j7j4jÓjÐjJ jG jq jn j¦ j£ jÛ jØ j j jS jP j– j“ jÙ jÖ j jý j5 j2 j\ jY j‘ jŽ j¸ jµ jí jê j j jI jF jp jm j³ j° jÚ j× j jþ j( j% j] jZ jò jï j'j$jNjKjƒj€j¸jµjûjøj>j;jsjpjÒjÏjùjöj.j+jUjRj|jyj•j’jØjÕjÿjüjLjIjjýj„j�j[jXuŒ nametypes”}”(jk‰jc‰j7‰jÓ‰jJ ‰jq ‰j¦ ‰jÛ ‰j ‰jS ‰j– ‰jÙ ‰j ‰j5 ‰j\ ‰j‘ ‰j¸ ‰jí ‰j ‰jI ‰jp ‰j³ ‰jÚ ‰j ‰j( ‰j] ‰jò ‰j'‰jN‰jƒ‰j¸‰jû‰j>‰js‰jÒ‰jù‰j.‰jU‰j|‰j•‰j؉jÿ‰jL‰j‰j„‰j[‰uh}”(jhh·j`jþj4jjÐj:jG jÖjn jM j£ jt jØ j© j jÞ jP j! j“ jV jÖ j™ jý jÜ j2 j jY j8 jŽ j_ jµ j” jê j» j jð jF j jm jL j° js j× j¶ jþ jÝ j% j jZ j+ jï j` j$jõ jKj*j€jQjµj†jøj»j;jþjpjAjÏjvjöjÕj+jüjRj1jyjXj’jjÕj˜jüjÛjIjjýjOj�jjXj‡uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.