From: "Li, Xiaoyun" <xiaoyun.li@intel.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: "Yigit, Ferruh" <ferruh.yigit@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix l4 sw csum over multi segments
Date: Mon, 18 Oct 2021 03:16:47 +0000 [thread overview]
Message-ID: <DM4PR11MB553473987BFEC306A61B87F499BC9@DM4PR11MB5534.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20211017200003.2bfbcf8c@hermes.local>
Hi
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Monday, October 18, 2021 11:00
> To: Li, Xiaoyun <xiaoyun.li@intel.com>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix l4 sw csum over multi
> segments
>
> On Fri, 15 Oct 2021 13:13:06 +0800
> Xiaoyun Li <xiaoyun.li@intel.com> wrote:
>
> > + /* When sw csum is needed, multi-segs needs a buf to contain
> > + * the whole packet for later UDP/TCP csum calculation.
> > + */
> > + if (m->nb_segs > 1 && !(tx_ol_flags & PKT_TX_TCP_SEG) &&
> > + !(tx_offloads & UDP_TCP_CSUM)) {
> > + l3_buf = rte_zmalloc("csum l3_buf",
> > + info.pkt_len - info.l2_len,
> > + RTE_CACHE_LINE_SIZE);
> > + rte_pktmbuf_read(m, info.l2_len,
> > + info.pkt_len - info.l2_len, l3_buf);
> > + l3_hdr = l3_buf;
> > + } else
> > + l3_hdr = (char *)eth_hdr + info.l2_len;
> >
>
> Rather than copying whole packet, make the code handle checksum streaming.
Copying is the easiest way to do this.
The problem of handling checksum streaming is that in the first segment, l2 and l3 hdr len is 14 bytes when checksum takes 4 bytes each time.
If the datalen of the first segment is 4 bytes aligned (usual case), for the second segment and the following segments, they may need to add a special 2 bytes 0x0 at the start.
Also, mbuf is not passed down to process_inner/outer_chksum so the change will be a lot.
next prev parent reply other threads:[~2021-10-18 3:16 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-15 5:13 Xiaoyun Li
2021-10-15 8:09 ` David Marchand
2021-10-18 2:02 ` Li, Xiaoyun
2021-10-18 2:16 ` [dpdk-dev] [PATCH v2] " Xiaoyun Li
2021-10-18 3:00 ` [dpdk-dev] [PATCH] " Stephen Hemminger
2021-10-18 3:16 ` Li, Xiaoyun [this message]
2021-10-18 4:40 ` Li, Xiaoyun
2021-10-18 10:15 ` Ananyev, Konstantin
2021-10-19 1:54 ` Li, Xiaoyun
2021-10-20 10:12 ` [dpdk-dev] [PATCH v3] " Xiaoyun Li
2021-10-27 10:48 ` Ferruh Yigit
2021-10-27 11:29 ` Morten Brørup
2021-10-29 8:29 ` Olivier Matz
2021-12-03 11:31 ` Li, Xiaoyun
2021-12-03 11:38 ` [PATCH v4 0/2] Add functions to calculate UDP/TCP cksum in mbuf Xiaoyun Li
2021-12-03 11:38 ` [PATCH v4 1/2] net: add " Xiaoyun Li
2021-12-15 11:33 ` Singh, Aman Deep
2022-01-04 15:18 ` Li, Xiaoyun
2022-01-04 15:40 ` Li, Xiaoyun
2022-01-06 12:56 ` Singh, Aman Deep
2021-12-03 11:38 ` [PATCH v4 2/2] testpmd: fix l4 sw csum over multi segments Xiaoyun Li
2021-12-08 6:10 ` [PATCH v4 0/2] Add functions to calculate UDP/TCP cksum in mbuf Pai G, Sunil
2022-01-06 16:03 ` [PATCH v5 " Xiaoyun Li
2022-01-06 16:03 ` [PATCH v5 1/2] net: add " Xiaoyun Li
2022-01-21 15:16 ` Ferruh Yigit
2022-01-06 16:03 ` [PATCH v5 2/2] testpmd: fix l4 sw csum over multi segments Xiaoyun Li
2022-01-21 15:16 ` Ferruh Yigit
2022-01-24 9:43 ` Li, Xiaoyun
2022-01-24 10:16 ` Ferruh Yigit
2022-01-21 17:09 ` Kevin Traynor
2022-01-24 9:16 ` Ferruh Yigit
2022-01-24 10:30 ` Kevin Traynor
2022-01-24 11:02 ` Ferruh Yigit
2022-01-24 12:28 ` [PATCH v6 0/2] Add functions to calculate UDP/TCP cksum in mbuf Xiaoyun Li
2022-01-24 12:28 ` [PATCH v6 1/2] net: add " Xiaoyun Li
2022-02-03 12:41 ` Ferruh Yigit
2022-01-24 12:28 ` [PATCH v6 2/2] app/testpmd: enable L4 SW csum over multi segments Xiaoyun Li
2022-02-04 13:12 ` Ferruh Yigit
2022-02-04 13:12 ` [PATCH v6 0/2] Add functions to calculate UDP/TCP cksum in mbuf Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DM4PR11MB553473987BFEC306A61B87F499BC9@DM4PR11MB5534.namprd11.prod.outlook.com \
--to=xiaoyun.li@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=stable@dpdk.org \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).