diff --git a/drivers/net/ethernet/nvidia/nvethernet/macsec.c b/drivers/net/ethernet/nvidia/nvethernet/macsec.c index ec1d4c89..7e3787da 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/macsec.c +++ b/drivers/net/ethernet/nvidia/nvethernet/macsec.c @@ -505,6 +505,10 @@ static int parse_sa_config(struct nlattr **attrs, struct nlattr **tb_sa, memcpy(sc_info->sci, nla_data(tb_sa[NV_MACSEC_SA_ATTR_SCI]), sizeof(sc_info->sci)); } + if (tb_sa[NV_MACSEC_SA_ATTR_PEER_MACID]) { + memcpy(sc_info->peer_macid, nla_data(tb_sa[NV_MACSEC_SA_ATTR_PEER_MACID]), + sizeof(sc_info->peer_macid)); + } if (tb_sa[NV_MACSEC_SA_ATTR_AN]) { sc_info->curr_an = nla_get_u8(tb_sa[NV_MACSEC_SA_ATTR_AN]); } diff --git a/drivers/net/ethernet/nvidia/nvethernet/macsec.h b/drivers/net/ethernet/nvidia/nvethernet/macsec.h index 91338c3c..e52eedbd 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/macsec.h +++ b/drivers/net/ethernet/nvidia/nvethernet/macsec.h @@ -38,7 +38,7 @@ /** * @brief Maximum number of supplicants allowed per VF */ -#define MAX_SUPPLICANTS_ALLOWED 1 +#define MAX_SUPPLICANTS_ALLOWED 48 #define NV_MACSEC_GENL_VERSION 1 @@ -63,6 +63,7 @@ enum nv_macsec_sa_attrs { NV_MACSEC_SA_ATTR_UNSPEC, NV_MACSEC_SA_ATTR_SCI, + NV_MACSEC_SA_ATTR_PEER_MACID, NV_MACSEC_SA_ATTR_AN, NV_MACSEC_SA_ATTR_PN, NV_MACSEC_SA_ATTR_LOWEST_PN, @@ -123,6 +124,8 @@ enum nv_macsec_attrs { static const struct nla_policy nv_macsec_sa_genl_policy[NUM_NV_MACSEC_SA_ATTR] = { [NV_MACSEC_SA_ATTR_SCI] = { .type = NLA_BINARY, .len = 8, }, /* SCI is 64bit */ + [NV_MACSEC_SA_ATTR_PEER_MACID] = { .type = NLA_BINARY, + .len = 6, }, /* MACID is 48bit */ [NV_MACSEC_SA_ATTR_AN] = { .type = NLA_U8 }, [NV_MACSEC_SA_ATTR_PN] = { .type = NLA_U32 }, [NV_MACSEC_SA_ATTR_LOWEST_PN] = { .type = NLA_U32 },