Lines Matching refs:sa

183 	void *sa;
415 static struct nxp_c45_sa *nxp_c45_sa_alloc(struct list_head *sa_list, void *sa,
443 tmp->sa = sa;
452 static void nxp_c45_sa_free(struct nxp_c45_sa *sa)
454 list_del(&sa->list);
455 kfree(sa);
467 struct nxp_c45_sa *sa, u64 pn,
470 const struct nxp_c45_sa_regs *sa_regs = sa->regs;
476 if (sa->type != RX_SA)
495 u32 *key_u32 = (u32 *)ctx->sa.key;
521 struct nxp_c45_sa *sa)
523 nxp_c45_macsec_write(phydev, sa->regs->ipis, 0);
524 nxp_c45_macsec_write(phydev, sa->regs->ipnvs, 0);
525 nxp_c45_macsec_write(phydev, sa->regs->ipos, 0);
527 nxp_c45_macsec_write(phydev, MACSEC_RXAN0INUSS + sa->an * 4, 0);
528 nxp_c45_macsec_write(phydev, MACSEC_RXAN0IPUSS + sa->an * 4, 0);
532 struct nxp_c45_sa *sa,
535 nxp_c45_macsec_read(phydev, sa->regs->ipis, &stats->InPktsInvalid);
536 nxp_c45_macsec_read(phydev, sa->regs->ipnvs, &stats->InPktsNotValid);
537 nxp_c45_macsec_read(phydev, sa->regs->ipos, &stats->InPktsOK);
541 struct nxp_c45_sa *sa)
543 nxp_c45_macsec_write(phydev, sa->regs->opps, 0);
544 nxp_c45_macsec_write(phydev, sa->regs->opes, 0);
548 struct nxp_c45_sa *sa,
551 nxp_c45_macsec_read(phydev, sa->regs->opps, &stats->OutPktsProtected);
552 nxp_c45_macsec_read(phydev, sa->regs->opes, &stats->OutPktsEncrypted);
556 struct nxp_c45_sa *sa, bool en)
558 const struct nxp_c45_sa_regs *sa_regs = sa->regs;
561 cfg = sa->an << MACSEC_RXSA_CS_AN_OFF;
567 struct nxp_c45_sa *sa, bool en)
574 cfg |= sa->an << MACSEC_TXSC_CFG_AN_OFF;
576 if (sa->is_key_a)
1033 struct nxp_c45_sa *sa;
1035 sa = nxp_c45_find_sa(&phy_secy->sa_list, TX_SA, encoding_sa);
1036 if (!IS_ERR(sa)) {
1037 memcpy(next_sa, sa, sizeof(*sa));
1193 struct macsec_rx_sa *rx_sa = ctx->sa.rx_sa;
1197 u8 an = ctx->sa.assoc_num;
1198 struct nxp_c45_sa *sa;
1208 sa = nxp_c45_sa_alloc(&phy_secy->sa_list, rx_sa, RX_SA, an);
1209 if (IS_ERR(sa))
1210 return PTR_ERR(sa);
1213 nxp_c45_sa_set_pn(phydev, sa, rx_sa->next_pn,
1215 nxp_c45_sa_set_key(ctx, sa->regs, rx_sa->key.salt.bytes, rx_sa->ssci);
1216 nxp_c45_rx_sa_update(phydev, sa, rx_sa->active);
1223 struct macsec_rx_sa *rx_sa = ctx->sa.rx_sa;
1227 u8 an = ctx->sa.assoc_num;
1228 struct nxp_c45_sa *sa;
1238 sa = nxp_c45_find_sa(&phy_secy->sa_list, RX_SA, an);
1239 if (IS_ERR(sa))
1240 return PTR_ERR(sa);
1243 if (ctx->sa.update_pn)
1244 nxp_c45_sa_set_pn(phydev, sa, rx_sa->next_pn,
1246 nxp_c45_rx_sa_update(phydev, sa, rx_sa->active);
1253 struct macsec_rx_sa *rx_sa = ctx->sa.rx_sa;
1257 u8 an = ctx->sa.assoc_num;
1258 struct nxp_c45_sa *sa;
1268 sa = nxp_c45_find_sa(&phy_secy->sa_list, RX_SA, an);
1269 if (IS_ERR(sa))
1270 return PTR_ERR(sa);
1273 nxp_c45_rx_sa_update(phydev, sa, false);
1274 nxp_c45_rx_sa_clear_stats(phydev, sa);
1276 nxp_c45_sa_free(sa);
1283 struct macsec_tx_sa *tx_sa = ctx->sa.tx_sa;
1287 u8 an = ctx->sa.assoc_num;
1288 struct nxp_c45_sa *sa;
1291 an, ctx->sa.tx_sa->active ? "enabled" : "disabled",
1298 sa = nxp_c45_sa_alloc(&phy_secy->sa_list, tx_sa, TX_SA, an);
1299 if (IS_ERR(sa))
1300 return PTR_ERR(sa);
1303 nxp_c45_sa_set_pn(phydev, sa, tx_sa->next_pn, 0);
1304 nxp_c45_sa_set_key(ctx, sa->regs, tx_sa->key.salt.bytes, tx_sa->ssci);
1305 if (ctx->secy->tx_sc.encoding_sa == sa->an)
1306 nxp_c45_tx_sa_update(phydev, sa, tx_sa->active);
1313 struct macsec_tx_sa *tx_sa = ctx->sa.tx_sa;
1317 u8 an = ctx->sa.assoc_num;
1318 struct nxp_c45_sa *sa;
1321 an, ctx->sa.tx_sa->active ? "enabled" : "disabled",
1328 sa = nxp_c45_find_sa(&phy_secy->sa_list, TX_SA, an);
1329 if (IS_ERR(sa))
1330 return PTR_ERR(sa);
1333 if (ctx->sa.update_pn)
1334 nxp_c45_sa_set_pn(phydev, sa, tx_sa->next_pn, 0);
1335 if (ctx->secy->tx_sc.encoding_sa == sa->an)
1336 nxp_c45_tx_sa_update(phydev, sa, tx_sa->active);
1346 u8 an = ctx->sa.assoc_num;
1347 struct nxp_c45_sa *sa;
1350 an, ctx->sa.tx_sa->active ? "enabled" : "disabled",
1357 sa = nxp_c45_find_sa(&phy_secy->sa_list, TX_SA, an);
1358 if (IS_ERR(sa))
1359 return PTR_ERR(sa);
1362 if (ctx->secy->tx_sc.encoding_sa == sa->an)
1363 nxp_c45_tx_sa_update(phydev, sa, false);
1364 nxp_c45_tx_sa_clear_stats(phydev, sa);
1366 nxp_c45_sa_free(sa);
1452 u8 an = ctx->sa.assoc_num;
1453 struct nxp_c45_sa *sa;
1459 sa = nxp_c45_find_sa(&phy_secy->sa_list, TX_SA, an);
1460 if (IS_ERR(sa))
1461 return PTR_ERR(sa);
1465 nxp_c45_tx_sa_read_stats(phydev, sa, stats);
1531 u8 an = ctx->sa.assoc_num;
1532 struct nxp_c45_sa *sa;
1538 sa = nxp_c45_find_sa(&phy_secy->sa_list, RX_SA, an);
1539 if (IS_ERR(sa))
1540 return PTR_ERR(sa);
1545 nxp_c45_rx_sa_read_stats(phydev, sa, stats);
1693 struct nxp_c45_sa *sa;
1718 sa = nxp_c45_find_sa(&secy->sa_list, TX_SA, encoding_sa);
1719 if (!IS_ERR(sa))
1720 macsec_pn_wrapped(secy->secy, sa->sa);