Hi, > -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Lance Richardson > Sent: Saturday, January 30, 2021 12:36 AM > To: Wenzhuo Lu <wenzhuo...@intel.com>; Xiaoyun Li > <xiaoyun...@intel.com>; Bernard Iremonger > <bernard.iremon...@intel.com> > Cc: dev@dpdk.org; Ajit Kumar Khaparde <ajit.khapa...@broadcom.com>; > Kalesh Anakkur Purayil <kalesh-anakkur.pura...@broadcom.com> > Subject: [dpdk-dev] [PATCH 21.05] app/testpmd: count outer IP checksum > errors > > Count and display outer IP checksum errors in the checksum forwarder. > > Example forwarder stats output: > RX-packets: 158 RX-dropped: 0 RX-total: 158 > Bad-ipcsum: 48 Bad-l4csum: 48 Bad-outer-l4csum: 6 > Bad-outer-ipcsum: 40 > TX-packets: 0 TX-dropped: 0 TX-total: 0 > > Signed-off-by: Lance Richardson <lance.richard...@broadcom.com> > Reviewed-by: Ajit Kumar Khaparde <ajit.khapa...@broadcom.com> > Reviewed-by: Kalesh Anakkur Purayil <kalesh- > anakkur.pura...@broadcom.com> > --- > app/test-pmd/csumonly.c | 5 +++++ > app/test-pmd/testpmd.c | 11 ++++++++++- app/test-pmd/testpmd.h | 2 > ++ > 3 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index > d813d4fae0..37ed415cee 100644 > --- a/app/test-pmd/csumonly.c > +++ b/app/test-pmd/csumonly.c > @@ -814,6 +814,7 @@ pkt_burst_checksum_forward(struct fwd_stream > *fs) > uint32_t rx_bad_ip_csum; > uint32_t rx_bad_l4_csum; > uint32_t rx_bad_outer_l4_csum; > + uint32_t rx_bad_outer_ip_csum; > struct testpmd_offload_info info; > uint16_t nb_segments = 0; > int ret; > @@ -833,6 +834,7 @@ pkt_burst_checksum_forward(struct fwd_stream > *fs) > rx_bad_ip_csum = 0; > rx_bad_l4_csum = 0; > rx_bad_outer_l4_csum = 0; > + rx_bad_outer_ip_csum = 0; > gro_enable = gro_ports[fs->rx_port].enable; > > txp = &ports[fs->tx_port]; > @@ -862,6 +864,8 @@ pkt_burst_checksum_forward(struct fwd_stream > *fs) > rx_bad_l4_csum += 1; > if (rx_ol_flags & PKT_RX_OUTER_L4_CKSUM_BAD) > rx_bad_outer_l4_csum += 1; > + if (rx_ol_flags & PKT_RX_EIP_CKSUM_BAD) > + rx_bad_outer_ip_csum += 1; > > /* step 1: dissect packet, parsing optional vlan, ip4/ip6, vxlan > * and inner headers */ > @@ -1124,6 +1128,7 @@ pkt_burst_checksum_forward(struct fwd_stream > *fs) > fs->rx_bad_ip_csum += rx_bad_ip_csum; > fs->rx_bad_l4_csum += rx_bad_l4_csum; > fs->rx_bad_outer_l4_csum += rx_bad_outer_l4_csum; > + fs->rx_bad_outer_ip_csum += rx_bad_outer_ip_csum; > > inc_tx_burst_stats(fs, nb_tx); > if (unlikely(nb_tx < nb_rx)) { > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index > c256e719ae..67f60745a0 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -1805,6 +1805,8 @@ fwd_stream_stats_display(streamid_t stream_id) > " Rx- bad outer L4 checksum: %-14"PRIu64"\n", > fs->rx_bad_ip_csum, fs->rx_bad_l4_csum, > fs->rx_bad_outer_l4_csum); > + printf(" RX- bad outer IP checksum: %-14"PRIu64"\n", > + fs->rx_bad_outer_ip_csum); > } else { > printf("\n"); > } > @@ -1827,6 +1829,7 @@ fwd_stats_display(void) > uint64_t rx_bad_ip_csum; > uint64_t rx_bad_l4_csum; > uint64_t rx_bad_outer_l4_csum; > + uint64_t rx_bad_outer_ip_csum; > } ports_stats[RTE_MAX_ETHPORTS]; > uint64_t total_rx_dropped = 0; > uint64_t total_tx_dropped = 0; > @@ -1859,6 +1862,8 @@ fwd_stats_display(void) > ports_stats[fs->rx_port].rx_bad_l4_csum += fs- > >rx_bad_l4_csum; > ports_stats[fs->rx_port].rx_bad_outer_l4_csum += > fs->rx_bad_outer_l4_csum; > + ports_stats[fs->rx_port].rx_bad_outer_ip_csum += > + fs->rx_bad_outer_ip_csum; > > if (record_core_cycles) > fwd_cycles += fs->core_cycles; > @@ -1890,13 +1895,16 @@ fwd_stats_display(void) > "RX-total: %-"PRIu64"\n", stats.ipackets, stats.imissed, > stats.ipackets + stats.imissed); > > - if (cur_fwd_eng == &csum_fwd_engine) > + if (cur_fwd_eng == &csum_fwd_engine) { > printf(" Bad-ipcsum: %-14"PRIu64 > " Bad-l4csum: %-14"PRIu64 > "Bad-outer-l4csum: %-14"PRIu64"\n", > ports_stats[pt_id].rx_bad_ip_csum, > ports_stats[pt_id].rx_bad_l4_csum, > ports_stats[pt_id].rx_bad_outer_l4_csum); > + printf(" Bad-outer-ipcsum: %-14"PRIu64"\n", > + ports_stats[pt_id].rx_bad_outer_ip_csum); > + } > if (stats.ierrors + stats.rx_nombuf > 0) { > printf(" RX-error: %-"PRIu64"\n", stats.ierrors); > printf(" RX-nombufs: %-14"PRIu64"\n", > stats.rx_nombuf); @@ -1974,6 +1982,7 @@ fwd_stats_reset(void) > fs->rx_bad_ip_csum = 0; > fs->rx_bad_l4_csum = 0; > fs->rx_bad_outer_l4_csum = 0; > + fs->rx_bad_outer_ip_csum = 0; > > memset(&fs->rx_burst_stats, 0, sizeof(fs->rx_burst_stats)); > memset(&fs->tx_burst_stats, 0, sizeof(fs->tx_burst_stats)); > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index > 5f23162107..a034dae227 100644 > --- a/app/test-pmd/testpmd.h > +++ b/app/test-pmd/testpmd.h > @@ -137,6 +137,8 @@ struct fwd_stream { > uint64_t rx_bad_l4_csum ; /**< received packets has bad l4 > checksum */ > uint64_t rx_bad_outer_l4_csum; > /**< received packets has bad outer l4 checksum */ > + uint64_t rx_bad_outer_ip_csum; > + /**< received packets having bad outer ip checksum */ > unsigned int gro_times; /**< GRO operation times */ > uint64_t core_cycles; /**< used for RX and TX processing */ > struct pkt_burst_stats rx_burst_stats; > -- > 2.25.1
Acked-by: Wisam Jaddo <wis...@nvidia.com> BRs, Wisam Jaddo