>>And we definitely need RTE_PTYPE_INNER_L4_ESP for ESP over UDP support. >Isn't this already taken care when mbuf->packet_type = >(RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP) ? This is ambigous. And both UDP and ESP are L4 headers, which can lead to the undefined behavior when we specify both of them. They are mutually exclusive in our hardware, for example. That is why we have RTE_PTYPE_TUNNEL_MPLS_IN_GRE and RTE_PTYPE_TUNNEL_MPLS_IN_UDP for MPLS. We could go and indroduce RTE_PTYPE_TUNNEL_ESP_IN_UDP to resolve the ambiguity, or have RTE_PTYPE_INNER_L4_ESP. I choose the second variant to have a generic way for ESP packets over any type of encapsulation.