[dpdk-users] Checksum offloading on gre outer-ip in dpdk-16.11
leyal at incapsula.com
Wed Feb 22 14:27:03 CET 2017
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
> And i run my app in Ubuntu-14.0.4.
> Any Ideas?
> Thanks in advance -
More information about the users