On Mon, Sep 08, 2025 at 11:48:58PM +0200, Sabrina Dubroca wrote: > > > > 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? > > > > No, the xfrm_features in patch 01 updates dev->hw_enc_features, not > > dev->hw_features. > > Ok. But hw_enc_features is not the reason ethtool shows > "esp-hw-offload off". This line is: > > bond_dev->hw_features |= BOND_XFRM_FEATURES; > > (from bond_setup) Ah, there it is. You remind me that I have a bonding xfrm feature patch not posted yet. > > > Do you think if we should update dev->hw_features in the > > patch? > > For dev->hw_features (and dev->features) maybe not, since that depends > on the upper device's features and implementation. I'm not sure we can > have a common function without changing the behavior on at least one > type of device. > > But maybe ndo_fix_features could use a common > netdev_fix_features_from_lowers? bond/team/bridge have very similar > implementations. Thanks, will add this to my todo list. > > > > > 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. > > > > Oh.. That would make the test complex. Can we ignore this test first? > > Ok for me. > > > BTW, I'm a bit lost in the callbacks.gso_segment. e.g. > > > > esp4_gso_segment > > - xfrm4_outer_mode_gso_segment > > - xfrm4_transport_gso_segment > > - ops->callbacks.gso_segment > > > > But who calls esp4_gso_segment? I can't find where the features is assigned. > > inet_gso_segment via inet_offloads[] (ESP is a L4 proto like UDP etc). Ah, I only saw ipip_gso_segment calls inet_gso_segment, didn't notice ipv4_offload_init() also init the callback with inet_gso_segment. Thanks Hangbin