2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
6 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
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
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.
18 #ifndef __BFI_LPORT_H__
19 #define __BFI_LPORT_H__
25 enum bfi_lport_h2i_msgs
{
26 BFI_LPORT_H2I_CREATE_REQ
= 1,
27 BFI_LPORT_H2I_DELETE_REQ
= 2,
30 enum 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),
37 #define BFI_LPORT_MAX_SYNNAME 64
39 enum bfi_lport_role_e
{
40 BFI_LPORT_ROLE_FCPIM
= 1,
41 BFI_LPORT_ROLE_FCPTM
= 2,
42 BFI_LPORT_ROLE_IPFC
= 4,
45 struct 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 */
50 wwn_t pwwn
; /* port name */
51 wwn_t nwwn
; /* node name */
52 u8 symname
[BFI_LPORT_MAX_SYNNAME
];
55 struct bfi_lport_create_rsp_s
{
56 bfi_mhdr_t mh
; /* common msg header */
57 u8 status
; /* lport creation status */
61 struct bfi_lport_delete_req_s
{
62 bfi_mhdr_t mh
; /* common msg header */
63 u16 fw_handle
; /* firmware lport handle */
67 struct 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 */
74 union bfi_lport_h2i_msg_u
{
76 struct bfi_lport_create_req_s
*create_req
;
77 struct bfi_lport_delete_req_s
*delete_req
;
80 union bfi_lport_i2h_msg_u
{
82 struct bfi_lport_create_rsp_s
*create_rsp
;
83 struct bfi_lport_delete_rsp_s
*delete_rsp
;
88 #endif /* __BFI_LPORT_H__ */