ix(4): Report RX errors as sum of all RX error counters

HW keeps track of RX errors using several counters, each for
specific type of errors. Report RX errors to OS as sum
of all those counters: CRC errors, illegal bytes, checksum,
length, undersize, fragment, oversize and jabber errors.

Also, add new "rx_errs" sysctl in the dev.ix.N.mac_stats tree. This is
to provide an another way to display the sum of RX errors.

Signed-off-by: Piotr Pietruszewski <[email protected]>

Reviewed By: erj
Tested By: [email protected]
Sponsored By: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D27191
This commit is contained in:
Piotr Pietruszewski authored and Eric Joyner committed 2021-03-02 17:25:32 -08:00
1 parent caed7b1c39
commit afb1aa4e6d
2 files changed
+30 -1

No files matched your search

+18 -1
View File
@@ -1531,7 +1531,22 @@ ixgbe_update_stats_counters(struct adapter *adapter)
IXGBE_SET_OMCASTS(adapter, stats->mptc);
IXGBE_SET_COLLISIONS(adapter, 0);
IXGBE_SET_IQDROPS(adapter, total_missed_rx);
IXGBE_SET_IERRORS(adapter, stats->crcerrs + stats->rlec);
/*
* Aggregate following types of errors as RX errors:
* - CRC error count,
* - illegal byte error count,
* - checksum error count,
* - missed packets count,
* - length error count,
* - undersized packets count,
* - fragmented packets count,
* - oversized packets count,
* - jabber count.
*/
IXGBE_SET_IERRORS(adapter, stats->crcerrs + stats->illerrc + stats->xec +
stats->mpc[0] + stats->rlec + stats->ruc + stats->rfc + stats->roc +
stats->rjc);
} /* ixgbe_update_stats_counters */
/************************************************************************
@@ -1621,6 +1636,8 @@ ixgbe_add_hw_stats(struct adapter *adapter)
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "MAC Statistics");
stat_list = SYSCTL_CHILDREN(stat_node);
SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_errs",
CTLFLAG_RD, &adapter->ierrors, IXGBE_SYSCTL_DESC_RX_ERRS);
SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "crc_errs",
CTLFLAG_RD, &stats->crcerrs, "CRC Errors");
SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "ill_errs",
+12
View File
@@ -536,6 +536,18 @@ struct adapter {
"\t2 - tx pause\n" \
"\t3 - tx and rx pause"
#define IXGBE_SYSCTL_DESC_RX_ERRS \
"\nSum of the following RX errors counters:\n" \
" * CRC errors,\n" \
" * illegal byte error count,\n" \
" * checksum error count,\n" \
" * missed packet count,\n" \
" * length error count,\n" \
" * undersized packets count,\n" \
" * fragmented packets count,\n" \
" * oversized packets count,\n" \
" * jabber count."
/* Workaround to make 8.0 buildable */
#if __FreeBSD_version >= 800000 && __FreeBSD_version < 800504
static __inline int