1b9db4d36f52cb3431404a8297e57043e5b75ffe
[dpdk.git] / drivers / net / ice / base / ice_vlan_mode.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2001-2020 Intel Corporation
3  */
4
5 #ifndef _ICE_VLAN_MODE_H_
6 #define _ICE_VLAN_MODE_H_
7
8 struct ice_hw;
9
10 enum ice_status ice_set_vlan_mode(struct ice_hw *hw);
11 void ice_init_vlan_mode_ops(struct ice_hw *hw);
12
13 /* This structure defines the VLAN mode configuration interface. It is used to set the VLAN mode.
14  *
15  * Note: These operations will be called while the global configuration lock is held.
16  *
17  * enum ice_status (*set_svm)(struct ice_hw *hw);
18  *      This function is called when the DDP and/or Firmware don't support double VLAN mode (DVM) or
19  *      if the set_dvm op is not implemented and/or returns failure. It will set the device in
20  *      single VLAN mode (SVM).
21  *
22  * enum ice_status (*set_dvm)(struct ice_hw *hw);
23  *      This function is called when the DDP and Firmware support double VLAN mode (DVM). It should
24  *      be implemented to set double VLAN mode. If it fails or remains unimplemented, set_svm will
25  *      be called as a fallback plan.
26  */
27 struct ice_vlan_mode_ops {
28         enum ice_status (*set_svm)(struct ice_hw *hw);
29         enum ice_status (*set_dvm)(struct ice_hw *hw);
30 };
31
32 #endif /* _ICE_VLAN_MODE_H */