Add new data definations for MACVLAN filter enhancement in rte_eth_ctrl.h file.
Signed-off-by: Jijiang Liu <jijiang.liu at intel.com> Acked-by: Helin Zhang <helin.zhang at intel.com> Acked-by: Jingjing Wu <jingjing.wu at intel.com> Acked-by: Changchun Ouyang <changchun.ouyang at intel.com> --- lib/librte_ether/rte_eth_ctrl.h | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h index 66745a6..0910376 100644 --- a/lib/librte_ether/rte_eth_ctrl.h +++ b/lib/librte_ether/rte_eth_ctrl.h @@ -53,6 +53,7 @@ enum rte_filter_type { RTE_ETH_FILTER_NONE = 0, RTE_ETH_FILTER_RSS, RTE_ETH_FILTER_FDIR, + RTE_ETH_FILTER_MACVLAN, RTE_ETH_FILTER_MAX, }; @@ -72,6 +73,30 @@ enum rte_filter_op { RTE_ETH_FILTER_OP_MAX, }; +/* *** MACVLAN FILTER *** */ + +/* MAC/VLAN filter type */ +#define RTE_MAC_PERFECT_MATCH 0x0001 +#define RTE_MACVLAN_PERFECT_MATCH 0x0002 +#define RTE_MAC_HASH_MATCH 0x0004 +#define RTE_MACVLAN_HASH_MATCH 0x0008 +#define RTE_MACVLAN_TO_QUEUE 0x0010 + +/* MACVLAN filter type mask */ +#define RTE_MACVLAN_FILTER_MASK 0x000F + + +/** + * MAC filter structure + */ +struct rte_eth_mac_filter { + uint8_t pf_vf_flag; /**< 0 for PF;1 for VF */ + uint16_t id; /**< PF ID or VF ID */ + uint16_t filter_type; /**< MAC/VLAN filter type */ + uint16_t queue_id; /**< to queue ID */ + struct ether_addr mac_addr; +}; + #ifdef __cplusplus } #endif -- 1.7.7.6