[PATCH v1 2/2] net/cnxk: update sa to port map
Ankur Dwivedi
adwivedi at marvell.com
Wed Aug 23 07:50:00 CEST 2023
The sa to port map is updated when the sa is created. In this patch the
portid field is also added to macsec event callback function.
Signed-off-by: Ankur Dwivedi <adwivedi at marvell.com>
---
drivers/net/cnxk/cnxk_ethdev_mcs.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/net/cnxk/cnxk_ethdev_mcs.c b/drivers/net/cnxk/cnxk_ethdev_mcs.c
index 5264774394..06ef7c98f3 100644
--- a/drivers/net/cnxk/cnxk_ethdev_mcs.c
+++ b/drivers/net/cnxk/cnxk_ethdev_mcs.c
@@ -113,6 +113,8 @@ cnxk_eth_macsec_sa_create(void *device, struct rte_security_macsec_sa *conf)
return -EINVAL;
}
+ roc_mcs_sa_port_map_update(mcs_dev->mdev, sa_id, mcs_dev->port_id);
+
return sa_id;
}
@@ -586,9 +588,11 @@ cnxk_eth_macsec_session_stats_get(struct cnxk_eth_dev *dev, struct cnxk_macsec_s
}
static int
-cnxk_mcs_event_cb(void *userdata, struct roc_mcs_event_desc *desc, void *cb_arg)
+cnxk_mcs_event_cb(void *userdata, struct roc_mcs_event_desc *desc, void *cb_arg,
+ uint8_t port_id)
{
struct rte_eth_event_macsec_desc d = {0};
+ struct cnxk_mcs_dev *mcs_dev = userdata;
d.metadata = (uint64_t)userdata;
@@ -617,15 +621,23 @@ cnxk_mcs_event_cb(void *userdata, struct roc_mcs_event_desc *desc, void *cb_arg)
break;
case ROC_MCS_EVENT_RX_SA_PN_HARD_EXP:
d.type = RTE_ETH_EVENT_MACSEC_RX_SA_PN_HARD_EXP;
+ if (mcs_dev->port_id != port_id)
+ return 0;
break;
case ROC_MCS_EVENT_RX_SA_PN_SOFT_EXP:
d.type = RTE_ETH_EVENT_MACSEC_RX_SA_PN_SOFT_EXP;
+ if (mcs_dev->port_id != port_id)
+ return 0;
break;
case ROC_MCS_EVENT_TX_SA_PN_HARD_EXP:
d.type = RTE_ETH_EVENT_MACSEC_TX_SA_PN_HARD_EXP;
+ if (mcs_dev->port_id != port_id)
+ return 0;
break;
case ROC_MCS_EVENT_TX_SA_PN_SOFT_EXP:
d.type = RTE_ETH_EVENT_MACSEC_TX_SA_PN_SOFT_EXP;
+ if (mcs_dev->port_id != port_id)
+ return 0;
break;
default:
plt_err("Unknown MACsec event type: %d", desc->type);
--
2.25.1
More information about the dev
mailing list