[RFC PATCH v4 1/2] net/bonding: skip unavailable member stats
Weijun Pan
wpan3636 at gmail.com
Sun Aug 30 03:14:44 CEST 2026
bond_ethdev_stats_get() accumulates statistics from each bonding
member. If rte_eth_stats_get() fails for a member, the local
member_stats structure may be left unchanged.
Skip members whose statistics cannot be read, instead of accumulating
stale or uninitialized counters.
Signed-off-by: Weijun Pan <wpan3636 at gmail.com>
---
v4:
- Add this preparatory fix as a separate patch.
drivers/net/bonding/rte_eth_bond_pmd.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 6a4f997b5a..6f10dbb0c7 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2677,9 +2677,12 @@ bond_ethdev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats,
struct bond_dev_private *internals = dev->data->dev_private;
struct rte_eth_stats member_stats;
int i;
+ int ret;
for (i = 0; i < internals->member_count; i++) {
- rte_eth_stats_get(internals->members[i].port_id, &member_stats);
+ ret = rte_eth_stats_get(internals->members[i].port_id, &member_stats);
+ if (ret != 0)
+ continue;
stats->ipackets += member_stats.ipackets;
stats->opackets += member_stats.opackets;
--
2.34.1
More information about the dev
mailing list