38 #if !defined(__OCS_FEMUL_H__)
39 #define __OCS_FEMUL_H__
41 #if defined(ENABLE_FABRIC_EMULATION)
43 #define OCS_NS_MAX_RECORDS 100
45 typedef struct ocs_ns_record_s ocs_ns_record_t;
48 extern int32_t ocs_femul_init(ocs_domain_t *domain);
49 extern int32_t ocs_femul_shutdown(ocs_domain_t *domain);
50 extern int32_t ocs_femul_portid_alloc(ocs_domain_t *domain);
51 extern void ocs_femul_portid_free(ocs_domain_t *domain, int32_t portid);
52 extern int32_t ocs_femul_process_flogi(ocs_io_t *io,
fc_header_t *hdr,
void *payload, uint32_t payload_len);
53 extern int32_t ocs_femul_process_fdisc(ocs_io_t *io,
fc_header_t *hdr,
void *payload, uint32_t payload_len);
54 extern int32_t ocs_femul_process_fc_gs(
const char *funcname, ocs_io_t *io,
ocs_sm_event_t evt,
fc_header_t *hdr,
void *payload, uint32_t payload_len);
55 extern int32_t ocs_femul_process_scr(ocs_io_t *node,
fc_header_t *hdr,
void *payload, uint32_t payload_len);
56 extern void ocs_femul_sport_attach(ocs_sport_t *sport);
57 extern int32_t ocs_femul_ports_attached(ocs_domain_t *domain);
59 extern ocs_ns_t *ocs_ns_attach(ocs_domain_t *domain, uint32_t max_ports);
60 extern void ocs_ns_detach(
ocs_ns_t *ns);
61 extern ocs_ns_record_t *ocs_ns_alloc(
ocs_ns_t *ns, uint32_t port_id);
62 extern void ocs_ns_free(
ocs_ns_t *ns, uint32_t port_id);
63 extern ocs_ns_record_t *ocs_ns_find_port_id(
ocs_ns_t *ns, uint32_t port_id);
64 extern ocs_ns_record_t *ocs_ns_find_port_name(
ocs_ns_t *ns, uint64_t port_name);
65 extern ocs_ns_record_t *ocs_ns_enumerate(
ocs_ns_t *ns, ocs_ns_record_t *nsrec);
69 #endif // __OCS_FEMUL_H__