[dpdk-dev] [PATCH v2 05/20] net/ice: support packet type getting

Varghese, Vipin vipin.varghese at intel.com
Tue Dec 4 06:19:28 CET 2018


snipped
> +static inline uint32_t
> +ice_get_default_pkt_type(uint16_t ptype) {

Suggestion: should we check 'ptype >= RTE_PTYPE_UNKNOWN ' return?

> +	static const uint32_t type_table[ICE_MAX_PKT_TYPE]
> +		__rte_cache_aligned = {
> +		/* L2 types */
> +		/* [0] reserved */
> +		[1] = RTE_PTYPE_L2_ETHER,
> +		/* [2] - [5] reserved */
> +		[6] = RTE_PTYPE_L2_ETHER_LLDP,
> +		/* [7] - [10] reserved */
> +		[11] = RTE_PTYPE_L2_ETHER_ARP,
> +		/* [12] - [21] reserved */
> +
> +		/* Non tunneled IPv4 */
> +		[22] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_FRAG,
> +		[23] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_NONFRAG,
> +		[24] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_UDP,
> +		/* [25] reserved */
> +		[26] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_TCP,
> +		[27] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_SCTP,
> +		[28] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_ICMP,
> +
> +		/* IPv4 --> IPv4 */
> +		[29] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[30] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[31] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [32] reserved */
> +		[33] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[34] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[35] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> IPv6 */
> +		[36] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[37] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[38] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [39] reserved */
> +		[40] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[41] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[42] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN */
> +		[43] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */
> +		[44] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[45] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[46] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [47] reserved */
> +		[48] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[49] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[50] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */
> +		[51] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[52] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[53] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [54] reserved */
> +		[55] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[56] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[57] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> MAC */
> +		[58] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */
> +		[59] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[60] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[61] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [62] reserved */
> +		[63] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[64] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[65] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */
> +		[66] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[67] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[68] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [69] reserved */
> +		[70] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[71] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[72] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */
> +		[73] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */
> +		[74] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[75] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[76] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [77] reserved */
> +		[78] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[79] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[80] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */
> +		[81] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[82] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[83] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [84] reserved */
> +		[85] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[86] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_SCTP,
> +		[87] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_GRENAT |
> +		       RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +		       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* Non tunneled IPv6 */
> +		[88] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_FRAG,
> +		[89] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_NONFRAG,
> +		[90] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_UDP,
> +		/* [91] reserved */
> +		[92] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_TCP,
> +		[93] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_SCTP,
> +		[94] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_L4_ICMP,
> +
> +		/* IPv6 --> IPv4 */
> +		[95] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_FRAG,
> +		[96] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_NONFRAG,
> +		[97] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_UDP,
> +		/* [98] reserved */
> +		[99] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +		       RTE_PTYPE_TUNNEL_IP |
> +		       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +		       RTE_PTYPE_INNER_L4_TCP,
> +		[100] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[101] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> IPv6 */
> +		[102] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[103] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[104] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [105] reserved */
> +		[106] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[107] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[108] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_IP |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN */
> +		[109] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */
> +		[110] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[111] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[112] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [113] reserved */
> +		[114] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[115] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[116] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */
> +		[117] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[118] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[119] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [120] reserved */
> +		[121] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[122] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[123] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> MAC */
> +		[124] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */
> +		[125] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[126] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[127] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [128] reserved */
> +		[129] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[130] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[131] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */
> +		[132] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[133] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[134] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [135] reserved */
> +		[136] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[137] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[138] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> RTE_PTYPE_INNER_L2_ETHER |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */
> +		[139] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */
> +		[140] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[141] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[142] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [143] reserved */
> +		[144] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[145] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[146] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +
> +		/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */
> +		[147] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_FRAG,
> +		[148] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_NONFRAG,
> +		[149] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_UDP,
> +		/* [150] reserved */
> +		[151] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_TCP,
> +		[152] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_SCTP,
> +		[153] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GRENAT |
> +			RTE_PTYPE_INNER_L2_ETHER_VLAN |
> +			RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_INNER_L4_ICMP,
> +		/* [154] - [255] reserved */
> +		[256] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GTPC,
> +		[257] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GTPC,
> +		[258] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +				RTE_PTYPE_TUNNEL_GTPU,
> +		[259] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
> +				RTE_PTYPE_TUNNEL_GTPU,
> +		/* [260] - [263] reserved */
> +		[264] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GTPC,
> +		[265] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +			RTE_PTYPE_TUNNEL_GTPC,
> +		[266] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +				RTE_PTYPE_TUNNEL_GTPU,
> +		[267] = RTE_PTYPE_L2_ETHER |
> RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> +				RTE_PTYPE_TUNNEL_GTPU,
> +
> +		/* All others reserved */
> +	};

Suggestion: is it ok to use MACRO instead of array.
snipped


More information about the dev mailing list