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