roc_npc->kex_capability = npc_get_kex_capability(npc);
roc_npc->rx_parse_nibble = npc->keyx_supp_nmask[NPC_MCAM_RX];
- npc->mark_actions = 0;
-
npc->mcam_entries = npc_mcam_tot_entries() >> npc->keyw[NPC_MCAM_RX];
/* Free, free_rev, live and live_rev entries */
}
mark = act_mark->id + 1;
req_act |= ROC_NPC_ACTION_TYPE_MARK;
- npc->mark_actions += 1;
break;
case ROC_NPC_ACTION_TYPE_FLAG:
mark = NPC_FLOW_FLAG_VAL;
req_act |= ROC_NPC_ACTION_TYPE_FLAG;
- npc->mark_actions += 1;
break;
case ROC_NPC_ACTION_TYPE_COUNT:
return 0;
}
-int
-roc_npc_mark_actions_get(struct roc_npc *roc_npc)
-{
- struct npc *npc = roc_npc_to_npc_priv(roc_npc);
-
- return npc->mark_actions;
-}
-
-int
-roc_npc_mark_actions_sub_return(struct roc_npc *roc_npc, uint32_t count)
-{
- struct npc *npc = roc_npc_to_npc_priv(roc_npc);
-
- npc->mark_actions -= count;
- return npc->mark_actions;
-}
-
static int
npc_vtag_cfg_delete(struct roc_npc *roc_npc, struct roc_npc_flow *flow)
{
void __roc_api roc_npc_flow_dump(FILE *file, struct roc_npc *roc_npc);
void __roc_api roc_npc_flow_mcam_dump(FILE *file, struct roc_npc *roc_npc,
struct roc_npc_flow *mcam);
-int __roc_api roc_npc_mark_actions_get(struct roc_npc *roc_npc);
-int __roc_api roc_npc_mark_actions_sub_return(struct roc_npc *roc_npc,
- uint32_t count);
int __roc_api roc_npc_vtag_actions_get(struct roc_npc *roc_npc);
int __roc_api roc_npc_vtag_actions_sub_return(struct roc_npc *roc_npc,
uint32_t count);
uint16_t flow_prealloc_size; /* Pre allocated mcam size */
uint16_t flow_max_priority; /* Max priority for flow */
uint16_t switch_header_type; /* Supported switch header type */
- uint32_t mark_actions; /* Number of mark actions */
uint32_t vtag_strip_actions; /* vtag insert/strip actions */
uint16_t pf_func; /* pf_func of device */
npc_dxcfg_t prx_dxcfg; /* intf, lid, lt, extract */
roc_npc_flow_parse;
roc_npc_get_low_priority_mcam;
roc_npc_init;
- roc_npc_mark_actions_get;
- roc_npc_mark_actions_sub_return;
roc_npc_vtag_actions_get;
roc_npc_vtag_actions_sub_return;
roc_npc_mcam_alloc_entries;