[PATCH v4 net 0/10] octeontx2-af: npc: cn20k: MCAM fixes

Ratheesh Kannoth
2026-04-27T06:32:29Z

This series tightens Marvell OcteonTX2 AF NPC support for CN20K silicon
around MCAM key typing, optional debugfs setup, defrag allocation
rollback, defrag entry relocation bookkeeping, logical MCAM clear and
configuration, default-rule index handling and explicit teardown, and
NIXLF reserved-slot lookup when default rules are missing.

Patches 1 through 3 focus on AF error handling: propagate
npc_mcam_idx_2_key_type() failures through cn20k MCAM enable, config,
copy, and read paths; treat cn20k NPC debugfs files as optional so probe
does not fail when debugfs is unavailable; and fix defrag MCAM
allocation rollback so allocation errno is not overwritten by subbank
index resolution.

Patch 4 fixes npc_defrag_move_vdx_to_free(): when an MCAM line is moved
to a new physical index, copy entry2target_pffunc[] to the new slot,
clear the old slot, and update the matching mcam_rules entry so
software state matches hardware after defrag.

Patches 5 through 7 refine cn20k MCAM programming: clear entries by
logical index and resolved key width, fix bank and CFG sequencing in
npc_cn20k_config_mcam_entry(), and read action metadata from the correct
bank in npc_cn20k_read_mcam_entry().

Patches 8 through 10 complete default-rule lifecycle handling:
initialize all default-rule index outputs up front, tear down default
MCAM rules explicitly (coordinated with npc_mcam_free_all_entries()),
and reject USHRT_MAX sentinel indices in npc_get_nixlf_mcam_index() for
cn20k.

Ratheesh Kannoth (10):
octeontx2-af: npc: cn20k: Propagate MCAM key-type errors on cn20k
octeontx2-af: npc: cn20k: Drop debugfs_create_file() error checks in init
octeontx2-af: npc: cn20k: Propagate errors in defrag MCAM alloc rollback
octeontx2-af: npc: cn20k: Fix target map and rule index while defrag
octeontx2-af: npc: cn20k: Clear MCAM entries by index and key width
octeontx2-af: npc: cn20k: Fix bank value.
octeontx2-af: npc: cn20k: Fix MCAM actions read
octeontx2-af: npc: cn20k: Initialize default-rule index outputs up front
octeontx2-af: npc: cn20k: Tear down default MCAM rules explicitly on free
octeontx2-af: npc: cn20k: Reject missing default-rule MCAM indices

Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>

--
v3 -> v4:
- Add patch fixing entry2target_pffunc[] and mcam_rules when defrag
relocates an MCAM entry (npc_defrag_move_vdx_to_free()).
- Drop the standalone default-entry x4 preference and x2-profile
flow-install rejection patches from this series (10 patches total).
https://lore.kernel.org/netdev/20260420023442.3295891-1-rkannoth@marvell.com/

v2 -> v3: Addresses simon, paolo comments.
https://lore.kernel.org/netdev/20260420023442.3295891-1-rkannoth@marvell.com/

v1 -> v2: Addressed simon comments. Added more patch fixes to this series.
Link: https://lore.kernel.org/netdev/20260418162013.GG280379@horms.kernel.org/

2.43.0