DPDK patches and discussions
 help / color / mirror / Atom feed
From: huangdengdui <huangdengdui@huawei.com>
To: <skori@marvell.com>
Cc: <dev@dpdk.org>, Stephen Hemminger <stephen@networkplumber.org>
Subject: Re: [PATCH v2 1/2] net: fix offset calculation for GENEVE packet
Date: Wed, 21 May 2025 17:33:56 +0800	[thread overview]
Message-ID: <c6f6d3fb-2ecd-422c-b803-aa0af0b9096b@huawei.com> (raw)
In-Reply-To: <20250521051154.19595-1-skori@marvell.com>

I have also found some bugs about the tunnel packet type parsing API[1], including one of the problems fixed by this patch.

[1] https://patchwork.dpdk.org/project/dpdk/list/?series=35233

On 2025/5/21 13:11, skori@marvell.com wrote:
> From: Sunil Kumar Kori <skori@marvell.com>
> 
> While parsing packet headers, offset must be added to get next
> header but for geneve header parsing offset is overwritten.
> Also inner_l2_len is not set in case of geneve packets.
> 
> Fixes: 64ed7f854cf4 ("net: add tunnel packet type parsing")
> 
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> ---
>  lib/net/rte_net.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/net/rte_net.c b/lib/net/rte_net.c
> index be24690fdf..1264f33d61 100644
> --- a/lib/net/rte_net.c
> +++ b/lib/net/rte_net.c
> @@ -251,7 +251,8 @@ ptype_tunnel_with_udp(uint16_t *proto, const struct rte_mbuf *m,
>  		if (unlikely(gnh == NULL))
>  			return 0;
>  		geneve_len = sizeof(*gnh) + gnh->opt_len * 4;
> -		*off = geneve_len;
> +		*off += geneve_len;
> +		hdr_lens->inner_l2_len = sizeof(struct rte_udp_hdr) + geneve_len;

The l2_len in mbuf is also calculated from the outer L4 header, so it is calculated in the same way here.
However, this is easy to be misunderstood, can we add a note to inner_l2_len as follows?

struct rte_net_hdr_lens {
	uint8_t l2_len;
	/* Outer_L4_len + ... + inner L2_len for tunneling pkt. */
	uint8_t inner_l2_len;
	uint16_t l3_len;
	uint16_t inner_l3_len;
	uint16_t tunnel_len;
	uint8_t l4_len;
	uint8_t inner_l4_len;
};


>  		*proto = gnh->proto;
>  		if (gnh->proto == 0)
>  			*proto = rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4);

  parent reply	other threads:[~2025-05-21  9:34 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-19 16:06 [PATCH " skori
2025-05-19 16:06 ` [PATCH 2/2] app/testpmd: clear stale internal len information skori
2025-05-20 21:17   ` Stephen Hemminger
2025-05-21  5:01     ` [EXTERNAL] " Sunil Kumar Kori
2025-05-21  5:11   ` [PATCH v2 1/2] net: fix offset calculation for GENEVE packet skori
2025-05-21  5:11     ` [PATCH v2 2/2] app/testpmd: clear stale internal len information skori
2025-05-21  9:33     ` huangdengdui [this message]
2025-05-22  6:12       ` [EXTERNAL] Re: [PATCH v2 1/2] net: fix offset calculation for GENEVE packet Sunil Kumar Kori
2025-05-23  1:29     ` huangdengdui
2025-05-20 21:21 ` [PATCH " Stephen Hemminger
2025-05-21  4:57   ` [EXTERNAL] " Sunil Kumar Kori

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=c6f6d3fb-2ecd-422c-b803-aa0af0b9096b@huawei.com \
    --to=huangdengdui@huawei.com \
    --cc=dev@dpdk.org \
    --cc=skori@marvell.com \
    --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).