Lines Matching refs:pfvf
49 static int cn10k_ecb_aes_encrypt(struct otx2_nic *pfvf, u8 *sak, in cn10k_ecb_aes_encrypt() argument
61 dev_err(pfvf->dev, "failed to allocate transform for ecb-aes\n"); in cn10k_ecb_aes_encrypt()
67 dev_err(pfvf->dev, "failed to allocate request for skcipher\n"); in cn10k_ecb_aes_encrypt()
74 dev_err(pfvf->dev, "failed to set key for skcipher\n"); in cn10k_ecb_aes_encrypt()
139 static int cn10k_mcs_alloc_rsrc(struct otx2_nic *pfvf, enum mcs_direction dir, in cn10k_mcs_alloc_rsrc() argument
142 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_alloc_rsrc()
161 rsp = (struct mcs_alloc_rsrc_rsp *)otx2_mbox_get_rsp(&pfvf->mbox.mbox, in cn10k_mcs_alloc_rsrc()
191 dev_err(pfvf->dev, "Failed to allocate %s %s resource\n", in cn10k_mcs_alloc_rsrc()
197 static void cn10k_mcs_free_rsrc(struct otx2_nic *pfvf, enum mcs_direction dir, in cn10k_mcs_free_rsrc() argument
202 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_free_rsrc()
225 if (otx2_sync_mbox_msg(&pfvf->mbox)) in cn10k_mcs_free_rsrc()
232 dev_err(pfvf->dev, "Failed to free %s %s resource\n", in cn10k_mcs_free_rsrc()
237 static int cn10k_mcs_alloc_txsa(struct otx2_nic *pfvf, u16 *hw_sa_id) in cn10k_mcs_alloc_txsa() argument
239 return cn10k_mcs_alloc_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SA, hw_sa_id); in cn10k_mcs_alloc_txsa()
242 static int cn10k_mcs_alloc_rxsa(struct otx2_nic *pfvf, u16 *hw_sa_id) in cn10k_mcs_alloc_rxsa() argument
244 return cn10k_mcs_alloc_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SA, hw_sa_id); in cn10k_mcs_alloc_rxsa()
247 static void cn10k_mcs_free_txsa(struct otx2_nic *pfvf, u16 hw_sa_id) in cn10k_mcs_free_txsa() argument
249 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SA, hw_sa_id, false); in cn10k_mcs_free_txsa()
252 static void cn10k_mcs_free_rxsa(struct otx2_nic *pfvf, u16 hw_sa_id) in cn10k_mcs_free_rxsa() argument
254 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SA, hw_sa_id, false); in cn10k_mcs_free_rxsa()
257 static int cn10k_mcs_write_rx_secy(struct otx2_nic *pfvf, in cn10k_mcs_write_rx_secy() argument
261 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_rx_secy()
289 dev_warn(pfvf->dev, "Unsupported key length\n"); in cn10k_mcs_write_rx_secy()
309 static int cn10k_mcs_write_rx_flowid(struct otx2_nic *pfvf, in cn10k_mcs_write_rx_flowid() argument
315 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_rx_flowid()
355 static int cn10k_mcs_write_sc_cam(struct otx2_nic *pfvf, in cn10k_mcs_write_sc_cam() argument
360 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_sc_cam()
382 static int cn10k_mcs_write_keys(struct otx2_nic *pfvf, in cn10k_mcs_write_keys() argument
394 err = cn10k_ecb_aes_encrypt(pfvf, sak, secy->key_len, hash); in cn10k_mcs_write_keys()
396 dev_err(pfvf->dev, "Generating hash using ECB(AES) failed\n"); in cn10k_mcs_write_keys()
419 static int cn10k_mcs_write_rx_sa_plcy(struct otx2_nic *pfvf, in cn10k_mcs_write_rx_sa_plcy() argument
428 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_rx_sa_plcy()
446 ret = cn10k_mcs_write_keys(pfvf, secy, plcy_req, sak, in cn10k_mcs_write_rx_sa_plcy()
468 static int cn10k_mcs_write_rx_sa_pn(struct otx2_nic *pfvf, in cn10k_mcs_write_rx_sa_pn() argument
473 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_rx_sa_pn()
495 static int cn10k_mcs_write_tx_secy(struct otx2_nic *pfvf, in cn10k_mcs_write_tx_secy() argument
500 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_tx_secy()
550 dev_warn(pfvf->dev, "Unsupported key length\n"); in cn10k_mcs_write_tx_secy()
577 static int cn10k_mcs_write_tx_flowid(struct otx2_nic *pfvf, in cn10k_mcs_write_tx_flowid() argument
582 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_tx_flowid()
623 static int cn10k_mcs_link_tx_sa2sc(struct otx2_nic *pfvf, in cn10k_mcs_link_tx_sa2sc() argument
629 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_link_tx_sa2sc()
657 static int cn10k_mcs_write_tx_sa_plcy(struct otx2_nic *pfvf, in cn10k_mcs_write_tx_sa_plcy() argument
665 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_write_tx_sa_plcy()
676 ret = cn10k_mcs_write_keys(pfvf, secy, plcy_req, sak, in cn10k_mcs_write_tx_sa_plcy()
693 static int cn10k_write_tx_sa_pn(struct otx2_nic *pfvf, in cn10k_write_tx_sa_pn() argument
698 struct mbox *mbox = &pfvf->mbox; in cn10k_write_tx_sa_pn()
720 static int cn10k_mcs_ena_dis_flowid(struct otx2_nic *pfvf, u16 hw_flow_id, in cn10k_mcs_ena_dis_flowid() argument
724 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_ena_dis_flowid()
746 static int cn10k_mcs_sa_stats(struct otx2_nic *pfvf, u8 hw_sa_id, in cn10k_mcs_sa_stats() argument
751 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_sa_stats()
784 rsp = (struct mcs_sa_stats *)otx2_mbox_get_rsp(&pfvf->mbox.mbox, in cn10k_mcs_sa_stats()
801 static int cn10k_mcs_sc_stats(struct otx2_nic *pfvf, u8 hw_sc_id, in cn10k_mcs_sc_stats() argument
806 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_sc_stats()
839 rsp = (struct mcs_sc_stats *)otx2_mbox_get_rsp(&pfvf->mbox.mbox, in cn10k_mcs_sc_stats()
856 static int cn10k_mcs_secy_stats(struct otx2_nic *pfvf, u8 hw_secy_id, in cn10k_mcs_secy_stats() argument
861 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_secy_stats()
894 rsp = (struct mcs_secy_stats *)otx2_mbox_get_rsp(&pfvf->mbox.mbox, in cn10k_mcs_secy_stats()
911 static struct cn10k_mcs_txsc *cn10k_mcs_create_txsc(struct otx2_nic *pfvf) in cn10k_mcs_create_txsc() argument
920 ret = cn10k_mcs_alloc_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_FLOWID, in cn10k_mcs_create_txsc()
926 ret = cn10k_mcs_alloc_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SECY, in cn10k_mcs_create_txsc()
931 ret = cn10k_mcs_alloc_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SECY, in cn10k_mcs_create_txsc()
936 ret = cn10k_mcs_alloc_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SC, in cn10k_mcs_create_txsc()
943 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SECY, in cn10k_mcs_create_txsc()
946 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SECY, in cn10k_mcs_create_txsc()
949 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_FLOWID, in cn10k_mcs_create_txsc()
958 static void cn10k_mcs_delete_txsc(struct otx2_nic *pfvf, in cn10k_mcs_delete_txsc() argument
966 cn10k_mcs_write_tx_sa_plcy(pfvf, txsc->sw_secy, in cn10k_mcs_delete_txsc()
968 cn10k_mcs_free_txsa(pfvf, txsc->hw_sa_id[sa_num]); in cn10k_mcs_delete_txsc()
974 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SC, in cn10k_mcs_delete_txsc()
976 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SECY, in cn10k_mcs_delete_txsc()
978 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SECY, in cn10k_mcs_delete_txsc()
980 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_FLOWID, in cn10k_mcs_delete_txsc()
984 static struct cn10k_mcs_rxsc *cn10k_mcs_create_rxsc(struct otx2_nic *pfvf) in cn10k_mcs_create_rxsc() argument
993 ret = cn10k_mcs_alloc_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_FLOWID, in cn10k_mcs_create_rxsc()
998 ret = cn10k_mcs_alloc_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SC, in cn10k_mcs_create_rxsc()
1005 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_FLOWID, in cn10k_mcs_create_rxsc()
1014 static void cn10k_mcs_delete_rxsc(struct otx2_nic *pfvf, in cn10k_mcs_delete_rxsc() argument
1022 cn10k_mcs_write_rx_sa_plcy(pfvf, rxsc->sw_secy, rxsc, in cn10k_mcs_delete_rxsc()
1024 cn10k_mcs_free_rxsa(pfvf, rxsc->hw_sa_id[sa_num]); in cn10k_mcs_delete_rxsc()
1030 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SC, in cn10k_mcs_delete_rxsc()
1032 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_FLOWID, in cn10k_mcs_delete_rxsc()
1036 static int cn10k_mcs_secy_tx_cfg(struct otx2_nic *pfvf, struct macsec_secy *secy, in cn10k_mcs_secy_tx_cfg() argument
1041 cn10k_mcs_write_tx_sa_plcy(pfvf, secy, txsc, sa_num); in cn10k_mcs_secy_tx_cfg()
1042 cn10k_write_tx_sa_pn(pfvf, txsc, sa_num, sw_tx_sa->next_pn); in cn10k_mcs_secy_tx_cfg()
1043 cn10k_mcs_link_tx_sa2sc(pfvf, secy, txsc, sa_num, in cn10k_mcs_secy_tx_cfg()
1047 cn10k_mcs_write_tx_secy(pfvf, secy, txsc); in cn10k_mcs_secy_tx_cfg()
1048 cn10k_mcs_write_tx_flowid(pfvf, secy, txsc); in cn10k_mcs_secy_tx_cfg()
1050 cn10k_mcs_write_rx_secy(pfvf, secy, txsc->hw_secy_id_rx); in cn10k_mcs_secy_tx_cfg()
1055 static int cn10k_mcs_secy_rx_cfg(struct otx2_nic *pfvf, in cn10k_mcs_secy_rx_cfg() argument
1058 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mcs_secy_rx_cfg()
1075 cn10k_mcs_write_rx_sa_plcy(pfvf, secy, mcs_rx_sc, in cn10k_mcs_secy_rx_cfg()
1077 cn10k_mcs_write_rx_sa_pn(pfvf, mcs_rx_sc, sa_num, in cn10k_mcs_secy_rx_cfg()
1081 cn10k_mcs_write_rx_flowid(pfvf, mcs_rx_sc, hw_secy_id); in cn10k_mcs_secy_rx_cfg()
1082 cn10k_mcs_write_sc_cam(pfvf, mcs_rx_sc, hw_secy_id); in cn10k_mcs_secy_rx_cfg()
1088 static int cn10k_mcs_disable_rxscs(struct otx2_nic *pfvf, in cn10k_mcs_disable_rxscs() argument
1092 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mcs_disable_rxscs()
1103 ret = cn10k_mcs_ena_dis_flowid(pfvf, mcs_rx_sc->hw_flow_id, in cn10k_mcs_disable_rxscs()
1106 dev_err(pfvf->dev, "Failed to disable TCAM for SC %d\n", in cn10k_mcs_disable_rxscs()
1109 cn10k_mcs_delete_rxsc(pfvf, mcs_rx_sc); in cn10k_mcs_disable_rxscs()
1118 static void cn10k_mcs_sync_stats(struct otx2_nic *pfvf, struct macsec_secy *secy, in cn10k_mcs_sync_stats() argument
1121 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mcs_sync_stats()
1136 cn10k_mcs_secy_stats(pfvf, txsc->hw_secy_id_rx, &rx_rsp, MCS_RX, true); in cn10k_mcs_sync_stats()
1147 cn10k_mcs_sc_stats(pfvf, rxsc->hw_sc_id, &sc_rsp, MCS_RX, true); in cn10k_mcs_sync_stats()
1172 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_open() local
1173 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_open()
1187 err = cn10k_mcs_secy_tx_cfg(pfvf, secy, txsc, sw_tx_sa, sa_num); in cn10k_mdo_open()
1191 return cn10k_mcs_secy_rx_cfg(pfvf, secy, txsc->hw_secy_id_rx); in cn10k_mdo_open()
1196 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_stop() local
1197 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_stop()
1205 err = cn10k_mcs_ena_dis_flowid(pfvf, txsc->hw_flow_id, false, MCS_TX); in cn10k_mdo_stop()
1209 return cn10k_mcs_disable_rxscs(pfvf, ctx->secy, false); in cn10k_mdo_stop()
1214 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_add_secy() local
1215 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_add_secy()
1222 txsc = cn10k_mcs_create_txsc(pfvf); in cn10k_mdo_add_secy()
1235 return cn10k_mcs_secy_tx_cfg(pfvf, secy, txsc, NULL, 0); in cn10k_mdo_add_secy()
1242 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_upd_secy() local
1243 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_upd_secy()
1261 cn10k_mcs_link_tx_sa2sc(pfvf, secy, txsc, sa_num, active); in cn10k_mdo_upd_secy()
1265 cn10k_mcs_sync_stats(pfvf, secy, txsc); in cn10k_mdo_upd_secy()
1267 err = cn10k_mcs_secy_tx_cfg(pfvf, secy, txsc, NULL, 0); in cn10k_mdo_upd_secy()
1277 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_del_secy() local
1278 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_del_secy()
1285 cn10k_mcs_ena_dis_flowid(pfvf, txsc->hw_flow_id, false, MCS_TX); in cn10k_mdo_del_secy()
1286 cn10k_mcs_disable_rxscs(pfvf, ctx->secy, true); in cn10k_mdo_del_secy()
1287 cn10k_mcs_delete_txsc(pfvf, txsc); in cn10k_mdo_del_secy()
1296 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_add_txsa() local
1298 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_add_txsa()
1311 if (cn10k_mcs_alloc_txsa(pfvf, &txsc->hw_sa_id[sa_num])) in cn10k_mdo_add_txsa()
1321 err = cn10k_mcs_write_tx_sa_plcy(pfvf, secy, txsc, sa_num); in cn10k_mdo_add_txsa()
1325 err = cn10k_write_tx_sa_pn(pfvf, txsc, sa_num, in cn10k_mdo_add_txsa()
1330 err = cn10k_mcs_link_tx_sa2sc(pfvf, secy, txsc, in cn10k_mdo_add_txsa()
1341 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_upd_txsa() local
1343 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_upd_txsa()
1359 err = cn10k_write_tx_sa_pn(pfvf, txsc, sa_num, in cn10k_mdo_upd_txsa()
1365 err = cn10k_mcs_link_tx_sa2sc(pfvf, secy, txsc, in cn10k_mdo_upd_txsa()
1376 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_del_txsa() local
1377 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_del_txsa()
1388 cn10k_mcs_free_txsa(pfvf, txsc->hw_sa_id[sa_num]); in cn10k_mdo_del_txsa()
1396 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_add_rxsc() local
1397 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_add_rxsc()
1407 rxsc = cn10k_mcs_create_rxsc(pfvf); in cn10k_mdo_add_rxsc()
1416 err = cn10k_mcs_write_rx_flowid(pfvf, rxsc, txsc->hw_secy_id_rx); in cn10k_mdo_add_rxsc()
1420 err = cn10k_mcs_write_sc_cam(pfvf, rxsc, txsc->hw_secy_id_rx); in cn10k_mdo_add_rxsc()
1430 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_upd_rxsc() local
1431 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_upd_rxsc()
1441 return cn10k_mcs_ena_dis_flowid(pfvf, rxsc->hw_flow_id, in cn10k_mdo_upd_rxsc()
1449 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_del_rxsc() local
1450 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_del_rxsc()
1457 cn10k_mcs_ena_dis_flowid(pfvf, rxsc->hw_flow_id, false, MCS_RX); in cn10k_mdo_del_rxsc()
1458 cn10k_mcs_delete_rxsc(pfvf, rxsc); in cn10k_mdo_del_rxsc()
1467 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_add_rxsa() local
1469 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_add_rxsa()
1484 if (cn10k_mcs_alloc_rxsa(pfvf, &rxsc->hw_sa_id[sa_num])) in cn10k_mdo_add_rxsa()
1494 err = cn10k_mcs_write_rx_sa_plcy(pfvf, secy, rxsc, in cn10k_mdo_add_rxsa()
1499 err = cn10k_mcs_write_rx_sa_pn(pfvf, rxsc, sa_num, in cn10k_mdo_add_rxsa()
1510 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_upd_rxsa() local
1512 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_upd_rxsa()
1528 err = cn10k_mcs_write_rx_sa_plcy(pfvf, secy, rxsc, sa_num, sa_in_use); in cn10k_mdo_upd_rxsa()
1535 err = cn10k_mcs_write_rx_sa_pn(pfvf, rxsc, sa_num, in cn10k_mdo_upd_rxsa()
1546 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_del_rxsa() local
1548 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_del_rxsa()
1559 cn10k_mcs_write_rx_sa_plcy(pfvf, ctx->secy, rxsc, sa_num, false); in cn10k_mdo_del_rxsa()
1560 cn10k_mcs_free_rxsa(pfvf, rxsc->hw_sa_id[sa_num]); in cn10k_mdo_del_rxsa()
1569 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_get_dev_stats() local
1571 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_get_dev_stats()
1579 cn10k_mcs_secy_stats(pfvf, txsc->hw_secy_id_tx, &tx_rsp, MCS_TX, false); in cn10k_mdo_get_dev_stats()
1583 cn10k_mcs_secy_stats(pfvf, txsc->hw_secy_id_rx, &rx_rsp, MCS_RX, true); in cn10k_mdo_get_dev_stats()
1605 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_get_tx_sc_stats() local
1606 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_get_tx_sc_stats()
1614 cn10k_mcs_sc_stats(pfvf, txsc->hw_sc_id, &rsp, MCS_TX, false); in cn10k_mdo_get_tx_sc_stats()
1626 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_get_tx_sa_stats() local
1627 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_get_tx_sa_stats()
1639 cn10k_mcs_sa_stats(pfvf, txsc->hw_sa_id[sa_num], &rsp, MCS_TX, false); in cn10k_mdo_get_tx_sa_stats()
1649 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_get_rx_sc_stats() local
1650 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_get_rx_sc_stats()
1659 cn10k_mcs_sc_stats(pfvf, rxsc->hw_sc_id, &rsp, MCS_RX, true); in cn10k_mdo_get_rx_sc_stats()
1691 struct otx2_nic *pfvf = macsec_netdev_priv(ctx->netdev); in cn10k_mdo_get_rx_sa_stats() local
1693 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_mdo_get_rx_sa_stats()
1705 cn10k_mcs_sa_stats(pfvf, rxsc->hw_sa_id[sa_num], &rsp, MCS_RX, false); in cn10k_mdo_get_rx_sa_stats()
1738 void cn10k_handle_mcs_event(struct otx2_nic *pfvf, struct mcs_intr_info *event) in cn10k_handle_mcs_event() argument
1740 struct cn10k_mcs_cfg *cfg = pfvf->macsec_cfg; in cn10k_handle_mcs_event()
1746 if (!test_bit(CN10K_HW_MACSEC, &pfvf->hw.cap_flag)) in cn10k_handle_mcs_event()
1765 int cn10k_mcs_init(struct otx2_nic *pfvf) in cn10k_mcs_init() argument
1767 struct mbox *mbox = &pfvf->mbox; in cn10k_mcs_init()
1771 if (!test_bit(CN10K_HW_MACSEC, &pfvf->hw.cap_flag)) in cn10k_mcs_init()
1780 pfvf->macsec_cfg = cfg; in cn10k_mcs_init()
1782 pfvf->netdev->features |= NETIF_F_HW_MACSEC; in cn10k_mcs_init()
1783 pfvf->netdev->macsec_ops = &cn10k_mcs_ops; in cn10k_mcs_init()
1800 dev_err(pfvf->dev, "Cannot notify PN wrapped event\n"); in cn10k_mcs_init()
1805 void cn10k_mcs_free(struct otx2_nic *pfvf) in cn10k_mcs_free() argument
1807 if (!test_bit(CN10K_HW_MACSEC, &pfvf->hw.cap_flag)) in cn10k_mcs_free()
1810 cn10k_mcs_free_rsrc(pfvf, MCS_TX, MCS_RSRC_TYPE_SECY, 0, true); in cn10k_mcs_free()
1811 cn10k_mcs_free_rsrc(pfvf, MCS_RX, MCS_RSRC_TYPE_SECY, 0, true); in cn10k_mcs_free()
1812 kfree(pfvf->macsec_cfg); in cn10k_mcs_free()
1813 pfvf->macsec_cfg = NULL; in cn10k_mcs_free()