From 2d4c1a9ea2ac83aeada1c633f4f205816b904c73 Mon Sep 17 00:00:00 2001 From: Jingjing Wu Date: Thu, 29 Jan 2015 13:29:17 +0800 Subject: [PATCH] ethdev: add new flow director masks This patch defines structure rte_eth_fdir_masks. It extends rte_fdir_conf and rte_eth_fdir_info to contain mask's configuration. Signed-off-by: Jingjing Wu Acked-by: Helin Zhang --- lib/librte_ether/rte_eth_ctrl.h | 13 +++++++++++++ lib/librte_ether/rte_ethdev.h | 1 + 2 files changed, 14 insertions(+) diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h index 87d4075a1f..be93a5a71a 100644 --- a/lib/librte_ether/rte_eth_ctrl.h +++ b/lib/librte_ether/rte_eth_ctrl.h @@ -343,6 +343,18 @@ struct rte_eth_fdir_filter { struct rte_eth_fdir_action action; /**< Action taken when match */ }; +/** + * A structure used to configure FDIR masks that are used by the device + * to match the various fields of RX packet headers. + */ +struct rte_eth_fdir_masks { + uint16_t vlan_tci_mask; + struct rte_eth_ipv4_flow ipv4_mask; + struct rte_eth_ipv6_flow ipv6_mask; + uint16_t src_port_mask; + uint16_t dst_port_mask; +}; + /** * Payload type */ @@ -409,6 +421,7 @@ enum rte_fdir_mode { */ struct rte_eth_fdir_info { enum rte_fdir_mode mode; /**< Flow director mode */ + struct rte_eth_fdir_masks mask; struct rte_eth_fdir_flex_conf flex_conf; /**< Flex payload configuration information */ uint32_t guarant_spc; /**< Guaranteed spaces.*/ diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 9cfe6e505c..526a9a4f56 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -723,6 +723,7 @@ struct rte_fdir_conf { enum rte_fdir_status_mode status; /**< How to report FDIR hash. */ /** RX queue of packets matching a "drop" filter in perfect mode. */ uint8_t drop_queue; + struct rte_eth_fdir_masks mask; struct rte_eth_fdir_flex_conf flex_conf; /**< Flex payload configuration. */ }; -- 2.20.1