[21/34] common/cnxk: add NPC action2 support
Checks
Commit Message
From: Rahul Bhansali <rbhansali@marvell.com>
Add action2 config for IPsec rule.
Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
---
drivers/common/cnxk/hw/nix.h | 13 +++++++++++--
drivers/common/cnxk/roc_mbox.h | 1 +
drivers/common/cnxk/roc_npc.h | 1 +
drivers/common/cnxk/roc_npc_mcam.c | 1 +
4 files changed, 14 insertions(+), 2 deletions(-)
@@ -1678,6 +1678,15 @@ struct nix_rx_action_s {
uint64_t rsvd_63_61 : 3;
};
+/* NIX receive action structure */
+struct nix_rx_action2_s {
+ uint64_t ipsec_qsel : 3;
+ uint64_t ipsec_qidx : 4;
+ uint64_t reserved_7_7 : 1;
+ uint64_t inline_profile_id : 4;
+ uint64_t reserved_12_63 : 52;
+
+};
/* NIX receive immediate sub descriptor structure */
struct nix_rx_imm_s {
uint64_t size : 16;
@@ -2666,9 +2675,9 @@ struct nix_lso_format {
#define NIX_SENDSTAT_IOFFSET_MASK 0xFFF
#define NIX_SENDSTAT_OOFFSET_MASK 0xFFF
-/* The mask is to extract lower 10-bits of channel number
+/* The mask is to extract lower 11-bits of channel number
* which CPT will pass to X2P.
*/
-#define NIX_CHAN_CPT_X2P_MASK (0x3ffull)
+#define NIX_CHAN_CPT_X2P_MASK (0x7ffull)
#endif /* __NIX_HW_H__ */
@@ -2694,6 +2694,7 @@ struct cn20k_mcam_entry {
uint64_t __io kw_mask[NPC_CN20K_MAX_KWS_IN_KEY];
uint64_t __io action;
uint64_t __io vtag_action;
+ uint64_t __io action2;
};
struct npc_cn20k_mcam_write_entry_req {
@@ -328,6 +328,7 @@ struct roc_npc_flow {
uint64_t mcam_data[ROC_NPC_MAX_MCAM_WIDTH_DWORDS];
uint64_t mcam_mask[ROC_NPC_MAX_MCAM_WIDTH_DWORDS];
uint64_t npc_action;
+ uint64_t npc_action2;
uint64_t vtag_action;
bool vtag_insert_enabled;
int8_t vtag_insert_count;
@@ -511,6 +511,7 @@ npc_mcam_write_entry(struct mbox *mbox, struct roc_npc_flow *mcam)
cn20k_req->intf = mcam->nix_intf;
cn20k_req->enable_entry = mcam->enable;
cn20k_req->entry_data.action = mcam->npc_action;
+ cn20k_req->entry_data.action2 = mcam->npc_action2;
cn20k_req->entry_data.vtag_action = mcam->vtag_action;
cn20k_req->hw_prio = mcam->priority;
if (mcam->use_ctr)