[dpdk-users] Checksum offloading on gre outer-ip in dpdk-16.11

Eyal Leshem leyal at incapsula.com
Wed Feb 22 14:27:03 CET 2017

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).



On Wed, Feb 22, 2017 at 9:18 AM, Eyal Leshem <leyal at incapsula.com> 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

More information about the users mailing list