can_offload
bool (*can_offload)(struct mlx5e_tc_act_parse_state *parse_state,
.can_offload = tc_act_can_offload_csum,
.can_offload = tc_act_can_offload_ct,
.can_offload = tc_act_can_offload_goto,
.can_offload = tc_act_can_offload_mark,
.can_offload = tc_act_can_offload_mirred,
.can_offload = tc_act_can_offload_mirred,
.can_offload = tc_act_can_offload_mirred_nic,
.can_offload = tc_act_can_offload_mpls_push,
.can_offload = tc_act_can_offload_mpls_pop,
.can_offload = tc_act_can_offload_police,
.can_offload = tc_act_can_offload_redirect_ingress,
.can_offload = tc_act_can_offload_tun_encap,
if (tunnel && tunnel->can_offload(priv))
bool (*can_offload)(struct mlx5e_priv *priv);
.can_offload = mlx5e_tc_tun_can_offload_geneve,
.can_offload = mlx5e_tc_tun_can_offload_gretap,
.can_offload = can_offload,
.can_offload = mlx5e_tc_tun_can_offload_vxlan,
if (tc_act->can_offload && !tc_act->can_offload(parse_state, act, i, attr)) {
.can_offload = mlxsw_sp_ipip_can_offload_gre4,
.can_offload = mlxsw_sp_ipip_can_offload_gre6,
.can_offload = mlxsw_sp_ipip_can_offload_gre6,
bool (*can_offload)(const struct mlxsw_sp *mlxsw_sp,
if (!ops->can_offload(nve, params, extack))
bool (*can_offload)(const struct mlxsw_sp_nve *nve,
.can_offload = mlxsw_sp1_nve_vxlan_can_offload,
.can_offload = mlxsw_sp_nve_vxlan_can_offload,
return ops->can_offload(mlxsw_sp, ol_dev);
if (ipip_ops->can_offload(mlxsw_sp, dev)) {
bool can_offload = true;
can_offload = false;
can_offload = false;
can_offload = false;
if (slave_count == 0 || !can_offload) {