xfrmdev_ops
if (!real_dev->xfrmdev_ops ||
!real_dev->xfrmdev_ops->xdo_dev_state_add ||
err = real_dev->xfrmdev_ops->xdo_dev_state_add(real_dev, xs, extack);
if (!real_dev->xfrmdev_ops ||
!real_dev->xfrmdev_ops->xdo_dev_state_add ||
if (real_dev->xfrmdev_ops->xdo_dev_state_add(real_dev,
real_dev->xfrmdev_ops->xdo_dev_state_delete)
real_dev->xfrmdev_ops->xdo_dev_state_delete(real_dev,
if (!real_dev->xfrmdev_ops ||
!real_dev->xfrmdev_ops->xdo_dev_state_delete ||
real_dev->xfrmdev_ops->xdo_dev_state_delete(real_dev, xs);
bond_dev->xfrmdev_ops = &bond_xfrmdev_ops;
if (!real_dev->xfrmdev_ops ||
!real_dev->xfrmdev_ops->xdo_dev_state_delete ||
real_dev->xfrmdev_ops->xdo_dev_state_delete(real_dev,
if (real_dev->xfrmdev_ops->xdo_dev_state_free)
real_dev->xfrmdev_ops->xdo_dev_state_free(real_dev,
if (real_dev->xfrmdev_ops &&
real_dev->xfrmdev_ops->xdo_dev_state_free)
real_dev->xfrmdev_ops->xdo_dev_state_free(real_dev, xs);
if (!real_dev->xfrmdev_ops ||
!real_dev->xfrmdev_ops->xdo_dev_state_advance_esn) {
real_dev->xfrmdev_ops->xdo_dev_state_advance_esn(xs);
if (!real_dev->xfrmdev_ops ||
!real_dev->xfrmdev_ops->xdo_dev_state_update_stats) {
real_dev->xfrmdev_ops->xdo_dev_state_update_stats(xs);
static const struct xfrmdev_ops bond_xfrmdev_ops = {
if (!adap->uld[CXGB4_ULD_IPSEC].xfrmdev_ops) {
ret = adap->uld[CXGB4_ULD_IPSEC].xfrmdev_ops->xdo_dev_state_add(dev, x,
adap->uld[CXGB4_ULD_IPSEC].xfrmdev_ops->xdo_dev_state_delete(dev, x);
adap->uld[CXGB4_ULD_IPSEC].xfrmdev_ops->xdo_dev_state_free(dev, x);
adap->uld[CXGB4_ULD_IPSEC].xfrmdev_ops->xdo_dev_state_advance_esn(x);
static const struct xfrmdev_ops cxgb4_xfrmdev_ops = {
netdev->xfrmdev_ops = &cxgb4_xfrmdev_ops;
const struct xfrmdev_ops *xfrmdev_ops;
static const struct xfrmdev_ops ch_ipsec_xfrmdev_ops = {
.xfrmdev_ops = &ch_ipsec_xfrmdev_ops,
adapter->netdev->xfrmdev_ops = &ixgbe_xfrmdev_ops;
static const struct xfrmdev_ops ixgbe_xfrmdev_ops = {
static const struct xfrmdev_ops ixgbevf_xfrmdev_ops = {
adapter->netdev->xfrmdev_ops = &ixgbevf_xfrmdev_ops;
static const struct xfrmdev_ops cn10k_ipsec_xfrmdev_ops = {
netdev->xfrmdev_ops = &cn10k_ipsec_xfrmdev_ops;
static const struct xfrmdev_ops mlx5e_ipsec_xfrmdev_ops = {
netdev->xfrmdev_ops = &mlx5e_ipsec_xfrmdev_ops;
static const struct xfrmdev_ops nfp_net_ipsec_xfrmdev_ops = {
nn->dp.netdev->xfrmdev_ops = &nfp_net_ipsec_xfrmdev_ops;
static const struct xfrmdev_ops nsim_xfrmdev_ops = {
ns->netdev->xfrmdev_ops = &nsim_xfrmdev_ops;
const struct xfrmdev_ops *xfrmdev_ops;
if (dev && dev->xfrmdev_ops &&
dev->xfrmdev_ops->xdo_dev_state_update_stats)
dev->xfrmdev_ops->xdo_dev_state_update_stats(x);
if (dev && dev->xfrmdev_ops->xdo_dev_state_advance_esn)
dev->xfrmdev_ops->xdo_dev_state_advance_esn(x);
if (dev && dev->xfrmdev_ops && dev->xfrmdev_ops->xdo_dev_policy_delete)
dev->xfrmdev_ops->xdo_dev_policy_delete(x);
if (dev && dev->xfrmdev_ops) {
if (dev->xfrmdev_ops->xdo_dev_policy_free)
dev->xfrmdev_ops->xdo_dev_policy_free(x);
if (!dev->xfrmdev_ops || !dev->xfrmdev_ops->xdo_dev_state_add) {
!dev->xfrmdev_ops->xdo_dev_state_advance_esn) {
err = dev->xfrmdev_ops->xdo_dev_state_add(dev, x, extack);
if (!dev->xfrmdev_ops || !dev->xfrmdev_ops->xdo_dev_policy_add) {
err = dev->xfrmdev_ops->xdo_dev_policy_add(xp, extack);
if (dev->xfrmdev_ops->xdo_dev_offload_ok)
return dev->xfrmdev_ops->xdo_dev_offload_ok(skb, x);
(!(dev->xfrmdev_ops &&
dev->xfrmdev_ops->xdo_dev_state_add &&
dev->xfrmdev_ops->xdo_dev_state_delete)))
error = dev->xfrmdev_ops->xdo_dev_state_add(dev, x,
dev->xfrmdev_ops->xdo_dev_state_delete(dev, x);
if (dev && dev->xfrmdev_ops) {
if (dev->xfrmdev_ops->xdo_dev_state_free)
dev->xfrmdev_ops->xdo_dev_state_free(dev, x);