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_RPORT_H__
19 #define __BFI_RPORT_H__
25 enum bfi_rport_h2i_msgs
{
26 BFI_RPORT_H2I_CREATE_REQ
= 1,
27 BFI_RPORT_H2I_DELETE_REQ
= 2,
28 BFI_RPORT_H2I_SET_SPEED_REQ
= 3,
31 enum bfi_rport_i2h_msgs
{
32 BFI_RPORT_I2H_CREATE_RSP
= BFA_I2HM(1),
33 BFI_RPORT_I2H_DELETE_RSP
= BFA_I2HM(2),
34 BFI_RPORT_I2H_QOS_SCN
= BFA_I2HM(3),
37 struct bfi_rport_create_req_s
{
38 struct bfi_mhdr_s mh
; /* common msg header */
39 u16 bfa_handle
; /* host rport handle */
40 u16 max_frmsz
; /* max rcv pdu size */
41 u32 pid
: 24, /* remote port ID */
42 lp_tag
: 8; /* local port tag */
43 u32 local_pid
: 24, /* local port ID */
45 u8 fc_class
; /* supported FC classes */
46 u8 vf_en
; /* virtual fabric enable */
47 u16 vf_id
; /* virtual fabric ID */
50 struct bfi_rport_create_rsp_s
{
51 struct bfi_mhdr_s mh
; /* common msg header */
52 u8 status
; /* rport creation status */
54 u16 bfa_handle
; /* host rport handle */
55 u16 fw_handle
; /* firmware rport handle */
56 struct bfa_rport_qos_attr_s qos_attr
; /* QoS Attributes */
59 struct bfa_rport_speed_req_s
{
60 struct bfi_mhdr_s mh
; /* common msg header */
61 u16 fw_handle
; /* firmware rport handle */
62 u8 speed
; /*! rport's speed via RPSC */
66 struct bfi_rport_delete_req_s
{
67 struct bfi_mhdr_s mh
; /* common msg header */
68 u16 fw_handle
; /* firmware rport handle */
72 struct bfi_rport_delete_rsp_s
{
73 struct bfi_mhdr_s mh
; /* common msg header */
74 u16 bfa_handle
; /* host rport handle */
75 u8 status
; /* rport deletion status */
79 struct bfi_rport_qos_scn_s
{
80 struct bfi_mhdr_s mh
; /* common msg header */
81 u16 bfa_handle
; /* host rport handle */
83 struct bfa_rport_qos_attr_s old_qos_attr
; /* Old QoS Attributes */
84 struct bfa_rport_qos_attr_s new_qos_attr
; /* New QoS Attributes */
87 union bfi_rport_h2i_msg_u
{
88 struct bfi_msg_s
*msg
;
89 struct bfi_rport_create_req_s
*create_req
;
90 struct bfi_rport_delete_req_s
*delete_req
;
91 struct bfi_rport_speed_req_s
*speed_req
;
94 union bfi_rport_i2h_msg_u
{
95 struct bfi_msg_s
*msg
;
96 struct bfi_rport_create_rsp_s
*create_rsp
;
97 struct bfi_rport_delete_rsp_s
*delete_rsp
;
98 struct bfi_rport_qos_scn_s
*qos_scn_evt
;
103 #endif /* __BFI_RPORT_H__ */