From: Olivier Matz <olivier.matz@6wind.com>
To: Radu Nicolau <radu.nicolau@intel.com>
Cc: dev@dpdk.org, Declan Doherty <declan.doherty@intel.com>
Subject: Re: [dpdk-dev] [PATCH] net: add support for UDP segmentation case
Date: Thu, 14 Oct 2021 17:46:03 +0200 [thread overview]
Message-ID: <YWhQu53z/PYcaNon@platinum> (raw)
In-Reply-To: <20210903105942.265501-1-radu.nicolau@intel.com>
Hi Radu,
On Fri, Sep 03, 2021 at 11:59:42AM +0100, Radu Nicolau wrote:
> [PATCH] net: add support for UDP segmentation case
What about this title instead?
net: exclude IP len from phdr cksum if offloading UDP frag
> Add support to the ipv4/ipv6 pseudo-header function when TSO is enabled
> in the UDP case, eg PKT_TX_UDP_SEG is set in the mbuf ol_flags
I think it would be clearer to say "UDP fragmentation" instead of
"TSO is enabled in the UDP case".
> Signed-off-by: Declan Doherty <declan.doherty@intel.com>
> Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
> ---
> lib/net/rte_ip.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h
> index 05948b69b7..c916ec1b09 100644
> --- a/lib/net/rte_ip.h
> +++ b/lib/net/rte_ip.h
> @@ -333,7 +333,7 @@ rte_ipv4_phdr_cksum(const struct rte_ipv4_hdr *ipv4_hdr, uint64_t ol_flags)
> psd_hdr.dst_addr = ipv4_hdr->dst_addr;
> psd_hdr.zero = 0;
> psd_hdr.proto = ipv4_hdr->next_proto_id;
> - if (ol_flags & PKT_TX_TCP_SEG) {
> + if (ol_flags & (PKT_TX_TCP_SEG | PKT_TX_UDP_SEG)) {
> psd_hdr.len = 0;
> } else {
> l3_len = rte_be_to_cpu_16(ipv4_hdr->total_length);
Can you also update the API comment?
> @@ -474,7 +474,7 @@ rte_ipv6_phdr_cksum(const struct rte_ipv6_hdr *ipv6_hdr, uint64_t ol_flags)
> } psd_hdr;
>
> psd_hdr.proto = (uint32_t)(ipv6_hdr->proto << 24);
> - if (ol_flags & PKT_TX_TCP_SEG) {
> + if (ol_flags & (PKT_TX_TCP_SEG | PKT_TX_UDP_SEG)) {
> psd_hdr.len = 0;
> } else {
> psd_hdr.len = ipv6_hdr->payload_len;
> --
> 2.25.1
>
No objection for this patch, but I think we should consider removing
this ol_flags parameter from the pseudo header checksum calculation
functions in the future, because it is a bit confusing.
Historically, this was done in commit 4199fdea60c3 ("mbuf: generic
support for TCP segmentation offload") because we were expecting that
this pseudo-header checksum (required by Intel hw when doing checksum or
TSO) will be done in the same way for many drivers (i.e. without the IP
length for TSO). I don't know if it is the case.
Or maybe a 'use_0_length' parameter would make more sense than
'ol_flags'.
Thanks,
Olivier
next prev parent reply other threads:[~2021-10-14 15:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-03 10:59 [dpdk-dev] [PATCH] net: add support for UDP segmentation case Radu Nicolau
2021-10-14 15:46 ` Olivier Matz [this message]
2021-10-15 14:05 ` Nicolau, Radu
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=YWhQu53z/PYcaNon@platinum \
--to=olivier.matz@6wind.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=radu.nicolau@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.