From: Sabrina Dubroca <sd@queasysnail.net>
To: Leon Romanovsky <leon@kernel.org>
Cc: Emeel Hakim <ehakim@nvidia.com>,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com, netdev@vger.kernel.org
Subject: Re: [PATCH net-next v2 1/4] vlan: Add MACsec offload operations for VLAN interface
Date: Thu, 30 Mar 2023 22:32:34 +0200 [thread overview]
Message-ID: <ZCXx4oJfnzcAKX65@hog> (raw)
In-Reply-To: <20230330185656.GZ831478@unreal>
2023-03-30, 21:56:56 +0300, Leon Romanovsky wrote:
> On Thu, Mar 30, 2023 at 07:19:21PM +0200, Sabrina Dubroca wrote:
> > 2023-03-29, 21:42:01 +0300, Leon Romanovsky wrote:
> > > On Wed, Mar 29, 2023 at 04:43:59PM +0200, Sabrina Dubroca wrote:
> > > > 2023-03-29, 15:21:04 +0300, Emeel Hakim wrote:
> > > > > Add support for MACsec offload operations for VLAN driver
> > > > > to allow offloading MACsec when VLAN's real device supports
> > > > > Macsec offload by forwarding the offload request to it.
> > > > >
> > > > > Signed-off-by: Emeel Hakim <ehakim@nvidia.com>
> > > > > ---
> > > > > V1 -> V2: - Consult vlan_features when adding NETIF_F_HW_MACSEC.
> > > >
> > > > Uh? You're not actually doing that? You also dropped the
> > > > changes to vlan_dev_fix_features without explaining why.
> > >
> > > vlan_dev_fix_features() relies on real_dev->vlan_features which was set
> > > in mlx5 part of this patch.
> > >
> > > 643 static netdev_features_t vlan_dev_fix_features(struct net_device *dev,
> > > 644 netdev_features_t features)
> > > 645 {
> > > ...
> > > 649
> > > 650 lower_features = netdev_intersect_features((real_dev->vlan_features |
> > > 651 NETIF_F_RXCSUM),
> > > 652 real_dev->features);
> > >
> > > This part ensure that once real_dev->vlan_features and real_dev->features have NETIF_F_HW_MACSEC,
> > > the returned features will include NETIF_F_HW_MACSEC too.
> >
> > Ok, thanks.
> >
> > But back to the issue of vlan_features, in vlan_dev_init: I'm not
> > convinced NETIF_F_HW_MACSEC should be added to hw_features based on
> > ->features. That would result in a new vlan device that can't offload
> > macsec at all if it was created at the wrong time (while the lower
> > device's macsec offload was temporarily disabled).
>
> Sorry, I'm new to this netdev features zoo, but if I read correctly
> Documentation/networking/netdev-features.rst, the ->features is the list
> of enabled ones:
>
> 29 2. netdev->features set contains features which are currently enabled
> 30 for a device. This should be changed only by network core or in
> 31 error paths of ndo_set_features callback.
>
> And user will have a chance to disable it for VLAN because it was added
> to ->hw_features:
>
> 24 1. netdev->hw_features set contains features whose state may possibly
> 25 be changed (enabled or disabled) for a particular device by user's
> 26 request. This set should be initialized in ndo_init callback and not
> 27 changed later.
>
> So how can VLAN be created with NETIF_F_HW_MACSEC while real_dev mcasec
> offload is disabled?
I'm proposing that be VLAN device be created with the capability
(->hw_features contains NETIF_F_HW_MACSEC) but disabled (->features
doesn't contain NETIF_F_HW_MACSEC). That way, if NETIF_F_HW_MACSEC is
re-enabled on the lower device, you don't need to destroy the VLAN
device to enable macsec offload on it as well. You still won't be able
to enable macsec offload on the VLAN device unless it's active on the
real NIC.
I think whether the lower device currently has NETIF_F_HW_MACSEC
should only affect whether you can enable the feature on the vlan
device right now. What feature is enabled at creation time should be
irrelevant.
> > AFAIU, vlandev->hw_features should be based on realdev->vlan_features.
>
> Is this macsec offloaded VLAN can be called "child VLAN device"?
>
> 33 3. netdev->vlan_features set contains features whose state is inherited
> 34 by child VLAN devices (limits netdev->features set). This is currently
> 35 used for all VLAN devices whether tags are stripped or inserted in
> 36 hardware or software.
Yes. In this patch, we're talking about this situation:
eth0 --------------> vlan0 --------------> macsec0
real NIC
(capable of (can also
offloading MACsec) offload MACsec)
And vlan0 would be a "child VLAN device" of eth0.
"limits netdev->features set" is the netdev_intersect_features you
quoted in your previous email.
> > I don't see a reason to advertise a feature in the vlan device if we
> > won't ever be able to turn it on because it's not in ->vlan_features
> > ("grmbl why can't I enable it, ethtool says it's here?!").
> >
> >
> > Emeel, I'm not a maintainer, but I don't think you should be reposting
> > until the existing discussion has settled down.
> >
> > > >
> > > > [...]
> > > > > @@ -572,6 +573,9 @@ static int vlan_dev_init(struct net_device *dev)
> > > > > NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |
> > > > > NETIF_F_ALL_FCOE;
> > > > >
> > > > > + if (real_dev->features & NETIF_F_HW_MACSEC)
> > > > > + dev->hw_features |= NETIF_F_HW_MACSEC;
> > > > > +
> > > > > dev->features |= dev->hw_features | NETIF_F_LLTX;
> > > > > netif_inherit_tso_max(dev, real_dev);
> > > > > if (dev->features & NETIF_F_VLAN_FEATURES)
> >
> > --
> > Sabrina
> >
--
Sabrina
next prev parent reply other threads:[~2023-03-30 20:32 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-29 12:21 [PATCH net-next v2 0/4] Support MACsec VLAN Emeel Hakim
2023-03-29 12:21 ` [PATCH net-next v2 1/4] vlan: Add MACsec offload operations for VLAN interface Emeel Hakim
2023-03-29 14:43 ` Sabrina Dubroca
2023-03-29 18:42 ` Leon Romanovsky
2023-03-30 17:19 ` Sabrina Dubroca
2023-03-30 17:42 ` Jakub Kicinski
2023-03-31 14:33 ` Emeel Hakim
2023-03-30 18:56 ` Leon Romanovsky
2023-03-30 20:32 ` Sabrina Dubroca [this message]
2023-04-03 9:29 ` Emeel Hakim
2023-04-04 12:53 ` Sabrina Dubroca
2023-04-04 14:37 ` Emeel Hakim
2023-04-05 9:35 ` Sabrina Dubroca
2023-04-05 9:27 ` Sabrina Dubroca
2023-04-05 9:36 ` Emeel Hakim
2023-03-29 12:21 ` [PATCH net-next 2/4] net/mlx5: Support MACsec over VLAN Emeel Hakim
2023-03-29 12:21 ` [PATCH net-next 3/4] net/mlx5: Consider VLAN interface in MACsec TX steering rules Emeel Hakim
2023-03-29 12:21 ` [PATCH net-next 4/4] macsec: Add MACsec rx_handler change support Emeel Hakim
2023-04-05 9:35 ` Sabrina Dubroca
2023-04-05 9:41 ` Emeel Hakim
2023-03-29 18:37 ` [PATCH net-next v2 0/4] Support MACsec VLAN Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZCXx4oJfnzcAKX65@hog \
--to=sd@queasysnail.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=ehakim@nvidia.com \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).