Thread (16 messages) 16 messages, 5 authors, 2021-09-15

Re: [dpdk-dev] [PATCH v2] net: prepare the outer ipv4 hdr for checksum

From: Mohsin Kazmi <hidden>
Date: 2021-08-03 12:29:14

Hi Thomas,

Thanks for the review.

I did the git grep rte_net_intel_cksum_prepare and git grep
PKT_TX_OUTER_UDP_CKSUM. Following are the two drivers that use the function
to prepare headers for checksum which also uses the outer_udp_checksum
offload within drivers.

1) Hisilicon hns3

2) Wangxun txgbe

1) has implemented its own version of functions to prepare for outer header
checksum. It may benefit/impact from the change.

The function "rte_net_intel_cksum_prepare" is intel specific and intel
cards do not support outer l4 checksum offload. DPDK may provide a generic
version of the same function which can be used in different drivers.

-br
Mohsin

On Thu, Jul 22, 2021 at 8:53 PM Thomas Monjalon [off-list ref] wrote:
07/07/2021 11:14, Mohsin Kazmi:
quoted
On Wed, Jun 30, 2021 at 3:09 PM Olivier Matz [off-list ref]
wrote:
quoted
quoted
quoted
+     if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) {
              inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
+             /*
+              * prepare outer ipv4 header checksum by setting it to
0,
quoted
quoted
quoted
+              * in order to be computed by hardware NICs.
+              */
+             if (ol_flags & PKT_TX_OUTER_IP_CKSUM) {
+                     ipv4_hdr = rte_pktmbuf_mtod_offset(m,
+                                     struct rte_ipv4_hdr *,
m->outer_l2_len);
quoted
+                     ipv4_hdr->hdr_checksum = 0;
+             }
+     }
What about outer L4 checksum? Does it requires the same than inner?
I am using XL710 for my testing with i40e dpdk driver. AFAIK, It doesn't
support outer l4 checksum. I am not sure if other Intel NICs support it.
This function is used by a lot of drivers.
Try git grep rte_net_intel_cksum_prepare

I think we need more reviews on the v3.
Given it is far from being a new bug, I suggest to wait the next release
in order to have more feedbacks.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help