diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c index 1245fc8..1ab5edb 100644 --- a/sys/dev/ixgbe/ixgbe.c +++ b/sys/dev/ixgbe/ixgbe.c @@ -5174,7 +5174,7 @@ ixgbe_update_stats_counters(struct adapter *adapter) struct ifnet *ifp = adapter->ifp; struct ixgbe_hw *hw = &adapter->hw; u32 missed_rx = 0, bprc, lxon, lxoff, total; - u64 total_missed_rx = 0; + u64 total_missed_rx = 0, odrops; adapter->stats.crcerrs += IXGBE_READ_REG(hw, IXGBE_CRCERRS); adapter->stats.illerrc += IXGBE_READ_REG(hw, IXGBE_ILLERRC); @@ -5305,6 +5305,11 @@ ixgbe_update_stats_counters(struct adapter *adapter) adapter->stats.fcoedwtc += IXGBE_READ_REG(hw, IXGBE_FCOEDWTC); } + odrops = 0; + for (int i = 0; i < adapter->num_queues; i++) { + odrops += adapter->tx_rings[i].br->br_drops; + } + /* Fill out the OS statistics structure */ ifp->if_ipackets = adapter->stats.gprc; ifp->if_opackets = adapter->stats.gptc; @@ -5317,6 +5322,7 @@ ixgbe_update_stats_counters(struct adapter *adapter) /* Rx Errors */ ifp->if_iqdrops = total_missed_rx; ifp->if_ierrors = adapter->stats.crcerrs + adapter->stats.rlec; + ifp->if_oerrors = odrops; } /** ixgbe_sysctl_tdh_handler - Handler function