#define NPC_COUNTER_NONE (-1)
/* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */
#define NPC_MAX_EXTRACT_DATA_LEN (64)
#define NPC_COUNTER_NONE (-1)
/* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */
#define NPC_MAX_EXTRACT_DATA_LEN (64)
#define OTX2_FLOW_ACT_COUNT (1 << 7)
#define OTX2_FLOW_ACT_PF (1 << 8)
#define OTX2_FLOW_ACT_VF (1 << 9)
#define OTX2_FLOW_ACT_COUNT (1 << 7)
#define OTX2_FLOW_ACT_PF (1 << 8)
#define OTX2_FLOW_ACT_VF (1 << 9)
/* Accessed from ethdev private - otx2_eth_dev */
struct otx2_npc_flow_info {
rte_atomic32_t mark_actions;
/* Accessed from ethdev private - otx2_eth_dev */
struct otx2_npc_flow_info {
rte_atomic32_t mark_actions;
uint32_t keyx_supp_nmask[NPC_MAX_INTF];/* nibble mask */
uint32_t keyx_len[NPC_MAX_INTF]; /* per intf key len in bits */
uint32_t datax_len[NPC_MAX_INTF]; /* per intf data len in bits */
uint32_t keyx_supp_nmask[NPC_MAX_INTF];/* nibble mask */
uint32_t keyx_len[NPC_MAX_INTF]; /* per intf key len in bits */
uint32_t datax_len[NPC_MAX_INTF]; /* per intf data len in bits */
uint16_t channel; /*rx channel */
uint16_t flow_prealloc_size;
uint16_t flow_max_priority;
uint16_t channel; /*rx channel */
uint16_t flow_prealloc_size;
uint16_t flow_max_priority;
uint8_t flags[NPC_MAX_LID];
uint8_t *mcam_data; /* point to flow->mcam_data + key_len */
uint8_t *mcam_mask; /* point to flow->mcam_mask + key_len */
uint8_t flags[NPC_MAX_LID];
uint8_t *mcam_data; /* point to flow->mcam_data + key_len */
uint8_t *mcam_mask; /* point to flow->mcam_mask + key_len */
int otx2_flow_parse_actions(struct rte_eth_dev *dev,
const struct rte_flow_attr *attr,
const struct rte_flow_action actions[],
int otx2_flow_parse_actions(struct rte_eth_dev *dev,
const struct rte_flow_attr *attr,
const struct rte_flow_action actions[],