New structures are defined for configuring flexible masks Signed-off-by: Jingjing Wu <jingjing.wu at intel.com> --- lib/librte_ether/rte_eth_ctrl.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h index 4a51c22..e8e47fd 100644 --- a/lib/librte_ether/rte_eth_ctrl.h +++ b/lib/librte_ether/rte_eth_ctrl.h @@ -181,7 +181,30 @@ struct rte_eth_flex_payload_cfg { /**< Field vectors to constitute flexible payload */ }; +/** + * A structure defined to specify each word's bit mask + */ +struct rte_eth_flex_mask { + uint8_t offset; /**< Word offset in flexible payload */ + uint16_t bitmask; + /**< Each bit set to 1 disables the matched bit in the selected word + defined by offset field. */ +}; + +/** + * A structure used to configure FDIR masks for flexible payload + * for each flow type + */ +struct rte_eth_fdir_flex_masks { + enum rte_eth_flow_type flow_type; /**< Flow type */ + uint8_t words_mask; /**< Bit i enables word i of flexible payload */ + uint8_t nb_field; /**< The number of following fields */ + struct rte_eth_flex_mask field[0]; /**< Bitmask array */ +}; + #define RTE_ETH_FDIR_CFG_FLX 0x0001 +#define RTE_ETH_FDIR_CFG_MASK 0x0002 +#define RTE_ETH_FDIR_CFG_FLX_MASK 0x0003 /** * A structure used to configure FDIR filter global set * It supports RTE_ETH_FILTER_FDIR with RTE_ETH_FILTER_SET operation. @@ -191,6 +214,8 @@ struct rte_eth_fdir_cfg { /** * A pointer to structure for the configuration e.g. * struct rte_eth_flex_payload_cfg for FDIR_CFG_FLX + * struct rte_fdir_masks for FDIR_MASK + * struct rte_eth_fdir_flex_masks for FDIR_FLX_MASK */ void *cfg; }; -- 1.8.1.4