All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sabrina Dubroca <sd@queasysnail.net>
To: Hangbin Liu <liuhangbin@gmail.com>
Cc: netdev@vger.kernel.org, Jay Vosburgh <jv@jvosburgh.net>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Jiri Pirko <jiri@resnulli.us>, Simon Horman <horms@kernel.org>,
	Ido Schimmel <idosch@nvidia.com>, Shuah Khan <shuah@kernel.org>,
	Stanislav Fomichev <sdf@fomichev.me>,
	Kuniyuki Iwashima <kuniyu@google.com>,
	Ahmed Zaki <ahmed.zaki@intel.com>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	bridge@lists.linux.dev, linux-kselftest@vger.kernel.org
Subject: Re: [PATCHv2 net-next 5/5] selftests/net: add offload checking test for virtual interface
Date: Mon, 8 Sep 2025 11:36:21 +0200	[thread overview]
Message-ID: <aL6jlYPhsPfDKT8C@krikkit> (raw)
In-Reply-To: <aL5YamjbZB5gsL30@fedora>

2025-09-08, 04:15:38 +0000, Hangbin Liu wrote:
> On Sat, Sep 06, 2025 at 11:30:58PM +0200, Sabrina Dubroca wrote:
> > > +check_xfrm()
> > > +{
> > > +	local dev=$1
> > > +	local src=192.0.2.1
> > > +	local dst=192.0.2.2
> > > +	local key="0x3132333435363738393031323334353664636261"
> > > +
> > > +	RET=0
> > > +
> > > +	ip -n "$ns" xfrm state flush
> > > +	ip -n "$ns" xfrm state add proto esp src "$src" dst "$dst" spi 9 \
> > > +		mode transport reqid 42 aead "rfc4106(gcm(aes))" "$key" 128 \
> > > +		sel src "$src"/24 dst "$dst"/24 offload dev "$dev" dir out
> > 
> > It's maybe not something you would expect, but this codepath will not
> > check that NETIF_F_HW_ESP is set on $dev (you can verify that by
> > running "ip xfrm state add ... offload ..." on the same bond+netdevsim
> > combination before/after toggling esp-hw-offload on/off for the
> > bond). Why not use __check_offload again for this feature?
> 
> The esp-hw-offload is fixed on netdevsim
> 
> # ethtool -k eni0np1 | grep -i esp-hw-offload
> esp-hw-offload: on [fixed]
> 
> There is no way to disable it.

I don't think this is intentional. nsim_ipsec_init only adds
NSIM_ESP_FEATURES to ->features but not to ->hw_features, but I think
it was just forgotten. I added a few in 494bd83bb519 ("netdevsim: add
more hw_features"), extending nsim_ipsec_init (and nsim_macsec_init
since I made the same mistake) to also add features to ->hw_features
would make sense to me.


> After we add the netdevsim to bond,
> the bond also shows "esp-hw-offload off" as the flag is inherit
> in dev->hw_enc_features, not dev->features.

Did you mean dev->hw_features?

> It looks the only way to check if bond dev->hw_enc_features has NETIF_F_HW_ESP
> is try set xfrm offload. As

Was this test meant to check hw_enc_features?

To check hw_enc_features, I think the only way would be sending GSO
packets, since it's only used in those situations.


> static int xfrm_api_check(struct net_device *dev)
> {

But this doesn't get called when creating a new xfrm state. Trying to
create a new offloaded xfrm state doesn't look at any of the
netdev->*features (and we can't change that behavior anymore).

xfrm_api_check only gets called for NETDEV_REGISTER/NETDEV_FEAT_CHANGE
to validate whether the netdevice is set up correctly.

> #ifdef CONFIG_XFRM_OFFLOAD
>         if ((dev->features & NETIF_F_HW_ESP_TX_CSUM) &&
>             !(dev->features & NETIF_F_HW_ESP))
>                 return NOTIFY_BAD;
> 
>         if ((dev->features & NETIF_F_HW_ESP) &&
>             (!(dev->xfrmdev_ops &&
>                dev->xfrmdev_ops->xdo_dev_state_add &&
>                dev->xfrmdev_ops->xdo_dev_state_delete)))
>                 return NOTIFY_BAD;
> 
> Please correct me if I made any mistake.
> 
> Thanks
> Hangbin

-- 
Sabrina

  reply	other threads:[~2025-09-08  9:36 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-02  7:25 [PATCHv2 net-next 0/5] net: common feature compute for upper interface Hangbin Liu
2025-09-02  7:25 ` [PATCHv2 net-next 1/5] net: add a common function to compute features from lowers devices Hangbin Liu
2025-09-06 17:42   ` Sabrina Dubroca
2025-09-08  3:20     ` Hangbin Liu
2025-09-07  0:22   ` Jakub Kicinski
2025-09-02  7:25 ` [PATCHv2 net-next 2/5] bonding: use common function to compute the features Hangbin Liu
2025-09-02  7:26 ` [PATCHv2 net-next 3/5] team: " Hangbin Liu
2025-09-02  7:26 ` [PATCHv2 net-next 4/5] net: bridge: " Hangbin Liu
2025-09-02  7:26 ` [PATCHv2 net-next 5/5] selftests/net: add offload checking test for virtual interface Hangbin Liu
2025-09-06 21:30   ` Sabrina Dubroca
2025-09-08  4:15     ` Hangbin Liu
2025-09-08  9:36       ` Sabrina Dubroca [this message]
2025-09-08 10:14         ` Hangbin Liu
2025-09-08 21:48           ` Sabrina Dubroca
2025-09-09  2:54             ` Hangbin Liu

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=aL6jlYPhsPfDKT8C@krikkit \
    --to=sd@queasysnail.net \
    --cc=ahmed.zaki@intel.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=bridge@lists.linux.dev \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=jiri@resnulli.us \
    --cc=jv@jvosburgh.net \
    --cc=kuba@kernel.org \
    --cc=kuniyu@google.com \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=liuhangbin@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sdf@fomichev.me \
    --cc=shuah@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.