Hi ,
After some digging in the i40e driver code in 16.11 I found the problem - For checksum offloading on GRE packets in 16.11 there are 2 more parameters that need to be set on the mbuf (parameters that are not required in 16.07): 1. The mbuf->ol_flags PKT_TX_TUNNEL_GRE - must be set. 2. The mbuf->l2_len - must be set to gre header size (4 bytes). That's in addition to the parmas that should be defined in 16.07 - 1. mbuf->ol_flags -PKT_TX_OUTER_IPV4| PKT_TX_OUTER_IP_CKSUM 2. m->outer_l2_len - (The real L2 header size). 3. m->outer_l3_len - (The real L3 header size). It was much more helpful if those changes were documented in the release-notes and not just in a comment inside the driver-code (see i40e_parse_tunneling_params function at i40e_rxtx.c). Thanks Eyal On Wed, Feb 22, 2017 at 9:18 AM, Eyal Leshem <[email protected]> wrote: > Hi all, > > I use checksum-offloading for calculating the checksum of packets that i > change/create inside my app. > I use it for regular packets and for gre packets (checksum is calculated > on the outer-header). > > On dpdk-16.07 everything works fine , But when i try to use that with > DPDK-16.11 it seems that the offloading on GRE packets does not work (while > on the regular packets it still works fine). > > In dpdk-16.07 I use the following flags on my mbuf to mark to the NIC that > the packets need checksum calculation (m is the "struct rte_mbuf"): > "m->ol_flags |= PKT_TX_OUTER_IPV4|PKT_TX_OUTER_IP_CKSUM;" > > On 16.11 I tried to add also the PKT_TX_TUNNEL_GRE (As i saw that addition > in "csumonly.c" in the 16.11 version in the "pmd-test" app) - but that also > didn't help. > > My NIC is : "Intel Corporation Ethernet Controller X710 for 10Gbe > backplane" > And i run my app in Ubuntu-14.0.4. > > Any Ideas? > > Thanks in advance - > Eyal >
