Hi, Jiale, this patch can solve the issues[1] you reported. Can you review this patch and add a Tested-by tag?
[1] https://bugs.dpdk.org/show_bug.cgi?id=1672 On 2025/4/17 20:37, Dengdui Huang wrote: > After parsing the GTP packet header, the next protocol type should > be converted from RTE_GTP_TYPE_IPV4/IPV6 to RTE_ETHER_TYPE_IPV4/IPV6. > Otherwise, the next protocol cannot be parsed. > > Bugzilla ID: 1672 > Fixes: 64ed7f854cf4 ("net: add tunnel packet type parsing") > Cc: sta...@dpdk.org > > Signed-off-by: Dengdui Huang <huangdeng...@huawei.com> > Acked-by: Jie Hai <haij...@huawei.com> > --- > lib/net/rte_net.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/lib/net/rte_net.c b/lib/net/rte_net.c > index be24690fdf..1771588a09 100644 > --- a/lib/net/rte_net.c > +++ b/lib/net/rte_net.c > @@ -231,7 +231,13 @@ ptype_tunnel_with_udp(uint16_t *proto, const struct > rte_mbuf *m, > */ > if (gh->msg_type == 0xff) { > ip_ver = *(const uint8_t *)((const char *)gh + gtp_len); > - *proto = (ip_ver) & 0xf0; > + ip_ver = (ip_ver) & 0xf0; > + if (ip_ver == RTE_GTP_TYPE_IPV4) > + *proto = rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4); > + else if (ip_ver == RTE_GTP_TYPE_IPV6) > + *proto = rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV6); > + else > + *proto = 0; > } else { > *proto = 0; > }