mirror of
https://github.com/openvswitch/ovs
synced 2025-10-17 14:28:02 +00:00
Linux 2.6.35 added struct rtnl_link_stats64, which as a set of 64-bit network device counters is what the OVS datapath needs. We might as well use it instead of our own. This commit moves the if_link.h compat header from datapath/ into the top-level include/ directory so that it is visible both to kernel and userspace code. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
43 lines
1.3 KiB
C
43 lines
1.3 KiB
C
#ifndef __LINUX_IF_LINK_WRAPPER_H
|
|
#define __LINUX_IF_LINK_WRAPPER_H 1
|
|
|
|
#include_next <linux/if_link.h>
|
|
|
|
#include <linux/version.h>
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
|
|
/* The main device statistics structure */
|
|
struct rtnl_link_stats64 {
|
|
__u64 rx_packets; /* total packets received */
|
|
__u64 tx_packets; /* total packets transmitted */
|
|
__u64 rx_bytes; /* total bytes received */
|
|
__u64 tx_bytes; /* total bytes transmitted */
|
|
__u64 rx_errors; /* bad packets received */
|
|
__u64 tx_errors; /* packet transmit problems */
|
|
__u64 rx_dropped; /* no space in linux buffers */
|
|
__u64 tx_dropped; /* no space available in linux */
|
|
__u64 multicast; /* multicast packets received */
|
|
__u64 collisions;
|
|
|
|
/* detailed rx_errors: */
|
|
__u64 rx_length_errors;
|
|
__u64 rx_over_errors; /* receiver ring buff overflow */
|
|
__u64 rx_crc_errors; /* recved pkt with crc error */
|
|
__u64 rx_frame_errors; /* recv'd frame alignment error */
|
|
__u64 rx_fifo_errors; /* recv'r fifo overrun */
|
|
__u64 rx_missed_errors; /* receiver missed packet */
|
|
|
|
/* detailed tx_errors */
|
|
__u64 tx_aborted_errors;
|
|
__u64 tx_carrier_errors;
|
|
__u64 tx_fifo_errors;
|
|
__u64 tx_heartbeat_errors;
|
|
__u64 tx_window_errors;
|
|
|
|
/* for cslip etc */
|
|
__u64 rx_compressed;
|
|
__u64 tx_compressed;
|
|
};
|
|
#endif /* linux kernel < 2.6.35 */
|
|
|
|
#endif
|