LGTM. > > -----Original Message----- > > From: Liu, KevinX <kevinx....@intel.com> > > Sent: Wednesday, December 29, 2021 5:37 PM > > To: dev@dpdk.org > > Cc: Yang, Qiming <qiming.y...@intel.com>; Zhang, Qi Z > > <qi.z.zh...@intel.com>; Yang, SteveX <stevex.y...@intel.com>; Yigit, > > Ferruh <ferruh.yi...@intel.com>; Liu, KevinX <kevinx....@intel.com>; > > sta...@dpdk.org > > Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in > > multi-segments > > > > Testpmd forwards packets in checksum mode that it needs to calculate > > the checksum of each layer's protocol. > > > > In process_inner_cksums, when parsing tunnel packets, inner L4 offset > > should be outer_l2_len + outer_l3_len + l2_len + l3_len. > > > > In process_outer_cksums, when parsing tunnel packets, outer L4 offset > > should be outer_l2_len + outer_l3_len. > > > > Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi- > > segments") > > Cc: sta...@dpdk.org > > > > Signed-off-by: Kevin Liu <kevinx....@intel.com>
Acked-by: Yuying Zhang <yuying.zh...@intel.com> > > --- > > app/test-pmd/csumonly.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index > > 02bc3929c7..c235456e58 100644 > > --- a/app/test-pmd/csumonly.c > > +++ b/app/test-pmd/csumonly.c > > > > @@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const struct > > testpmd_offload_info *info, ol_flags |= RTE_MBUF_F_TX_UDP_CKSUM; } > > else { if (info->is_tunnel) -l4_off = info->l2_len + > > +l4_off = info->outer_l2_len + > > info->outer_l3_len + > > info->l2_len + info->l3_len; > > else > > @@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const struct > > testpmd_offload_info *info, ol_flags |= RTE_MBUF_F_TX_TCP_CKSUM; } > > else { if (info->is_tunnel) -l4_off = info->l2_len + > > info->outer_l3_len + > > +l4_off = info->outer_l2_len + info- > > >outer_l3_len + > > info->l2_len + info->l3_len; > > else > > l4_off = info->l2_len + info->l3_len; @@ - > > 625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct > > testpmd_offload_info *info, if (udp_hdr->dgram_cksum != 0) { > > udp_hdr->dgram_cksum = 0; udp_hdr->dgram_cksum = > > get_udptcp_checksum(m, outer_l3_hdr, > > -info->l2_len + info->outer_l3_len, > > +info->outer_l2_len + info- > > >outer_l3_len, > > info->outer_ethertype); > > } > > > > -- > > 2.33.1 >