net/i40e: support adding TM node
[dpdk.git] / app / test-pmd / csumonly.c
index 5eaff9b..178ad75 100644 (file)
@@ -71,6 +71,7 @@
 #include <rte_prefetch.h>
 #include <rte_string_fns.h>
 #include <rte_flow.h>
+#include <rte_gro.h>
 #include "testpmd.h"
 
 #define IP_DEFTTL  64   /* from RFC 1340. */
@@ -417,7 +418,7 @@ process_outer_cksums(void *outer_l3_hdr, struct testpmd_offload_info *info,
                        ol_flags |= PKT_TX_OUTER_IP_CKSUM;
                else
                        ipv4_hdr->hdr_checksum = rte_ipv4_cksum(ipv4_hdr);
-       } else if (testpmd_ol_flags & TESTPMD_TX_OFFLOAD_OUTER_IP_CKSUM)
+       } else
                ol_flags |= PKT_TX_OUTER_IPV6;
 
        if (info->outer_l4_proto != IPPROTO_UDP)
@@ -658,6 +659,10 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
                                 nb_pkt_per_burst);
        if (unlikely(nb_rx == 0))
                return;
+       if (unlikely(gro_ports[fs->rx_port].enable))
+               nb_rx = rte_gro_reassemble_burst(pkts_burst,
+                               nb_rx,
+                               &(gro_ports[fs->rx_port].param));
 
 #ifdef RTE_TEST_PMD_RECORD_BURST_STATS
        fs->rx_burst_stats.pkt_burst_spread[nb_rx]++;
@@ -756,7 +761,9 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
 
                if (info.is_tunnel == 1) {
                        if (info.tunnel_tso_segsz ||
-                           testpmd_ol_flags & TESTPMD_TX_OFFLOAD_OUTER_IP_CKSUM) {
+                           (testpmd_ol_flags &
+                           TESTPMD_TX_OFFLOAD_OUTER_IP_CKSUM) ||
+                           (tx_ol_flags & PKT_TX_OUTER_IPV6)) {
                                m->outer_l2_len = info.outer_l2_len;
                                m->outer_l3_len = info.outer_l3_len;
                                m->l2_len = info.l2_len;
@@ -826,8 +833,9 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
                                        "m->l4_len=%d\n",
                                        m->l2_len, m->l3_len, m->l4_len);
                        if (info.is_tunnel == 1) {
-                               if (testpmd_ol_flags &
-                                   TESTPMD_TX_OFFLOAD_OUTER_IP_CKSUM)
+                               if ((testpmd_ol_flags &
+                                   TESTPMD_TX_OFFLOAD_OUTER_IP_CKSUM) ||
+                                   (tx_ol_flags & PKT_TX_OUTER_IPV6))
                                        printf("tx: m->outer_l2_len=%d "
                                                "m->outer_l3_len=%d\n",
                                                m->outer_l2_len,