Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ocs_fabric.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011-2015, Emulex
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its contributors
16  * may be used to endorse or promote products derived from this software
17  * without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  *
31  */
32 
33 /**
34  * @file
35  * Declarations for the interface exported by ocs_fabric
36  */
37 
38 
39 #if !defined(__OCS_FABRIC_H__)
40 #define __OCS_FABRIC_H__
41 extern void *__ocs_fabric_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
42 extern void *__ocs_fabric_flogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
43 extern void *__ocs_fabric_domain_attach_wait(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
44 extern void *__ocs_fabric_wait_domain_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
45 
46 extern void *__ocs_vport_fabric_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
47 extern void *__ocs_fabric_fdisc_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
48 extern void *__ocs_fabric_wait_sport_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
49 
50 extern void *__ocs_ns_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
51 extern void *__ocs_ns_plogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
52 extern void *__ocs_ns_rftid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
53 extern void *__ocs_ns_rffid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
54 extern void * __ocs_ns_nvme_rffid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
55 extern void *__ocs_ns_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
56 extern void *__ocs_fabric_wait_attach_evt_shutdown(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
57 extern void *__ocs_ns_logo_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
58 extern void *__ocs_ns_gidpt_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
59 extern void *__ocs_ns_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
60 extern void *__ocs_fdmi_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
61 extern void *__ocs_fdmi_rhba_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
62 extern void *__ocs_fdmi_dhba_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
63 extern void *__ocs_fdmi_dprt_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
64 extern void * __ocs_fdmi_grhl_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
65 
66 extern void *__ocs_fdmi_reg_port_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
67 extern void *__ocs_ns_gidpt_delay(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
68 extern void *__ocs_ns_ganxt_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
69 
70 extern void *__ocs_fdmi_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
71 extern void *__ocs_fdmi_plogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
72 extern void *__ocs_fdmi_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
73 
74 extern void *__ocs_fabctl_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
75 extern void *__ocs_fdmi_plogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
76 extern void *__ocs_fdmi_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
77 extern void *__ocs_fabctl_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
78 extern void *__ocs_fabctl_wait_scr_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
79 extern void *__ocs_fabctl_ready(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
80 extern void *__ocs_fabctl_wait_ls_acc_cmpl(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
81 extern void *__ocs_fabric_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
82 
83 extern void *__ocs_p2p_rnode_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
84 extern void *__ocs_p2p_domain_attach_wait(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
85 extern void *__ocs_p2p_wait_flogi_acc_cmpl(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
86 extern void *__ocs_p2p_wait_plogi_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
87 extern void *__ocs_p2p_wait_plogi_rsp_recvd_prli(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
88 extern void *__ocs_p2p_wait_domain_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
89 extern void *__ocs_p2p_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg);
90 
91 extern int32_t ocs_rnode_is_nport(fc_plogi_payload_t *remote_sparms);
92 extern int32_t ocs_p2p_setup(ocs_sport_t *sport);
93 extern void ocs_fabric_set_topology(ocs_node_t *node, ocs_sport_topology_e topology);
94 extern void ocs_fabric_notify_topology(ocs_node_t *node);
95 
96 /*
97  * HBA Attribute Types
98  */
99 #define RHBA_NODENAME 0x1 /* 8 byte WWNN */
100 #define RHBA_MANUFACTURER 0x2 /* 4 to 64 byte ASCII string */
101 #define RHBA_SERIAL_NUMBER 0x3 /* 4 to 64 byte ASCII string */
102 #define RHBA_MODEL 0x4 /* 4 to 256 byte ASCII string */
103 #define RHBA_MODEL_DESCRIPTION 0x5 /* 4 to 256 byte ASCII string */
104 #define RHBA_HARDWARE_VERSION 0x6 /* 4 to 256 byte ASCII string */
105 #define RHBA_DRIVER_VERSION 0x7 /* 4 to 256 byte ASCII string */
106 #define RHBA_OPTION_ROM_VERSION 0x8 /* 4 to 256 byte ASCII string */
107 #define RHBA_FIRMWARE_VERSION 0x9 /* 4 to 256 byte ASCII string */
108 #define RHBA_OS_NAME_VERSION 0xa /* 4 to 256 byte ASCII string */
109 #define RHBA_MAX_CT_PAYLOAD_LEN 0xb /* 32-bit unsigned int */
110 #define RHBA_SYM_NODENAME 0xc /* 4 to 256 byte ASCII string */
111 #define RHBA_VENDOR_INFO 0xd /* 32-bit unsigned int */
112 #define RHBA_NUM_PORTS 0xe /* 32-bit unsigned int */
113 #define RHBA_FABRIC_WWNN 0xf /* 8 byte WWNN */
114 #define RHBA_BIOS_VERSION 0x10 /* 4 to 256 byte ASCII string */
115 #define RHBA_BIOS_STATE 0x11 /* 32-bit unsigned int */
116 #define RHBA_VENDOR_ID 0xe0 /* 8 byte ASCII string */
117 
118 /*
119  * * Port Attrubute Types
120  * */
121 #define RPRT_SUPPORTED_FC4_TYPES 0x1 /* 32 byte binary array */
122 #define RPRT_SUPPORTED_SPEED 0x2 /* 32-bit unsigned int */
123 #define RPRT_PORT_SPEED 0x3 /* 32-bit unsigned int */
124 #define RPRT_MAX_FRAME_SIZE 0x4 /* 32-bit unsigned int */
125 #define RPRT_OS_DEVICE_NAME 0x5 /* 4 to 256 byte ASCII string */
126 #define RPRT_HOST_NAME 0x6 /* 4 to 256 byte ASCII string */
127 #define RPRT_NODENAME 0x7 /* 8 byte WWNN */
128 #define RPRT_PORTNAME 0x8 /* 8 byte WWPN */
129 #define RPRT_SYM_PORTNAME 0x9 /* 4 to 256 byte ASCII string */
130 #define RPRT_PORT_TYPE 0xa /* 32-bit unsigned int */
131 #define RPRT_SUPPORTED_CLASS 0xb /* 32-bit unsigned int */
132 #define RPRT_FABRICNAME 0xc /* 8 byte Fabric WWPN */
133 #define RPRT_ACTIVE_FC4_TYPES 0xd /* 32 byte binary array */
134 #define RPRT_PORT_STATE 0x101 /* 32-bit unsigned int */
135 #define RPRT_DISC_PORT 0x102 /* 32-bit unsigned int */
136 #define RPRT_PORT_ID 0x103 /* 32-bit unsigned int */
137 #define RPRT_SMART_SECURITY 0xf106 /* 32-bit unsigned int */
138 
139 /* Bit mask for FDMI-1 defined HBA attributes */
140 #define FDMI_RHBA_MASK_V1 0x000003ff
141 
142 /* Bit mask for FDMI-2 defined HBA attributes */
143 #define FDMI_RHBA_MASK_V2 0x0002efff
144 
145 /* Bit mask for FDMI-1 defined PORT attributes */
146 #define FDMI_PORT_MASK_V1 0x0000003f
147 
148 /* Bit mask for FDMI-2 defined PORT attributes */
149 #define FDMI_PORT_MASK_V2 0x0000ffff
150 
151 /* Bit mask for FDMI-2 defined HBA attributes */
152 /* Definitions for HBA / Port attribute entries */
153 typedef struct ocs_fdmi_attr_def_s { /* Defined in TLV format */
154  uint32_t attr_type:16;
155  uint32_t attr_len:16;
156  uint32_t attr_value; /* Marks start of Value (ATTRIBUTE_ENTRY) */
158 
159 extern int ocs_fdmi_hba_attr_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
160 extern int ocs_fdmi_hba_attr_manufacturer(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
161 extern int ocs_fdmi_hba_attr_sn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
162 extern int ocs_fdmi_hba_attr_model(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
163 extern int ocs_fdmi_hba_attr_description(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
164 extern int ocs_fdmi_hba_attr_drvr_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
165 extern int ocs_fdmi_hba_attr_rom_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
166 extern int ocs_fdmi_hba_attr_fmw_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
167 extern int ocs_fdmi_hba_attr_os_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
168 extern int ocs_fdmi_hba_attr_ct_len(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
169 extern int ocs_fdmi_hba_attr_symbolic_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
170 extern int ocs_fdmi_hba_attr_vendor_info(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
171 extern int ocs_fdmi_hba_attr_num_ports(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
172 extern int ocs_fdmi_hba_attr_fabric_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
173 extern int ocs_fdmi_hba_attr_bios_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
174 extern int ocs_fdmi_hba_attr_bios_state(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
175 extern int ocs_fdmi_hba_attr_vendor_id(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
176 
177 extern int ocs_fdmi_port_attr_fc4type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
178 extern int ocs_fdmi_port_attr_support_speed(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
179 extern int ocs_fdmi_port_attr_speed(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
180 extern int ocs_fdmi_port_attr_max_frame(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
181 extern int ocs_fdmi_port_attr_host_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
182 extern int ocs_fdmi_port_attr_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
183 extern int ocs_fdmi_port_attr_wwpn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
184 extern int ocs_fdmi_port_attr_symbolic_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
185 extern int ocs_fdmi_port_attr_port_type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
186 extern int ocs_fdmi_port_attr_class(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
187 extern int ocs_fdmi_port_attr_fabric_wwpn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
188 extern int ocs_fdmi_port_attr_active_fc4type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
189 extern int ocs_fdmi_port_attr_port_state(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
190 extern int ocs_fdmi_port_attr_nportid(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
191 extern int ocs_fdmi_port_attr_os_devname(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad);
192 extern int32_t
194  uint32_t grhl_len, void *buf);
195 extern int32_t
197  uint32_t grpl_len, void *buf);
198 extern int32_t
200  uint32_t ghat_len, void *buf);
201 extern int32_t
203  uint32_t gpat_len, void *buf);
204 #endif // __OCS_FABRIC_H__
void * __ocs_p2p_wait_domain_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Point-to-point state machine: Wait for the domain attach to complete.
Definition: ocs_fabric.c:1640
void * __ocs_fabctl_wait_scr_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric controller node state machine: Wait for an SCR response from the fabric controller.
Definition: ocs_fabric.c:1359
int ocs_fdmi_port_attr_fabric_wwpn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3584
int ocs_fdmi_port_attr_active_fc4type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3608
void * __ocs_p2p_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Point-to-point node state machine: Wait for a point-to-point node attach to complete.
Definition: ocs_fabric.c:2012
int ocs_fdmi_hba_attr_num_ports(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3030
void * __ocs_fdmi_dprt_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for DPRT response event.
Definition: ocs_fabric.c:3280
int ocs_fdmi_hba_attr_bios_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3063
int ocs_fdmi_hba_attr_model(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2858
void * __ocs_ns_plogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Wait for a PLOGI response.
Definition: ocs_fabric.c:512
void * __ocs_ns_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Idle state.
Definition: ocs_fabric.c:1090
void * __ocs_ns_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Wait for a node attach completion.
Definition: ocs_fabric.c:562
void * __ocs_fdmi_grhl_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
void * __ocs_fabctl_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric controller node state machine: Initial state.
Definition: ocs_fabric.c:1258
int ocs_fdmi_port_attr_class(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3570
int ocs_fdmi_hba_attr_fmw_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2940
void * __ocs_p2p_rnode_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Point-to-point state machine: Remote node initialization state.
Definition: ocs_fabric.c:1722
void * __ocs_fabric_flogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for an FLOGI response.
Definition: ocs_fabric.c:187
void * __ocs_ns_gidpt_delay(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Delayed GIDPT.
Definition: ocs_fabric.c:1198
int32_t ocs_rnode_is_nport(fc_plogi_payload_t *remote_sparms)
Return TRUE if the remote node is an NPORT.
Definition: ocs_fabric.c:1557
int ocs_fdmi_port_attr_nportid(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3650
int ocs_fdmi_port_attr_wwpn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3515
int ocs_fdmi_port_attr_os_devname(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3457
void * __ocs_fdmi_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
FDMI node state machine: Wait for a node attach completion.
Definition: ocs_fabric.c:710
void * __ocs_fabctl_wait_ls_acc_cmpl(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric controller node state machine: Wait for LS_ACC.
Definition: ocs_fabric.c:1441
int ocs_fdmi_hba_attr_bios_state(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3082
int ocs_fdmi_port_attr_max_frame(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3432
void * __ocs_fdmi_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
FDMI node state machine: FDMI node is idle.
Definition: ocs_fabric.c:1144
void * __ocs_ns_logo_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
void * __ocs_ns_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Initialize.
Definition: ocs_fabric.c:477
int ocs_fdmi_hba_attr_ct_len(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2979
int32_t ocs_process_fdmi_grpl_payload(ocs_node_t *node, fcct_fdmi_grpl_rsp_t *grpl, uint32_t grpl_len, void *buf)
Process the GRPL acc payload.
Definition: ocs_fabric.c:2372
void * __ocs_p2p_wait_plogi_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Point-to-point node state machine: Wait for a PLOGI response as a point-to-point winner.
Definition: ocs_fabric.c:1844
int ocs_fdmi_hba_attr_symbolic_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2994
void * __ocs_vport_fabric_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Initial state for a virtual port.
Definition: ocs_fabric.c:289
int ocs_fdmi_hba_attr_rom_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2920
int32_t ocs_process_fdmi_ghat_payload(ocs_node_t *node, fcct_fdmi_ghat_rsp_t *ghat, uint32_t ghat_len, void *buf)
Process the GHAT acc payload.
Definition: ocs_fabric.c:2423
int ocs_fdmi_hba_attr_drvr_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2899
int ocs_fdmi_hba_attr_fabric_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3046
void * __ocs_fdmi_dhba_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for DHBA response event.
Definition: ocs_fabric.c:3190
void * __ocs_fabctl_ready(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric controller node state machine: Ready.
Definition: ocs_fabric.c:1400
void * __ocs_p2p_wait_flogi_acc_cmpl(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Point-to-point node state machine: Wait for the FLOGI accept completion.
Definition: ocs_fabric.c:1764
void * __ocs_fabric_fdisc_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for an FDISC response.
Definition: ocs_fabric.c:324
int ocs_fdmi_hba_attr_vendor_info(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3016
void * __ocs_fdmi_plogi_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
FDMI node state machine: Wait for a PLOGI response.
Definition: ocs_fabric.c:660
void ocs_fabric_notify_topology(ocs_node_t *node)
Notify sport topology.
Definition: ocs_fabric.c:156
int32_t ocs_process_fdmi_gpat_payload(ocs_node_t *node, fcct_fdmi_gpat_rsp_t *gpat, uint32_t gpat_len, void *buf)
Process the GPAT acc payload.
Definition: ocs_fabric.c:2599
void * __ocs_fabric_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Fabric node is idle.
Definition: ocs_fabric.c:446
void * __ocs_fabric_wait_attach_evt_shutdown(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Wait for a domain/sport/node attach completion, then shutdown.
Definition: ocs_fabric.c:784
int ocs_fdmi_hba_attr_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2797
void * __ocs_p2p_domain_attach_wait(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
void * __ocs_ns_rffid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for RFFID response event.
Definition: ocs_fabric.c:940
void * __ocs_fdmi_rhba_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for RHBA response event.
Definition: ocs_fabric.c:3131
void * __ocs_fabctl_wait_node_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric controller node state machine: Wait for a node attach request to complete. ...
Definition: ocs_fabric.c:1300
int ocs_fdmi_port_attr_host_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3478
void * __ocs_fdmi_reg_port_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Definition: ocs_fabric.c:3220
void * __ocs_fabric_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Initial state.
Definition: ocs_fabric.c:103
void * __ocs_ns_rftid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Wait for an RFTID response event.
Definition: ocs_fabric.c:840
void * __ocs_ns_nvme_rffid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Definition: ocs_fabric.c:880
int ocs_fdmi_port_attr_speed(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3384
ocs_sport_topology_e
Definition: ocs_common.h:116
int ocs_fdmi_hba_attr_sn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2834
void * __ocs_fabric_wait_domain_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Wait for a domain/sport attach event.
Definition: ocs_fabric.c:387
int ocs_fdmi_hba_attr_description(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2878
void ocs_fabric_set_topology(ocs_node_t *node, ocs_sport_topology_e topology)
Set sport topology.
Definition: ocs_fabric.c:140
int ocs_fdmi_port_attr_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3497
int ocs_fdmi_hba_attr_os_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2959
void * __ocs_fdmi_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
FDMI node state machine: Initialize.
Definition: ocs_fabric.c:625
int ocs_fdmi_hba_attr_vendor_id(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3098
int ocs_fdmi_port_attr_fc4type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3315
int ocs_fdmi_port_attr_support_speed(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3334
int ocs_fdmi_port_attr_symbolic_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3532
ocs_sm_event_t
Definition: ocs_sm.h:60
void * __ocs_fabric_wait_sport_attach(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
void * __ocs_ns_gidpt_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Wait for a GIDPT response.
Definition: ocs_fabric.c:991
void * __ocs_p2p_wait_plogi_rsp_recvd_prli(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Point-to-point node state machine: Waiting on a response for a sent PLOGI.
Definition: ocs_fabric.c:1931
int ocs_fdmi_hba_attr_manufacturer(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:2814
int ocs_fdmi_port_attr_port_type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3549
void * __ocs_fabric_domain_attach_wait(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
void * __ocs_ns_ganxt_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Definition: ocs_fabric.c:1037
int32_t ocs_p2p_setup(ocs_sport_t *sport)
Set up the domain point-to-point parameters.
Definition: ocs_fabric.c:2733
int32_t ocs_process_fdmi_grhl_payload(ocs_node_t *node, fcct_fdmi_grhl_rsp_t *grhl, uint32_t grhl_len, void *buf)
Process the GRHL acc payload.
Definition: ocs_fabric.c:2322
int ocs_fdmi_port_attr_port_state(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
Definition: ocs_fabric.c:3626