Re: [PATCH net-next v2 6/9] net: macsec: hardware offloading infrastructure
From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2019-08-14 23:28:55
Also in:
lkml
On 8/13/19 9:28 AM, Andrew Lunn wrote:
quoted
1) With current implementation it's impossible to install SW macsec engine onto the device which supports HW offload. That could be a strong limitation in cases when user sees HW macsec offload is broken or work differently, and he/she wants to replace it with SW one. MACSec is a complex feature, and it may happen something is missing in HW. Trivial example is 256bit encryption, which is not always a musthave in HW implementations.Ideally, we want the driver to return EOPNOTSUPP if it does not support something and the software implement should be used. If the offload is broken, we want a bug report! And if it works differently, it suggests there is also a bug we need to fix, or the standard is ambiguous. It would also be nice to add extra information to the netlink API to indicate if HW or SW is being used. In other places where we offload to accelerators we have such additional information.
Igor's point is entirely valid in that you should allow both offload to HW for what is possible and offload to a software implementation for what is not supported in HW. Let's an example that is hopefully more familiar to the people in this thread. Consider a NIC that can do single VLAN tag offload on xmit (or receive, does not matter), and you find yourself using a double VLAN tag configuration. You would create a first VLAN stacked network device which is fully offloaded onto the underlying NIC, and a second VLAN stacked network device on top of the first once which is not offloaded. The way I would imagine a MACsec offload is kind of similar here, in that it would be a macsec virtual network device on top of an underlying physical device. If no offload is possible, the virtual network device's xmit/receive path is used. If the NIC driver can offload it, it does not. How it does it, whether at the MAC/DMA level, or at the PHY level can be a check added at the appropriate level. -- Florian