Message ID | 20240819075334.236334-4-liuhangbin@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Bonding: support new xfrm state offload functions | expand |
On 19/08/2024 10:53, Hangbin Liu wrote: > The patch add xfrm statistics update for bonding IPsec offload. > > Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> > --- > drivers/net/bonding/bond_main.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c > index 3c04bdba17d4..9e41e34e9039 100644 > --- a/drivers/net/bonding/bond_main.c > +++ b/drivers/net/bonding/bond_main.c > @@ -670,11 +670,36 @@ static void bond_advance_esn_state(struct xfrm_state *xs) > rcu_read_unlock(); > } > > +/** > + * bond_xfrm_update_stats - Update xfrm state > + * @xs: pointer to transformer state struct > + **/ > +static void bond_xfrm_update_stats(struct xfrm_state *xs) > +{ > + struct net_device *real_dev; > + > + rcu_read_lock(); > + real_dev = bond_ipsec_dev(xs); > + if (!real_dev) > + goto out; > + > + if (!real_dev->xfrmdev_ops || > + !real_dev->xfrmdev_ops->xdo_dev_state_update_stats) { > + pr_warn("%s: %s doesn't support xdo_dev_state_update_stats\n", __func__, real_dev->name); > + goto out; > + } > + > + real_dev->xfrmdev_ops->xdo_dev_state_update_stats(xs); > +out: > + rcu_read_unlock(); > +} > + > static const struct xfrmdev_ops bond_xfrmdev_ops = { > .xdo_dev_state_add = bond_ipsec_add_sa, > .xdo_dev_state_delete = bond_ipsec_del_sa, > .xdo_dev_offload_ok = bond_ipsec_offload_ok, > .xdo_dev_state_advance_esn = bond_advance_esn_state, > + .xdo_dev_state_update_stats = bond_xfrm_update_stats, > }; > #endif /* CONFIG_XFRM_OFFLOAD */ > Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 3c04bdba17d4..9e41e34e9039 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -670,11 +670,36 @@ static void bond_advance_esn_state(struct xfrm_state *xs) rcu_read_unlock(); } +/** + * bond_xfrm_update_stats - Update xfrm state + * @xs: pointer to transformer state struct + **/ +static void bond_xfrm_update_stats(struct xfrm_state *xs) +{ + struct net_device *real_dev; + + rcu_read_lock(); + real_dev = bond_ipsec_dev(xs); + if (!real_dev) + goto out; + + if (!real_dev->xfrmdev_ops || + !real_dev->xfrmdev_ops->xdo_dev_state_update_stats) { + pr_warn("%s: %s doesn't support xdo_dev_state_update_stats\n", __func__, real_dev->name); + goto out; + } + + real_dev->xfrmdev_ops->xdo_dev_state_update_stats(xs); +out: + rcu_read_unlock(); +} + static const struct xfrmdev_ops bond_xfrmdev_ops = { .xdo_dev_state_add = bond_ipsec_add_sa, .xdo_dev_state_delete = bond_ipsec_del_sa, .xdo_dev_offload_ok = bond_ipsec_offload_ok, .xdo_dev_state_advance_esn = bond_advance_esn_state, + .xdo_dev_state_update_stats = bond_xfrm_update_stats, }; #endif /* CONFIG_XFRM_OFFLOAD */
The patch add xfrm statistics update for bonding IPsec offload. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- drivers/net/bonding/bond_main.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)