39 #if !defined(__OCS_FABRIC_H__)
40 #define __OCS_FABRIC_H__
99 #define RHBA_NODENAME 0x1
100 #define RHBA_MANUFACTURER 0x2
101 #define RHBA_SERIAL_NUMBER 0x3
102 #define RHBA_MODEL 0x4
103 #define RHBA_MODEL_DESCRIPTION 0x5
104 #define RHBA_HARDWARE_VERSION 0x6
105 #define RHBA_DRIVER_VERSION 0x7
106 #define RHBA_OPTION_ROM_VERSION 0x8
107 #define RHBA_FIRMWARE_VERSION 0x9
108 #define RHBA_OS_NAME_VERSION 0xa
109 #define RHBA_MAX_CT_PAYLOAD_LEN 0xb
110 #define RHBA_SYM_NODENAME 0xc
111 #define RHBA_VENDOR_INFO 0xd
112 #define RHBA_NUM_PORTS 0xe
113 #define RHBA_FABRIC_WWNN 0xf
114 #define RHBA_BIOS_VERSION 0x10
115 #define RHBA_BIOS_STATE 0x11
116 #define RHBA_VENDOR_ID 0xe0
121 #define RPRT_SUPPORTED_FC4_TYPES 0x1
122 #define RPRT_SUPPORTED_SPEED 0x2
123 #define RPRT_PORT_SPEED 0x3
124 #define RPRT_MAX_FRAME_SIZE 0x4
125 #define RPRT_OS_DEVICE_NAME 0x5
126 #define RPRT_HOST_NAME 0x6
127 #define RPRT_NODENAME 0x7
128 #define RPRT_PORTNAME 0x8
129 #define RPRT_SYM_PORTNAME 0x9
130 #define RPRT_PORT_TYPE 0xa
131 #define RPRT_SUPPORTED_CLASS 0xb
132 #define RPRT_FABRICNAME 0xc
133 #define RPRT_ACTIVE_FC4_TYPES 0xd
134 #define RPRT_PORT_STATE 0x101
135 #define RPRT_DISC_PORT 0x102
136 #define RPRT_PORT_ID 0x103
137 #define RPRT_SMART_SECURITY 0xf106
140 #define FDMI_RHBA_MASK_V1 0x000003ff
143 #define FDMI_RHBA_MASK_V2 0x0002efff
146 #define FDMI_PORT_MASK_V1 0x0000003f
149 #define FDMI_PORT_MASK_V2 0x0000ffff
153 typedef struct ocs_fdmi_attr_def_s {
154 uint32_t attr_type:16;
155 uint32_t attr_len:16;
194 uint32_t grhl_len,
void *buf);
197 uint32_t grpl_len,
void *buf);
200 uint32_t ghat_len,
void *buf);
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.
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.
int ocs_fdmi_port_attr_fabric_wwpn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_active_fc4type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
int ocs_fdmi_hba_attr_num_ports(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
int ocs_fdmi_hba_attr_bios_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_hba_attr_model(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
void * __ocs_ns_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Idle state.
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.
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.
int ocs_fdmi_port_attr_class(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_hba_attr_fmw_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
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.
void * __ocs_ns_gidpt_delay(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Name services node state machine: Delayed GIDPT.
int32_t ocs_rnode_is_nport(fc_plogi_payload_t *remote_sparms)
Return TRUE if the remote node is an NPORT.
int ocs_fdmi_port_attr_nportid(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_wwpn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_os_devname(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
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.
int ocs_fdmi_hba_attr_bios_state(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_max_frame(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
void * __ocs_fdmi_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
FDMI node state machine: FDMI node is idle.
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.
int ocs_fdmi_hba_attr_ct_len(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
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.
int ocs_fdmi_hba_attr_symbolic_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
int ocs_fdmi_hba_attr_rom_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
int ocs_fdmi_hba_attr_drvr_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_hba_attr_fabric_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
void * __ocs_fabctl_ready(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric controller node state machine: Ready.
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.
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.
int ocs_fdmi_hba_attr_vendor_info(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
void ocs_fabric_notify_topology(ocs_node_t *node)
Notify sport topology.
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.
void * __ocs_fabric_idle(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Fabric node is idle.
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.
int ocs_fdmi_hba_attr_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
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.
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. ...
int ocs_fdmi_port_attr_host_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
void * __ocs_fdmi_reg_port_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
void * __ocs_fabric_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
Fabric node state machine: Initial state.
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.
void * __ocs_ns_nvme_rffid_wait_rsp(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
int ocs_fdmi_port_attr_speed(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_hba_attr_sn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
int ocs_fdmi_hba_attr_description(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
void ocs_fabric_set_topology(ocs_node_t *node, ocs_sport_topology_e topology)
Set sport topology.
int ocs_fdmi_port_attr_wwnn(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_hba_attr_os_ver(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
void * __ocs_fdmi_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
FDMI node state machine: Initialize.
int ocs_fdmi_hba_attr_vendor_id(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_fc4type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_support_speed(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_symbolic_name(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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.
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.
int ocs_fdmi_hba_attr_manufacturer(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
int ocs_fdmi_port_attr_port_type(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)
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)
int32_t ocs_p2p_setup(ocs_sport_t *sport)
Set up the domain point-to-point parameters.
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.
int ocs_fdmi_port_attr_port_state(ocs_sport_t *sport, ocs_fdmi_attr_def_t *ad)