On Wed, 14 Jun 2017 00:10:34 +0100
Salil Mehta <salil.me...@huawei.com> wrote:

> +/* netdev related stats */
> +#define HNS3_NETDEV_STAT(_string, _member)                   \
> +     { _string,                                              \
> +       FIELD_SIZEOF(struct rtnl_link_stats64, _member),      \
> +       offsetof(struct rtnl_link_stats64, _member),          \
> +     }
> +
> +static const struct hns3_stats hns3_netdev_stats[] = {
> +     /* misc. Rx/Tx statistics */
> +     HNS3_NETDEV_STAT("rx_packets", rx_packets),
> +     HNS3_NETDEV_STAT("tx_packets", tx_packets),
> +     HNS3_NETDEV_STAT("rx_bytes", rx_bytes),
> +     HNS3_NETDEV_STAT("tx_bytes", tx_bytes),
> +     HNS3_NETDEV_STAT("rx_errors", rx_errors),
> +     HNS3_NETDEV_STAT("tx_errors", tx_errors),
> +     HNS3_NETDEV_STAT("rx_dropped", rx_dropped),
> +     HNS3_NETDEV_STAT("tx_dropped", tx_dropped),
> +     HNS3_NETDEV_STAT("multicast", multicast),
> +     HNS3_NETDEV_STAT("collisions", collisions),
> +
> +     /* detailed Rx errors */
> +     HNS3_NETDEV_STAT("rx_length_errors", rx_length_errors),
> +     HNS3_NETDEV_STAT("rx_over_errors", rx_over_errors),
> +     HNS3_NETDEV_STAT("rx_crc_errors", rx_crc_errors),
> +     HNS3_NETDEV_STAT("rx_frame_errors", rx_frame_errors),
> +     HNS3_NETDEV_STAT("rx_fifo_errors", rx_fifo_errors),
> +     HNS3_NETDEV_STAT("rx_missed_errors", rx_missed_errors),
> +
> +     /* detailed Tx errors */
> +     HNS3_NETDEV_STAT("tx_aborted_errors", tx_aborted_errors),
> +     HNS3_NETDEV_STAT("tx_carrier_errors", tx_carrier_errors),
> +     HNS3_NETDEV_STAT("tx_fifo_errors", tx_fifo_errors),
> +     HNS3_NETDEV_STAT("tx_heartbeat_errors", tx_heartbeat_errors),
> +     HNS3_NETDEV_STAT("tx_window_errors", tx_window_errors),
> +

Ethtool statistics should be reserved for device specific values and
should not be used just to clone statistics that already exist in
the network device.

Reply via email to