1/* 2 * Linux network driver for QLogic BR-series Converged Network Adapter. 3 * 4 * This program is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU General Public License (GPL) Version 2 as 6 * published by the Free Software Foundation 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * General Public License for more details. 12 */ 13/* 14 * Copyright (c) 2005-2014 Brocade Communications Systems, Inc. 15 * Copyright (c) 2014-2015 QLogic Corporation 16 * All rights reserved 17 * www.qlogic.com 18 */ 19#ifndef __BFI_CNA_H__ 20#define __BFI_CNA_H__ 21 22#include "bfi.h" 23#include "bfa_defs_cna.h" 24 25#pragma pack(1) 26 27enum bfi_port_h2i { 28 BFI_PORT_H2I_ENABLE_REQ = (1), 29 BFI_PORT_H2I_DISABLE_REQ = (2), 30 BFI_PORT_H2I_GET_STATS_REQ = (3), 31 BFI_PORT_H2I_CLEAR_STATS_REQ = (4), 32}; 33 34enum bfi_port_i2h { 35 BFI_PORT_I2H_ENABLE_RSP = BFA_I2HM(1), 36 BFI_PORT_I2H_DISABLE_RSP = BFA_I2HM(2), 37 BFI_PORT_I2H_GET_STATS_RSP = BFA_I2HM(3), 38 BFI_PORT_I2H_CLEAR_STATS_RSP = BFA_I2HM(4), 39}; 40 41/* Generic REQ type */ 42struct bfi_port_generic_req { 43 struct bfi_mhdr mh; /*!< msg header */ 44 u32 msgtag; /*!< msgtag for reply */ 45 u32 rsvd; 46}; 47 48/* Generic RSP type */ 49struct bfi_port_generic_rsp { 50 struct bfi_mhdr mh; /*!< common msg header */ 51 u8 status; /*!< port enable status */ 52 u8 rsvd[3]; 53 u32 msgtag; /*!< msgtag for reply */ 54}; 55 56/* BFI_PORT_H2I_GET_STATS_REQ */ 57struct bfi_port_get_stats_req { 58 struct bfi_mhdr mh; /*!< common msg header */ 59 union bfi_addr_u dma_addr; 60}; 61 62union bfi_port_h2i_msg_u { 63 struct bfi_mhdr mh; 64 struct bfi_port_generic_req enable_req; 65 struct bfi_port_generic_req disable_req; 66 struct bfi_port_get_stats_req getstats_req; 67 struct bfi_port_generic_req clearstats_req; 68}; 69 70union bfi_port_i2h_msg_u { 71 struct bfi_mhdr mh; 72 struct bfi_port_generic_rsp enable_rsp; 73 struct bfi_port_generic_rsp disable_rsp; 74 struct bfi_port_generic_rsp getstats_rsp; 75 struct bfi_port_generic_rsp clearstats_rsp; 76}; 77 78/* @brief Mailbox commands from host to (DCBX/LLDP) firmware */ 79enum bfi_cee_h2i_msgs { 80 BFI_CEE_H2I_GET_CFG_REQ = 1, 81 BFI_CEE_H2I_RESET_STATS = 2, 82 BFI_CEE_H2I_GET_STATS_REQ = 3, 83}; 84 85/* @brief Mailbox reply and AEN messages from DCBX/LLDP firmware to host */ 86enum bfi_cee_i2h_msgs { 87 BFI_CEE_I2H_GET_CFG_RSP = BFA_I2HM(1), 88 BFI_CEE_I2H_RESET_STATS_RSP = BFA_I2HM(2), 89 BFI_CEE_I2H_GET_STATS_RSP = BFA_I2HM(3), 90}; 91 92/* Data structures */ 93 94/* 95 * @brief H2I command structure for resetting the stats. 96 * BFI_CEE_H2I_RESET_STATS 97 */ 98struct bfi_lldp_reset_stats { 99 struct bfi_mhdr mh; 100}; 101 102/* 103 * @brief H2I command structure for resetting the stats. 104 * BFI_CEE_H2I_RESET_STATS 105 */ 106struct bfi_cee_reset_stats { 107 struct bfi_mhdr mh; 108}; 109 110/* 111 * @brief get configuration command from host 112 * BFI_CEE_H2I_GET_CFG_REQ 113 */ 114struct bfi_cee_get_req { 115 struct bfi_mhdr mh; 116 union bfi_addr_u dma_addr; 117}; 118 119/* 120 * @brief reply message from firmware 121 * BFI_CEE_I2H_GET_CFG_RSP 122 */ 123struct bfi_cee_get_rsp { 124 struct bfi_mhdr mh; 125 u8 cmd_status; 126 u8 rsvd[3]; 127}; 128 129/* 130 * @brief get configuration command from host 131 * BFI_CEE_H2I_GET_STATS_REQ 132 */ 133struct bfi_cee_stats_req { 134 struct bfi_mhdr mh; 135 union bfi_addr_u dma_addr; 136}; 137 138/* 139 * @brief reply message from firmware 140 * BFI_CEE_I2H_GET_STATS_RSP 141 */ 142struct bfi_cee_stats_rsp { 143 struct bfi_mhdr mh; 144 u8 cmd_status; 145 u8 rsvd[3]; 146}; 147 148/* @brief mailbox command structures from host to firmware */ 149union bfi_cee_h2i_msg_u { 150 struct bfi_mhdr mh; 151 struct bfi_cee_get_req get_req; 152 struct bfi_cee_stats_req stats_req; 153}; 154 155/* @brief mailbox message structures from firmware to host */ 156union bfi_cee_i2h_msg_u { 157 struct bfi_mhdr mh; 158 struct bfi_cee_get_rsp get_rsp; 159 struct bfi_cee_stats_rsp stats_rsp; 160}; 161 162#pragma pack() 163 164#endif /* __BFI_CNA_H__ */ 165