From patchwork Wed Aug 23 05:49:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Dwivedi X-Patchwork-Id: 130660 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0786B430DC; Wed, 23 Aug 2023 07:50:26 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DF44F43067; Wed, 23 Aug 2023 07:50:25 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 40B4843247 for ; Wed, 23 Aug 2023 07:50:24 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37MI5aDe027415 for ; Tue, 22 Aug 2023 22:50:23 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=/Q1rIUH6LUMx/q6PF2JTJZvlSyv1zubUU6oi7ZUSQYM=; b=ElvhzleVsTQynqKm5HBSQDy27hEVIQMF1HaNiCGbUCAdIHattog82Vd+J/YFJ7J4Pgrc 8YGHvP5Y5SqjAXPtFAXxmn7Rfue+yd14YVhdMspGFZ07MlXi7RX7ziJOT3tDLVYIBsNx UdKxNyCRCQNDmL5QejPGEfkOluX2BjWVm5eyIgg8HCtplWF4flknNoYHw3hpO6pajT+0 h4T4QWdLnJfUqk+XPMoT+Z7zigkzD5/b9QJLGmuVtSMStXiOWADiAn3xvNH5du5M8FXV J8R1FuzRUANsxfoWjhsuZ1D2H4JDBx1bDzTP3fncV+LaSHfg/pQ+ieO8LK9VL5zu+/O6 rQ== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3sn20b1srj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 22 Aug 2023 22:50:23 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 22 Aug 2023 22:50:21 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Tue, 22 Aug 2023 22:50:21 -0700 Received: from localhost.localdomain (unknown [10.28.36.185]) by maili.marvell.com (Postfix) with ESMTP id 756593F70B7; Tue, 22 Aug 2023 22:50:19 -0700 (PDT) From: Ankur Dwivedi To: CC: , , , "Ankur Dwivedi" Subject: [PATCH v1 1/2] common/cnxk: add sa to port mapping Date: Wed, 23 Aug 2023 11:19:59 +0530 Message-ID: <20230823055000.2692083-2-adwivedi@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230823055000.2692083-1-adwivedi@marvell.com> References: <20230823055000.2692083-1-adwivedi@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: DZNj2dXa1QyKI8PxfcwgEbcfNkd4VjpN X-Proofpoint-GUID: DZNj2dXa1QyKI8PxfcwgEbcfNkd4VjpN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-08-23_03,2023-08-22_01,2023-05-22_02 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Adds sa to port mapping in roc mcs. This helps to propagate the tx and rx pn threshold events to the correct ethernet device. Signed-off-by: Ankur Dwivedi --- drivers/common/cnxk/roc_mcs.c | 22 +++++++++++++++++++--- drivers/common/cnxk/roc_mcs.h | 8 ++++++-- drivers/common/cnxk/roc_mcs_sec_cfg.c | 6 ++++++ drivers/common/cnxk/version.map | 1 + 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/drivers/common/cnxk/roc_mcs.c b/drivers/common/cnxk/roc_mcs.c index 1f269ddae5..f823f7f478 100644 --- a/drivers/common/cnxk/roc_mcs.c +++ b/drivers/common/cnxk/roc_mcs.c @@ -10,6 +10,7 @@ struct mcs_event_cb { enum roc_mcs_event_type event; roc_mcs_dev_cb_fn cb_fn; void *cb_arg; + void *userdata; void *ret_param; uint32_t active; }; @@ -320,12 +321,16 @@ roc_mcs_intr_configure(struct roc_mcs *mcs, struct roc_mcs_intr_cfg *config) { struct mcs_intr_cfg *req; struct msg_rsp *rsp; + int rc; if (config == NULL) return -EINVAL; MCS_SUPPORT_CHECK; + if (mcs->intr_cfg_once) + return 0; + req = mbox_alloc_msg_mcs_intr_cfg(mcs->mbox); if (req == NULL) return -ENOMEM; @@ -333,7 +338,11 @@ roc_mcs_intr_configure(struct roc_mcs *mcs, struct roc_mcs_intr_cfg *config) req->intr_mask = config->intr_mask; req->mcs_id = mcs->idx; - return mbox_process_msg(mcs->mbox, (void *)&rsp); + rc = mbox_process_msg(mcs->mbox, (void *)&rsp); + if (rc == 0) + mcs->intr_cfg_once = true; + + return rc; } int @@ -630,7 +639,7 @@ roc_mcs_event_cb_register(struct roc_mcs *mcs, enum roc_mcs_event_type event, cb->cb_fn = cb_fn; cb->cb_arg = cb_arg; cb->event = event; - mcs->userdata = userdata; + cb->userdata = userdata; TAILQ_INSERT_TAIL(cb_list, cb, next); } @@ -678,7 +687,8 @@ mcs_event_cb_process(struct roc_mcs *mcs, struct roc_mcs_event_desc *desc) cb->active = 1; mcs_cb.ret_param = desc; - rc = mcs_cb.cb_fn(mcs->userdata, mcs_cb.ret_param, mcs_cb.cb_arg); + rc = mcs_cb.cb_fn(mcs_cb.userdata, mcs_cb.ret_param, mcs_cb.cb_arg, + mcs->sa_port_map[desc->metadata.sa_idx]); cb->active = 0; } @@ -788,6 +798,10 @@ mcs_alloc_rsrc_bmap(struct roc_mcs *mcs) } } + mcs->sa_port_map = plt_zmalloc(sizeof(uint8_t) * hw->sa_entries, 0); + if (mcs->sa_port_map == NULL) + goto exit; + return rc; exit: @@ -865,6 +879,8 @@ roc_mcs_dev_fini(struct roc_mcs *mcs) plt_free(priv->port_rsrc); + plt_free(mcs->sa_port_map); + roc_idev_mcs_free(mcs); plt_free(mcs); diff --git a/drivers/common/cnxk/roc_mcs.h b/drivers/common/cnxk/roc_mcs.h index afac6c92e2..1b554f79c9 100644 --- a/drivers/common/cnxk/roc_mcs.h +++ b/drivers/common/cnxk/roc_mcs.h @@ -477,15 +477,17 @@ struct roc_mcs_fips_result_rsp { }; /** User application callback to be registered for any notifications from driver. */ -typedef int (*roc_mcs_dev_cb_fn)(void *userdata, struct roc_mcs_event_desc *desc, void *cb_arg); +typedef int (*roc_mcs_dev_cb_fn)(void *userdata, struct roc_mcs_event_desc *desc, void *cb_arg, + uint8_t port_id); struct roc_mcs { TAILQ_ENTRY(roc_mcs) next; struct plt_pci_device *pci_dev; struct mbox *mbox; - void *userdata; uint8_t idx; uint8_t refcount; + bool intr_cfg_once; + uint8_t *sa_port_map; #define ROC_MCS_MEM_SZ (1 * 1024) uint8_t reserved[ROC_MCS_MEM_SZ] __plt_cache_aligned; @@ -556,6 +558,8 @@ __roc_api int roc_mcs_tx_sc_sa_map_write(struct roc_mcs *mcs, struct roc_mcs_tx_sc_sa_map *tx_sc_sa_map); __roc_api int roc_mcs_tx_sc_sa_map_read(struct roc_mcs *mcs, struct roc_mcs_tx_sc_sa_map *tx_sc_sa_map); +/* SA to Port map update */ +__roc_api void roc_mcs_sa_port_map_update(struct roc_mcs *mcs, int sa_id, uint8_t port_id); /* Flow entry read, write and enable */ __roc_api int roc_mcs_flowid_entry_write(struct roc_mcs *mcs, diff --git a/drivers/common/cnxk/roc_mcs_sec_cfg.c b/drivers/common/cnxk/roc_mcs_sec_cfg.c index 7b3a4c91e8..e2fd3e7b8c 100644 --- a/drivers/common/cnxk/roc_mcs_sec_cfg.c +++ b/drivers/common/cnxk/roc_mcs_sec_cfg.c @@ -526,3 +526,9 @@ roc_mcs_flowid_entry_enable(struct roc_mcs *mcs, struct roc_mcs_flowid_ena_dis_e return mbox_process_msg(mcs->mbox, (void *)&rsp); } + +void +roc_mcs_sa_port_map_update(struct roc_mcs *mcs, int sa_id, uint8_t port_id) +{ + mcs->sa_port_map[sa_id] = port_id; +} diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map index 8c71497df8..47b219af2b 100644 --- a/drivers/common/cnxk/version.map +++ b/drivers/common/cnxk/version.map @@ -170,6 +170,7 @@ INTERNAL { roc_mcs_rx_sc_sa_map_write; roc_mcs_sa_policy_read; roc_mcs_sa_policy_write; + roc_mcs_sa_port_map_update; roc_mcs_sc_stats_get; roc_mcs_secy_policy_read; roc_mcs_secy_policy_write; From patchwork Wed Aug 23 05:50:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Dwivedi X-Patchwork-Id: 130661 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 322A3430DC; Wed, 23 Aug 2023 07:50:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 19E8843255; Wed, 23 Aug 2023 07:50:32 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 95FBC43254 for ; Wed, 23 Aug 2023 07:50:30 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37MI5bge027427 for ; Tue, 22 Aug 2023 22:50:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=vBFyZ2J0VB3zitUKzPVfOzL7N1X7HUz16nExEiXmm/I=; b=gE/O4j48dIyuRBWeEGqpIOrAunge5izUScWuTZ5B8zmwFMn78Ece6XSeOuxcWBmFt40t aeNuHW7DdfBuL+GFiyJVrZrJaB3nK7yZuctrGJnO2sHAdnE5mQ5G/Jwh2/35OaBHvC6d YkIAz6mOe5hgqpytJIcPdjm8fbQwSzsZd31bNPqc6pvaWEz8CkJY4PIWXmF3IAbsncfX tjGZ4+Z84T29yEkqEntBn5izx5s23aDh8q+TimRIr/2PyEFnfGD/th4WxmykhHh7r1mV NvXHwmX19qPPyKKko2Dt3CVz3uAlAjBBvRac7p95sgPbUVyIGil3+6GdDlVMyYOxqrlX wA== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3sn20b1ss0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 22 Aug 2023 22:50:29 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 22 Aug 2023 22:50:27 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Tue, 22 Aug 2023 22:50:27 -0700 Received: from localhost.localdomain (unknown [10.28.36.185]) by maili.marvell.com (Postfix) with ESMTP id 105CA3F705D; Tue, 22 Aug 2023 22:50:25 -0700 (PDT) From: Ankur Dwivedi To: CC: , , , "Ankur Dwivedi" Subject: [PATCH v1 2/2] net/cnxk: update sa to port map Date: Wed, 23 Aug 2023 11:20:00 +0530 Message-ID: <20230823055000.2692083-3-adwivedi@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230823055000.2692083-1-adwivedi@marvell.com> References: <20230823055000.2692083-1-adwivedi@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: 3JkKalONhkcId_l6ktlsBBlx19kpKlgv X-Proofpoint-GUID: 3JkKalONhkcId_l6ktlsBBlx19kpKlgv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-08-23_03,2023-08-22_01,2023-05-22_02 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 --- 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);