[PATCH v2 22/26] net/hinic3: add SP230 VF software statistics
Jiacheng Ye
yejiacheng4 at h-partners.com
Wed Oct 14 17:09:18 CEST 2026
The SP230 VF does not expose rx/tx counters through the vport statistics
path, so aggregate the software queue counters instead to return meaningful
ipackets/ibytes/opackets/obytes for VF ports.
Signed-off-by: Jiacheng Ye <yejiacheng4 at h-partners.com>
---
drivers/net/hinic3/hinic3_ethdev.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/net/hinic3/hinic3_ethdev.c b/drivers/net/hinic3/hinic3_ethdev.c
index b2f1d618c0..ea2a5c55ca 100644
--- a/drivers/net/hinic3/hinic3_ethdev.c
+++ b/drivers/net/hinic3/hinic3_ethdev.c
@@ -2954,6 +2954,26 @@ hinic3_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats,
}
}
+ if (HINIC3_IS_VF(nic_dev->hwdev) && HINIC3_IS_SP230_NIC(nic_dev)) {
+ for (uint32_t i = 0; i < nic_dev->num_rqs; i++) {
+ struct hinic3_rxq *rxq = nic_dev->rxqs[i];
+ if (rxq == NULL)
+ continue;
+ stats->ipackets += rxq->rxq_stats.packets;
+ stats->ibytes += rxq->rxq_stats.bytes;
+ stats->imissed += rxq->rxq_stats.dropped;
+ }
+
+ for (uint32_t i = 0; i < nic_dev->num_sqs; i++) {
+ struct hinic3_txq *txq = nic_dev->txqs[i];
+ if (txq == NULL)
+ continue;
+ stats->opackets += txq->txq_stats.packets;
+ stats->obytes += txq->txq_stats.bytes;
+ }
+ return 0;
+ }
+
/* Vport stats. */
stats->oerrors += vport_stats.tx_discard_vport;
--
2.33.0
More information about the dev
mailing list