€•TŒ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/networking/statistics”Œ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/networking/statistics”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/networking/statistics”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/networking/statistics”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/networking/statistics”Œ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/networking/statistics”Œ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/networking/statistics”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒC/var/lib/git/docbuild/linux/Documentation/networking/statistics.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒInterface statistics”h]”hŒInterface statistics”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒOverview”h]”hŒOverview”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ?This document is a guide to Linux network interface statistics.”h]”hŒ?This document is a guide to Linux network interface statistics.”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhï)�”}”(hŒ>There are three main sources of interface statistics in Linux:”h]”hŒ>There are three main sources of interface statistics in Linux:”…”�”}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhŒ block_quote”“”)�”}”(hŒº- standard interface statistics based on :c:type:`struct rtnl_link_stats64 `; - protocol-specific statistics; and - driver-defined statistics available via ethtool. ”h]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ^standard interface statistics based on :c:type:`struct rtnl_link_stats64 `;”h]”hï)�”}”(hŒ^standard interface statistics based on :c:type:`struct rtnl_link_stats64 `;”h]”(hŒ'standard interface statistics based on ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”hŒliteral”“”)�”}”(hj'h]”hŒstruct rtnl_link_stats64”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1j)hj%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œnetworking/statistics”Œ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ reftarget”Œrtnl_link_stats64”uh1hh³hÇh´KhjubhŒ;”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ!protocol-specific statistics; and”h]”hï)�”}”(hj\h]”hŒ!protocol-specific statistics; and”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ1driver-defined statistics available via ethtool. ”h]”hï)�”}”(hŒ0driver-defined statistics available via ethtool.”h]”hŒ0driver-defined statistics available via ethtool.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KhhÝh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒStandard interface statistics”h]”hŒStandard interface statistics”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj—h²hh³hÇh´Kubhï)�”}”(hŒxThere are multiple interfaces to reach the standard statistics. Most commonly used is the `ip` command from `iproute2`::”h]”(hŒZThere are multiple interfaces to reach the standard statistics. Most commonly used is the ”…”�”}”(hj¨h²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ`ip`”h]”hŒip”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¨ubhŒ command from ”…”�”}”(hj¨h²hh³Nh´Nubj±)�”}”(hŒ `iproute2`”h]”hŒiproute2”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¨ubhŒ:”…”�”}”(hj¨h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj—h²hubhŒ literal_block”“”)�”}”(hXz$ ip -s -s link show dev ens4u1u1 6: ens4u1u1: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 48:2a:e3:4c:b1:d1 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 74327665117 69016965 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 21405556176 44608960 0 0 0 0 TX errors: aborted fifo window heartbeat transns 0 0 0 0 128 altname enp58s0u1u1”h]”hXz$ ip -s -s link show dev ens4u1u1 6: ens4u1u1: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 48:2a:e3:4c:b1:d1 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 74327665117 69016965 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 21405556176 44608960 0 0 0 0 TX errors: aborted fifo window heartbeat transns 0 0 0 0 128 altname enp58s0u1u1”…”�”}”hjÞsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÜh³hÇh´Khj—h²hubhï)�”}”(hŒ³Note that `-s` has been specified twice to see all members of :c:type:`struct rtnl_link_stats64 `. If `-s` is specified once the detailed errors won't be shown.”h]”(hŒ Note that ”…”�”}”(hjìh²hh³Nh´Nubj±)�”}”(hŒ`-s`”h]”hŒ-s”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjìubhŒ0 has been specified twice to see all members of ”…”�”}”(hjìh²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hjh]”hŒstruct rtnl_link_stats64”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jHŒrtnl_link_stats64”uh1hh³hÇh´K&hjìubhŒ. If ”…”�”}”(hjìh²hh³Nh´Nubj±)�”}”(hŒ`-s`”h]”hŒ-s”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjìubhŒ8 is specified once the detailed errors won’t be shown.”…”�”}”(hjìh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K&hj—h²hubhï)�”}”(hŒ2`ip` supports JSON formatting via the `-j` option.”h]”(j±)�”}”(hŒ`ip`”h]”hŒip”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjAubhŒ" supports JSON formatting via the ”…”�”}”(hjAh²hh³Nh´Nubj±)�”}”(hŒ`-j`”h]”hŒ-j”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjAubhŒ option.”…”�”}”(hjAh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K*hj—h²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒQueue statistics”h]”hŒQueue statistics”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjoh²hh³hÇh´K-ubhï)�”}”(hŒ>Queue statistics are accessible via the netdev netlink family.”h]”hŒ>Queue statistics are accessible via the netdev netlink family.”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K/hjoh²hubhï)�”}”(hŒÅCurrently no widely distributed CLI exists to access those statistics. Kernel development tools (ynl) can be used to experiment with them, see `Documentation/userspace-api/netlink/intro-specs.rst`.”h]”(hŒ�Currently no widely distributed CLI exists to access those statistics. Kernel development tools (ynl) can be used to experiment with them, see ”…”�”}”(hjŽh²hh³Nh´Nubj±)�”}”(hŒ5`Documentation/userspace-api/netlink/intro-specs.rst`”h]”hŒ3Documentation/userspace-api/netlink/intro-specs.rst”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjŽubhŒ.”…”�”}”(hjŽh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K1hjoh²hubeh}”(h]”Œqueue-statistics”ah ]”h"]”Œqueue statistics”ah$]”h&]”uh1hÈhj—h²hh³hÇh´K-ubeh}”(h]”Œstandard-interface-statistics”ah ]”h"]”Œstandard interface statistics”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒProtocol-specific statistics”h]”hŒProtocol-specific statistics”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¾h²hh³hÇh´K6ubhï)�”}”(hŒtProtocol-specific statistics are exposed via relevant interfaces, the same interfaces as are used to configure them.”h]”hŒtProtocol-specific statistics are exposed via relevant interfaces, the same interfaces as are used to configure them.”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K8hj¾h²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒethtool”h]”hŒethtool”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÝh²hh³hÇh´KhjÝh²hubhï)�”}”(hŒÀStandard ethtool statistics can be accessed via the interfaces used for configuration. For example ethtool interface used to configure pause frames can report corresponding hardware counters::”h]”hŒ¿Standard ethtool statistics can be accessed via the interfaces used for configuration. For example ethtool interface used to configure pause frames can report corresponding hardware counters:”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KKhjÝh²hubjÝ)�”}”(hŒÂ$ ethtool --include-statistics -a eth0 Pause parameters for eth0: Autonegotiate: on RX: on TX: on Statistics: tx_pause_frames: 1 rx_pause_frames: 1”h]”hŒÂ$ ethtool --include-statistics -a eth0 Pause parameters for eth0: Autonegotiate: on RX: on TX: on Statistics: tx_pause_frames: 1 rx_pause_frames: 1”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÜh³hÇh´KOhjÝh²hubhï)�”}”(hŒ›General Ethernet statistics not associated with any particular functionality are exposed via ``ethtool -S $ifc`` by specifying the ``--groups`` parameter::”h]”(hŒ]General Ethernet statistics not associated with any particular functionality are exposed via ”…”�”}”(hjh²hh³Nh´Nubj*)�”}”(hŒ``ethtool -S $ifc``”h]”hŒethtool -S $ifc”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjubhŒ by specifying the ”…”�”}”(hjh²hh³Nh´Nubj*)�”}”(hŒ ``--groups``”h]”hŒ--groups”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjubhŒ parameter:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KXhjÝh²hubjÝ)�”}”(hX9$ ethtool -S eth0 --groups eth-phy eth-mac eth-ctrl rmon Stats for eth0: eth-phy-SymbolErrorDuringCarrier: 0 eth-mac-FramesTransmittedOK: 1 eth-mac-FrameTooLongErrors: 1 eth-ctrl-MACControlFramesTransmitted: 1 eth-ctrl-MACControlFramesReceived: 0 eth-ctrl-UnsupportedOpcodesReceived: 1 rmon-etherStatsUndersizePkts: 1 rmon-etherStatsJabbers: 0 rmon-rx-etherStatsPkts64Octets: 1 rmon-rx-etherStatsPkts65to127Octets: 0 rmon-rx-etherStatsPkts128to255Octets: 0 rmon-tx-etherStatsPkts64Octets: 2 rmon-tx-etherStatsPkts65to127Octets: 3 rmon-tx-etherStatsPkts128to255Octets: 0”h]”hX9$ ethtool -S eth0 --groups eth-phy eth-mac eth-ctrl rmon Stats for eth0: eth-phy-SymbolErrorDuringCarrier: 0 eth-mac-FramesTransmittedOK: 1 eth-mac-FrameTooLongErrors: 1 eth-ctrl-MACControlFramesTransmitted: 1 eth-ctrl-MACControlFramesReceived: 0 eth-ctrl-UnsupportedOpcodesReceived: 1 rmon-etherStatsUndersizePkts: 1 rmon-etherStatsJabbers: 0 rmon-rx-etherStatsPkts64Octets: 1 rmon-rx-etherStatsPkts65to127Octets: 0 rmon-rx-etherStatsPkts128to255Octets: 0 rmon-tx-etherStatsPkts64Octets: 2 rmon-tx-etherStatsPkts65to127Octets: 3 rmon-tx-etherStatsPkts128to255Octets: 0”…”�”}”hjJsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÜh³hÇh´K\hjÝh²hubeh}”(h]”Œethtool”ah ]”h"]”h$]”Œethtool”ah&]”uh1hÈhj¾h²hh³hÇh´K<Œ referenced”Kubeh}”(h]”Œprotocol-specific-statistics”ah ]”h"]”Œprotocol-specific statistics”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K6ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDriver-defined statistics”h]”hŒDriver-defined statistics”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjih²hh³hÇh´Knubhï)�”}”(hŒODriver-defined ethtool statistics can be dumped using `ethtool -S $ifc`, e.g.::”h]”(hŒ6Driver-defined ethtool statistics can be dumped using ”…”�”}”(hjzh²hh³Nh´Nubj±)�”}”(hŒ`ethtool -S $ifc`”h]”hŒethtool -S $ifc”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjzubhŒ, e.g.:”…”�”}”(hjzh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kphjih²hubjÝ)�”}”(hŒZ$ ethtool -S ens4u1u1 NIC statistics: tx_single_collisions: 0 tx_multi_collisions: 0”h]”hŒZ$ ethtool -S ens4u1u1 NIC statistics: tx_single_collisions: 0 tx_multi_collisions: 0”…”�”}”hjšsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÜh³hÇh´Krhjih²hubeh}”(h]”Œdriver-defined-statistics”ah ]”h"]”Œdriver-defined statistics”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´Knubeh}”(h]”Œoverview”ah ]”h"]”Œoverview”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒuAPIs”h]”hŒuAPIs”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¸h²hh³hÇh´KxubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒprocfs”h]”hŒprocfs”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÉh²hh³hÇh´K{ubhï)�”}”(hŒqThe historical `/proc/net/dev` text interface gives access to the list of interfaces as well as their statistics.”h]”(hŒThe historical ”…”�”}”(hjÚh²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÚubhŒS text interface gives access to the list of interfaces as well as their statistics.”…”�”}”(hjÚh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K}hjÉh²hubhï)�”}”(hŒ�Note that even though this interface is using :c:type:`struct rtnl_link_stats64 ` internally it combines some of the fields.”h]”(hŒ.Note that even though this interface is using ”…”�”}”(hjúh²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hjh]”hŒstruct rtnl_link_stats64”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jHŒrtnl_link_stats64”uh1hh³hÇh´K€hjúubhŒ+ internally it combines some of the fields.”…”�”}”(hjúh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K€hjÉh²hubeh}”(h]”Œprocfs”ah ]”h"]”Œprocfs”ah$]”h&]”uh1hÈhj¸h²hh³hÇh´K{ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒsysfs”h]”hŒsysfs”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj3h²hh³hÇh´K…ubhï)�”}”(hŒÆEach device directory in sysfs contains a `statistics` directory (e.g. `/sys/class/net/lo/statistics/`) with files corresponding to members of :c:type:`struct rtnl_link_stats64 `.”h]”(hŒ*Each device directory in sysfs contains a ”…”�”}”(hjDh²hh³Nh´Nubj±)�”}”(hŒ `statistics`”h]”hŒ statistics”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjDubhŒ directory (e.g. ”…”�”}”(hjDh²hh³Nh´Nubj±)�”}”(hŒ`/sys/class/net/lo/statistics/`”h]”hŒ/sys/class/net/lo/statistics/”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjDubhŒ)) with files corresponding to members of ”…”�”}”(hjDh²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hjrh]”hŒstruct rtnl_link_stats64”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hjpubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jHŒrtnl_link_stats64”uh1hh³hÇh´K‡hjDubhŒ.”…”�”}”(hjDh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‡hj3h²hubhï)�”}”(hX@This simple interface is convenient especially in constrained/embedded environments without access to tools. However, it's inefficient when reading multiple stats as it internally performs a full dump of :c:type:`struct rtnl_link_stats64 ` and reports only the stat corresponding to the accessed file.”h]”(hŒÎThis simple interface is convenient especially in constrained/embedded environments without access to tools. However, it’s inefficient when reading multiple stats as it internally performs a full dump of ”…”�”}”(hj™h²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hj£h]”hŒstruct rtnl_link_stats64”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jHŒrtnl_link_stats64”uh1hh³hÇh´K‹hj™ubhŒ> and reports only the stat corresponding to the accessed file.”…”�”}”(hj™h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‹hj3h²hubhï)�”}”(hŒSSysfs files are documented in Documentation/ABI/testing/sysfs-class-net-statistics.”h]”hŒSSysfs files are documented in Documentation/ABI/testing/sysfs-class-net-statistics.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‘hj3h²hubeh}”(h]”Œsysfs”ah ]”h"]”Œsysfs”ah$]”h&]”uh1hÈhj¸h²hh³hÇh´K…ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒnetlink”h]”hŒnetlink”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjàh²hh³hÇh´K–ubhï)�”}”(hŒ€`rtnetlink` (`NETLINK_ROUTE`) is the preferred method of accessing :c:type:`struct rtnl_link_stats64 ` stats.”h]”(j±)�”}”(hŒ `rtnetlink`”h]”hŒ rtnetlink”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjñubhŒ (”…”�”}”(hjñh²hh³Nh´Nubj±)�”}”(hŒ`NETLINK_ROUTE`”h]”hŒ NETLINK_ROUTE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjñubhŒ') is the preferred method of accessing ”…”�”}”(hjñh²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hjh]”hŒstruct rtnl_link_stats64”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jHŒrtnl_link_stats64”uh1hh³hÇh´K˜hjñubhŒ stats.”…”�”}”(hjñh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K˜hjàh²hubhï)�”}”(hŒÎStatistics are reported both in the responses to link information requests (`RTM_GETLINK`) and statistic requests (`RTM_GETSTATS`, when `IFLA_STATS_LINK_64` bit is set in the `.filter_mask` of the request).”h]”(hŒLStatistics are reported both in the responses to link information requests (”…”�”}”(hjBh²hh³Nh´Nubj±)�”}”(hŒ `RTM_GETLINK`”h]”hŒ RTM_GETLINK”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjBubhŒ) and statistic requests (”…”�”}”(hjBh²hh³Nh´Nubj±)�”}”(hŒ`RTM_GETSTATS`”h]”hŒ RTM_GETSTATS”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjBubhŒ, when ”…”�”}”(hjBh²hh³Nh´Nubj±)�”}”(hŒ`IFLA_STATS_LINK_64`”h]”hŒIFLA_STATS_LINK_64”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjBubhŒ bit is set in the ”…”�”}”(hjBh²hh³Nh´Nubj±)�”}”(hŒ`.filter_mask`”h]”hŒ .filter_mask”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjBubhŒ of the request).”…”�”}”(hjBh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K›hjàh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒnetdev (netlink)”h]”hŒnetdev (netlink)”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj˜h²hh³hÇh´K ubhï)�”}”(hŒT`netdev` generic netlink family allows accessing page pool and per queue statistics.”h]”(j±)�”}”(hŒ`netdev`”h]”hŒnetdev”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj©ubhŒL generic netlink family allows accessing page pool and per queue statistics.”…”�”}”(hj©h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¢hj˜h²hubeh}”(h]”Œnetdev-netlink”ah ]”h"]”Œnetdev (netlink)”ah$]”h&]”uh1hÈhjàh²hh³hÇh´K ubeh}”(h]”Œnetlink”ah ]”h"]”Œnetlink”ah$]”h&]”uh1hÈhj¸h²hh³hÇh´K–ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒethtool”h]”hŒethtool”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÕh²hh³hÇh´K¦ubhï)�”}”(hXEthtool IOCTL interface allows drivers to report implementation specific statistics. Historically it has also been used to report statistics for which other APIs did not exist, like per-device-queue statistics, or standard-based statistics (e.g. RFC 2863).”h]”hXEthtool IOCTL interface allows drivers to report implementation specific statistics. Historically it has also been used to report statistics for which other APIs did not exist, like per-device-queue statistics, or standard-based statistics (e.g. RFC 2863).”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¨hjÕh²hubhï)�”}”(hX Statistics and their string identifiers are retrieved separately. Identifiers via `ETHTOOL_GSTRINGS` with `string_set` set to `ETH_SS_STATS`, and values via `ETHTOOL_GSTATS`. User space should use `ETHTOOL_GDRVINFO` to retrieve the number of statistics (`.n_stats`).”h]”(hŒRStatistics and their string identifiers are retrieved separately. Identifiers via ”…”�”}”(hjôh²hh³Nh´Nubj±)�”}”(hŒ`ETHTOOL_GSTRINGS`”h]”hŒETHTOOL_GSTRINGS”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjôubhŒ with ”…”�”}”(hjôh²hh³Nh´Nubj±)�”}”(hŒ `string_set`”h]”hŒ string_set”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjôubhŒ set to ”…”�”}”(hjôh²hh³Nh´Nubj±)�”}”(hŒ`ETH_SS_STATS`”h]”hŒ ETH_SS_STATS”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjôubhŒ, and values via ”…”�”}”(hjôh²hh³Nh´Nubj±)�”}”(hŒ`ETHTOOL_GSTATS`”h]”hŒETHTOOL_GSTATS”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjôubhŒ. User space should use ”…”�”}”(hjôh²hh³Nh´Nubj±)�”}”(hŒ`ETHTOOL_GDRVINFO`”h]”hŒETHTOOL_GDRVINFO”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjôubhŒ' to retrieve the number of statistics (”…”�”}”(hjôh²hh³Nh´Nubj±)�”}”(hŒ `.n_stats`”h]”hŒ.n_stats”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjôubhŒ).”…”�”}”(hjôh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K­hjÕh²hubeh}”(h]”Œid1”ah ]”h"]”h$]”j^ah&]”uh1hÈhj¸h²hh³hÇh´K¦j`KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒethtool-netlink”h]”hŒethtool-netlink”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjuh²hh³hÇh´K³ubhï)�”}”(hŒ?Ethtool netlink is a replacement for the older IOCTL interface.”h]”hŒ?Ethtool netlink is a replacement for the older IOCTL interface.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kµhjuh²hubhï)�”}”(hŒÀProtocol-related statistics can be requested in get commands by setting the `ETHTOOL_FLAG_STATS` flag in `ETHTOOL_A_HEADER_FLAGS`. Currently statistics are supported in the following commands:”h]”(hŒLProtocol-related statistics can be requested in get commands by setting the ”…”�”}”(hj”h²hh³Nh´Nubj±)�”}”(hŒ`ETHTOOL_FLAG_STATS`”h]”hŒETHTOOL_FLAG_STATS”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj”ubhŒ flag in ”…”�”}”(hj”h²hh³Nh´Nubj±)�”}”(hŒ`ETHTOOL_A_HEADER_FLAGS`”h]”hŒETHTOOL_A_HEADER_FLAGS”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj”ubhŒ?. Currently statistics are supported in the following commands:”…”�”}”(hj”h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K·hjuh²hubj )�”}”(hŒ‚- `ETHTOOL_MSG_FEC_GET` - `ETHTOOL_MSG_LINKSTATE_GET` - `ETHTOOL_MSG_MM_GET` - `ETHTOOL_MSG_PAUSE_GET` - `ETHTOOL_MSG_TSINFO_GET` ”h]”j)�”}”(hhh]”(j)�”}”(hŒ`ETHTOOL_MSG_FEC_GET`”h]”hï)�”}”(hjÏh]”j±)�”}”(hjÏh]”hŒETHTOOL_MSG_FEC_GET”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K»hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubj)�”}”(hŒ`ETHTOOL_MSG_LINKSTATE_GET`”h]”hï)�”}”(hjïh]”j±)�”}”(hjïh]”hŒETHTOOL_MSG_LINKSTATE_GET”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¼hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubj)�”}”(hŒ`ETHTOOL_MSG_MM_GET`”h]”hï)�”}”(hjh]”j±)�”}”(hjh]”hŒETHTOOL_MSG_MM_GET”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K½hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubj)�”}”(hŒ`ETHTOOL_MSG_PAUSE_GET`”h]”hï)�”}”(hj/h]”j±)�”}”(hj/h]”hŒETHTOOL_MSG_PAUSE_GET”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¾hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubj)�”}”(hŒ`ETHTOOL_MSG_TSINFO_GET` ”h]”hï)�”}”(hŒ`ETHTOOL_MSG_TSINFO_GET`”h]”j±)�”}”(hjSh]”hŒETHTOOL_MSG_TSINFO_GET”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¿hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubeh}”(h]”h ]”h"]”h$]”h&]”j�j�uh1jh³hÇh´K»hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K»hjuh²hubeh}”(h]”Œethtool-netlink”ah ]”h"]”Œethtool-netlink”ah$]”h&]”uh1hÈhj¸h²hh³hÇh´K³ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒdebugfs”h]”hŒdebugfs”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‚h²hh³hÇh´KÂubhï)�”}”(hŒ3Some drivers expose extra statistics via `debugfs`.”h]”(hŒ)Some drivers expose extra statistics via ”…”�”}”(hj“h²hh³Nh´Nubj±)�”}”(hŒ `debugfs`”h]”hŒdebugfs”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj“ubhŒ.”…”�”}”(hj“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÄhj‚h²hubeh}”(h]”Œdebugfs”ah ]”h"]”Œdebugfs”ah$]”h&]”uh1hÈhj¸h²hh³hÇh´KÂubeh}”(h]”Œuapis”ah ]”h"]”Œuapis”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KxubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒstruct rtnl_link_stats64”h]”hŒstruct rtnl_link_stats64”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÃh²hh³hÇh´KÇubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œrtnl_link_stats64 (C struct)”Œc.rtnl_link_stats64”hNt”auh1jÔhjÃh²hh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒrtnl_link_stats64”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct rtnl_link_stats64”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j÷hjóh²hh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j hjóh²hh³jh´KubhŒ desc_name”“”)�”}”(hŒrtnl_link_stats64”h]”hŒ desc_sig_name”“”)�”}”(hjïh]”hŒrtnl_link_stats64”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jhjóh²hh³jh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jñŒsphinx_line_type”Œ declarator”hjíh²hh³jh´Kubah}”(h]”jãah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jëh³jh´Khjèh²hubhŒ desc_content”“”)�”}”(hhh]”hï)�”}”(hŒ%The main device statistics structure.”h]”hŒ%The main device statistics structure.”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K+hjNh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjèh²hh³jh´Kubeh}”(h]”h ]”(j6Œstruct”eh"]”h$]”h&]”Œdomain”j6Œobjtype”jiŒdesctype”jiŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jæh²hhjÃh³jåh´NubhŒ container”“”)�”}”(hXƒ**Definition**:: struct rtnl_link_stats64 { __u64 rx_packets; __u64 tx_packets; __u64 rx_bytes; __u64 tx_bytes; __u64 rx_errors; __u64 tx_errors; __u64 rx_dropped; __u64 tx_dropped; __u64 multicast; __u64 collisions; __u64 rx_length_errors; __u64 rx_over_errors; __u64 rx_crc_errors; __u64 rx_frame_errors; __u64 rx_fifo_errors; __u64 rx_missed_errors; __u64 tx_aborted_errors; __u64 tx_carrier_errors; __u64 tx_fifo_errors; __u64 tx_heartbeat_errors; __u64 tx_window_errors; __u64 rx_compressed; __u64 tx_compressed; __u64 rx_nohandler; __u64 rx_otherhost_dropped; }; **Members** ``rx_packets`` Number of good packets received by the interface. For hardware interfaces counts all good packets received from the device by the host, including packets which host had to drop at various stages of processing (even in the driver). ``tx_packets`` Number of packets successfully transmitted. For hardware interfaces counts packets which host was able to successfully hand over to the device, which does not necessarily mean that packets had been successfully transmitted out of the device, only that device acknowledged it copied them out of host memory. ``rx_bytes`` Number of good received bytes, corresponding to **rx_packets**. ``tx_bytes`` Number of good transmitted bytes, corresponding to **tx_packets**. ``rx_errors`` Total number of bad packets received on this network device. This counter must include events counted by **rx_length_errors**, **rx_crc_errors**, **rx_frame_errors** and other errors not otherwise counted. ``tx_errors`` Total number of transmit problems. This counter must include events counter by **tx_aborted_errors**, **tx_carrier_errors**, **tx_fifo_errors**, **tx_heartbeat_errors**, **tx_window_errors** and other errors not otherwise counted. ``rx_dropped`` Number of packets received but not processed, e.g. due to lack of resources or unsupported protocol. For hardware interfaces this counter may include packets discarded due to L2 address filtering but should not include packets dropped by the device due to buffer exhaustion which are counted separately in **rx_missed_errors** (since procfs folds those two counters together). ``tx_dropped`` Number of packets dropped on their way to transmission, e.g. due to lack of resources. ``multicast`` Multicast packets received. For hardware interfaces this statistic is commonly calculated at the device level (unlike **rx_packets**) and therefore may include packets which did not reach the host. ``collisions`` Number of collisions during packet transmissions. ``rx_length_errors`` Number of packets dropped due to invalid length. Part of aggregate "frame" errors in `/proc/net/dev`. ``rx_over_errors`` Receiver FIFO overflow event counter. ``rx_crc_errors`` Number of packets received with a CRC error. Part of aggregate "frame" errors in `/proc/net/dev`. ``rx_frame_errors`` Receiver frame alignment errors. Part of aggregate "frame" errors in `/proc/net/dev`. ``rx_fifo_errors`` Receiver FIFO error counter. ``rx_missed_errors`` Count of packets missed by the host. Folded into the "drop" counter in `/proc/net/dev`. ``tx_aborted_errors`` Part of aggregate "carrier" errors in `/proc/net/dev`. For IEEE 802.3 devices capable of half-duplex operation this counter must be equivalent to: ``tx_carrier_errors`` Number of frame transmission errors due to loss of carrier during transmission. Part of aggregate "carrier" errors in `/proc/net/dev`. ``tx_fifo_errors`` Number of frame transmission errors due to device FIFO underrun / underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission. Part of aggregate "carrier" errors in `/proc/net/dev`. ``tx_heartbeat_errors`` Number of Heartbeat / SQE Test errors for old half-duplex Ethernet. Part of aggregate "carrier" errors in `/proc/net/dev`. ``tx_window_errors`` Number of frame transmission errors due to late collisions (for Ethernet - after the first 64B of transmission). Part of aggregate "carrier" errors in `/proc/net/dev`. ``rx_compressed`` Number of correctly received compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP). ``tx_compressed`` Number of transmitted compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP). ``rx_nohandler`` Number of packets received on the interface but dropped by the networking stack because the device is not designated to receive packets (e.g. backup link in a bond). ``rx_otherhost_dropped`` Number of packets dropped due to mismatch in destination MAC address.”h]”(hï)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjyubhŒ:”…”�”}”(hjyh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K/hjuubjÝ)�”}”(hX‹struct rtnl_link_stats64 { __u64 rx_packets; __u64 tx_packets; __u64 rx_bytes; __u64 tx_bytes; __u64 rx_errors; __u64 tx_errors; __u64 rx_dropped; __u64 tx_dropped; __u64 multicast; __u64 collisions; __u64 rx_length_errors; __u64 rx_over_errors; __u64 rx_crc_errors; __u64 rx_frame_errors; __u64 rx_fifo_errors; __u64 rx_missed_errors; __u64 tx_aborted_errors; __u64 tx_carrier_errors; __u64 tx_fifo_errors; __u64 tx_heartbeat_errors; __u64 tx_window_errors; __u64 rx_compressed; __u64 tx_compressed; __u64 rx_nohandler; __u64 rx_otherhost_dropped; };”h]”hX‹struct rtnl_link_stats64 { __u64 rx_packets; __u64 tx_packets; __u64 rx_bytes; __u64 tx_bytes; __u64 rx_errors; __u64 tx_errors; __u64 rx_dropped; __u64 tx_dropped; __u64 multicast; __u64 collisions; __u64 rx_length_errors; __u64 rx_over_errors; __u64 rx_crc_errors; __u64 rx_frame_errors; __u64 rx_fifo_errors; __u64 rx_missed_errors; __u64 tx_aborted_errors; __u64 tx_carrier_errors; __u64 tx_fifo_errors; __u64 tx_heartbeat_errors; __u64 tx_window_errors; __u64 rx_compressed; __u64 tx_compressed; __u64 rx_nohandler; __u64 rx_otherhost_dropped; };”…”�”}”hj˜sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÜh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K1hjuubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hj©h]”hŒMembers”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KMhjuubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒö``rx_packets`` Number of good packets received by the interface. For hardware interfaces counts all good packets received from the device by the host, including packets which host had to drop at various stages of processing (even in the driver). ”h]”(hŒterm”“”)�”}”(hŒ``rx_packets``”h]”j*)�”}”(hjÎh]”hŒ rx_packets”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K1hjÆubhŒ definition”“”)�”}”(hhh]”hï)�”}”(hŒæNumber of good packets received by the interface. For hardware interfaces counts all good packets received from the device by the host, including packets which host had to drop at various stages of processing (even in the driver).”h]”hŒæNumber of good packets received by the interface. For hardware interfaces counts all good packets received from the device by the host, including packets which host had to drop at various stages of processing (even in the driver).”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K.hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jãh´K1hjÁubjÅ)�”}”(hXB``tx_packets`` Number of packets successfully transmitted. For hardware interfaces counts packets which host was able to successfully hand over to the device, which does not necessarily mean that packets had been successfully transmitted out of the device, only that device acknowledged it copied them out of host memory. ”h]”(jË)�”}”(hŒ``tx_packets``”h]”j*)�”}”(hj h]”hŒ tx_packets”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K7hj ubjå)�”}”(hhh]”hï)�”}”(hX2Number of packets successfully transmitted. For hardware interfaces counts packets which host was able to successfully hand over to the device, which does not necessarily mean that packets had been successfully transmitted out of the device, only that device acknowledged it copied them out of host memory.”h]”hX2Number of packets successfully transmitted. For hardware interfaces counts packets which host was able to successfully hand over to the device, which does not necessarily mean that packets had been successfully transmitted out of the device, only that device acknowledged it copied them out of host memory.”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K3hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j h´K7hjÁubjÅ)�”}”(hŒM``rx_bytes`` Number of good received bytes, corresponding to **rx_packets**. ”h]”(jË)�”}”(hŒ ``rx_bytes``”h]”j*)�”}”(hjD h]”hŒrx_bytes”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjB ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K9hj> ubjå)�”}”(hhh]”hï)�”}”(hŒ?Number of good received bytes, corresponding to **rx_packets**.”h]”(hŒ0Number of good received bytes, corresponding to ”…”�”}”(hj] h²hh³Nh´Nubj~)�”}”(hŒ**rx_packets**”h]”hŒ rx_packets”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj] ubhŒ.”…”�”}”(hj] h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jY h´K9hjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj> ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jY h´K9hjÁubjÅ)�”}”(hŒP``tx_bytes`` Number of good transmitted bytes, corresponding to **tx_packets**. ”h]”(jË)�”}”(hŒ ``tx_bytes``”h]”j*)�”}”(hj� h]”hŒtx_bytes”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K>hj‰ ubjå)�”}”(hhh]”hï)�”}”(hŒBNumber of good transmitted bytes, corresponding to **tx_packets**.”h]”(hŒ3Number of good transmitted bytes, corresponding to ”…”�”}”(hj¨ h²hh³Nh´Nubj~)�”}”(hŒ**tx_packets**”h]”hŒ tx_packets”…”�”}”(hj° h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¨ ubhŒ.”…”�”}”(hj¨ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¤ h´K>hj¥ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj‰ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j¤ h´K>hjÁubjÅ)�”}”(hŒÜ``rx_errors`` Total number of bad packets received on this network device. This counter must include events counted by **rx_length_errors**, **rx_crc_errors**, **rx_frame_errors** and other errors not otherwise counted. ”h]”(jË)�”}”(hŒ ``rx_errors``”h]”j*)�”}”(hjÚ h]”hŒ rx_errors”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjØ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KFhjÔ ubjå)�”}”(hhh]”hï)�”}”(hŒÍTotal number of bad packets received on this network device. This counter must include events counted by **rx_length_errors**, **rx_crc_errors**, **rx_frame_errors** and other errors not otherwise counted.”h]”(hŒiTotal number of bad packets received on this network device. This counter must include events counted by ”…”�”}”(hjó h²hh³Nh´Nubj~)�”}”(hŒ**rx_length_errors**”h]”hŒrx_length_errors”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjó ubhŒ, ”…”�”}”(hjó h²hh³Nh´Nubj~)�”}”(hŒ**rx_crc_errors**”h]”hŒ rx_crc_errors”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjó ubhŒ, ”…”�”}”(hjó h²hh³Nh´Nubj~)�”}”(hŒ**rx_frame_errors**”h]”hŒrx_frame_errors”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjó ubhŒ( and other errors not otherwise counted.”…”�”}”(hjó h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KChjð ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjÔ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jï h´KFhjÁubjÅ)�”}”(hŒõ``tx_errors`` Total number of transmit problems. This counter must include events counter by **tx_aborted_errors**, **tx_carrier_errors**, **tx_fifo_errors**, **tx_heartbeat_errors**, **tx_window_errors** and other errors not otherwise counted. ”h]”(jË)�”}”(hŒ ``tx_errors``”h]”j*)�”}”(hjJ h]”hŒ tx_errors”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjH ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KKhjD ubjå)�”}”(hhh]”hï)�”}”(hŒæTotal number of transmit problems. This counter must include events counter by **tx_aborted_errors**, **tx_carrier_errors**, **tx_fifo_errors**, **tx_heartbeat_errors**, **tx_window_errors** and other errors not otherwise counted.”h]”(hŒOTotal number of transmit problems. This counter must include events counter by ”…”�”}”(hjc h²hh³Nh´Nubj~)�”}”(hŒ**tx_aborted_errors**”h]”hŒtx_aborted_errors”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjc ubhŒ, ”…”�”}”(hjc h²hh³Nh´Nubj~)�”}”(hŒ**tx_carrier_errors**”h]”hŒtx_carrier_errors”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjc ubhŒ, ”…”�”}”(hjc h²hh³Nh´Nubj~)�”}”(hŒ**tx_fifo_errors**”h]”hŒtx_fifo_errors”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjc ubhŒ, ”…”�”}”hjc sbj~)�”}”(hŒ**tx_heartbeat_errors**”h]”hŒtx_heartbeat_errors”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjc ubhŒ, ”…”�”}”hjc sbj~)�”}”(hŒ**tx_window_errors**”h]”hŒtx_window_errors”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjc ubhŒ( and other errors not otherwise counted.”…”�”}”(hjc h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KHhj` ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjD ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j_ h´KKhjÁubjÅ)�”}”(hXˆ``rx_dropped`` Number of packets received but not processed, e.g. due to lack of resources or unsupported protocol. For hardware interfaces this counter may include packets discarded due to L2 address filtering but should not include packets dropped by the device due to buffer exhaustion which are counted separately in **rx_missed_errors** (since procfs folds those two counters together). ”h]”(jË)�”}”(hŒ``rx_dropped``”h]”j*)�”}”(hjÞ h]”hŒ rx_dropped”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjÜ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KRhjØ ubjå)�”}”(hhh]”hï)�”}”(hXxNumber of packets received but not processed, e.g. due to lack of resources or unsupported protocol. For hardware interfaces this counter may include packets discarded due to L2 address filtering but should not include packets dropped by the device due to buffer exhaustion which are counted separately in **rx_missed_errors** (since procfs folds those two counters together).”h]”(hX2Number of packets received but not processed, e.g. due to lack of resources or unsupported protocol. For hardware interfaces this counter may include packets discarded due to L2 address filtering but should not include packets dropped by the device due to buffer exhaustion which are counted separately in ”…”�”}”(hj÷ h²hh³Nh´Nubj~)�”}”(hŒ**rx_missed_errors**”h]”hŒrx_missed_errors”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj÷ ubhŒ2 (since procfs folds those two counters together).”…”�”}”(hj÷ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KMhjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjØ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jó h´KRhjÁubjÅ)�”}”(hŒf``tx_dropped`` Number of packets dropped on their way to transmission, e.g. due to lack of resources. ”h]”(jË)�”}”(hŒ``tx_dropped``”h]”j*)�”}”(hj* h]”hŒ tx_dropped”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj( ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KUhj$ ubjå)�”}”(hhh]”hï)�”}”(hŒVNumber of packets dropped on their way to transmission, e.g. due to lack of resources.”h]”hŒVNumber of packets dropped on their way to transmission, e.g. due to lack of resources.”…”�”}”(hjC h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KThj@ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj$ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j? h´KUhjÁubjÅ)�”}”(hŒÔ``multicast`` Multicast packets received. For hardware interfaces this statistic is commonly calculated at the device level (unlike **rx_packets**) and therefore may include packets which did not reach the host. ”h]”(jË)�”}”(hŒ ``multicast``”h]”j*)�”}”(hjd h]”hŒ multicast”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KZhj^ ubjå)�”}”(hhh]”hï)�”}”(hŒÅMulticast packets received. For hardware interfaces this statistic is commonly calculated at the device level (unlike **rx_packets**) and therefore may include packets which did not reach the host.”h]”(hŒvMulticast packets received. For hardware interfaces this statistic is commonly calculated at the device level (unlike ”…”�”}”(hj} h²hh³Nh´Nubj~)�”}”(hŒ**rx_packets**”h]”hŒ rx_packets”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj} ubhŒA) and therefore may include packets which did not reach the host.”…”�”}”(hj} h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KWhjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj^ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jy h´KZhjÁubjÅ)�”}”(hŒA``collisions`` Number of collisions during packet transmissions. ”h]”(jË)�”}”(hŒ``collisions``”h]”j*)�”}”(hj° h]”hŒ collisions”…”�”}”(hj² h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj® ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K`hjª ubjå)�”}”(hhh]”hï)�”}”(hŒ1Number of collisions during packet transmissions.”h]”hŒ1Number of collisions during packet transmissions.”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÅ h´K`hjÆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjª ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jÅ h´K`hjÁubjÅ)�”}”(hŒ{``rx_length_errors`` Number of packets dropped due to invalid length. Part of aggregate "frame" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``rx_length_errors``”h]”j*)�”}”(hjé h]”hŒrx_length_errors”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjç ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´Kchjã ubjå)�”}”(hhh]”hï)�”}”(hŒeNumber of packets dropped due to invalid length. Part of aggregate "frame" errors in `/proc/net/dev`.”h]”(hŒYNumber of packets dropped due to invalid length. Part of aggregate “frameâ€� errors in ”…”�”}”(hj h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj ubhŒ.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´Kbhjÿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjã ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jþ h´KchjÁubjÅ)�”}”(hŒ9``rx_over_errors`` Receiver FIFO overflow event counter. ”h]”(jË)�”}”(hŒ``rx_over_errors``”h]”j*)�”}”(hj5 h]”hŒrx_over_errors”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj3 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´Klhj/ ubjå)�”}”(hhh]”hï)�”}”(hŒ%Receiver FIFO overflow event counter.”h]”hŒ%Receiver FIFO overflow event counter.”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jJ h´KlhjK ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj/ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jJ h´KlhjÁubjÅ)�”}”(hŒt``rx_crc_errors`` Number of packets received with a CRC error. Part of aggregate "frame" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``rx_crc_errors``”h]”j*)�”}”(hjn h]”hŒ rx_crc_errors”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjl ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K€hjh ubjå)�”}”(hhh]”hï)�”}”(hŒaNumber of packets received with a CRC error. Part of aggregate "frame" errors in `/proc/net/dev`.”h]”(hŒUNumber of packets received with a CRC error. Part of aggregate “frameâ€� errors in ”…”�”}”(hj‡ h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj‡ ubhŒ.”…”�”}”(hj‡ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´Khj„ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjh ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jƒ h´K€hjÁubjÅ)�”}”(hŒj``rx_frame_errors`` Receiver frame alignment errors. Part of aggregate "frame" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``rx_frame_errors``”h]”j*)�”}”(hjº h]”hŒrx_frame_errors”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj¸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K‡hj´ ubjå)�”}”(hhh]”hï)�”}”(hŒUReceiver frame alignment errors. Part of aggregate "frame" errors in `/proc/net/dev`.”h]”(hŒIReceiver frame alignment errors. Part of aggregate “frameâ€� errors in ”…”�”}”(hjÓ h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÓ ubhŒ.”…”�”}”(hjÓ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K†hjÐ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj´ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jÏ h´K‡hjÁubjÅ)�”}”(hŒ0``rx_fifo_errors`` Receiver FIFO error counter. ”h]”(jË)�”}”(hŒ``rx_fifo_errors``”h]”j*)�”}”(hj h]”hŒrx_fifo_errors”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K�hj ubjå)�”}”(hhh]”hï)�”}”(hŒReceiver FIFO error counter.”h]”hŒReceiver FIFO error counter.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j h´K�hjÁubjÅ)�”}”(hŒm``rx_missed_errors`` Count of packets missed by the host. Folded into the "drop" counter in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``rx_missed_errors``”h]”j*)�”}”(hj? h]”hŒrx_missed_errors”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj= ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´Kšhj9 ubjå)�”}”(hhh]”hï)�”}”(hŒWCount of packets missed by the host. Folded into the "drop" counter in `/proc/net/dev`.”h]”(hŒKCount of packets missed by the host. Folded into the “dropâ€� counter in ”…”�”}”(hjX h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjX ubhŒ.”…”�”}”(hjX h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K™hjU ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj9 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jT h´KšhjÁubjÅ)�”}”(hŒ©``tx_aborted_errors`` Part of aggregate "carrier" errors in `/proc/net/dev`. For IEEE 802.3 devices capable of half-duplex operation this counter must be equivalent to: ”h]”(jË)�”}”(hŒ``tx_aborted_errors``”h]”j*)�”}”(hj‹ h]”hŒtx_aborted_errors”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj‰ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K¦hj… ubjå)�”}”(hhh]”hï)�”}”(hŒ’Part of aggregate "carrier" errors in `/proc/net/dev`. For IEEE 802.3 devices capable of half-duplex operation this counter must be equivalent to:”h]”(hŒ*Part of aggregate “carrierâ€� errors in ”…”�”}”(hj¤ h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¤ ubhŒ]. For IEEE 802.3 devices capable of half-duplex operation this counter must be equivalent to:”…”�”}”(hj¤ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K¤hj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj… ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j  h´K¦hjÁubjÅ)�”}”(hŒ�``tx_carrier_errors`` Number of frame transmission errors due to loss of carrier during transmission. Part of aggregate "carrier" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``tx_carrier_errors``”h]”j*)�”}”(hj× h]”hŒtx_carrier_errors”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjÕ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K°hjÑ ubjå)�”}”(hhh]”hï)�”}”(hŒ†Number of frame transmission errors due to loss of carrier during transmission. Part of aggregate "carrier" errors in `/proc/net/dev`.”h]”(hŒzNumber of frame transmission errors due to loss of carrier during transmission. Part of aggregate “carrierâ€� errors in ”…”�”}”(hjð h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjð ubhŒ.”…”�”}”(hjð h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K®hjí ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjÑ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jì h´K°hjÁubjÅ)�”}”(hX3``tx_fifo_errors`` Number of frame transmission errors due to device FIFO underrun / underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission. Part of aggregate "carrier" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``tx_fifo_errors``”h]”j*)�”}”(hj#h]”hŒtx_fifo_errors”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´Kºhjubjå)�”}”(hhh]”hï)�”}”(hXNumber of frame transmission errors due to device FIFO underrun / underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission. Part of aggregate "carrier" errors in `/proc/net/dev`.”h]”(hXNumber of frame transmission errors due to device FIFO underrun / underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission. Part of aggregate “carrierâ€� errors in ”…”�”}”(hj<h²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj<ubhŒ.”…”�”}”(hj<h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K¶hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j8h´KºhjÁubjÅ)�”}”(hŒ“``tx_heartbeat_errors`` Number of Heartbeat / SQE Test errors for old half-duplex Ethernet. Part of aggregate "carrier" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``tx_heartbeat_errors``”h]”j*)�”}”(hjoh]”hŒtx_heartbeat_errors”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjmubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K¾hjiubjå)�”}”(hhh]”hï)�”}”(hŒzNumber of Heartbeat / SQE Test errors for old half-duplex Ethernet. Part of aggregate "carrier" errors in `/proc/net/dev`.”h]”(hŒnNumber of Heartbeat / SQE Test errors for old half-duplex Ethernet. Part of aggregate “carrierâ€� errors in ”…”�”}”(hjˆh²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjˆubhŒ.”…”�”}”(hjˆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K¼hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j„h´K¾hjÁubjÅ)�”}”(hŒ½``tx_window_errors`` Number of frame transmission errors due to late collisions (for Ethernet - after the first 64B of transmission). Part of aggregate "carrier" errors in `/proc/net/dev`. ”h]”(jË)�”}”(hŒ``tx_window_errors``”h]”j*)�”}”(hj»h]”hŒtx_window_errors”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÆhjµubjå)�”}”(hhh]”hï)�”}”(hŒ§Number of frame transmission errors due to late collisions (for Ethernet - after the first 64B of transmission). Part of aggregate "carrier" errors in `/proc/net/dev`.”h]”(hŒ›Number of frame transmission errors due to late collisions (for Ethernet - after the first 64B of transmission). Part of aggregate “carrierâ€� errors in ”…”�”}”(hjÔh²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÔubhŒ.”…”�”}”(hjÔh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÄhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jÐh´KÆhjÁubjÅ)�”}”(hŒ§``rx_compressed`` Number of correctly received compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP). ”h]”(jË)�”}”(hŒ``rx_compressed``”h]”j*)�”}”(hjh]”hŒ rx_compressed”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÎhjubjå)�”}”(hhh]”hï)�”}”(hŒ”Number of correctly received compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).”h]”hŒ”Number of correctly received compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÌhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jh´KÎhjÁubjÅ)�”}”(hŒ ``tx_compressed`` Number of transmitted compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP). ”h]”(jË)�”}”(hŒ``tx_compressed``”h]”j*)�”}”(hjAh]”hŒ tx_compressed”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÒhj;ubjå)�”}”(hhh]”hï)�”}”(hŒ�Number of transmitted compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).”h]”hŒ�Number of transmitted compressed packets. This counters is only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÐhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jVh´KÒhjÁubjÅ)�”}”(hŒ·``rx_nohandler`` Number of packets received on the interface but dropped by the networking stack because the device is not designated to receive packets (e.g. backup link in a bond). ”h]”(jË)�”}”(hŒ``rx_nohandler``”h]”j*)�”}”(hj{h]”hŒ rx_nohandler”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”•uh´KÖhjuubjå)�”}”(hhh]”hï)�”}”(hŒ¥Number of packets received on the interface but dropped by the networking stack because the device is not designated to receive packets (e.g. backup link in a bond).”h]”hŒ¥Number of packets received on the interface but dropped by the networking stack because the device is not designated to receive packets (e.g. backup link in a bond).”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÔhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³j�h´KÖhjÁubjÅ)�”}”(hŒ^``rx_otherhost_dropped`` Number of packets dropped due to mismatch in destination MAC address.”h]”(jË)�”}”(hŒ``rx_otherhost_dropped``”h]”j*)�”}”(hjµh]”hŒrx_otherhost_dropped”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÊh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KØhj¯ubjå)�”}”(hhh]”hï)�”}”(hŒENumber of packets dropped due to mismatch in destination MAC address.”h]”hŒENumber of packets dropped due to mismatch in destination MAC address.”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÊh´KØhjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÄh³jÊh´KØhjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjuubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÃh²hh³jåh´Nubhï)�”}”(hŒ**Description**”h]”j~)�”}”(hj÷h]”hŒ Description”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KÜhjÃh²hubj )�”}”(hX— For IEEE 802.3 devices should count the length of Ethernet Frames excluding the FCS. For IEEE 802.3 devices should count the length of Ethernet Frames excluding the FCS. For IEEE 802.3 devices this counter may be equivalent to: - 30.3.1.1.21 aMulticastFramesReceivedOK For IEEE 802.3 devices this counter should be equivalent to a sum of the following attributes: - 30.3.1.1.23 aInRangeLengthErrors - 30.3.1.1.24 aOutOfRangeLengthField - 30.3.1.1.25 aFrameTooLongErrors Historically the count of overflow events. Such events may be reported in the receive descriptors or via interrupts, and may not correspond one-to-one with dropped packets. The recommended interpretation for high speed interfaces is - number of packets dropped because they did not fit into buffers provided by the host, e.g. packets larger than MTU or next buffer in the ring was not available for a scatter transfer. Part of aggregate "frame" errors in `/proc/net/dev`. This statistics was historically used interchangeably with **rx_fifo_errors**. This statistic corresponds to hardware events and is not commonly used on software devices. For IEEE 802.3 devices this counter must be equivalent to: - 30.3.1.1.6 aFrameCheckSequenceErrors For IEEE 802.3 devices this counter should be equivalent to: - 30.3.1.1.7 aAlignmentErrors Historically the count of overflow events. Those events may be reported in the receive descriptors or via interrupts, and may not correspond one-to-one with dropped packets. This statistics was used interchangeably with **rx_over_errors**. Not recommended for use in drivers for high speed interfaces. This statistic is used on software devices, e.g. to count software packet queue overflow (can) or sequencing errors (GRE). Counts number of packets dropped by the device due to lack of buffer space. This usually indicates that the host interface is slower than the network interface, or host is not keeping up with the receive packet rate. This statistic corresponds to hardware events and is not used on software devices. - 30.3.1.1.11 aFramesAbortedDueToXSColls High speed interfaces may use this counter as a general device discard counter. For IEEE 802.3 devices this counter must be equivalent to: - 30.3.1.1.13 aCarrierSenseErrors For IEEE 802.3 devices possibly equivalent to: - 30.3.2.1.4 aSQETestErrors For IEEE 802.3 devices this counter must be equivalent to: - 30.3.1.1.10 aLateCollisions ”h]”(hï)�”}”(hŒTFor IEEE 802.3 devices should count the length of Ethernet Frames excluding the FCS.”h]”hŒTFor IEEE 802.3 devices should count the length of Ethernet Frames excluding the FCS.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K9hj ubhï)�”}”(hŒTFor IEEE 802.3 devices should count the length of Ethernet Frames excluding the FCS.”h]”hŒTFor IEEE 802.3 devices should count the length of Ethernet Frames excluding the FCS.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K=hj ubhï)�”}”(hŒ9For IEEE 802.3 devices this counter may be equivalent to:”h]”hŒ9For IEEE 802.3 devices this counter may be equivalent to:”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KAhj ubj )�”}”(hŒ*- 30.3.1.1.21 aMulticastFramesReceivedOK ”h]”j)�”}”(hhh]”j)�”}”(hŒ(30.3.1.1.21 aMulticastFramesReceivedOK ”h]”hï)�”}”(hŒ&30.3.1.1.21 aMulticastFramesReceivedOK”h]”hŒ&30.3.1.1.21 aMulticastFramesReceivedOK”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KChjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjBubah}”(h]”h ]”h"]”h$]”h&]”j�j�uh1jh³jWh´KChj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jWh´KChj ubhï)�”}”(hŒ^For IEEE 802.3 devices this counter should be equivalent to a sum of the following attributes:”h]”hŒ^For IEEE 802.3 devices this counter should be equivalent to a sum of the following attributes:”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KFhj ubj )�”}”(hŒk- 30.3.1.1.23 aInRangeLengthErrors - 30.3.1.1.24 aOutOfRangeLengthField - 30.3.1.1.25 aFrameTooLongErrors ”h]”j)�”}”(hhh]”(j)�”}”(hŒ 30.3.1.1.23 aInRangeLengthErrors”h]”hï)�”}”(hj‚h]”hŒ 30.3.1.1.23 aInRangeLengthErrors”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KIhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}ubj)�”}”(hŒ"30.3.1.1.24 aOutOfRangeLengthField”h]”hï)�”}”(hjšh]”hŒ"30.3.1.1.24 aOutOfRangeLengthField”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KJhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}ubj)�”}”(hŒ!30.3.1.1.25 aFrameTooLongErrors ”h]”hï)�”}”(hŒ30.3.1.1.25 aFrameTooLongErrors”h]”hŒ30.3.1.1.25 aFrameTooLongErrors”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KKhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}ubeh}”(h]”h ]”h"]”h$]”h&]”j�j�uh1jh³j‘h´KIhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‘h´KIhj ubhï)�”}”(hŒ¬Historically the count of overflow events. Such events may be reported in the receive descriptors or via interrupts, and may not correspond one-to-one with dropped packets.”h]”hŒ¬Historically the count of overflow events. Such events may be reported in the receive descriptors or via interrupts, and may not correspond one-to-one with dropped packets.”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KNhj ubhï)�”}”(hŒõThe recommended interpretation for high speed interfaces is - number of packets dropped because they did not fit into buffers provided by the host, e.g. packets larger than MTU or next buffer in the ring was not available for a scatter transfer.”h]”hŒõThe recommended interpretation for high speed interfaces is - number of packets dropped because they did not fit into buffers provided by the host, e.g. packets larger than MTU or next buffer in the ring was not available for a scatter transfer.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KRhj ubhï)�”}”(hŒ4Part of aggregate "frame" errors in `/proc/net/dev`.”h]”(hŒ(Part of aggregate “frameâ€� errors in ”…”�”}”(hjóh²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjóubhŒ.”…”�”}”(hjóh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KWhj ubhï)�”}”(hŒNThis statistics was historically used interchangeably with **rx_fifo_errors**.”h]”(hŒ;This statistics was historically used interchangeably with ”…”�”}”(hjh²hh³Nh´Nubj~)�”}”(hŒ**rx_fifo_errors**”h]”hŒrx_fifo_errors”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KYhj ubhï)�”}”(hŒ[This statistic corresponds to hardware events and is not commonly used on software devices.”h]”hŒ[This statistic corresponds to hardware events and is not commonly used on software devices.”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K\hj ubhï)�”}”(hŒ:For IEEE 802.3 devices this counter must be equivalent to:”h]”hŒ:For IEEE 802.3 devices this counter must be equivalent to:”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´K`hj ubj )�”}”(hŒ(- 30.3.1.1.6 aFrameCheckSequenceErrors ”h]”j)�”}”(hhh]”j)�”}”(hŒ&30.3.1.1.6 aFrameCheckSequenceErrors ”h]”hï)�”}”(hŒ$30.3.1.1.6 aFrameCheckSequenceErrors”h]”hŒ$30.3.1.1.6 aFrameCheckSequenceErrors”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/networking/statistics:201: ./include/uapi/linux/if_link.h”h´KbhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjWubah}”(h]”h ]”h"]”h$]”h&]”j�j�uh1jh³jlh´KbhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jlh´Kbhj ubhï)�”}”(hŒ` exclusively via `.ndo_get_stats64`. Reporting such standard stats via ethtool or debugfs will not be accepted.”h]”(hŒEDrivers should report all statistics which have a matching member in ”…”�”}”(hj"h²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hj,h]”hŒstruct rtnl_link_stats64”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hj*ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”sbjHŒrtnl_link_stats64”uh1hh³hÇh´KÏhj"ubhŒ exclusively via ”…”�”}”(hj"h²hh³Nh´Nubj±)�”}”(hŒ`.ndo_get_stats64`”h]”hŒ.ndo_get_stats64”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj"ubhŒL. Reporting such standard stats via ethtool or debugfs will not be accepted.”…”�”}”(hj"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÏhjh²hubhï)�”}”(hŒáDrivers must ensure best possible compliance with :c:type:`struct rtnl_link_stats64 `. Please note for example that detailed error statistics must be added into the general `rx_error` / `tx_error` counters.”h]”(hŒ2Drivers must ensure best possible compliance with ”…”�”}”(hjmh²hh³Nh´Nubh)�”}”(hŒ6:c:type:`struct rtnl_link_stats64 `”h]”j*)�”}”(hjwh]”hŒstruct rtnl_link_stats64”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”(j5j6Œc-type”eh"]”h$]”h&]”uh1j)hjuubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jBŒ refdomain”j6Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jHjLjHŒrtnl_link_stats64”uh1hh³hÇh´KÔhjmubhŒX. Please note for example that detailed error statistics must be added into the general ”…”�”}”(hjmh²hh³Nh´Nubj±)�”}”(hŒ `rx_error`”h]”hŒrx_error”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjmubhŒ / ”…”�”}”(hjmh²hh³Nh´Nubj±)�”}”(hŒ `tx_error`”h]”hŒtx_error”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjmubhŒ counters.”…”�”}”(hjmh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÔhjh²hubhï)�”}”(hXeThe `.ndo_get_stats64` callback can not sleep because of accesses via `/proc/net/dev`. If driver may sleep when retrieving the statistics from the device it should do so periodically asynchronously and only return a recent copy from `.ndo_get_stats64`. Ethtool interrupt coalescing interface allows setting the frequency of refreshing statistics, if needed.”h]”(hŒThe ”…”�”}”(hjÂh²hh³Nh´Nubj±)�”}”(hŒ`.ndo_get_stats64`”h]”hŒ.ndo_get_stats64”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÂubhŒ0 callback can not sleep because of accesses via ”…”�”}”(hjÂh²hh³Nh´Nubj±)�”}”(hŒ`/proc/net/dev`”h]”hŒ /proc/net/dev”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÂubhŒ”. If driver may sleep when retrieving the statistics from the device it should do so periodically asynchronously and only return a recent copy from ”…”�”}”(hjÂh²hh³Nh´Nubj±)�”}”(hŒ`.ndo_get_stats64`”h]”hŒ.ndo_get_stats64”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÂubhŒj. Ethtool interrupt coalescing interface allows setting the frequency of refreshing statistics, if needed.”…”�”}”(hjÂh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÙhjh²hubhï)�”}”(hŒµRetrieving ethtool statistics is a multi-syscall process, drivers are advised to keep the number of statistics constant to avoid race conditions with user space trying to read them.”h]”hŒµRetrieving ethtool statistics is a multi-syscall process, drivers are advised to keep the number of statistics constant to avoid race conditions with user space trying to read them.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kßhjh²hubhï)�”}”(hŒZStatistics must persist across routine operations like bringing the interface down and up.”h]”hŒZStatistics must persist across routine operations like bringing the interface down and up.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kãhjh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒKernel-internal data structures”h]”hŒKernel-internal data structures”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj"h²hh³hÇh´Kçubhï)�”}”(hX*The following structures are internal to the kernel, their members are translated to netlink attributes when dumped. Fields are pre-initialized to ``ETHTOOL_STAT_NOT_SET`` (by ``ethtool_stats_init()``); drivers must leave fields they do not report at that value rather than overwriting them with 0.”h]”(hŒ“The following structures are internal to the kernel, their members are translated to netlink attributes when dumped. Fields are pre-initialized to ”…”�”}”(hj3h²hh³Nh´Nubj*)�”}”(hŒ``ETHTOOL_STAT_NOT_SET``”h]”hŒETHTOOL_STAT_NOT_SET”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj3ubhŒ (by ”…”�”}”(hj3h²hh³Nh´Nubj*)�”}”(hŒ``ethtool_stats_init()``”h]”hŒethtool_stats_init()”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj3ubhŒb); drivers must leave fields they do not report at that value rather than overwriting them with 0.”…”�”}”(hj3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kéhj"h²hubj)�”}”(hhh]”(j)�”}”(hŒ!``struct ethtool_eth_ctrl_stats``”h]”hï)�”}”(hjjh]”j*)�”}”(hjjh]”hŒstruct ethtool_eth_ctrl_stats”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kïhjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ ``struct ethtool_eth_mac_stats``”h]”hï)�”}”(hjŠh]”j*)�”}”(hjŠh]”hŒstruct ethtool_eth_mac_stats”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kðhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ ``struct ethtool_eth_phy_stats``”h]”hï)�”}”(hjªh]”j*)�”}”(hjªh]”hŒstruct ethtool_eth_phy_stats”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kñhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_fec_hist``”h]”hï)�”}”(hjÊh]”j*)�”}”(hjÊh]”hŒstruct ethtool_fec_hist”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KòhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_fec_stats``”h]”hï)�”}”(hjêh]”j*)�”}”(hjêh]”hŒstruct ethtool_fec_stats”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kóhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ!``struct ethtool_link_ext_stats``”h]”hï)�”}”(hj h]”j*)�”}”(hj h]”hŒstruct ethtool_link_ext_stats”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kôhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_mm_stats``”h]”hï)�”}”(hj*h]”j*)�”}”(hj*h]”hŒstruct ethtool_mm_stats”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kõhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_pause_stats``”h]”hï)�”}”(hjJh]”j*)�”}”(hjJh]”hŒstruct ethtool_pause_stats”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KöhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_phy_stats``”h]”hï)�”}”(hjjh]”j*)�”}”(hjjh]”hŒstruct ethtool_phy_stats”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K÷hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_rmon_stats``”h]”hï)�”}”(hjŠh]”j*)�”}”(hjŠh]”hŒstruct ethtool_rmon_stats”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Køhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj)�”}”(hŒ``struct ethtool_ts_stats``”h]”hï)�”}”(hjªh]”j*)�”}”(hjªh]”hŒstruct ethtool_ts_stats”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kùhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j�j�uh1jh³hÇh´Kïhj"h²hubeh}”(h]”Œkernel-internal-data-structures”ah ]”h"]”Œkernel-internal data structures”ah$]”h&]”uh1hÈhjh²hh³hÇh´Kçubeh}”(h]”Œnotes-for-driver-authors”ah ]”h"]”Œnotes for driver authors”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KÍubeh}”(h]”Œinterface-statistics”ah ]”h"]”Œinterface statistics”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”Œentry”Œ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”}”(jãjàjµj²j»j¸j³j°jfjcŒethtool”Nj­jªjÀj½j0j-jÝjÚjÒjÏjÊjÇjj|j¸jµjj jÛjØjÓjÐuŒ nametypes”}”(jã‰jµ‰j»‰j³‰jf‰jM‰j­‰jÀ‰j0‰j݉jÒ‰jʉj‰j¸‰j‰jÛ‰jÓ‰uh}”(jàhÊj²hÝj¸j—j°jojcj¾jZjÝjªjij½j¸j-jÉjÚj3jÏjàjÇj˜jpjÕj|jujµj‚j jÃjãjíjØjjÐj"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”“”}”jKs…”R”Œparse_messages”]”hŒsystem_message”“”)�”}”(hhh]”hï)�”}”(hŒ*Duplicate implicit target name: "ethtool".”h]”hŒ.Duplicate implicit target name: “ethtoolâ€�.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhjnubah}”(h]”h ]”h"]”h$]”h&]”jpaŒlevel”KŒtype”ŒINFO”Œsource”hÇŒline”K¦uh1jlhjÕh²hh³hÇh´K¦ubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.