app/testpmd: count outer IP checksum errors
[dpdk.git] / app / test-pmd / csumonly.c
index d813d4f..37ed415 100644 (file)
@@ -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 @@ tunnel_update:
        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)) {