[dpdk-dev,v5,19/21] ethdev: define structures for configuring flex masks

Message ID 1414654006-7472-20-git-send-email-jingjing.wu@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Jingjing Wu Oct. 30, 2014, 7:26 a.m. UTC
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(+)
  

Patch

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;
 };