// SPDX-License-Identifier: GPL-2.0 /* Copyright (C) 2019-2021, Intel Corporation. */ #include "ice_pf_vsi_vlan_ops.h" #include "ice_vf_vsi_vlan_ops.h" #include "ice_sf_vsi_vlan_ops.h" #include "ice_lib.h" #include "ice.h" static int op_unsupported_vlan_arg(struct ice_vsi * __always_unused vsi, struct ice_vlan * __always_unused vlan) { … } static int op_unsupported_tpid_arg(struct ice_vsi *__always_unused vsi, u16 __always_unused tpid) { … } static int op_unsupported(struct ice_vsi *__always_unused vsi) { … } /* If any new ops are added to the VSI VLAN ops interface then an unsupported * implementation should be set here. */ static struct ice_vsi_vlan_ops ops_unsupported = …; /** * ice_vsi_init_unsupported_vlan_ops - init all VSI VLAN ops to unsupported * @vsi: VSI to initialize VSI VLAN ops to unsupported for * * By default all inner and outer VSI VLAN ops return -EOPNOTSUPP. This was done * as oppsed to leaving the ops null to prevent unexpected crashes. Instead if * an unsupported VSI VLAN op is called it will just return -EOPNOTSUPP. * */ static void ice_vsi_init_unsupported_vlan_ops(struct ice_vsi *vsi) { … } /** * ice_vsi_init_vlan_ops - initialize type specific VSI VLAN ops * @vsi: VSI to initialize ops for * * If any VSI types are added and/or require different ops than the PF or VF VSI * then they will have to add a case here to handle that. Also, VSI type * specific files should be added in the same manner that was done for PF VSI. */ void ice_vsi_init_vlan_ops(struct ice_vsi *vsi) { … } /** * ice_get_compat_vsi_vlan_ops - Get VSI VLAN ops based on VLAN mode * @vsi: VSI used to get the VSI VLAN ops * * This function is meant to be used when the caller doesn't know which VLAN ops * to use (i.e. inner or outer). This allows backward compatibility for VLANs * since most of the Outer VSI VLAN functins are not supported when * the device is configured in Single VLAN Mode (SVM). */ struct ice_vsi_vlan_ops *ice_get_compat_vsi_vlan_ops(struct ice_vsi *vsi) { … }