[PATCH dpdk v5 2/5] net: support multiple stacked VLAN tags
David Marchand
david.marchand at redhat.com
Wed May 20 14:42:21 CEST 2026
On Wed, 20 May 2026 at 13:09, Robin Jarry <rjarry at redhat.com> wrote:
> >> - } else if (proto == rte_cpu_to_be_16(RTE_ETHER_TYPE_QINQ)) {
> >> - const struct rte_vlan_hdr *vh;
> >> - struct rte_vlan_hdr vh_copy;
> >> + if (proto == rte_cpu_to_be_16(RTE_ETHER_TYPE_VLAN))
> >> + pkt_type = RTE_PTYPE_L2_ETHER_VLAN;
> >> + else
> >> + pkt_type = RTE_PTYPE_L2_ETHER_QINQ;
> >> +
> >> + do {
> >> + vh = rte_pktmbuf_read(m, off, sizeof(*vh), &vh_copy);
> >> + if (unlikely(vh == NULL))
> >> + return pkt_type;
> >
> > Kevin noted that it is weird to report back some packet type when the
> > packet is malformed.
> > Maybe return RTE_PTYPE_UNKNOWN here so that the application is forced
> > to validate the packet? (it should already be doing it, in any
> > case..).
>
> If we do this, we need to fix it in the entire function. There are
> several other places where the "current" value of pkt_type is returned
> on error.
There is this point and the code has been behaving like this for
years, so some applications may have been relying on this behavior.
I don't mind leaving as is.
--
David Marchand
More information about the dev
mailing list