HI Pavan, snipped > + > +/* Print out statistics on packets dropped */ void print_stats(struct > +l2fwd_resources *rsrc) { > + uint64_t total_packets_dropped, total_packets_tx, total_packets_rx; > + uint32_t port_id; > + > + total_packets_dropped = 0; > + total_packets_tx = 0; > + total_packets_rx = 0; > + > + const char clr[] = {27, '[', '2', 'J', '\0' }; > + const char topLeft[] = {27, '[', '1', ';', '1', 'H', '\0' }; > + > + /* Clear screen and move to top left */ > + printf("%s%s", clr, topLeft); > + > + printf("\nPort statistics ===================================="); > + > + for (port_id = 0; port_id < RTE_MAX_ETHPORTS; port_id++) { > + /* skip disabled ports */ > + if ((rsrc->enabled_port_mask & (1 << port_id)) == 0) > + continue; > + printf("\nStatistics for port %u ------------------------------" > + "\nPackets sent: %24"PRIu64 > + "\nPackets received: %20"PRIu64 > + "\nPackets dropped: %21"PRIu64, > + port_id, > + rsrc->port_stats[port_id].tx, > + rsrc->port_stats[port_id].rx, > + rsrc->port_stats[port_id].dropped); > + > + total_packets_dropped += > + rsrc->port_stats[port_id].dropped; > + total_packets_tx += rsrc->port_stats[port_id].tx; > + total_packets_rx += rsrc->port_stats[port_id].rx; > + } > + printf("\nAggregate statistics ===============================" > + "\nTotal packets sent: %18"PRIu64 > + "\nTotal packets received: %14"PRIu64 > + "\nTotal packets dropped: %15"PRIu64, > + total_packets_tx, > + total_packets_rx, > + total_packets_dropped); > + > printf("\n================================================ > ====\n"); > +} Would not it be useful to in co-operate Eventdev stats and RX-TX event adapter stats? So one can see drops at each stage as
`RX ports-queues stats ==> RX event adapter ==> Eventdev ==> TX adapter ==> TX ports-queues stats` snipped