bonding: support xfrm state update
The patch add xfrm statistics update for bonding IPsec offload. Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org> Acked-by: Jay Vosburgh <jv@jvosburgh.net> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
96d30bf941
commit
68db604e16
1 changed files with 25 additions and 0 deletions
|
@ -718,12 +718,37 @@ out:
|
||||||
rcu_read_unlock();
|
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_ratelimited("%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 = {
|
static const struct xfrmdev_ops bond_xfrmdev_ops = {
|
||||||
.xdo_dev_state_add = bond_ipsec_add_sa,
|
.xdo_dev_state_add = bond_ipsec_add_sa,
|
||||||
.xdo_dev_state_delete = bond_ipsec_del_sa,
|
.xdo_dev_state_delete = bond_ipsec_del_sa,
|
||||||
.xdo_dev_state_free = bond_ipsec_free_sa,
|
.xdo_dev_state_free = bond_ipsec_free_sa,
|
||||||
.xdo_dev_offload_ok = bond_ipsec_offload_ok,
|
.xdo_dev_offload_ok = bond_ipsec_offload_ok,
|
||||||
.xdo_dev_state_advance_esn = bond_advance_esn_state,
|
.xdo_dev_state_advance_esn = bond_advance_esn_state,
|
||||||
|
.xdo_dev_state_update_stats = bond_xfrm_update_stats,
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_XFRM_OFFLOAD */
|
#endif /* CONFIG_XFRM_OFFLOAD */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue