net/igc: support flow API
[dpdk.git] / drivers / net / igc / igc_filter.h
1 /*
2  * SPDX-License-Identifier: BSD-3-Clause
3  * Copyright(c) 2010-2020 Intel Corporation
4  */
5
6 #ifndef _IGC_FILTER_H_
7 #define _IGC_FILTER_H_
8
9 #include <rte_ethdev.h>
10 #include <rte_ethdev_core.h>
11 #include <rte_eth_ctrl.h>
12
13 #include "igc_ethdev.h"
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 int igc_add_ethertype_filter(struct rte_eth_dev *dev,
20                 const struct igc_ethertype_filter *filter);
21 int igc_del_ethertype_filter(struct rte_eth_dev *dev,
22                 const struct igc_ethertype_filter *filter);
23 int igc_add_ntuple_filter(struct rte_eth_dev *dev,
24                 const struct igc_ntuple_filter *tuple);
25 int igc_del_ntuple_filter(struct rte_eth_dev *dev,
26                 const struct igc_ntuple_filter *tuple);
27 int igc_set_syn_filter(struct rte_eth_dev *dev,
28                 const struct igc_syn_filter *filter);
29 void igc_clear_syn_filter(struct rte_eth_dev *dev);
30 void igc_clear_all_filter(struct rte_eth_dev *dev);
31 int
32 eth_igc_filter_ctrl(struct rte_eth_dev *dev, enum rte_filter_type filter_type,
33                 enum rte_filter_op filter_op, void *arg);
34
35 #ifdef __cplusplus
36 }
37 #endif
38
39 #endif /* IGC_FILTER_H_ */