[dpdk-dev,v3,18/20] lib/librte_ether: define structures for configuring flex masks
Commit Message
define structures for configuring flexible masks
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
---
lib/librte_ether/rte_eth_ctrl.h | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
@@ -119,7 +119,28 @@ struct rte_eth_flex_payload_cfg {
struct rte_eth_field_vector field[0];
};
+/**
+ * A structure defined to specify each word's bit mask
+ */
+struct rte_eth_flex_mask {
+ uint8_t offset; /**< word offset of word in flexible payload */
+ uint16_t bitmask; /**< bit mask for word defined by offset */
+};
+
+/**
+ * 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 8 words flexible payload */
+ uint8_t nb_field; /**< the number of folloing fieds */
+ struct rte_eth_flex_mask field[0];
+};
+
#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 config FDIR filter global set
* to support RTE_ETH_FILTER_FDIR with RTE_ETH_FILTER_OP_SET operation.
@@ -129,9 +150,12 @@ 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 mask for FDIR_MASK
+ * struct rte_eth_fdir_flex_masks for FDIR_FLX_MASK
*/
void *cfg;
};
+
/**
* A structure used to define the input for IPV4 UDP flow
*/