Message ID | 1643542672-29403-1-git-send-email-raeds@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | d0cfa548dbde354de986911d3913897b5448faad |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: macsec: Verify that send_sci is on when setting Tx sci explicitly | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Sun, 30 Jan 2022 13:37:52 +0200 you wrote: > From: Lior Nahmanson <liorna@nvidia.com> > > When setting Tx sci explicit, the Rx side is expected to use this > sci and not recalculate it from the packet.However, in case of Tx sci > is explicit and send_sci is off, the receiver is wrongly recalculate > the sci from the source MAC address which most likely be different > than the explicit sci. > > [...] Here is the summary with links: - [net] net: macsec: Verify that send_sci is on when setting Tx sci explicitly https://git.kernel.org/netdev/net/c/d0cfa548dbde You are awesome, thank you!
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index 33ff33c..3d08743 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c @@ -4018,6 +4018,15 @@ static int macsec_newlink(struct net *net, struct net_device *dev, !macsec_check_offload(macsec->offload, macsec)) return -EOPNOTSUPP; + /* send_sci must be set to true when transmit sci explicitly is set */ + if ((data && data[IFLA_MACSEC_SCI]) && + (data && data[IFLA_MACSEC_INC_SCI])) { + u8 send_sci = !!nla_get_u8(data[IFLA_MACSEC_INC_SCI]); + + if (!send_sci) + return -EINVAL; + } + if (data && data[IFLA_MACSEC_ICV_LEN]) icv_len = nla_get_u8(data[IFLA_MACSEC_ICV_LEN]); mtu = real_dev->mtu - icv_len - macsec_extra_len(true);