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_LPORT_H__ 19#define __BFI_LPORT_H__ 20 21#include <bfi/bfi.h> 22 23#pragma pack(1) 24 25enum bfi_lport_h2i_msgs { 26 BFI_LPORT_H2I_CREATE_REQ = 1, 27 BFI_LPORT_H2I_DELETE_REQ = 2, 28}; 29 30enum bfi_lport_i2h_msgs { 31 BFI_LPORT_I2H_CREATE_RSP = BFA_I2HM(1), 32 BFI_LPORT_I2H_DELETE_RSP = BFA_I2HM(2), 33 BFI_LPORT_I2H_ONLINE = BFA_I2HM(3), 34 BFI_LPORT_I2H_OFFLINE = BFA_I2HM(4), 35}; 36 37#define BFI_LPORT_MAX_SYNNAME 64 38 39enum bfi_lport_role_e { 40 BFI_LPORT_ROLE_FCPIM = 1, 41 BFI_LPORT_ROLE_FCPTM = 2, 42 BFI_LPORT_ROLE_IPFC = 4, 43}; 44 45struct bfi_lport_create_req_s { 46 bfi_mhdr_t mh; /* common msg header */ 47 u16 fabric_fwhdl; /* parent fabric instance */ 48 u8 roles; /* lport FC-4 roles */ 49 u8 rsvd; 50 wwn_t pwwn; /* port name */ 51 wwn_t nwwn; /* node name */ 52 u8 symname[BFI_LPORT_MAX_SYNNAME]; 53}; 54 55struct bfi_lport_create_rsp_s { 56 bfi_mhdr_t mh; /* common msg header */ 57 u8 status; /* lport creation status */ 58 u8 rsvd[3]; 59}; 60 61struct bfi_lport_delete_req_s { 62 bfi_mhdr_t mh; /* common msg header */ 63 u16 fw_handle; /* firmware lport handle */ 64 u16 rsvd; 65}; 66 67struct bfi_lport_delete_rsp_s { 68 bfi_mhdr_t mh; /* common msg header */ 69 u16 bfa_handle; /* host lport handle */ 70 u8 status; /* lport deletion status */ 71 u8 rsvd; 72}; 73 74union bfi_lport_h2i_msg_u { 75 bfi_msg_t *msg; 76 struct bfi_lport_create_req_s *create_req; 77 struct bfi_lport_delete_req_s *delete_req; 78}; 79 80union bfi_lport_i2h_msg_u { 81 bfi_msg_t *msg; 82 struct bfi_lport_create_rsp_s *create_rsp; 83 struct bfi_lport_delete_rsp_s *delete_rsp; 84}; 85 86#pragma pack() 87 88#endif /* __BFI_LPORT_H__ */ 89