Skip to content

Commit

Permalink
net/octeontx2: fix flow creation limit on CN98xx
Browse files Browse the repository at this point in the history
[ upstream commit b65db6a ]

CN96xx and CN98xx have 4096 and 16384 MCAM entries respectively.
Aligning the code with the same numbers.

Fixes: 092b383 ("net/octeontx2: add flow init and fini")

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
  • Loading branch information
satheeshpaul authored and bluca committed Jul 12, 2021
1 parent 4d1f97b commit 2bc1fd8
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
3 changes: 3 additions & 0 deletions drivers/common/octeontx2/otx2_dev.h
Expand Up @@ -55,6 +55,9 @@
(RVU_PCI_REV_MINOR(otx2_dev_revid(dev)) == 0x0) && \
(RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x0))

#define otx2_dev_is_98xx(dev) \
(RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x3)

struct otx2_dev;

/* Link status callback */
Expand Down
16 changes: 14 additions & 2 deletions drivers/net/octeontx2/otx2_flow.c
Expand Up @@ -963,12 +963,23 @@ flow_fetch_kex_cfg(struct otx2_eth_dev *dev)
return rc;
}

#define OTX2_MCAM_TOT_ENTRIES_96XX (4096)
#define OTX2_MCAM_TOT_ENTRIES_98XX (16384)

static int otx2_mcam_tot_entries(struct otx2_eth_dev *dev)
{
if (otx2_dev_is_98xx(dev))
return OTX2_MCAM_TOT_ENTRIES_98XX;
else
return OTX2_MCAM_TOT_ENTRIES_96XX;
}

int
otx2_flow_init(struct otx2_eth_dev *hw)
{
uint8_t *mem = NULL, *nix_mem = NULL, *npc_mem = NULL;
struct otx2_npc_flow_info *npc = &hw->npc_flow;
uint32_t bmap_sz;
uint32_t bmap_sz, tot_mcam_entries = 0;
int rc = 0, idx;

rc = flow_fetch_kex_cfg(hw);
Expand All @@ -980,7 +991,8 @@ otx2_flow_init(struct otx2_eth_dev *hw)
rte_atomic32_init(&npc->mark_actions);
npc->vtag_actions = 0;

npc->mcam_entries = NPC_MCAM_TOT_ENTRIES >> npc->keyw[NPC_MCAM_RX];
tot_mcam_entries = otx2_mcam_tot_entries(hw);
npc->mcam_entries = tot_mcam_entries >> npc->keyw[NPC_MCAM_RX];
/* Free, free_rev, live and live_rev entries */
bmap_sz = rte_bitmap_get_memory_footprint(npc->mcam_entries);
mem = rte_zmalloc(NULL, 4 * bmap_sz * npc->flow_max_priority,
Expand Down
1 change: 0 additions & 1 deletion drivers/net/octeontx2/otx2_flow.h
Expand Up @@ -34,7 +34,6 @@ enum {
/* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */
#define NPC_MAX_EXTRACT_DATA_LEN (64)
#define NPC_LDATA_LFLAG_LEN (16)
#define NPC_MCAM_TOT_ENTRIES (4096)
#define NPC_MAX_KEY_NIBBLES (31)
/* Nibble offsets */
#define NPC_LAYER_KEYX_SZ (3)
Expand Down

0 comments on commit 2bc1fd8

Please sign in to comment.