From 707cc8275d9841117ea7851c43b08fe075f79268 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Thu, 16 Jul 2015 01:50:12 +0200 Subject: [PATCH] mbuf: fix tunnel flags check A packet is tunnelled if the tunnel type is identified or if it has an inner part. Fix also some typos in RTE_PTYPE_INNER_L3_MASK and IP comments. Fixes: f295a00a2b44 ("mbuf: add definitions of unified packet types") Signed-off-by: Thomas Monjalon Acked-by: Adrien Mazarguil --- app/test-pmd/rxonly.c | 2 +- lib/librte_mbuf/rte_mbuf.h | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c index 41871d3b5f..ee7fd8dd91 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 917dd59853..010b32de28 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -598,7 +598,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. @@ -680,19 +680,22 @@ extern "C" { /** * Check if the (outer) L3 header is IPv4. To avoid comparing IPv4 types one by * one, bit 4 is selected to be used for IPv4 only. Then checking bit 4 can - * determin if it is an IPV4 packet. + * determine if it is an IPV4 packet. */ #define RTE_ETH_IS_IPV4_HDR(ptype) ((ptype) & RTE_PTYPE_L3_IPV4) /** * Check if the (outer) L3 header is IPv4. To avoid comparing IPv4 types one by * one, bit 6 is selected to be used for IPv4 only. Then checking bit 6 can - * determin if it is an IPV4 packet. + * determine if it is an IPV4 packet. */ #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.20.1