[dpdk-dev] [PATCH v4 16/21] ethdev: define structures for configuring flexible payload
Jingjing Wu
jingjing.wu at intel.com
Wed Oct 22 03:01:22 CEST 2014
define structures for configuring flexible payload
Signed-off-by: Jingjing Wu <jingjing.wu at intel.com>
---
lib/librte_ether/rte_eth_ctrl.h | 43 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h
index 7ca1d6b..ca21313 100644
--- a/lib/librte_ether/rte_eth_ctrl.h
+++ b/lib/librte_ether/rte_eth_ctrl.h
@@ -76,6 +76,25 @@ enum rte_filter_op {
* Define all structures for Flow Director Filter type corresponding with specific operations.
*/
+
+/**
+ * A structure defined a field vector to specify each field.
+ */
+struct rte_eth_field_vector {
+ uint8_t offset; /**< Source word offset */
+ uint8_t size; /**< Field Size defined in word units */
+};
+
+/**
+ * payload type
+ */
+enum rte_eth_payload_type {
+ RTE_ETH_PAYLOAD_UNKNOWN = 0,
+ RTE_ETH_L2_PAYLOAD,
+ RTE_ETH_L3_PAYLOAD,
+ RTE_ETH_L4_PAYLOAD,
+};
+
/**
* flow type
*/
@@ -92,6 +111,30 @@ enum rte_eth_flow_type {
};
/**
+ * A structure used to select fields extracted from the protocol layers to
+ * the Field Vector as flexible payload for filter
+ */
+struct rte_eth_flex_payload_cfg {
+ enum rte_eth_payload_type type; /**< payload type */
+ uint8_t nb_field; /**< the number of following fields */
+ struct rte_eth_field_vector field[0];
+};
+
+#define RTE_ETH_FDIR_CFG_FLX 0x0001
+/**
+ * A structure used to config FDIR filter global set
+ * to support RTE_ETH_FILTER_FDIR with RTE_ETH_FILTER_SET operation.
+ */
+struct rte_eth_fdir_cfg {
+ uint16_t cmd; /**< sub command */
+ /**
+ * A pointer to structure for the configuration e.g.
+ * struct rte_eth_flex_payload_cfg for FDIR_CFG_FLX
+ */
+ void *cfg;
+};
+
+/**
* A structure used to define the input for IPV4 UDP flow
*/
struct rte_eth_udpv4_flow {
--
1.8.1.4
More information about the dev
mailing list