0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef __EFCT_FABRIC_H__
0012 #define __EFCT_FABRIC_H__
0013 #include "scsi/fc/fc_els.h"
0014 #include "scsi/fc/fc_fs.h"
0015 #include "scsi/fc/fc_ns.h"
0016
0017 void
0018 __efc_fabric_init(struct efc_sm_ctx *ctx,
0019 enum efc_sm_event evt, void *arg);
0020 void
0021 __efc_fabric_flogi_wait_rsp(struct efc_sm_ctx *ctx,
0022 enum efc_sm_event evt, void *arg);
0023 void
0024 __efc_fabric_domain_attach_wait(struct efc_sm_ctx *ctx,
0025 enum efc_sm_event evt, void *arg);
0026 void
0027 __efc_fabric_wait_domain_attach(struct efc_sm_ctx *ctx,
0028 enum efc_sm_event evt, void *arg);
0029
0030 void
0031 __efc_vport_fabric_init(struct efc_sm_ctx *ctx,
0032 enum efc_sm_event evt, void *arg);
0033 void
0034 __efc_fabric_fdisc_wait_rsp(struct efc_sm_ctx *ctx,
0035 enum efc_sm_event evt, void *arg);
0036 void
0037 __efc_fabric_wait_nport_attach(struct efc_sm_ctx *ctx,
0038 enum efc_sm_event evt, void *arg);
0039
0040 void
0041 __efc_ns_init(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
0042 void
0043 __efc_ns_plogi_wait_rsp(struct efc_sm_ctx *ctx,
0044 enum efc_sm_event evt, void *arg);
0045 void
0046 __efc_ns_rftid_wait_rsp(struct efc_sm_ctx *ctx,
0047 enum efc_sm_event evt, void *arg);
0048 void
0049 __efc_ns_rffid_wait_rsp(struct efc_sm_ctx *ctx,
0050 enum efc_sm_event evt, void *arg);
0051 void
0052 __efc_ns_wait_node_attach(struct efc_sm_ctx *ctx,
0053 enum efc_sm_event evt, void *arg);
0054 void
0055 __efc_fabric_wait_attach_evt_shutdown(struct efc_sm_ctx *ctx,
0056 enum efc_sm_event evt, void *arg);
0057 void
0058 __efc_ns_logo_wait_rsp(struct efc_sm_ctx *ctx,
0059 enum efc_sm_event, void *arg);
0060 void
0061 __efc_ns_gidpt_wait_rsp(struct efc_sm_ctx *ctx,
0062 enum efc_sm_event evt, void *arg);
0063 void
0064 __efc_ns_idle(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
0065 void
0066 __efc_ns_gidpt_delay(struct efc_sm_ctx *ctx,
0067 enum efc_sm_event evt, void *arg);
0068 void
0069 __efc_fabctl_init(struct efc_sm_ctx *ctx,
0070 enum efc_sm_event evt, void *arg);
0071 void
0072 __efc_fabctl_wait_node_attach(struct efc_sm_ctx *ctx,
0073 enum efc_sm_event evt, void *arg);
0074 void
0075 __efc_fabctl_wait_scr_rsp(struct efc_sm_ctx *ctx,
0076 enum efc_sm_event evt, void *arg);
0077 void
0078 __efc_fabctl_ready(struct efc_sm_ctx *ctx,
0079 enum efc_sm_event evt, void *arg);
0080 void
0081 __efc_fabctl_wait_ls_acc_cmpl(struct efc_sm_ctx *ctx,
0082 enum efc_sm_event evt, void *arg);
0083 void
0084 __efc_fabric_idle(struct efc_sm_ctx *ctx,
0085 enum efc_sm_event evt, void *arg);
0086
0087 void
0088 __efc_p2p_rnode_init(struct efc_sm_ctx *ctx,
0089 enum efc_sm_event evt, void *arg);
0090 void
0091 __efc_p2p_domain_attach_wait(struct efc_sm_ctx *ctx,
0092 enum efc_sm_event evt, void *arg);
0093 void
0094 __efc_p2p_wait_flogi_acc_cmpl(struct efc_sm_ctx *ctx,
0095 enum efc_sm_event evt, void *arg);
0096 void
0097 __efc_p2p_wait_plogi_rsp(struct efc_sm_ctx *ctx,
0098 enum efc_sm_event evt, void *arg);
0099 void
0100 __efc_p2p_wait_plogi_rsp_recvd_prli(struct efc_sm_ctx *ctx,
0101 enum efc_sm_event evt, void *arg);
0102 void
0103 __efc_p2p_wait_domain_attach(struct efc_sm_ctx *ctx,
0104 enum efc_sm_event evt, void *arg);
0105 void
0106 __efc_p2p_wait_node_attach(struct efc_sm_ctx *ctx,
0107 enum efc_sm_event evt, void *arg);
0108
0109 int
0110 efc_p2p_setup(struct efc_nport *nport);
0111 void
0112 efc_fabric_set_topology(struct efc_node *node,
0113 enum efc_nport_topology topology);
0114 void efc_fabric_notify_topology(struct efc_node *node);
0115
0116 #endif