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 to0,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.