octeontx2-af: npc: Warn on NPC_IPSEC_SPI key overlap

When scanning the MKEX profile to determine supported NPC features, warn
if the SPI extraction field overlaps with other key fields. AH and ESP
may legitimately use the same key offset for SPI, so continue to
advertise NPC_IPSEC_SPI via npc_is_field_present() instead of treating
the overlap as a hard failure.

Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
Link: https://patch.msgid.link/20260721070303.986740-1-rkannoth@marvell.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Hariprasad Kelam 2026-07-21 12:33:03 +05:30 committed by Paolo Abeni
parent a50eba1e77
commit 72207e1b15

View File

@ -729,7 +729,12 @@ static void npc_set_features(struct rvu *rvu, int blkaddr, u8 intf)
if (!npc_check_field(rvu, blkaddr, NPC_LB, intf))
*features &= ~BIT_ULL(NPC_OUTER_VID);
/* Allow extracting SPI field from AH and ESP headers at same offset */
/* Warn on unrelated MKEX fields colliding with SPI key bits. AH/ESP
* sharing the same SPI key offset is valid; use npc_is_field_present(),
* not npc_check_field(), to advertise the feature.
*/
if (npc_check_overlap(rvu, blkaddr, NPC_IPSEC_SPI, 0, intf))
dev_warn(rvu->dev, "Overlap detected the field NPC_IPSEC_SPI\n");
if (npc_is_field_present(rvu, NPC_IPSEC_SPI, intf) &&
(*features & (BIT_ULL(NPC_IPPROTO_ESP) | BIT_ULL(NPC_IPPROTO_AH))))
*features |= BIT_ULL(NPC_IPSEC_SPI);