/* * Copyright (c) 2005-2009 Brocade Communications Systems, Inc. * All rights reserved * www.brocade.com * * Linux driver for Brocade Fibre Channel Host Bus Adapter. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) Version 2 as * published by the Free Software Foundation * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */ #ifndef __BFI_LPS_H__ #define __BFI_LPS_H__ #include #pragma pack(1) enum bfi_lps_h2i_msgs { BFI_LPS_H2I_LOGIN_REQ = 1, BFI_LPS_H2I_LOGOUT_REQ = 2, }; enum bfi_lps_i2h_msgs { BFI_LPS_H2I_LOGIN_RSP = BFA_I2HM(1), BFI_LPS_H2I_LOGOUT_RSP = BFA_I2HM(2), }; struct bfi_lps_login_req_s { struct bfi_mhdr_s mh; /* common msg header */ u8 lp_tag; u8 alpa; u16 pdu_size; wwn_t pwwn; wwn_t nwwn; u8 fdisc; u8 auth_en; u8 rsvd[2]; }; struct bfi_lps_login_rsp_s { struct bfi_mhdr_s mh; /* common msg header */ u8 lp_tag; u8 status; u8 lsrjt_rsn; u8 lsrjt_expl; wwn_t port_name; wwn_t node_name; u16 bb_credit; u8 f_port; u8 npiv_en; u32 lp_pid : 24; u32 auth_req : 8; mac_t lp_mac; mac_t fcf_mac; u8 ext_status; u8 brcd_switch;/* attached peer is brcd switch */ }; struct bfi_lps_logout_req_s { struct bfi_mhdr_s mh; /* common msg header */ u8 lp_tag; u8 rsvd[3]; wwn_t port_name; }; struct bfi_lps_logout_rsp_s { struct bfi_mhdr_s mh; /* common msg header */ u8 lp_tag; u8 status; u8 rsvd[2]; }; union bfi_lps_h2i_msg_u { struct bfi_mhdr_s *msg; struct bfi_lps_login_req_s *login_req; struct bfi_lps_logout_req_s *logout_req; }; union bfi_lps_i2h_msg_u { struct bfi_msg_s *msg; struct bfi_lps_login_rsp_s *login_rsp; struct bfi_lps_logout_rsp_s *logout_rsp; }; #pragma pack() #endif /* __BFI_LPS_H__ */