aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2022-05-04 16:57:15 +0300
committerMatias Elo <matias.elo@nokia.com>2022-05-30 14:41:40 +0300
commitf19650fbe4fd4f09ca6fdc16557467d7882b64d2 (patch)
treed07673311848cb5d14696ab68db97daa9c4b0e24 /platform
parentd7afbc7d5ec0483c3a3915961b6f73f86ac6febb (diff)
linux-dpdk: pktio: refactor statistic counters
Remove old unused RX counters (DPDK counters are used instead) and utilize correct atomic counter for packets discarded by ODP software. Add missing capability for outbound discarded packets. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Diffstat (limited to 'platform')
-rw-r--r--platform/linux-dpdk/odp_packet_dpdk.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c
index e078754cb..83b079789 100644
--- a/platform/linux-dpdk/odp_packet_dpdk.c
+++ b/platform/linux-dpdk/odp_packet_dpdk.c
@@ -616,6 +616,7 @@ static int dpdk_init_capability(pktio_entry_t *pktio_entry,
capa->stats.pktio.counter.out_octets = 1;
capa->stats.pktio.counter.out_packets = 1;
capa->stats.pktio.counter.out_errors = 1;
+ capa->stats.pktio.counter.out_discards = 1;
capa->stats.pktin_queue.counter.octets = 1;
capa->stats.pktin_queue.counter.packets = 1;
@@ -980,7 +981,7 @@ int _odp_input_pkts(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[], int nu
}
if (pktio_cls_enabled(pktio_entry)) {
- int failed = 0, success = 0;
+ int success = 0;
for (i = 0; i < num_pkts; i++) {
odp_packet_t pkt = pkt_table[i];
@@ -1000,20 +1001,17 @@ int _odp_input_pkts(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[], int nu
odp_packet_free(pkt);
if (odp_unlikely(new_pkt == ODP_PACKET_INVALID)) {
- failed++;
+ odp_atomic_inc_u64(&pktio_entry->s.stats_extra.in_discards);
continue;
}
pkt_table[i] = new_pkt;
pkt = new_pkt;
}
- pktio_entry->s.stats.in_octets += odp_packet_len(pkt);
if (success != i)
pkt_table[success] = pkt;
++success;
}
- pktio_entry->s.stats.in_errors += failed;
- pktio_entry->s.stats.in_ucast_pkts += num_pkts - failed;
num_pkts = success;
}
@@ -1050,7 +1048,6 @@ static int recv_pkt_dpdk(pktio_entry_t *pktio_entry, int index,
odp_packet_free(min_burst[i]);
}
- pktio_entry->s.stats.in_discards += nb_rx - num;
nb_rx = RTE_MIN(num, nb_rx);
}