X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fice%2Fice_generic_flow.h;h=8845a3e15666fdbfb428350593af1184920450ef;hb=675a6c18746694a8e19a0256b16bd6b3e8dcbfd2;hp=3c648c0f4fe90de1ba0dd115a91c08de965f64b0;hpb=2b6d6d71a0992220043b2f5c3b885c486e7921b7;p=dpdk.git diff --git a/drivers/net/ice/ice_generic_flow.h b/drivers/net/ice/ice_generic_flow.h index 3c648c0f4f..8845a3e156 100644 --- a/drivers/net/ice/ice_generic_flow.h +++ b/drivers/net/ice/ice_generic_flow.h @@ -26,6 +26,7 @@ #define ICE_PROT_AH BIT_ULL(15) #define ICE_PROT_L2TPV3OIP BIT_ULL(16) #define ICE_PROT_PFCP BIT_ULL(17) +#define ICE_PROT_NAT_T_ESP BIT_ULL(18) /* field */ @@ -52,6 +53,7 @@ #define ICE_L2TPV3OIP_SESSION_ID BIT_ULL(43) #define ICE_PFCP_SEID BIT_ULL(42) #define ICE_PFCP_S_FIELD BIT_ULL(41) +#define ICE_IP_PK_ID BIT_ULL(40) /* input set */ @@ -69,11 +71,13 @@ #define ICE_INSET_IPV4_TOS (ICE_PROT_IPV4 | ICE_IP_TOS) #define ICE_INSET_IPV4_PROTO (ICE_PROT_IPV4 | ICE_IP_PROTO) #define ICE_INSET_IPV4_TTL (ICE_PROT_IPV4 | ICE_IP_TTL) +#define ICE_INSET_IPV4_PKID (ICE_PROT_IPV4 | ICE_IP_PK_ID) #define ICE_INSET_IPV6_SRC (ICE_PROT_IPV6 | ICE_IP_SRC) #define ICE_INSET_IPV6_DST (ICE_PROT_IPV6 | ICE_IP_DST) #define ICE_INSET_IPV6_NEXT_HDR (ICE_PROT_IPV6 | ICE_IP_PROTO) #define ICE_INSET_IPV6_HOP_LIMIT (ICE_PROT_IPV6 | ICE_IP_TTL) #define ICE_INSET_IPV6_TC (ICE_PROT_IPV6 | ICE_IP_TOS) +#define ICE_INSET_IPV6_PKID (ICE_PROT_IPV6 | ICE_IP_PK_ID) #define ICE_INSET_TCP_SRC_PORT (ICE_PROT_TCP | ICE_SPORT) #define ICE_INSET_TCP_DST_PORT (ICE_PROT_TCP | ICE_DPORT) @@ -92,64 +96,9 @@ /* tunnel */ -#define ICE_INSET_TUN_SMAC \ - (ICE_PROT_MAC | ICE_SMAC) -#define ICE_INSET_TUN_DMAC \ - (ICE_PROT_MAC | ICE_DMAC) - -#define ICE_INSET_TUN_IPV4_SRC \ - (ICE_PROT_IPV4 | ICE_IP_SRC) -#define ICE_INSET_TUN_IPV4_DST \ - (ICE_PROT_IPV4 | ICE_IP_DST) -#define ICE_INSET_TUN_IPV4_TTL \ - (ICE_PROT_IPV4 | ICE_IP_TTL) -#define ICE_INSET_TUN_IPV4_PROTO \ - (ICE_PROT_IPV4 | ICE_IP_PROTO) -#define ICE_INSET_TUN_IPV4_TOS \ - (ICE_PROT_IPV4 | ICE_IP_TOS) -#define ICE_INSET_TUN_IPV6_SRC \ - (ICE_PROT_IPV6 | ICE_IP_SRC) -#define ICE_INSET_TUN_IPV6_DST \ - (ICE_PROT_IPV6 | ICE_IP_DST) -#define ICE_INSET_TUN_IPV6_HOP_LIMIT \ - (ICE_PROT_IPV6 | ICE_IP_TTL) -#define ICE_INSET_TUN_IPV6_NEXT_HDR \ - (ICE_PROT_IPV6 | ICE_IP_PROTO) -#define ICE_INSET_TUN_IPV6_TC \ - (ICE_PROT_IPV6 | ICE_IP_TOS) - -#define ICE_INSET_TUN_TCP_SRC_PORT \ - (ICE_PROT_TCP | ICE_SPORT) -#define ICE_INSET_TUN_TCP_DST_PORT \ - (ICE_PROT_TCP | ICE_DPORT) -#define ICE_INSET_TUN_UDP_SRC_PORT \ - (ICE_PROT_UDP | ICE_SPORT) -#define ICE_INSET_TUN_UDP_DST_PORT \ - (ICE_PROT_UDP | ICE_DPORT) -#define ICE_INSET_TUN_SCTP_SRC_PORT \ - (ICE_PROT_SCTP | ICE_SPORT) -#define ICE_INSET_TUN_SCTP_DST_PORT \ - (ICE_PROT_SCTP | ICE_DPORT) -#define ICE_INSET_TUN_ICMP4_SRC_PORT \ - (ICE_PROT_ICMP4 | ICE_SPORT) -#define ICE_INSET_TUN_ICMP4_DST_PORT \ - (ICE_PROT_ICMP4 | ICE_DPORT) -#define ICE_INSET_TUN_ICMP6_SRC_PORT \ - (ICE_PROT_ICMP6 | ICE_SPORT) -#define ICE_INSET_TUN_ICMP6_DST_PORT \ - (ICE_PROT_ICMP6 | ICE_DPORT) -#define ICE_INSET_TUN_ICMP4_TYPE \ - (ICE_PROT_ICMP4 | ICE_ICMP_TYPE) -#define ICE_INSET_TUN_ICMP4_CODE \ - (ICE_PROT_ICMP4 | ICE_ICMP_CODE) -#define ICE_INSET_TUN_ICMP6_TYPE \ - (ICE_PROT_ICMP6 | ICE_ICMP_TYPE) -#define ICE_INSET_TUN_ICMP6_CODE \ - (ICE_PROT_ICMP6 | ICE_ICMP_CODE) - -#define ICE_INSET_TUN_VXLAN_VNI \ +#define ICE_INSET_VXLAN_VNI \ (ICE_PROT_VXLAN | ICE_VXLAN_VNI) -#define ICE_INSET_TUN_NVGRE_TNI \ +#define ICE_INSET_NVGRE_TNI \ (ICE_PROT_NVGRE | ICE_NVGRE_TNI) #define ICE_INSET_GTPU_TEID \ (ICE_PROT_GTPU | ICE_GTPU_TEID) @@ -169,6 +118,8 @@ (ICE_PROT_PFCP | ICE_PFCP_S_FIELD) #define ICE_INSET_PFCP_SEID \ (ICE_PROT_PFCP | ICE_PFCP_S_FIELD | ICE_PFCP_SEID) +#define ICE_INSET_NAT_T_ESP_SPI \ + (ICE_PROT_NAT_T_ESP | ICE_ESP_SPI) /* empty pattern */ extern enum rte_flow_item_type pattern_empty[]; @@ -202,6 +153,9 @@ extern enum rte_flow_item_type pattern_eth_qinq_ipv4_icmp[]; extern enum rte_flow_item_type pattern_eth_ipv6[]; extern enum rte_flow_item_type pattern_eth_vlan_ipv6[]; extern enum rte_flow_item_type pattern_eth_qinq_ipv6[]; +extern enum rte_flow_item_type pattern_eth_ipv6_frag_ext[]; +extern enum rte_flow_item_type pattern_eth_vlan_ipv6_frag_ext[]; +extern enum rte_flow_item_type pattern_eth_qinq_ipv6_frag_ext[]; extern enum rte_flow_item_type pattern_eth_ipv6_udp[]; extern enum rte_flow_item_type pattern_eth_vlan_ipv6_udp[]; extern enum rte_flow_item_type pattern_eth_qinq_ipv6_udp[]; @@ -474,7 +428,8 @@ enum ice_flow_classification_stage { struct ice_pattern_match_item { enum rte_flow_item_type *pattern_list; /* pattern_list must end with RTE_FLOW_ITEM_TYPE_END */ - uint64_t input_set_mask; + uint64_t input_set_mask_o; /* used for tunnel outer or non tunnel fields */ + uint64_t input_set_mask_i; /* only used for tunnel inner fields */ void *meta; }; @@ -514,6 +469,7 @@ typedef int (*parse_pattern_action_t)(struct ice_adapter *ad, uint32_t array_len, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], + uint32_t priority, void **meta, struct rte_flow_error *error);