Messages in this thread | | | Subject | Re: [PATCH net] net: macsec: Retrieve MACSec-XPN attributes before offloading | From | Paolo Abeni <> | Date | Thu, 30 Jun 2022 10:16:27 +0200 |
| |
Hello,
On Tue, 2022-06-28 at 13:16 +0200, Carlos Fernandez wrote: > When MACsec offloading is used with XPN, before mdo_add_rxsa > and mdo_add_txsa functions are called, the key salt is not > copied to the macsec context struct. Offloaded phys will need > this data when performing offloading. > > Fix by copying salt and id to context struct before calling the > offloading functions. > > Fixes: 48ef50fa866a ("macsec: Netlink support of XPN cipher suites") > Signed-off-by: Carlos Fernandez <carlos.fernandez@technica-engineering.de>
This does not pass the checkpatch validation:
https://patchwork.kernel.org/project/netdevbpf/patch/20220628111617.28001-1-carlos.fernandez@technica-engineering.de/
The required 'From: ' tag is still missing.
Please really add it and re-post. Please additionally check your patch status after the submission via the patchwork UI:
https://patchwork.kernel.org/user/todo/netdevbpf/
so you can detect this kind of issues earlier.
Thanks!
Paolo > --- > drivers/net/macsec.c | 30 ++++++++++++++++-------------- > 1 file changed, 16 insertions(+), 14 deletions(-) > > diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c > index 832f09ac075e..4f2bd3d722c3 100644 > --- a/drivers/net/macsec.c > +++ b/drivers/net/macsec.c > @@ -1804,6 +1804,14 @@ static int macsec_add_rxsa(struct sk_buff *skb, struct genl_info *info) > > rx_sa->sc = rx_sc; > > + if (secy->xpn) { > + rx_sa->ssci = nla_get_ssci(tb_sa[MACSEC_SA_ATTR_SSCI]); > + nla_memcpy(rx_sa->key.salt.bytes, tb_sa[MACSEC_SA_ATTR_SALT], > + MACSEC_SALT_LEN); > + } > + > + nla_memcpy(rx_sa->key.id, tb_sa[MACSEC_SA_ATTR_KEYID], MACSEC_KEYID_LEN); > + > /* If h/w offloading is available, propagate to the device */ > if (macsec_is_offloaded(netdev_priv(dev))) { > const struct macsec_ops *ops; > @@ -1826,13 +1834,6 @@ static int macsec_add_rxsa(struct sk_buff *skb, struct genl_info *info) > goto cleanup; > } > > - if (secy->xpn) { > - rx_sa->ssci = nla_get_ssci(tb_sa[MACSEC_SA_ATTR_SSCI]); > - nla_memcpy(rx_sa->key.salt.bytes, tb_sa[MACSEC_SA_ATTR_SALT], > - MACSEC_SALT_LEN); > - } > - > - nla_memcpy(rx_sa->key.id, tb_sa[MACSEC_SA_ATTR_KEYID], MACSEC_KEYID_LEN); > rcu_assign_pointer(rx_sc->sa[assoc_num], rx_sa); > > rtnl_unlock(); > @@ -2046,6 +2047,14 @@ static int macsec_add_txsa(struct sk_buff *skb, struct genl_info *info) > if (assoc_num == tx_sc->encoding_sa && tx_sa->active) > secy->operational = true; > > + if (secy->xpn) { > + tx_sa->ssci = nla_get_ssci(tb_sa[MACSEC_SA_ATTR_SSCI]); > + nla_memcpy(tx_sa->key.salt.bytes, tb_sa[MACSEC_SA_ATTR_SALT], > + MACSEC_SALT_LEN); > + } > + > + nla_memcpy(tx_sa->key.id, tb_sa[MACSEC_SA_ATTR_KEYID], MACSEC_KEYID_LEN); > + > /* If h/w offloading is available, propagate to the device */ > if (macsec_is_offloaded(netdev_priv(dev))) { > const struct macsec_ops *ops; > @@ -2068,13 +2077,6 @@ static int macsec_add_txsa(struct sk_buff *skb, struct genl_info *info) > goto cleanup; > } > > - if (secy->xpn) { > - tx_sa->ssci = nla_get_ssci(tb_sa[MACSEC_SA_ATTR_SSCI]); > - nla_memcpy(tx_sa->key.salt.bytes, tb_sa[MACSEC_SA_ATTR_SALT], > - MACSEC_SALT_LEN); > - } > - > - nla_memcpy(tx_sa->key.id, tb_sa[MACSEC_SA_ATTR_KEYID], MACSEC_KEYID_LEN); > rcu_assign_pointer(tx_sc->sa[assoc_num], tx_sa); > > rtnl_unlock(); >
| |