| // Copyright 2018 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SHILL_NET_RTNL_LINK_STATS_H_ |
| #define SHILL_NET_RTNL_LINK_STATS_H_ |
| |
| #include <stdint.h> |
| |
| // Pre-v4.6 layout for rtnl_link_stats64. Linux commit 6e7333d315a7 ("net: add |
| // rx_nohandler stat counter") added an additional field, and for pre-v4.6 |
| // compatibility, we just ignore it. |
| // TODO(briannorris): drop this when older kernels are phased out. |
| struct old_rtnl_link_stats64 { |
| uint64_t rx_packets; |
| uint64_t tx_packets; |
| uint64_t rx_bytes; |
| uint64_t tx_bytes; |
| uint64_t rx_errors; |
| uint64_t tx_errors; |
| uint64_t rx_dropped; |
| uint64_t tx_dropped; |
| uint64_t multicast; |
| uint64_t collisions; |
| |
| // detailed rx_errors |
| uint64_t rx_length_errors; |
| uint64_t rx_over_errors; |
| uint64_t rx_crc_errors; |
| uint64_t rx_frame_errors; |
| uint64_t rx_fifo_errors; |
| uint64_t rx_missed_errors; |
| |
| // detailed tx_errors |
| uint64_t tx_aborted_errors; |
| uint64_t tx_carrier_errors; |
| uint64_t tx_fifo_errors; |
| uint64_t tx_heartbeat_errors; |
| uint64_t tx_window_errors; |
| |
| // for cslip etc |
| uint64_t rx_compressed; |
| uint64_t tx_compressed; |
| }; |
| |
| #endif // SHILL_NET_RTNL_LINK_STATS_H_ |