[dpdk-dev,v5,19/21] ethdev: define structures for configuring flex masks
Commit Message
New structures are defined for configuring flexible masks
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
---
lib/librte_ether/rte_eth_ctrl.h | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
@@ -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;
};