1bc42afa9SBrett Creeley /* SPDX-License-Identifier: GPL-2.0 */ 2bc42afa9SBrett Creeley /* Copyright (C) 2019-2021, Intel Corporation. */ 3bc42afa9SBrett Creeley 4bc42afa9SBrett Creeley #ifndef _ICE_VSI_VLAN_OPS_H_ 5bc42afa9SBrett Creeley #define _ICE_VSI_VLAN_OPS_H_ 6bc42afa9SBrett Creeley 7bc42afa9SBrett Creeley #include "ice_type.h" 8bc42afa9SBrett Creeley #include "ice_vsi_vlan_lib.h" 9bc42afa9SBrett Creeley 10bc42afa9SBrett Creeley struct ice_vsi; 11bc42afa9SBrett Creeley 12bc42afa9SBrett Creeley struct ice_vsi_vlan_ops { 13fb05ba12SBrett Creeley int (*add_vlan)(struct ice_vsi *vsi, struct ice_vlan *vlan); 14fb05ba12SBrett Creeley int (*del_vlan)(struct ice_vsi *vsi, struct ice_vlan *vlan); 152bfefa2dSBrett Creeley int (*ena_stripping)(struct ice_vsi *vsi, const u16 tpid); 16bc42afa9SBrett Creeley int (*dis_stripping)(struct ice_vsi *vsi); 172bfefa2dSBrett Creeley int (*ena_insertion)(struct ice_vsi *vsi, const u16 tpid); 18bc42afa9SBrett Creeley int (*dis_insertion)(struct ice_vsi *vsi); 19bc42afa9SBrett Creeley int (*ena_rx_filtering)(struct ice_vsi *vsi); 20bc42afa9SBrett Creeley int (*dis_rx_filtering)(struct ice_vsi *vsi); 21bc42afa9SBrett Creeley int (*ena_tx_filtering)(struct ice_vsi *vsi); 22bc42afa9SBrett Creeley int (*dis_tx_filtering)(struct ice_vsi *vsi); 23fb05ba12SBrett Creeley int (*set_port_vlan)(struct ice_vsi *vsi, struct ice_vlan *vlan); 24*2946204bSMichal Swiatkowski int (*clear_port_vlan)(struct ice_vsi *vsi); 25bc42afa9SBrett Creeley }; 26bc42afa9SBrett Creeley 27bc42afa9SBrett Creeley void ice_vsi_init_vlan_ops(struct ice_vsi *vsi); 28c31af68aSBrett Creeley struct ice_vsi_vlan_ops *ice_get_compat_vsi_vlan_ops(struct ice_vsi *vsi); 29bc42afa9SBrett Creeley 30bc42afa9SBrett Creeley #endif /* _ICE_VSI_VLAN_OPS_H_ */ 31