A packet is tunnelled if the tunnel type is identified or if it has an inner part.
Fix also a typo in RTE_PTYPE_INNER_L3_MASK. Fixes: f295a00a2b44 ("mbuf: add definitions of unified packet types") Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> --- app/test-pmd/rxonly.c | 2 +- lib/librte_mbuf/rte_mbuf.h | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c index 41871d3..ee7fd8d 100644 --- a/app/test-pmd/rxonly.c +++ b/app/test-pmd/rxonly.c @@ -288,7 +288,7 @@ pkt_burst_receive(struct fwd_stream *fs) } /* inner L3 packet type */ - ptype = mb->packet_type & RTE_PTYPE_INNER_INNER_L3_MASK; + ptype = mb->packet_type & RTE_PTYPE_INNER_L3_MASK; switch (ptype) { case RTE_PTYPE_INNER_L3_IPV4: printf(" - Inner L3 type: IPV4"); diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 115c560..dbd9095 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -595,7 +595,7 @@ extern "C" { /** * Mask of inner layer 3 packet types. */ -#define RTE_PTYPE_INNER_INNER_L3_MASK 0x00f00000 +#define RTE_PTYPE_INNER_L3_MASK 0x00f00000 /** * TCP (Transmission Control Protocol) packet type. * It is used for inner packet only. @@ -689,7 +689,10 @@ extern "C" { #define RTE_ETH_IS_IPV6_HDR(ptype) ((ptype) & RTE_PTYPE_L3_IPV6) /* Check if it is a tunneling packet */ -#define RTE_ETH_IS_TUNNEL_PKT(ptype) ((ptype) & RTE_PTYPE_TUNNEL_MASK) +#define RTE_ETH_IS_TUNNEL_PKT(ptype) ((ptype) & (RTE_PTYPE_TUNNEL_MASK | \ + RTE_PTYPE_INNER_L2_MASK | \ + RTE_PTYPE_INNER_L3_MASK | \ + RTE_PTYPE_INNER_L4_MASK)) #endif /* RTE_NEXT_ABI */ /** -- 2.4.2