extern "C" {
#endif
-/**
- * Feature filter types
- */
-enum rte_filter_type {
- RTE_ETH_FILTER_NONE = 0,
- RTE_ETH_FILTER_ETHERTYPE,
- RTE_ETH_FILTER_FLEXIBLE,
- RTE_ETH_FILTER_SYN,
- RTE_ETH_FILTER_NTUPLE,
- RTE_ETH_FILTER_TUNNEL,
- RTE_ETH_FILTER_FDIR,
- RTE_ETH_FILTER_HASH,
- RTE_ETH_FILTER_L2_TUNNEL,
- RTE_ETH_FILTER_GENERIC,
- RTE_ETH_FILTER_MAX
-};
-
-/**
- * Generic operations on filters
- */
-enum rte_filter_op {
- /** used to check whether the type filter is supported */
- RTE_ETH_FILTER_NOP = 0,
- RTE_ETH_FILTER_ADD, /**< add filter entry */
- RTE_ETH_FILTER_UPDATE, /**< update filter entry */
- RTE_ETH_FILTER_DELETE, /**< delete filter entry */
- RTE_ETH_FILTER_FLUSH, /**< flush all entries */
- RTE_ETH_FILTER_GET, /**< get filter entry */
- RTE_ETH_FILTER_SET, /**< configurations */
- RTE_ETH_FILTER_INFO, /**< retrieve information */
- RTE_ETH_FILTER_STATS, /**< retrieve statistics */
- RTE_ETH_FILTER_OP_MAX
-};
-
/**
* Define all structures for ntuple Filter type.
*/
uint16_t queue; /**< Queue assigned to when match*/
};
-/**
- * Global eth device configuration type.
- */
-enum rte_eth_global_cfg_type {
- RTE_ETH_GLOBAL_CFG_TYPE_UNKNOWN = 0,
- RTE_ETH_GLOBAL_CFG_TYPE_GRE_KEY_LEN,
- RTE_ETH_GLOBAL_CFG_TYPE_MAX,
-};
-
-/**
- * Global eth device configuration.
- */
-struct rte_eth_global_cfg {
- enum rte_eth_global_cfg_type cfg_type; /**< Global config type. */
- union {
- uint8_t gre_key_len; /**< Valid GRE key length in byte. */
- uint64_t reserved; /**< Reserve space for future use. */
- } cfg;
-};
-
#define RTE_ETH_FDIR_MAX_FLEXLEN 16 /**< Max length of flexbytes. */
#define RTE_ETH_INSET_SIZE_MAX 128 /**< Max length of input set. */
};
/**
- * A structure used to define the flow director filter entry by filter_ctrl API
- * It supports RTE_ETH_FILTER_FDIR with RTE_ETH_FILTER_ADD and
- * RTE_ETH_FILTER_DELETE operations.
+ * A structure used to define the flow director filter entry by filter_ctrl API.
*/
struct rte_eth_fdir_filter {
uint32_t soft_id;
uint32_t best_cnt; /**< Number of filters in best effort spaces. */
};
-/**
- * Flow Director filter information types.
- */
-enum rte_eth_fdir_filter_info_type {
- RTE_ETH_FDIR_FILTER_INFO_TYPE_UNKNOWN = 0,
- /** Flow Director filter input set configuration */
- RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT,
- RTE_ETH_FDIR_FILTER_INFO_TYPE_MAX,
-};
-
-/**
- * A structure used to set FDIR filter information, to support filter type
- * of 'RTE_ETH_FILTER_FDIR' RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT operation.
- */
-struct rte_eth_fdir_filter_info {
- enum rte_eth_fdir_filter_info_type info_type; /**< Information type */
- /** Details of fdir filter information */
- union {
- /** Flow Director input set configuration per port */
- struct rte_eth_input_set_conf input_set_conf;
- } info;
-};
-
-/**
- * Hash filter information types.
- * - RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT is for getting/setting the
- * information/configuration of 'symmetric hash enable' per port.
- * - RTE_ETH_HASH_FILTER_GLOBAL_CONFIG is for getting/setting the global
- * configurations of hash filters. Those global configurations are valid
- * for all ports of the same NIC.
- * - RTE_ETH_HASH_FILTER_INPUT_SET_SELECT is for setting the global
- * hash input set fields
- */
-enum rte_eth_hash_filter_info_type {
- RTE_ETH_HASH_FILTER_INFO_TYPE_UNKNOWN = 0,
- /** Symmetric hash enable per port */
- RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT,
- /** Configure globally for hash filter */
- RTE_ETH_HASH_FILTER_GLOBAL_CONFIG,
- /** Global Hash filter input set configuration */
- RTE_ETH_HASH_FILTER_INPUT_SET_SELECT,
- RTE_ETH_HASH_FILTER_INFO_TYPE_MAX,
-};
-
-#define RTE_SYM_HASH_MASK_ARRAY_SIZE \
- (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT)
-/**
- * A structure used to set or get global hash function configurations which
- * include symmetric hash enable per flow type and hash function type.
- * Each bit in sym_hash_enable_mask[] indicates if the symmetric hash of the
- * corresponding flow type is enabled or not.
- * Each bit in valid_bit_mask[] indicates if the corresponding bit in
- * sym_hash_enable_mask[] is valid or not. For the configurations gotten, it
- * also means if the flow type is supported by hardware or not.
- */
-struct rte_eth_hash_global_conf {
- enum rte_eth_hash_function hash_func; /**< Hash function type */
- /** Bit mask for symmetric hash enable per flow type */
- uint64_t sym_hash_enable_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
- /** Bit mask indicates if the corresponding bit is valid */
- uint64_t valid_bit_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
-};
-
-/**
- * A structure used to set or get hash filter information, to support filter
- * type of 'RTE_ETH_FILTER_HASH' and its operations.
- */
-struct rte_eth_hash_filter_info {
- enum rte_eth_hash_filter_info_type info_type; /**< Information type */
- /** Details of hash filter information */
- union {
- /** For RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT */
- uint8_t enable;
- /** Global configurations of hash filter */
- struct rte_eth_hash_global_conf global_conf;
- /** Global configurations of hash filter input set */
- struct rte_eth_input_set_conf input_set_conf;
- } info;
-};
-
-/**
- * l2 tunnel configuration.
- */
-struct rte_eth_l2_tunnel_conf {
- enum rte_eth_tunnel_type l2_tunnel_type;
- uint16_t ether_type; /* ether type in l2 header */
- uint32_t tunnel_id; /* port tag id for e-tag */
- uint16_t vf_id; /* VF id for tag insertion */
- uint32_t pool; /* destination pool for tag based forwarding */
-};
-
#ifdef __cplusplus
}
#endif