15cb8db4aSAlexander Duyck /* Intel Ethernet Switch Host Interface Driver 25cb8db4aSAlexander Duyck * Copyright(c) 2013 - 2014 Intel Corporation. 35cb8db4aSAlexander Duyck * 45cb8db4aSAlexander Duyck * This program is free software; you can redistribute it and/or modify it 55cb8db4aSAlexander Duyck * under the terms and conditions of the GNU General Public License, 65cb8db4aSAlexander Duyck * version 2, as published by the Free Software Foundation. 75cb8db4aSAlexander Duyck * 85cb8db4aSAlexander Duyck * This program is distributed in the hope it will be useful, but WITHOUT 95cb8db4aSAlexander Duyck * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 105cb8db4aSAlexander Duyck * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 115cb8db4aSAlexander Duyck * more details. 125cb8db4aSAlexander Duyck * 135cb8db4aSAlexander Duyck * The full GNU General Public License is included in this distribution in 145cb8db4aSAlexander Duyck * the file called "COPYING". 155cb8db4aSAlexander Duyck * 165cb8db4aSAlexander Duyck * Contact Information: 175cb8db4aSAlexander Duyck * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> 185cb8db4aSAlexander Duyck * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 195cb8db4aSAlexander Duyck */ 205cb8db4aSAlexander Duyck 215cb8db4aSAlexander Duyck #ifndef _FM10K_VF_H_ 225cb8db4aSAlexander Duyck #define _FM10K_VF_H_ 235cb8db4aSAlexander Duyck 245cb8db4aSAlexander Duyck #include "fm10k_type.h" 255cb8db4aSAlexander Duyck #include "fm10k_common.h" 265cb8db4aSAlexander Duyck 275cb8db4aSAlexander Duyck enum fm10k_vf_tlv_msg_id { 285cb8db4aSAlexander Duyck FM10K_VF_MSG_ID_TEST = 0, /* msg ID reserved for testing */ 295cb8db4aSAlexander Duyck FM10K_VF_MSG_ID_MSIX, 305cb8db4aSAlexander Duyck FM10K_VF_MSG_ID_MAC_VLAN, 315cb8db4aSAlexander Duyck FM10K_VF_MSG_ID_LPORT_STATE, 325cb8db4aSAlexander Duyck FM10K_VF_MSG_ID_MAX, 335cb8db4aSAlexander Duyck }; 345cb8db4aSAlexander Duyck 355cb8db4aSAlexander Duyck enum fm10k_tlv_mac_vlan_attr_id { 365cb8db4aSAlexander Duyck FM10K_MAC_VLAN_MSG_VLAN, 375cb8db4aSAlexander Duyck FM10K_MAC_VLAN_MSG_SET, 385cb8db4aSAlexander Duyck FM10K_MAC_VLAN_MSG_MAC, 395cb8db4aSAlexander Duyck FM10K_MAC_VLAN_MSG_DEFAULT_MAC, 405cb8db4aSAlexander Duyck FM10K_MAC_VLAN_MSG_MULTICAST, 415cb8db4aSAlexander Duyck FM10K_MAC_VLAN_MSG_ID_MAX 425cb8db4aSAlexander Duyck }; 435cb8db4aSAlexander Duyck 445cb8db4aSAlexander Duyck enum fm10k_tlv_lport_state_attr_id { 455cb8db4aSAlexander Duyck FM10K_LPORT_STATE_MSG_DISABLE, 465cb8db4aSAlexander Duyck FM10K_LPORT_STATE_MSG_XCAST_MODE, 475cb8db4aSAlexander Duyck FM10K_LPORT_STATE_MSG_READY, 485cb8db4aSAlexander Duyck FM10K_LPORT_STATE_MSG_MAX 495cb8db4aSAlexander Duyck }; 505cb8db4aSAlexander Duyck 515cb8db4aSAlexander Duyck #define FM10K_VF_MSG_MSIX_HANDLER(func) \ 525cb8db4aSAlexander Duyck FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_MSIX, NULL, func) 535cb8db4aSAlexander Duyck 545cb8db4aSAlexander Duyck s32 fm10k_msg_mac_vlan_vf(struct fm10k_hw *, u32 **, struct fm10k_mbx_info *); 555cb8db4aSAlexander Duyck extern const struct fm10k_tlv_attr fm10k_mac_vlan_msg_attr[]; 565cb8db4aSAlexander Duyck #define FM10K_VF_MSG_MAC_VLAN_HANDLER(func) \ 575cb8db4aSAlexander Duyck FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_MAC_VLAN, \ 585cb8db4aSAlexander Duyck fm10k_mac_vlan_msg_attr, func) 595cb8db4aSAlexander Duyck 605cb8db4aSAlexander Duyck s32 fm10k_msg_lport_state_vf(struct fm10k_hw *, u32 **, 615cb8db4aSAlexander Duyck struct fm10k_mbx_info *); 625cb8db4aSAlexander Duyck extern const struct fm10k_tlv_attr fm10k_lport_state_msg_attr[]; 635cb8db4aSAlexander Duyck #define FM10K_VF_MSG_LPORT_STATE_HANDLER(func) \ 645cb8db4aSAlexander Duyck FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_LPORT_STATE, \ 655cb8db4aSAlexander Duyck fm10k_lport_state_msg_attr, func) 665cb8db4aSAlexander Duyck 675cb8db4aSAlexander Duyck extern struct fm10k_info fm10k_vf_info; 685cb8db4aSAlexander Duyck #endif /* _FM10K_VF_H */ 69