1/* 2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc. 3 * All rights reserved 4 * www.brocade.com 5 * 6 * Linux driver for Brocade Fibre Channel Host Bus Adapter. 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License (GPL) Version 2 as 10 * published by the Free Software Foundation 11 * 12 * This program is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * General Public License for more details. 16 */ 17 18#ifndef __BFI_LPS_H__ 19#define __BFI_LPS_H__ 20 21#include <bfi/bfi.h> 22 23#pragma pack(1) 24 25enum bfi_lps_h2i_msgs { 26 BFI_LPS_H2I_LOGIN_REQ = 1, 27 BFI_LPS_H2I_LOGOUT_REQ = 2, 28}; 29 30enum bfi_lps_i2h_msgs { 31 BFI_LPS_H2I_LOGIN_RSP = BFA_I2HM(1), 32 BFI_LPS_H2I_LOGOUT_RSP = BFA_I2HM(2), 33 BFI_LPS_H2I_CVL_EVENT = BFA_I2HM(3), 34}; 35 36struct bfi_lps_login_req_s { 37 struct bfi_mhdr_s mh; /* common msg header */ 38 u8 lp_tag; 39 u8 alpa; 40 u16 pdu_size; 41 wwn_t pwwn; 42 wwn_t nwwn; 43 u8 fdisc; 44 u8 auth_en; 45 u8 rsvd[2]; 46}; 47 48struct bfi_lps_login_rsp_s { 49 struct bfi_mhdr_s mh; /* common msg header */ 50 u8 lp_tag; 51 u8 status; 52 u8 lsrjt_rsn; 53 u8 lsrjt_expl; 54 wwn_t port_name; 55 wwn_t node_name; 56 u16 bb_credit; 57 u8 f_port; 58 u8 npiv_en; 59 u32 lp_pid:24; 60 u32 auth_req:8; 61 mac_t lp_mac; 62 mac_t fcf_mac; 63 u8 ext_status; 64 u8 brcd_switch;/* attached peer is brcd switch */ 65}; 66 67struct bfi_lps_logout_req_s { 68 struct bfi_mhdr_s mh; /* common msg header */ 69 u8 lp_tag; 70 u8 rsvd[3]; 71 wwn_t port_name; 72}; 73 74struct bfi_lps_logout_rsp_s { 75 struct bfi_mhdr_s mh; /* common msg header */ 76 u8 lp_tag; 77 u8 status; 78 u8 rsvd[2]; 79}; 80 81struct bfi_lps_cvl_event_s { 82 struct bfi_mhdr_s mh; /* common msg header */ 83 u8 lp_tag; 84 u8 rsvd[3]; 85}; 86 87union bfi_lps_h2i_msg_u { 88 struct bfi_mhdr_s *msg; 89 struct bfi_lps_login_req_s *login_req; 90 struct bfi_lps_logout_req_s *logout_req; 91}; 92 93union bfi_lps_i2h_msg_u { 94 struct bfi_msg_s *msg; 95 struct bfi_lps_login_rsp_s *login_rsp; 96 struct bfi_lps_logout_rsp_s *logout_rsp; 97 struct bfi_lps_cvl_event_s *cvl_event; 98}; 99 100#pragma pack() 101 102#endif /* __BFI_LPS_H__ */ 103