xref: /openbmc/linux/drivers/net/ethernet/intel/fm10k/fm10k_vf.h (revision e33bbe69149b802c0c77bfb822685772f85388ca)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Intel(R) Ethernet Switch Host Interface Driver
3  * Copyright(c) 2013 - 2016 Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * The full GNU General Public License is included in this distribution in
15  * the file called "COPYING".
16  *
17  * Contact Information:
18  * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
19  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
20  */
21 
22 #ifndef _FM10K_VF_H_
23 #define _FM10K_VF_H_
24 
25 #include "fm10k_type.h"
26 #include "fm10k_common.h"
27 
28 enum fm10k_vf_tlv_msg_id {
29 	FM10K_VF_MSG_ID_TEST = 0,	/* msg ID reserved for testing */
30 	FM10K_VF_MSG_ID_MSIX,
31 	FM10K_VF_MSG_ID_MAC_VLAN,
32 	FM10K_VF_MSG_ID_LPORT_STATE,
33 	FM10K_VF_MSG_ID_MAX,
34 };
35 
36 enum fm10k_tlv_mac_vlan_attr_id {
37 	FM10K_MAC_VLAN_MSG_VLAN,
38 	FM10K_MAC_VLAN_MSG_SET,
39 	FM10K_MAC_VLAN_MSG_MAC,
40 	FM10K_MAC_VLAN_MSG_DEFAULT_MAC,
41 	FM10K_MAC_VLAN_MSG_MULTICAST,
42 	FM10K_MAC_VLAN_MSG_ID_MAX
43 };
44 
45 enum fm10k_tlv_lport_state_attr_id {
46 	FM10K_LPORT_STATE_MSG_DISABLE,
47 	FM10K_LPORT_STATE_MSG_XCAST_MODE,
48 	FM10K_LPORT_STATE_MSG_READY,
49 	FM10K_LPORT_STATE_MSG_MAX
50 };
51 
52 #define FM10K_VF_MSG_MSIX_HANDLER(func) \
53 	 FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_MSIX, NULL, func)
54 
55 s32 fm10k_msg_mac_vlan_vf(struct fm10k_hw *, u32 **, struct fm10k_mbx_info *);
56 extern const struct fm10k_tlv_attr fm10k_mac_vlan_msg_attr[];
57 #define FM10K_VF_MSG_MAC_VLAN_HANDLER(func) \
58 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_MAC_VLAN, \
59 			  fm10k_mac_vlan_msg_attr, func)
60 
61 s32 fm10k_msg_lport_state_vf(struct fm10k_hw *, u32 **,
62 			     struct fm10k_mbx_info *);
63 extern const struct fm10k_tlv_attr fm10k_lport_state_msg_attr[];
64 #define FM10K_VF_MSG_LPORT_STATE_HANDLER(func) \
65 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_LPORT_STATE, \
66 			  fm10k_lport_state_msg_attr, func)
67 
68 extern const struct fm10k_info fm10k_vf_info;
69 #endif /* _FM10K_VF_H */
70