app/testpmd: collect bad outer L4 checksum for csum engine
[dpdk.git] / app / test-pmd / csumonly.c
index ea5b112..dce4b9b 100644 (file)
@@ -701,6 +701,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
        uint32_t retry;
        uint32_t rx_bad_ip_csum;
        uint32_t rx_bad_l4_csum;
+       uint32_t rx_bad_outer_l4_csum;
        struct testpmd_offload_info info;
        uint16_t nb_segments = 0;
        int ret;
@@ -726,6 +727,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
        fs->rx_packets += nb_rx;
        rx_bad_ip_csum = 0;
        rx_bad_l4_csum = 0;
+       rx_bad_outer_l4_csum = 0;
        gro_enable = gro_ports[fs->rx_port].enable;
 
        txp = &ports[fs->tx_port];
@@ -753,6 +755,8 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
                        rx_bad_ip_csum += 1;
                if ((rx_ol_flags & PKT_RX_L4_CKSUM_MASK) == PKT_RX_L4_CKSUM_BAD)
                        rx_bad_l4_csum += 1;
+               if (rx_ol_flags & PKT_RX_OUTER_L4_CKSUM_BAD)
+                       rx_bad_outer_l4_csum += 1;
 
                /* step 1: dissect packet, parsing optional vlan, ip4/ip6, vxlan
                 * and inner headers */
@@ -991,6 +995,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
        fs->tx_packets += nb_tx;
        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;
 
 #ifdef RTE_TEST_PMD_RECORD_BURST_STATS
        fs->tx_burst_stats.pkt_burst_spread[nb_tx]++;