From: Akhil Goyal <gakhil@marvell.com>
To: <dev@dpdk.org>
Cc: <thomas@monjalon.net>, <david.marchand@redhat.com>,
<vattunuru@marvell.com>, <jerinj@marvell.com>,
<adwivedi@marvell.com>, <ndabilpuram@marvell.com>,
Akhil Goyal <gakhil@marvell.com>
Subject: [PATCH v4 08/15] common/cnxk: add MACsec port configuration
Date: Tue, 13 Jun 2023 15:50:02 +0530 [thread overview]
Message-ID: <20230613102009.2390568-9-gakhil@marvell.com> (raw)
In-Reply-To: <20230613102009.2390568-1-gakhil@marvell.com>
Added ROC APIs for MACsec port configurations
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
---
drivers/common/cnxk/roc_mbox.h | 40 ++++
drivers/common/cnxk/roc_mcs.c | 346 ++++++++++++++++++++++++++++++++
drivers/common/cnxk/roc_mcs.h | 48 +++++
drivers/common/cnxk/version.map | 4 +
4 files changed, 438 insertions(+)
diff --git a/drivers/common/cnxk/roc_mbox.h b/drivers/common/cnxk/roc_mbox.h
index d964ba9f9d..d7c0385a8b 100644
--- a/drivers/common/cnxk/roc_mbox.h
+++ b/drivers/common/cnxk/roc_mbox.h
@@ -319,6 +319,9 @@ struct mbox_msghdr {
M(MCS_INTR_CFG, 0xa012, mcs_intr_cfg, mcs_intr_cfg, msg_rsp) \
M(MCS_SET_LMAC_MODE, 0xa013, mcs_set_lmac_mode, mcs_set_lmac_mode, msg_rsp) \
M(MCS_SET_PN_THRESHOLD, 0xa014, mcs_set_pn_threshold, mcs_set_pn_threshold, msg_rsp) \
+ M(MCS_PORT_RESET, 0xa018, mcs_port_reset, mcs_port_reset_req, msg_rsp) \
+ M(MCS_PORT_CFG_SET, 0xa019, mcs_port_cfg_set, mcs_port_cfg_set_req, msg_rsp) \
+ M(MCS_PORT_CFG_GET, 0xa020, mcs_port_cfg_get, mcs_port_cfg_get_req, mcs_port_cfg_get_rsp) \
/* Messages initiated by AF (range 0xC00 - 0xDFF) */
#define MBOX_UP_CGX_MESSAGES \
@@ -919,6 +922,43 @@ struct mcs_set_pn_threshold {
uint64_t __io rsvd;
};
+struct mcs_port_cfg_set_req {
+ struct mbox_msghdr hdr;
+ uint8_t __io cstm_tag_rel_mode_sel;
+ uint8_t __io custom_hdr_enb;
+ uint8_t __io fifo_skid;
+ uint8_t __io lmac_mode;
+ uint8_t __io lmac_id;
+ uint8_t __io mcs_id;
+ uint64_t __io rsvd;
+};
+
+struct mcs_port_cfg_get_req {
+ struct mbox_msghdr hdr;
+ uint8_t __io lmac_id;
+ uint8_t __io mcs_id;
+ uint64_t __io rsvd;
+};
+
+struct mcs_port_cfg_get_rsp {
+ struct mbox_msghdr hdr;
+ uint8_t __io cstm_tag_rel_mode_sel;
+ uint8_t __io custom_hdr_enb;
+ uint8_t __io fifo_skid;
+ uint8_t __io lmac_mode;
+ uint8_t __io lmac_id;
+ uint8_t __io mcs_id;
+ uint64_t __io rsvd;
+};
+
+struct mcs_port_reset_req {
+ struct mbox_msghdr hdr;
+ uint8_t __io reset;
+ uint8_t __io mcs_id;
+ uint8_t __io lmac_id;
+ uint64_t __io rsvd;
+};
+
struct mcs_stats_req {
struct mbox_msghdr hdr;
uint8_t __io id;
diff --git a/drivers/common/cnxk/roc_mcs.c b/drivers/common/cnxk/roc_mcs.c
index e9090da575..e6e6197a49 100644
--- a/drivers/common/cnxk/roc_mcs.c
+++ b/drivers/common/cnxk/roc_mcs.c
@@ -76,6 +76,25 @@ roc_mcs_active_lmac_set(struct roc_mcs *mcs, struct roc_mcs_set_active_lmac *lma
return mbox_process_msg(mcs->mbox, (void *)&rsp);
}
+static int
+mcs_port_reset_set(struct roc_mcs *mcs, struct roc_mcs_port_reset_req *port, uint8_t reset)
+{
+ struct mcs_port_reset_req *req;
+ struct msg_rsp *rsp;
+
+ MCS_SUPPORT_CHECK;
+
+ req = mbox_alloc_msg_mcs_port_reset(mcs->mbox);
+ if (req == NULL)
+ return -ENOMEM;
+
+ req->reset = reset;
+ req->lmac_id = port->port_id;
+ req->mcs_id = mcs->idx;
+
+ return mbox_process_msg(mcs->mbox, (void *)&rsp);
+}
+
int
roc_mcs_lmac_mode_set(struct roc_mcs *mcs, struct roc_mcs_set_lmac_mode *port)
{
@@ -121,6 +140,64 @@ roc_mcs_pn_threshold_set(struct roc_mcs *mcs, struct roc_mcs_set_pn_threshold *p
return mbox_process_msg(mcs->mbox, (void *)&rsp);
}
+int
+roc_mcs_port_cfg_set(struct roc_mcs *mcs, struct roc_mcs_port_cfg_set_req *req)
+{
+ struct mcs_port_cfg_set_req *set_req;
+ struct msg_rsp *rsp;
+
+ MCS_SUPPORT_CHECK;
+
+ if (req == NULL)
+ return -EINVAL;
+
+ set_req = mbox_alloc_msg_mcs_port_cfg_set(mcs->mbox);
+ if (set_req == NULL)
+ return -ENOMEM;
+
+ set_req->cstm_tag_rel_mode_sel = req->cstm_tag_rel_mode_sel;
+ set_req->custom_hdr_enb = req->custom_hdr_enb;
+ set_req->fifo_skid = req->fifo_skid;
+ set_req->lmac_mode = req->port_mode;
+ set_req->lmac_id = req->port_id;
+ set_req->mcs_id = mcs->idx;
+
+ return mbox_process_msg(mcs->mbox, (void *)&rsp);
+}
+
+int
+roc_mcs_port_cfg_get(struct roc_mcs *mcs, struct roc_mcs_port_cfg_get_req *req,
+ struct roc_mcs_port_cfg_get_rsp *rsp)
+{
+ struct mcs_port_cfg_get_req *get_req;
+ struct mcs_port_cfg_get_rsp *get_rsp;
+ int rc;
+
+ MCS_SUPPORT_CHECK;
+
+ if (req == NULL)
+ return -EINVAL;
+
+ get_req = mbox_alloc_msg_mcs_port_cfg_get(mcs->mbox);
+ if (get_req == NULL)
+ return -ENOMEM;
+
+ get_req->lmac_id = req->port_id;
+ get_req->mcs_id = mcs->idx;
+
+ rc = mbox_process_msg(mcs->mbox, (void *)&get_rsp);
+ if (rc)
+ return rc;
+
+ rsp->cstm_tag_rel_mode_sel = get_rsp->cstm_tag_rel_mode_sel;
+ rsp->custom_hdr_enb = get_rsp->custom_hdr_enb;
+ rsp->fifo_skid = get_rsp->fifo_skid;
+ rsp->port_mode = get_rsp->lmac_mode;
+ rsp->port_id = get_rsp->lmac_id;
+
+ return 0;
+}
+
int
roc_mcs_intr_configure(struct roc_mcs *mcs, struct roc_mcs_intr_cfg *config)
{
@@ -142,6 +219,275 @@ roc_mcs_intr_configure(struct roc_mcs *mcs, struct roc_mcs_intr_cfg *config)
return mbox_process_msg(mcs->mbox, (void *)&rsp);
}
+int
+roc_mcs_port_recovery(struct roc_mcs *mcs, union roc_mcs_event_data *mdata, uint8_t port_id)
+{
+ struct mcs_priv *priv = roc_mcs_to_mcs_priv(mcs);
+ struct roc_mcs_pn_table_write_req pn_table = {0};
+ struct roc_mcs_rx_sc_sa_map rx_map = {0};
+ struct roc_mcs_tx_sc_sa_map tx_map = {0};
+ struct roc_mcs_port_reset_req port = {0};
+ struct roc_mcs_clear_stats stats = {0};
+ int tx_cnt = 0, rx_cnt = 0, rc = 0;
+ uint64_t set;
+ int i;
+
+ port.port_id = port_id;
+ rc = mcs_port_reset_set(mcs, &port, 1);
+
+ /* Reset TX/RX PN tables */
+ for (i = 0; i < (priv->sa_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sa_bmap, i);
+ if (set) {
+ pn_table.pn_id = i;
+ pn_table.next_pn = 1;
+ pn_table.dir = MCS_RX;
+ if (i >= priv->sa_entries) {
+ pn_table.dir = MCS_TX;
+ pn_table.pn_id -= priv->sa_entries;
+ }
+ rc = roc_mcs_pn_table_write(mcs, &pn_table);
+ if (rc)
+ return rc;
+
+ if (i >= priv->sa_entries)
+ tx_cnt++;
+ else
+ rx_cnt++;
+ }
+ }
+
+ if (tx_cnt || rx_cnt) {
+ mdata->tx_sa_array = plt_zmalloc(tx_cnt * sizeof(uint16_t), 0);
+ if (tx_cnt && (mdata->tx_sa_array == NULL)) {
+ rc = -ENOMEM;
+ goto exit;
+ }
+ mdata->rx_sa_array = plt_zmalloc(rx_cnt * sizeof(uint16_t), 0);
+ if (rx_cnt && (mdata->rx_sa_array == NULL)) {
+ rc = -ENOMEM;
+ goto exit;
+ }
+
+ mdata->num_tx_sa = tx_cnt;
+ mdata->num_rx_sa = rx_cnt;
+ for (i = 0; i < (priv->sa_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sa_bmap, i);
+ if (set) {
+ if (i >= priv->sa_entries)
+ mdata->tx_sa_array[--tx_cnt] = i - priv->sa_entries;
+ else
+ mdata->rx_sa_array[--rx_cnt] = i;
+ }
+ }
+ }
+ tx_cnt = 0;
+ rx_cnt = 0;
+
+ /* Reset Tx active SA to index:0 */
+ for (i = priv->sc_entries; i < (priv->sc_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sc_bmap, i);
+ if (set) {
+ uint16_t sc_id = i - priv->sc_entries;
+
+ tx_map.sa_index0 = priv->port_rsrc[port_id].sc_conf[sc_id].tx.sa_idx0;
+ tx_map.sa_index1 = priv->port_rsrc[port_id].sc_conf[sc_id].tx.sa_idx1;
+ tx_map.rekey_ena = priv->port_rsrc[port_id].sc_conf[sc_id].tx.rekey_enb;
+ tx_map.sectag_sci = priv->port_rsrc[port_id].sc_conf[sc_id].tx.sci;
+ tx_map.sa_index0_vld = 1;
+ tx_map.sa_index1_vld = 0;
+ tx_map.tx_sa_active = 0;
+ tx_map.sc_id = sc_id;
+ rc = roc_mcs_tx_sc_sa_map_write(mcs, &tx_map);
+ if (rc)
+ return rc;
+
+ tx_cnt++;
+ }
+ }
+
+ if (tx_cnt) {
+ mdata->tx_sc_array = plt_zmalloc(tx_cnt * sizeof(uint16_t), 0);
+ if (tx_cnt && (mdata->tx_sc_array == NULL)) {
+ rc = -ENOMEM;
+ goto exit;
+ }
+
+ mdata->num_tx_sc = tx_cnt;
+ for (i = priv->sc_entries; i < (priv->sc_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sc_bmap, i);
+ if (set)
+ mdata->tx_sc_array[--tx_cnt] = i - priv->sc_entries;
+ }
+ }
+
+ /* Clear SA_IN_USE for active ANs in RX CPM */
+ for (i = 0; i < priv->sc_entries; i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sc_bmap, i);
+ if (set) {
+ rx_map.sa_index = priv->port_rsrc[port_id].sc_conf[i].rx.sa_idx;
+ rx_map.an = priv->port_rsrc[port_id].sc_conf[i].rx.an;
+ rx_map.sa_in_use = 0;
+ rx_map.sc_id = i;
+ rc = roc_mcs_rx_sc_sa_map_write(mcs, &rx_map);
+ if (rc)
+ return rc;
+
+ rx_cnt++;
+ }
+ }
+
+ /* Reset flow(flow/secy/sc/sa) stats mapped to this PORT */
+ for (i = 0; i < (priv->tcam_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].tcam_bmap, i);
+ if (set) {
+ stats.type = MCS_FLOWID_STATS;
+ stats.id = i;
+ stats.dir = MCS_RX;
+ if (i >= priv->sa_entries) {
+ stats.dir = MCS_TX;
+ stats.id -= priv->tcam_entries;
+ }
+ rc = roc_mcs_stats_clear(mcs, &stats);
+ if (rc)
+ return rc;
+ }
+ }
+ for (i = 0; i < (priv->secy_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].secy_bmap, i);
+ if (set) {
+ stats.type = MCS_SECY_STATS;
+ stats.id = i;
+ stats.dir = MCS_RX;
+ if (i >= priv->sa_entries) {
+ stats.dir = MCS_TX;
+ stats.id -= priv->secy_entries;
+ }
+ rc = roc_mcs_stats_clear(mcs, &stats);
+ if (rc)
+ return rc;
+ }
+ }
+ for (i = 0; i < (priv->sc_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sc_bmap, i);
+ if (set) {
+ stats.type = MCS_SC_STATS;
+ stats.id = i;
+ stats.dir = MCS_RX;
+ if (i >= priv->sa_entries) {
+ stats.dir = MCS_TX;
+ stats.id -= priv->sc_entries;
+ }
+ rc = roc_mcs_stats_clear(mcs, &stats);
+ if (rc)
+ return rc;
+ }
+ }
+ if (roc_model_is_cn10kb_a0()) {
+ for (i = 0; i < (priv->sa_entries << 1); i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sa_bmap, i);
+ if (set) {
+ stats.type = MCS_SA_STATS;
+ stats.id = i;
+ stats.dir = MCS_RX;
+ if (i >= priv->sa_entries) {
+ stats.dir = MCS_TX;
+ stats.id -= priv->sa_entries;
+ }
+ rc = roc_mcs_stats_clear(mcs, &stats);
+ if (rc)
+ return rc;
+ }
+ }
+ }
+ {
+ stats.type = MCS_PORT_STATS;
+ stats.id = port_id;
+ rc = roc_mcs_stats_clear(mcs, &stats);
+ if (rc)
+ return rc;
+ }
+
+ if (rx_cnt) {
+ mdata->rx_sc_array = plt_zmalloc(rx_cnt * sizeof(uint16_t), 0);
+ if (mdata->rx_sc_array == NULL) {
+ rc = -ENOMEM;
+ goto exit;
+ }
+ mdata->sc_an_array = plt_zmalloc(rx_cnt * sizeof(uint8_t), 0);
+ if (mdata->sc_an_array == NULL) {
+ rc = -ENOMEM;
+ goto exit;
+ }
+
+ mdata->num_rx_sc = rx_cnt;
+ }
+
+ /* Reactivate in-use ANs for active SCs in RX CPM */
+ for (i = 0; i < priv->sc_entries; i++) {
+ set = plt_bitmap_get(priv->port_rsrc[port_id].sc_bmap, i);
+ if (set) {
+ rx_map.sa_index = priv->port_rsrc[port_id].sc_conf[i].rx.sa_idx;
+ rx_map.an = priv->port_rsrc[port_id].sc_conf[i].rx.an;
+ rx_map.sa_in_use = 1;
+ rx_map.sc_id = i;
+ rc = roc_mcs_rx_sc_sa_map_write(mcs, &rx_map);
+ if (rc)
+ return rc;
+
+ mdata->rx_sc_array[--rx_cnt] = i;
+ mdata->sc_an_array[rx_cnt] = priv->port_rsrc[port_id].sc_conf[i].rx.an;
+ }
+ }
+
+ port.port_id = port_id;
+ rc = mcs_port_reset_set(mcs, &port, 0);
+
+ return rc;
+exit:
+ if (mdata->num_tx_sa)
+ plt_free(mdata->tx_sa_array);
+ if (mdata->num_rx_sa)
+ plt_free(mdata->rx_sa_array);
+ if (mdata->num_tx_sc)
+ plt_free(mdata->tx_sc_array);
+ if (mdata->num_rx_sc) {
+ plt_free(mdata->rx_sc_array);
+ plt_free(mdata->sc_an_array);
+ }
+ return rc;
+}
+
+int
+roc_mcs_port_reset(struct roc_mcs *mcs, struct roc_mcs_port_reset_req *port)
+{
+ struct roc_mcs_event_desc desc = {0};
+ int rc;
+
+ /* Initiate port reset and software recovery */
+ rc = roc_mcs_port_recovery(mcs, &desc.metadata, port->port_id);
+ if (rc)
+ goto exit;
+
+ desc.type = ROC_MCS_EVENT_PORT_RESET_RECOVERY;
+ /* Notify the entity details to the application which are recovered */
+ mcs_event_cb_process(mcs, &desc);
+
+exit:
+ if (desc.metadata.num_tx_sa)
+ plt_free(desc.metadata.tx_sa_array);
+ if (desc.metadata.num_rx_sa)
+ plt_free(desc.metadata.rx_sa_array);
+ if (desc.metadata.num_tx_sc)
+ plt_free(desc.metadata.tx_sc_array);
+ if (desc.metadata.num_rx_sc) {
+ plt_free(desc.metadata.rx_sc_array);
+ plt_free(desc.metadata.sc_an_array);
+ }
+
+ return rc;
+}
+
int
roc_mcs_event_cb_register(struct roc_mcs *mcs, enum roc_mcs_event_type event,
roc_mcs_dev_cb_fn cb_fn, void *cb_arg, void *userdata)
diff --git a/drivers/common/cnxk/roc_mcs.h b/drivers/common/cnxk/roc_mcs.h
index b2ca6ee51b..d06057726f 100644
--- a/drivers/common/cnxk/roc_mcs.h
+++ b/drivers/common/cnxk/roc_mcs.h
@@ -163,6 +163,43 @@ struct roc_mcs_set_pn_threshold {
uint64_t rsvd;
};
+struct roc_mcs_port_cfg_set_req {
+ /* Index of custom tag (= cstm_indx[x] in roc_mcs_custom_tag_cfg_get_rsp struct) to use
+ * when TX SECY_PLCY_MEMX[SECTAG_INSERT_MODE] = 0 (relative offset mode)
+ */
+ uint8_t cstm_tag_rel_mode_sel;
+ /* In ingress path, custom_hdr_enb = 1 when the port is expected to receive pkts
+ * that have 8B custom header before DMAC
+ */
+ uint8_t custom_hdr_enb;
+ /* Valid fifo skid values are 14,28,56 for 25G,50G,100G respectively
+ * FIFOs need to be configured based on the port_mode, valid only for 105N
+ */
+ uint8_t fifo_skid;
+ uint8_t port_mode; /* 2'b00 - 25G or less, 2'b01 - 50G, 2'b10 - 100G */
+ uint8_t port_id;
+ uint64_t rsvd;
+};
+
+struct roc_mcs_port_cfg_get_req {
+ uint8_t port_id;
+ uint64_t rsvd;
+};
+
+struct roc_mcs_port_cfg_get_rsp {
+ uint8_t cstm_tag_rel_mode_sel;
+ uint8_t custom_hdr_enb;
+ uint8_t fifo_skid;
+ uint8_t port_mode;
+ uint8_t port_id;
+ uint64_t rsvd;
+};
+
+struct roc_mcs_port_reset_req {
+ uint8_t port_id;
+ uint64_t rsvd;
+};
+
struct roc_mcs_stats_req {
uint8_t id;
uint8_t dir;
@@ -367,6 +404,13 @@ __roc_api int roc_mcs_active_lmac_set(struct roc_mcs *mcs, struct roc_mcs_set_ac
__roc_api int roc_mcs_lmac_mode_set(struct roc_mcs *mcs, struct roc_mcs_set_lmac_mode *port);
/* (X)PN threshold set */
__roc_api int roc_mcs_pn_threshold_set(struct roc_mcs *mcs, struct roc_mcs_set_pn_threshold *pn);
+/* Reset port */
+__roc_api int roc_mcs_port_reset(struct roc_mcs *mcs, struct roc_mcs_port_reset_req *port);
+/* Get port config */
+__roc_api int roc_mcs_port_cfg_set(struct roc_mcs *mcs, struct roc_mcs_port_cfg_set_req *req);
+/* Set port config */
+__roc_api int roc_mcs_port_cfg_get(struct roc_mcs *mcs, struct roc_mcs_port_cfg_get_req *req,
+ struct roc_mcs_port_cfg_get_rsp *rsp);
/* Resource allocation and free */
__roc_api int roc_mcs_rsrc_alloc(struct roc_mcs *mcs, struct roc_mcs_alloc_rsrc_req *req,
@@ -436,4 +480,8 @@ __roc_api int roc_mcs_event_cb_unregister(struct roc_mcs *mcs, enum roc_mcs_even
/* Configure interrupts */
__roc_api int roc_mcs_intr_configure(struct roc_mcs *mcs, struct roc_mcs_intr_cfg *config);
+/* Port recovery from fatal errors */
+__roc_api int roc_mcs_port_recovery(struct roc_mcs *mcs, union roc_mcs_event_data *mdata,
+ uint8_t port_id);
+
#endif /* _ROC_MCS_H_ */
diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map
index d10dfcd84e..6c0defa27e 100644
--- a/drivers/common/cnxk/version.map
+++ b/drivers/common/cnxk/version.map
@@ -151,6 +151,10 @@ INTERNAL {
roc_mcs_pn_table_write;
roc_mcs_pn_table_read;
roc_mcs_pn_threshold_set;
+ roc_mcs_port_cfg_get;
+ roc_mcs_port_cfg_set;
+ roc_mcs_port_recovery;
+ roc_mcs_port_reset;
roc_mcs_port_stats_get;
roc_mcs_rsrc_alloc;
roc_mcs_rsrc_free;
--
2.25.1
next prev parent reply other threads:[~2023-06-13 10:21 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-14 18:46 [PATCH 0/3] security: support MACsec Akhil Goyal
2022-08-14 18:46 ` [PATCH 1/3] net: add MACsec header Akhil Goyal
2022-09-22 15:29 ` Akhil Goyal
2022-09-26 12:51 ` Olivier Matz
2022-09-26 13:41 ` [EXT] " Akhil Goyal
2022-09-27 8:36 ` Akhil Goyal
2022-08-14 18:46 ` [PATCH 2/3] security: support MACsec Akhil Goyal
2022-09-22 15:37 ` Akhil Goyal
2022-08-14 18:46 ` [PATCH 3/3] ethdev: add MACsec flow item Akhil Goyal
2022-08-15 12:49 ` Ori Kam
2022-09-28 12:22 ` [PATCH v2 0/3] security: support MACsec Akhil Goyal
2022-09-28 12:22 ` [PATCH v2 1/3] net: add MACsec header Akhil Goyal
2022-09-28 13:04 ` Olivier Matz
2022-09-28 13:44 ` Thomas Monjalon
2022-09-28 14:23 ` Ori Kam
2022-09-28 12:22 ` [PATCH v2 2/3] ethdev: add MACsec flow item Akhil Goyal
2022-09-28 12:22 ` [PATCH v2 3/3] security: support MACsec Akhil Goyal
2022-09-28 12:45 ` [PATCH 0/5] Support and test inline MACsec for cnxk Akhil Goyal
2022-09-28 12:45 ` [PATCH 1/5] common/cnxk: add ROC APIs for MACsec Akhil Goyal
2022-09-28 12:45 ` [PATCH 2/5] common/cnxk: derive hash key " Akhil Goyal
2022-09-28 12:45 ` [PATCH 3/5] net/cnxk: support MACsec Akhil Goyal
2022-09-28 12:45 ` [PATCH 4/5] test/security: add inline MACsec cases Akhil Goyal
2023-05-23 19:49 ` [PATCH 00/13] Add MACsec unit test cases Akhil Goyal
2023-05-23 19:49 ` [PATCH 01/13] security: add direction in SA/SC configuration Akhil Goyal
2023-05-23 19:49 ` [PATCH 02/13] security: add MACsec packet number threshold Akhil Goyal
2023-05-23 21:29 ` Stephen Hemminger
2023-05-24 7:12 ` [EXT] " Akhil Goyal
2023-05-24 8:09 ` Akhil Goyal
2023-05-23 19:49 ` [PATCH 03/13] test/security: add inline MACsec cases Akhil Goyal
2023-05-23 19:49 ` [PATCH 04/13] test/security: add MACsec integrity cases Akhil Goyal
2023-05-23 19:49 ` [PATCH 05/13] test/security: verify multi flow MACsec Akhil Goyal
2023-05-23 19:49 ` [PATCH 06/13] test/security: add MACsec VLAN cases Akhil Goyal
2023-05-23 19:49 ` [PATCH 07/13] test/security: add MACsec negative cases Akhil Goyal
2023-05-23 19:49 ` [PATCH 08/13] test/security: verify MACsec stats Akhil Goyal
2023-05-23 19:49 ` [PATCH 09/13] test/security: verify MACsec interrupts Akhil Goyal
2023-05-23 19:49 ` [PATCH 10/13] test/security: verify MACsec Tx HW rekey Akhil Goyal
2023-05-23 19:49 ` [PATCH 11/13] test/security: verify MACsec Rx rekey Akhil Goyal
2023-05-23 19:49 ` [PATCH 12/13] test/security: verify MACsec anti replay Akhil Goyal
2023-05-23 19:49 ` [PATCH 13/13] test/security: remove no MACsec support case Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 00/13] Add MACsec unit test cases Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 01/13] security: add direction in SA/SC configuration Akhil Goyal
2023-06-07 15:21 ` Akhil Goyal
2023-06-07 19:49 ` David Marchand
2023-06-08 6:58 ` [EXT] " Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 02/13] security: add MACsec packet number threshold Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 03/13] test/security: add inline MACsec cases Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 04/13] test/security: add MACsec integrity cases Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 05/13] test/security: verify multi flow MACsec Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 06/13] test/security: add MACsec VLAN cases Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 07/13] test/security: add MACsec negative cases Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 08/13] test/security: verify MACsec stats Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 09/13] test/security: verify MACsec interrupts Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 10/13] test/security: verify MACsec Tx HW rekey Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 11/13] test/security: verify MACsec Rx rekey Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 12/13] test/security: verify MACsec anti replay Akhil Goyal
2023-06-07 15:19 ` [PATCH v2 13/13] test/security: remove no MACsec support case Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 00/13] Add MACsec unit test cases Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 01/13] security: add direction in SA/SC configuration Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 02/13] security: add MACsec packet number threshold Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 03/13] test/security: add inline MACsec cases Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 04/13] test/security: add MACsec integrity cases Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 05/13] test/security: verify multi flow MACsec Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 06/13] test/security: add MACsec VLAN cases Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 07/13] test/security: add MACsec negative cases Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 08/13] test/security: verify MACsec stats Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 09/13] test/security: verify MACsec interrupts Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 10/13] test/security: verify MACsec Tx HW rekey Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 11/13] test/security: verify MACsec Rx rekey Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 12/13] test/security: verify MACsec anti replay Akhil Goyal
2023-06-08 6:54 ` [PATCH v3 13/13] test/security: remove no MACsec support case Akhil Goyal
2023-06-08 17:19 ` [PATCH v3 00/13] Add MACsec unit test cases Akhil Goyal
2022-09-28 12:45 ` [PATCH 5/5] test/security: add more MACsec cases Akhil Goyal
2023-05-23 20:03 ` [PATCH 00/15] net/cnxk: add MACsec support Akhil Goyal
2023-05-23 20:03 ` [PATCH 01/15] common/cnxk: add ROC MACsec initialization Akhil Goyal
2023-05-26 9:29 ` Jerin Jacob
2023-05-23 20:03 ` [PATCH 02/15] common/cnxk: add MACsec SA configuration Akhil Goyal
2023-05-26 10:16 ` Jerin Jacob
2023-05-23 20:03 ` [PATCH 03/15] common/cnxk: add MACsec SC configuration APIs Akhil Goyal
2023-05-23 20:03 ` [PATCH 04/15] common/cnxk: add MACsec secy and flow configuration Akhil Goyal
2023-05-23 20:03 ` [PATCH 05/15] common/cnxk: add MACsec PN and LMAC mode configuration Akhil Goyal
2023-05-26 10:20 ` Jerin Jacob
2023-05-23 20:03 ` [PATCH 06/15] common/cnxk: add MACsec stats Akhil Goyal
2023-05-23 20:03 ` [PATCH 07/15] common/cnxk: add MACsec interrupt APIs Akhil Goyal
2023-05-23 20:03 ` [PATCH 08/15] common/cnxk: add MACsec port configuration Akhil Goyal
2023-05-23 20:03 ` [PATCH 09/15] common/cnxk: add MACsec control " Akhil Goyal
2023-05-26 10:23 ` Jerin Jacob
2023-05-23 20:03 ` [PATCH 10/15] common/cnxk: add MACsec FIPS mbox Akhil Goyal
2023-05-23 20:03 ` [PATCH 11/15] common/cnxk: derive hash key for MACsec Akhil Goyal
2023-05-23 20:03 ` [PATCH 12/15] net/cnxk: add MACsec initialization Akhil Goyal
2023-05-23 20:03 ` [PATCH 13/15] net/cnxk: create/destroy MACsec SC/SA Akhil Goyal
2023-05-23 20:04 ` [PATCH 14/15] net/cnxk: add MACsec session and flow configuration Akhil Goyal
2023-05-23 20:04 ` [PATCH 15/15] net/cnxk: add MACsec stats Akhil Goyal
2023-06-13 9:46 ` Jerin Jacob
2023-06-07 15:28 ` [PATCH v2 00/15] net/cnxk: add MACsec support Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 01/15] common/cnxk: add ROC MACsec initialization Akhil Goyal
2023-06-12 15:51 ` Jerin Jacob
2023-06-07 15:28 ` [PATCH v2 02/15] common/cnxk: add MACsec SA configuration Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 03/15] common/cnxk: add MACsec SC configuration APIs Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 04/15] common/cnxk: add MACsec secy and flow configuration Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 05/15] common/cnxk: add MACsec PN and LMAC mode configuration Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 06/15] common/cnxk: add MACsec stats Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 07/15] common/cnxk: add MACsec interrupt APIs Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 08/15] common/cnxk: add MACsec port configuration Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 09/15] common/cnxk: add MACsec control " Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 10/15] common/cnxk: add MACsec FIPS mbox Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 11/15] common/cnxk: derive hash key for MACsec Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 12/15] net/cnxk: add MACsec initialization Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 13/15] net/cnxk: create/destroy MACsec SC/SA Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 14/15] net/cnxk: add MACsec session and flow configuration Akhil Goyal
2023-06-07 15:28 ` [PATCH v2 15/15] net/cnxk: add MACsec stats Akhil Goyal
2023-06-13 7:15 ` [PATCH v3 00/15] net/cnxk: add MACsec support Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 01/15] common/cnxk: add ROC MACsec initialization Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 02/15] common/cnxk: add MACsec SA configuration Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 03/15] common/cnxk: add MACsec SC configuration APIs Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 04/15] common/cnxk: add MACsec secy and flow configuration Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 05/15] common/cnxk: add MACsec PN and LMAC mode configuration Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 06/15] common/cnxk: add MACsec stats Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 07/15] common/cnxk: add MACsec interrupt APIs Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 08/15] common/cnxk: add MACsec port configuration Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 09/15] common/cnxk: add MACsec control " Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 10/15] common/cnxk: add MACsec FIPS mbox Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 11/15] common/cnxk: derive hash key for MACsec Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 12/15] net/cnxk: add MACsec initialization Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 13/15] net/cnxk: create/destroy MACsec SC/SA Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 14/15] net/cnxk: add MACsec session and flow configuration Akhil Goyal
2023-06-13 7:16 ` [PATCH v3 15/15] net/cnxk: add MACsec stats Akhil Goyal
2023-06-13 10:19 ` [PATCH v4 00/15] net/cnxk: add MACsec support Akhil Goyal
2023-06-13 10:19 ` [PATCH v4 01/15] common/cnxk: add ROC MACsec initialization Akhil Goyal
2023-06-13 10:19 ` [PATCH v4 02/15] common/cnxk: add MACsec SA configuration Akhil Goyal
2023-06-13 10:19 ` [PATCH v4 03/15] common/cnxk: add MACsec SC configuration APIs Akhil Goyal
2023-06-13 10:19 ` [PATCH v4 04/15] common/cnxk: add MACsec secy and flow configuration Akhil Goyal
2023-06-13 10:19 ` [PATCH v4 05/15] common/cnxk: add MACsec PN and LMAC mode configuration Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 06/15] common/cnxk: add MACsec stats Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 07/15] common/cnxk: add MACsec interrupt APIs Akhil Goyal
2023-06-13 10:20 ` Akhil Goyal [this message]
2023-06-13 10:20 ` [PATCH v4 09/15] common/cnxk: add MACsec control port configuration Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 10/15] common/cnxk: add MACsec FIPS mbox Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 11/15] common/cnxk: derive hash key for MACsec Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 12/15] net/cnxk: add MACsec initialization Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 13/15] net/cnxk: create/destroy MACsec SC/SA Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 14/15] net/cnxk: add MACsec session and flow configuration Akhil Goyal
2023-06-13 10:20 ` [PATCH v4 15/15] net/cnxk: add MACsec stats Akhil Goyal
2023-06-13 15:26 ` Jerin Jacob
2023-06-14 13:08 ` [PATCH v5 00/15] net/cnxk: add MACsec support Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 01/15] common/cnxk: add ROC MACsec initialization Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 02/15] common/cnxk: add MACsec SA configuration Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 03/15] common/cnxk: add MACsec SC configuration APIs Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 04/15] common/cnxk: add MACsec secy and flow configuration Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 05/15] common/cnxk: add MACsec PN and LMAC mode configuration Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 06/15] common/cnxk: add MACsec stats Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 07/15] common/cnxk: add MACsec interrupt APIs Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 08/15] common/cnxk: add MACsec port configuration Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 09/15] common/cnxk: add MACsec control " Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 10/15] common/cnxk: add MACsec FIPS mbox Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 11/15] common/cnxk: derive hash key for MACsec Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 12/15] net/cnxk: add MACsec initialization Akhil Goyal
2023-06-14 13:08 ` [PATCH v5 13/15] net/cnxk: create/destroy MACsec SC/SA Akhil Goyal
2023-06-14 13:09 ` [PATCH v5 14/15] net/cnxk: add MACsec session and flow configuration Akhil Goyal
2023-06-14 13:09 ` [PATCH v5 15/15] net/cnxk: add MACsec stats Akhil Goyal
2023-06-15 7:03 ` Jerin Jacob
2022-09-28 12:52 ` [PATCH v2 0/3] security: support MACsec Akhil Goyal
2022-09-28 18:24 ` [PATCH v3 " Akhil Goyal
2022-09-28 18:24 ` [PATCH v3 1/3] net: add MACsec header Akhil Goyal
2022-09-28 18:24 ` [PATCH v3 2/3] ethdev: add MACsec flow item Akhil Goyal
2022-09-28 18:24 ` [PATCH v3 3/3] security: support MACsec Akhil Goyal
2022-09-28 20:04 ` [PATCH v3 0/3] " Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230613102009.2390568-9-gakhil@marvell.com \
--to=gakhil@marvell.com \
--cc=adwivedi@marvell.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=thomas@monjalon.net \
--cc=vattunuru@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).