Re: [PATCH net-next 06/10] net: introduce a net_device_ops macsec helper

From: Florian Fainelli
Date: Wed Jan 23 2019 - 15:16:19 EST


On 1/23/19 7:56 AM, Antoine Tenart wrote:
> This patch introduces a net_device_ops MACsec helper to allow net device
> drivers to implement a MACsec offloading solution.
>
> Signed-off-by: Antoine Tenart <antoine.tenart@xxxxxxxxxxx>
> ---
> include/linux/netdevice.h | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index e675ef97a426..ee2f40dca515 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -53,6 +53,10 @@
> #include <uapi/linux/pkt_cls.h>
> #include <linux/hashtable.h>
>
> +#ifdef CONFIG_MACSEC
> +#include <net/macsec.h>
> +#endif

You can provide a forward declaration for struct netdev_macsec and not
have to include that header file.

> +
> struct netpoll_info;
> struct device;
> struct phy_device;
> @@ -1441,6 +1445,10 @@ struct net_device_ops {
> u32 flags);
> int (*ndo_xsk_async_xmit)(struct net_device *dev,
> u32 queue_id);
> +#ifdef CONFIG_MACSEC
> + int (*ndo_macsec)(struct net_device *dev,
> + struct netdev_macsec *macsec);

You would really want to define an API which is more oriented towards
configuring/deconfiguring a MACsec association here, e.g.: similar to
what the IPsec offload ndos offer.

It is not clear to me whether after your patch series we still need to
create a macsec virtual device, and that gets offloaded onto its real
device/PHY device, or if we don't need that all?
--
Florian