net/mlx5: convert configuration objects to unified malloc
[dpdk.git] / drivers / net / ice / ice_generic_flow.h
index ede6ec8..434d2f4 100644 (file)
 #define ICE_PROT_VXLAN             (1ULL << 19)
 #define ICE_PROT_NVGRE             (1ULL << 20)
 #define ICE_PROT_GTPU              (1ULL << 21)
+#define ICE_PROT_PPPOE_S           (1ULL << 22)
+#define ICE_PROT_ESP               (1ULL << 23)
+#define ICE_PROT_AH                (1ULL << 24)
+#define ICE_PROT_L2TPV3OIP         (1ULL << 25)
+#define ICE_PROT_PFCP              (1ULL << 26)
 
 /* field */
 
 #define ICE_NVGRE_TNI              (1ULL << 50)
 #define ICE_GTPU_TEID              (1ULL << 49)
 #define ICE_GTPU_QFI               (1ULL << 48)
+#define ICE_PPPOE_SESSION          (1ULL << 47)
+#define ICE_PPPOE_PROTO            (1ULL << 46)
+#define ICE_ESP_SPI                (1ULL << 45)
+#define ICE_AH_SPI                 (1ULL << 44)
+#define ICE_L2TPV3OIP_SESSION_ID   (1ULL << 43)
+#define ICE_PFCP_SEID              (1ULL << 42)
+#define ICE_PFCP_S_FIELD           (1ULL << 41)
 
 /* input set */
 
        (ICE_PROT_GTPU | ICE_GTPU_TEID)
 #define ICE_INSET_GTPU_QFI \
        (ICE_PROT_GTPU | ICE_GTPU_QFI)
+#define ICE_INSET_PPPOE_SESSION \
+       (ICE_PROT_PPPOE_S | ICE_PPPOE_SESSION)
+#define ICE_INSET_PPPOE_PROTO \
+       (ICE_PROT_PPPOE_S | ICE_PPPOE_PROTO)
+#define ICE_INSET_ESP_SPI \
+       (ICE_PROT_ESP | ICE_ESP_SPI)
+#define ICE_INSET_AH_SPI \
+       (ICE_PROT_AH | ICE_AH_SPI)
+#define ICE_INSET_L2TPV3OIP_SESSION_ID \
+       (ICE_PROT_L2TPV3OIP | ICE_L2TPV3OIP_SESSION_ID)
+#define ICE_INSET_PFCP_S_FIELD \
+       (ICE_PROT_PFCP | ICE_PFCP_S_FIELD)
+#define ICE_INSET_PFCP_SEID \
+       (ICE_PROT_PFCP | ICE_PFCP_S_FIELD | ICE_PFCP_SEID)
 
 /* empty pattern */
 extern enum rte_flow_item_type pattern_empty[];
@@ -335,21 +361,70 @@ extern enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_udp[];
 extern enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_sctp[];
 extern enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_icmp6[];
 
-/* GTPU */
+/* IPv4 GTPU (EH) */
 extern enum rte_flow_item_type pattern_eth_ipv4_gtpu[];
-extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4[];
 extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh[];
+
+/* IPv6 GTPU (EH) */
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh[];
+
+/* IPv4 GTPU IPv4 */
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4_icmp[];
+
+/* IPv4 GTPU IPv6 */
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv6[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv6_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv6_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv6_icmp[];
+
+/* IPv6 GTPU IPv4 */
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv4[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv4_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv4_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv4_icmp[];
+
+/* IPv6 GTPU IPv6 */
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv6[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv6_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv6_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_ipv6_icmp[];
+
+/* IPv4 GTPU EH IPv4 */
 extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4[];
 extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4_udp[];
 extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4_tcp[];
 extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4_icmp[];
 
+/* IPv4 GTPU EH IPv6 */
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv6[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv6_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv6_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv6_icmp[];
+
+/* IPv6 GTPU EH IPv4 */
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv4[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv4_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv4_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv4_icmp[];
+
+/* IPv6 GTPU EH IPv6 */
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv6[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv6_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv6_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh_ipv6_icmp[];
+
 /* PPPoE */
 extern enum rte_flow_item_type pattern_eth_pppoed[];
 extern enum rte_flow_item_type pattern_eth_vlan_pppoed[];
 extern enum rte_flow_item_type pattern_eth_qinq_pppoed[];
 extern enum rte_flow_item_type pattern_eth_pppoes[];
+extern enum rte_flow_item_type pattern_eth_pppoes_proto[];
 extern enum rte_flow_item_type pattern_eth_vlan_pppoes[];
+extern enum rte_flow_item_type pattern_eth_vlan_pppoes_proto[];
 extern enum rte_flow_item_type pattern_eth_qinq_pppoes[];
 extern enum rte_flow_item_type pattern_eth_pppoes_ipv4[];
 extern enum rte_flow_item_type pattern_eth_vlan_pppoes_ipv4[];
@@ -382,6 +457,25 @@ extern enum rte_flow_item_type pattern_eth_pppoes_ipv6_icmp6[];
 extern enum rte_flow_item_type pattern_eth_vlan_pppoes_ipv6_icmp6[];
 extern enum rte_flow_item_type pattern_eth_qinq_pppoes_ipv6_icmp6[];
 
+/* ESP */
+extern enum rte_flow_item_type pattern_eth_ipv4_esp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_esp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_esp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_esp[];
+
+/* AH */
+extern enum rte_flow_item_type pattern_eth_ipv4_ah[];
+extern enum rte_flow_item_type pattern_eth_ipv6_ah[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_ah[];
+
+/* L2TP */
+extern enum rte_flow_item_type pattern_eth_ipv4_l2tp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_l2tp[];
+
+/* PFCP */
+extern enum rte_flow_item_type pattern_eth_ipv4_pfcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_pfcp[];
+
 struct ice_adapter;
 
 extern const struct rte_flow_ops ice_flow_ops;