/* 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_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_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_qinq_pppoes_proto[];
extern enum rte_flow_item_type pattern_eth_pppoes_ipv4[];
extern enum rte_flow_item_type pattern_eth_vlan_pppoes_ipv4[];
extern enum rte_flow_item_type pattern_eth_qinq_pppoes_ipv4[];
void ice_unregister_parser(struct ice_flow_parser *parser,
struct ice_adapter *ad);
struct ice_pattern_match_item *
-ice_search_pattern_match_item(const struct rte_flow_item pattern[],
- struct ice_pattern_match_item *array,
- uint32_t array_len,
- struct rte_flow_error *error);
+ice_search_pattern_match_item(struct ice_adapter *ad,
+ const struct rte_flow_item pattern[],
+ struct ice_pattern_match_item *array,
+ uint32_t array_len,
+ struct rte_flow_error *error);
int
ice_flow_redirect(struct ice_adapter *ad,
struct ice_flow_redirect *rd);