Lines Matching +full:retain +full:- +full:state +full:- +full:shutdown

1 /*-
8 * 1. Redistributions of source code must retain the above copyright notice,
38 @defgroup domain_sm Domain State Machine: States
48 if (OCS_LOG_ENABLE_DOMAIN_SM_TRACE(domain->ocs)) \
49 ocs_log_info(domain->ocs, "[domain] %-20s %-20s\n", __func__, ocs_sm_event_name(evt)); \
54 if (OCS_LOG_ENABLE_DOMAIN_SM_TRACE(domain ? domain->ocs : NULL)) \
55 ocs_log_info(domain ? domain->ocs : NULL, fmt, ##__VA_ARGS__); \
60 ocs_log_info(domain ? domain->ocs : NULL, fmt, ##__VA_ARGS__); \
82 * HW calls this function with various domain-related events.
84 * @param arg Application-specified argument.
98 ocs_assert(data, -1); in ocs_domain_cb()
108 ocs_assert(drec, -1); in ocs_domain_cb()
111 fcf_wwn = ocs_be64toh(*((uint64_t*)drec->wwn)); in ocs_domain_cb()
119 rc = -1; in ocs_domain_cb()
122 ocs_sm_transition(&domain->drvsm, __ocs_domain_init, NULL); in ocs_domain_cb()
136 domain->instance_index = 0; in ocs_domain_cb()
192 ocs_list_foreach(&ocs->domain_list, domain) { in ocs_domain_find()
193 if (fcf_wwn == domain->fcf_wwn) { in ocs_domain_find()
223 domain->ocs = ocs; in ocs_domain_alloc()
224 domain->instance_index = ocs->domain_instance_count++; in ocs_domain_alloc()
225 domain->drvsm.app = domain; in ocs_domain_alloc()
227 ocs_lock_init(ocs, &domain->lookup_lock, "Domain lookup[%d]", domain->instance_index); in ocs_domain_alloc()
230 domain->lookup = spv_new(ocs); in ocs_domain_alloc()
231 if (domain->lookup == NULL) { in ocs_domain_alloc()
237 ocs_list_init(&domain->sport_list, ocs_sport_t, link); in ocs_domain_alloc()
238 domain->fcf_wwn = fcf_wwn; in ocs_domain_alloc()
239 ocs_log_debug(ocs, "Domain allocated: wwn %016" PRIX64 "\n", domain->fcf_wwn); in ocs_domain_alloc()
240 domain->femul_enable = (ocs->ctrlmask & OCS_CTRLMASK_ENABLE_FABRIC_EMULATION) != 0; in ocs_domain_alloc()
244 if (ocs_list_empty(&ocs->domain_list)) { in ocs_domain_alloc()
245 ocs->domain = domain; in ocs_domain_alloc()
247 ocs_list_add_tail(&ocs->domain_list, domain); in ocs_domain_alloc()
250 domain->mgmt_functions = &domain_mgmt_functions; in ocs_domain_alloc()
275 ocs_assert(domain->ocs); in ocs_domain_free()
280 ocs = domain->ocs; in ocs_domain_free()
282 ocs_log_debug(ocs, "Domain free: wwn %016" PRIX64 "\n", domain->fcf_wwn); in ocs_domain_free()
284 spv_del(domain->lookup); in ocs_domain_free()
285 domain->lookup = NULL; in ocs_domain_free()
288 ocs_list_remove(&ocs->domain_list, domain); in ocs_domain_free()
289 if (domain == ocs->domain) { in ocs_domain_free()
291 ocs->domain = ocs_list_get_head(&ocs->domain_list); in ocs_domain_free()
292 if (ocs->domain) { in ocs_domain_free()
294 domain, ocs->domain); in ocs_domain_free()
298 if (ocs_list_empty(&ocs->domain_list) && ocs->domain_list_empty_cb ) { in ocs_domain_free()
299 (*ocs->domain_list_empty_cb)(ocs, ocs->domain_list_empty_cb_arg); in ocs_domain_free()
303 ocs_lock_free(&domain->lookup_lock); in ocs_domain_free()
325 /* Shutdown domain sm */ in ocs_domain_force_free()
326 ocs_sm_disable(&domain->drvsm); in ocs_domain_force_free()
331 ocs_list_foreach_safe(&domain->sport_list, sport, next) { in ocs_domain_force_free()
335 ocs_hw_domain_force_free(&domain->ocs->hw, domain); in ocs_domain_force_free()
356 ocs->domain_list_empty_cb = callback; in ocs_register_domain_list_empty_cb()
357 ocs->domain_list_empty_cb_arg = arg; in ocs_register_domain_list_empty_cb()
358 if (ocs_list_empty(&ocs->domain_list) && callback) { in ocs_register_domain_list_empty_cb()
386 ocs_list_foreach(&ocs->domain_list, domain) { in ocs_domain_get_instance()
387 if (domain->instance_index == index) { in ocs_domain_get_instance()
397 * @brief Domain state machine: Common event handler.
400 * Common/shared events are handled here for the domain state machine.
403 * @param ctx Domain state machine context.
413 ocs_domain_t *domain = ctx->app; in __ocs_domain_common()
420 /* this can arise if an FLOGI fails on the SPORT, and the SPORT is shutdown */ in __ocs_domain_common()
423 ocs_log_warn(domain->ocs, "%-20s %-20s not handled\n", funcname, ocs_sm_event_name(evt)); in __ocs_domain_common()
432 * @brief Domain state machine: Common shutdown.
435 * Handles common shutdown events.
438 * @param ctx Remote node state machine context.
448 ocs_domain_t *domain = ctx->app; in __ocs_domain_common_shutdown()
458 ocs_memcpy(&domain->pending_drec, arg, sizeof(domain->pending_drec)); in __ocs_domain_common_shutdown()
459 domain->domain_found_pending = TRUE; in __ocs_domain_common_shutdown()
464 domain->domain_found_pending = FALSE; in __ocs_domain_common_shutdown()
468 ocs_log_warn(domain->ocs, "%-20s %-20s not handled\n", funcname, ocs_sm_event_name(evt)); in __ocs_domain_common_shutdown()
480 ocs_assert(ctx->app, NULL); \
481 domain = ctx->app; \
482 ocs_assert(domain->ocs, NULL); \
483 ocs = domain->ocs; \
484 ocs_assert(ocs->xport, NULL);
488 * @brief Domain state machine: Initial state.
491 * The initial state for a domain. Each domain is initialized to
492 * this state at start of day (SOD).
494 * @param ctx Domain state machine context.
510 domain->attached = 0; in __ocs_domain_init()
519 uint64_t my_wwnn = ocs->xport->req_wwnn; in __ocs_domain_init()
520 uint64_t my_wwpn = ocs->xport->req_wwpn; in __ocs_domain_init()
529 my_wwpn = ocs_get_wwn(&ocs->hw, OCS_HW_WWN_PORT); in __ocs_domain_init()
530 my_wwnn = ocs_get_wwn(&ocs->hw, OCS_HW_WWN_NODE); in __ocs_domain_init()
537 sport = ocs_sport_alloc(domain, my_wwpn, my_wwnn, UINT32_MAX, ocs->enable_ini, ocs->enable_tgt); in __ocs_domain_init()
543 ocs_sm_transition(&sport->sm, __ocs_sport_allocated, NULL); in __ocs_domain_init()
546 if (drec->is_ethernet) { in __ocs_domain_init()
547 vlan = ocs_bitmap_search((void *)drec->map.vlan, TRUE, 512 * 8); in __ocs_domain_init()
550 drec->index); in __ocs_domain_init()
555 be_wwpn = ocs_htobe64(sport->wwpn); in __ocs_domain_init()
558 * Note: drec->fc_id is ALPA from read_topology only if loop in __ocs_domain_init()
560 if (ocs_hw_port_alloc(&ocs->hw, sport, NULL, (uint8_t *)&be_wwpn)) { in __ocs_domain_init()
567 domain->is_loop = drec->is_loop; in __ocs_domain_init()
568 domain->is_fc = drec->is_fc; in __ocs_domain_init()
575 domain->is_nlport = drec->map.loop[1] == 0x00; in __ocs_domain_init()
577 if (domain->is_loop) { in __ocs_domain_init()
579 drec->is_loop ? (domain->is_nlport ? "public-loop" : "loop") : "other", in __ocs_domain_init()
580 drec->fc_id, drec->speed); in __ocs_domain_init()
582 sport->fc_id = drec->fc_id; in __ocs_domain_init()
583 sport->topology = OCS_SPORT_TOPOLOGY_LOOP; in __ocs_domain_init()
584 ocs_snprintf(sport->display_name, sizeof(sport->display_name), "s%06x", drec->fc_id); in __ocs_domain_init()
586 if (ocs->enable_ini) { in __ocs_domain_init()
587 uint32_t count = drec->map.loop[0]; in __ocs_domain_init()
590 if (drec->map.loop[i] != drec->fc_id) { in __ocs_domain_init()
593 ocs_log_debug(ocs, "%#x -> %#x\n", in __ocs_domain_init()
594 drec->fc_id, drec->map.loop[i]); in __ocs_domain_init()
595 node = ocs_node_alloc(sport, drec->map.loop[i], FALSE, TRUE); in __ocs_domain_init()
607 if (ocs_hw_domain_alloc(&ocs->hw, domain, drec->index, vlan)) { in __ocs_domain_init()
624 * @brief Domain state machine: Wait for the domain allocation to complete.
627 * Waits for the domain state to be allocated. After the HW domain
628 * allocation process has been initiated, this state waits for
629 * that process to complete (i.e. a domain-alloc-ok event).
631 * @param ctx Domain state machine context.
656 sport = domain->sport; in __ocs_domain_wait_alloc()
658 sp = (fc_plogi_payload_t*) sport->service_params; in __ocs_domain_wait_alloc()
661 ocs_memcpy(domain->service_params + 4, domain->dma.virt, sizeof(fc_plogi_payload_t) - 4); in __ocs_domain_wait_alloc()
662 ocs_memcpy(sport->service_params + 4, domain->dma.virt, sizeof(fc_plogi_payload_t) - 4); in __ocs_domain_wait_alloc()
667 if (domain->femul_enable) { in __ocs_domain_wait_alloc()
668 …ocs_memcpy(domain->flogi_service_params + 4, domain->service_params + 4, sizeof(fc_plogi_payload_t… in __ocs_domain_wait_alloc()
671 /* Update the sport's service parameters, user might have specified non-default names */ in __ocs_domain_wait_alloc()
672 sp->port_name_hi = ocs_htobe32((uint32_t) (sport->wwpn >> 32ll)); in __ocs_domain_wait_alloc()
673 sp->port_name_lo = ocs_htobe32((uint32_t) sport->wwpn); in __ocs_domain_wait_alloc()
674 sp->node_name_hi = ocs_htobe32((uint32_t) (sport->wwnn >> 32ll)); in __ocs_domain_wait_alloc()
675 sp->node_name_lo = ocs_htobe32((uint32_t) sport->wwnn); in __ocs_domain_wait_alloc()
678 sp->port_name_lo = ocs_htobe32(ocs_be32toh(sp->port_name_lo) ^ ((uint32_t)(wwn_bump))); in __ocs_domain_wait_alloc()
679 sp->port_name_hi = ocs_htobe32(ocs_be32toh(sp->port_name_hi) ^ ((uint32_t)(wwn_bump >> 32))); in __ocs_domain_wait_alloc()
680 sp->node_name_lo = ocs_htobe32(ocs_be32toh(sp->node_name_lo) ^ ((uint32_t)(wwn_bump))); in __ocs_domain_wait_alloc()
681 sp->node_name_hi = ocs_htobe32(ocs_be32toh(sp->node_name_hi) ^ ((uint32_t)(wwn_bump >> 32))); in __ocs_domain_wait_alloc()
686 if (domain->is_loop && !domain->is_nlport) { in __ocs_domain_wait_alloc()
689 * Transition to the allocated state and post an event to attach to in __ocs_domain_wait_alloc()
695 __ocs_domain_attach_internal(domain, sport->fc_id); in __ocs_domain_wait_alloc()
710 if (ocs->nodedb_mask & OCS_NODEDB_PAUSE_FABRIC_LOGIN) { in __ocs_domain_wait_alloc()
717 domain->req_accept_frames = 1; in __ocs_domain_wait_alloc()
728 domain->req_domain_free = 1; in __ocs_domain_wait_alloc()
751 * @brief Domain state machine: Wait for the domain attach request.
754 * In this state, the domain has been allocated and is waiting for a domain attach request.
756 * or from a point-to-point negotiation and login.
758 * @param ctx Remote node state machine context.
782 ocs_lock(&domain->lookup_lock); in __ocs_domain_allocated()
783 spv_set(domain->lookup, fc_id, domain->sport); in __ocs_domain_allocated()
784 ocs_unlock(&domain->lookup_lock); in __ocs_domain_allocated()
787 ocs_node_fcid_display(fc_id, domain->sport->display_name, sizeof(domain->sport->display_name)); in __ocs_domain_allocated()
790 rc = ocs_hw_domain_attach(&ocs->hw, domain, fc_id); in __ocs_domain_allocated()
810 if (!ocs_list_empty(&domain->sport_list)) { in __ocs_domain_allocated()
811 /* if there are sports, transition to wait state and in __ocs_domain_allocated()
812 * send shutdown to each sport */ in __ocs_domain_allocated()
816 ocs_list_foreach_safe(&domain->sport_list, sport, sport_next) { in __ocs_domain_allocated()
817 ocs_sm_post_event(&sport->sm, OCS_EVT_SHUTDOWN, NULL); in __ocs_domain_allocated()
824 rc = ocs_hw_domain_free(&ocs->hw, domain); in __ocs_domain_allocated()
844 * @brief Domain state machine: Wait for the HW domain attach to complete.
848 * fabric node state machine.
850 * @param ctx Remote node state machine context.
872 domain->attached = 1; in __ocs_domain_wait_attach()
875 if (ocs->enable_tgt) in __ocs_domain_wait_attach()
877 if (ocs->enable_ini) in __ocs_domain_wait_attach()
885 domain->req_accept_frames = 1; in __ocs_domain_wait_attach()
886 /* Set domain notify pending state to avoid duplicate domain event post */ in __ocs_domain_wait_attach()
887 domain->domain_notify_pend = 1; in __ocs_domain_wait_attach()
894 ocs_list_foreach_safe(&domain->sport_list, sport, next_sport) { in __ocs_domain_wait_attach()
896 ocs_list_foreach_safe(&sport->node_list, node, next_node) { in __ocs_domain_wait_attach()
902 domain->domain_notify_pend = 0; in __ocs_domain_wait_attach()
917 /* Domain lost while waiting for an attach to complete, go to a state that waits for in __ocs_domain_wait_attach()
937 * @brief Domain state machine: Ready state.
940 * This is a domain ready state. It waits for a domain-lost event, and initiates shutdown.
942 * @param ctx Remote node state machine context.
960 ocs_log_debug(domain->ocs, "ocs_vport_start() did not start all vports\n"); in __ocs_domain_ready()
967 if (!ocs_list_empty(&domain->sport_list)) { in __ocs_domain_ready()
968 /* if there are sports, transition to wait state and send in __ocs_domain_ready()
969 * shutdown to each sport */ in __ocs_domain_ready()
973 ocs_list_foreach_safe(&domain->sport_list, sport, sport_next) { in __ocs_domain_ready()
974 ocs_sm_post_event(&sport->sm, OCS_EVT_SHUTDOWN, NULL); in __ocs_domain_ready()
981 rc = ocs_hw_domain_free(&ocs->hw, domain); in __ocs_domain_ready()
1003 ocs_assert(domain->attached, NULL); in __ocs_domain_ready()
1006 ocs_assert(domain->sport->fc_id == fc_id, NULL); in __ocs_domain_ready()
1020 * @brief Domain state machine: Wait for nodes to free prior to the domain shutdown.
1023 * All nodes are freed, and ready for a domain shutdown.
1047 rc = ocs_hw_domain_free(&ocs->hw, domain); in __ocs_domain_wait_sports_free()
1063 * @brief Domain state machine: Complete the domain shutdown.
1068 * @param ctx Remote node state machine context.
1084 if (ocs->enable_ini) in __ocs_domain_wait_shutdown()
1086 if (ocs->enable_tgt) in __ocs_domain_wait_shutdown()
1090 if (domain->domain_found_pending) { in __ocs_domain_wait_shutdown()
1093 * TODO: could use a SLI-4 "re-register VPI" operation here in __ocs_domain_wait_shutdown()
1095 uint64_t fcf_wwn = domain->fcf_wwn; in __ocs_domain_wait_shutdown()
1096 ocs_domain_record_t drec = domain->pending_drec; in __ocs_domain_wait_shutdown()
1099 domain->req_domain_free = 1; in __ocs_domain_wait_shutdown()
1112 ocs_sm_transition(&domain->drvsm, __ocs_domain_init, NULL); in __ocs_domain_wait_shutdown()
1113 ocs_sm_post_event(&domain->drvsm, OCS_EVT_DOMAIN_FOUND, &drec); in __ocs_domain_wait_shutdown()
1115 domain->req_domain_free = 1; in __ocs_domain_wait_shutdown()
1130 * @brief Domain state machine: Wait for the domain alloc/attach completion
1134 * This state is entered when receiving a domain lost while waiting for a domain alloc
1137 * @param ctx Remote node state machine context.
1156 if (!ocs_list_empty(&domain->sport_list)) { in __ocs_domain_wait_domain_lost()
1157 /* if there are sports, transition to wait state and send in __ocs_domain_wait_domain_lost()
1158 * shutdown to each sport */ in __ocs_domain_wait_domain_lost()
1162 ocs_list_foreach_safe(&domain->sport_list, sport, sport_next) { in __ocs_domain_wait_domain_lost()
1163 ocs_sm_post_event(&sport->sm, OCS_EVT_SHUTDOWN, NULL); in __ocs_domain_wait_domain_lost()
1170 rc = ocs_hw_domain_free(&ocs->hw, domain); in __ocs_domain_wait_domain_lost()
1180 ocs_log_err(ocs, "[domain] %-20s: failed\n", ocs_sm_event_name(evt)); in __ocs_domain_wait_domain_lost()
1208 ocs_memcpy(domain->flogi_service_params, payload, sizeof (fc_plogi_payload_t)); in ocs_domain_save_sparms()
1227 …ocs_memcpy(domain->dma.virt, ((uint8_t*)domain->flogi_service_params)+4, sizeof (fc_plogi_payload_… in __ocs_domain_attach_internal()
1228 (void)ocs_sm_post_event(&domain->drvsm, OCS_EVT_DOMAIN_REQ_ATTACH, &s_id); in __ocs_domain_attach_internal()
1256 rc = ocs_sm_post_event(&domain->drvsm, event, arg); in ocs_domain_post_event()
1258 req_domain_free = domain->req_domain_free; in ocs_domain_post_event()
1259 domain->req_domain_free = 0; in ocs_domain_post_event()
1261 accept_frames = domain->req_accept_frames; in ocs_domain_post_event()
1262 domain->req_accept_frames = 0; in ocs_domain_post_event()
1321 ocs_ddump_section(textbuf, "domain", domain->instance_index); in ocs_ddump_domain()
1322 ocs_ddump_value(textbuf, "display_name", "%s", domain->display_name); in ocs_ddump_domain()
1324 ocs_ddump_value(textbuf, "fcf", "%#x", domain->fcf); in ocs_ddump_domain()
1325 ocs_ddump_value(textbuf, "fcf_indicator", "%#x", domain->fcf_indicator); in ocs_ddump_domain()
1326 ocs_ddump_value(textbuf, "vlan_id", "%#x", domain->vlan_id); in ocs_ddump_domain()
1327 ocs_ddump_value(textbuf, "indicator", "%#x", domain->indicator); in ocs_ddump_domain()
1328 ocs_ddump_value(textbuf, "attached", "%d", domain->attached); in ocs_ddump_domain()
1329 ocs_ddump_value(textbuf, "is_loop", "%d", domain->is_loop); in ocs_ddump_domain()
1330 ocs_ddump_value(textbuf, "is_nlport", "%d", domain->is_nlport); in ocs_ddump_domain()
1335 ocs_display_sparams(NULL, "domain_sparms", 1, textbuf, domain->dma.virt); in ocs_ddump_domain()
1339 return -1; in ocs_ddump_domain()
1341 ocs_list_foreach(&domain->sport_list, sport) { in ocs_ddump_domain()
1349 ocs_ddump_ns(textbuf, domain->ocs_ns); in ocs_ddump_domain()
1354 ocs_ddump_endsection(textbuf, "domain", domain->instance_index); in ocs_ddump_domain()
1365 ocs_mgmt_start_section(textbuf, "domain", domain->instance_index); in ocs_mgmt_domain_list()
1382 ocs_list_foreach(&domain->sport_list, sport) { in ocs_mgmt_domain_list()
1383 if ((sport->mgmt_functions) && (sport->mgmt_functions->get_list_handler)) { in ocs_mgmt_domain_list()
1384 sport->mgmt_functions->get_list_handler(textbuf, sport); in ocs_mgmt_domain_list()
1390 ocs_mgmt_end_section(textbuf, "domain", domain->instance_index); in ocs_mgmt_domain_list()
1399 int retval = -1; in ocs_mgmt_domain_get()
1401 ocs_mgmt_start_section(textbuf, "domain", domain->instance_index); in ocs_mgmt_domain_get()
1403 snprintf(qualifier, sizeof(qualifier), "%s/domain[%d]", parent, domain->instance_index); in ocs_mgmt_domain_get()
1411 ocs_mgmt_emit_string(textbuf, MGMT_MODE_RD, "display_name", domain->display_name); in ocs_mgmt_domain_get()
1414 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "fcf", "%#x", domain->fcf); in ocs_mgmt_domain_get()
1417 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "fcf_indicator", "%#x", domain->fcf_indicator); in ocs_mgmt_domain_get()
1420 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "vlan_id", "%#x", domain->vlan_id); in ocs_mgmt_domain_get()
1423 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "indicator", "%#x", domain->indicator); in ocs_mgmt_domain_get()
1426 ocs_mgmt_emit_boolean(textbuf, MGMT_MODE_RD, "attached", domain->attached); in ocs_mgmt_domain_get()
1429 ocs_mgmt_emit_boolean(textbuf, MGMT_MODE_RD, "is_loop", domain->is_loop); in ocs_mgmt_domain_get()
1432 ocs_mgmt_emit_boolean(textbuf, MGMT_MODE_RD, "is_nlport", domain->is_nlport); in ocs_mgmt_domain_get()
1435 ocs_mgmt_emit_string(textbuf, MGMT_MODE_RD, "display_name", domain->display_name); in ocs_mgmt_domain_get()
1439 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RW, "femul_enable", "%d", domain->femul_enable); in ocs_mgmt_domain_get()
1443 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "num_sports", "%d", domain->sport_instance_count); in ocs_mgmt_domain_get()
1449 ocs_list_foreach(&domain->sport_list, sport) { in ocs_mgmt_domain_get()
1450 if ((sport->mgmt_functions) && (sport->mgmt_functions->get_handler)) { in ocs_mgmt_domain_get()
1451 retval = sport->mgmt_functions->get_handler(textbuf, qualifier, name, sport); in ocs_mgmt_domain_get()
1462 ocs_mgmt_end_section(textbuf, "domain", domain->instance_index); in ocs_mgmt_domain_get()
1472 ocs_mgmt_start_section(textbuf, "domain", domain->instance_index); in ocs_mgmt_domain_get_all()
1474 ocs_mgmt_emit_string(textbuf, MGMT_MODE_RD, "display_name", domain->display_name); in ocs_mgmt_domain_get_all()
1475 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "fcf", "%#x", domain->fcf); in ocs_mgmt_domain_get_all()
1476 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "fcf_indicator", "%#x", domain->fcf_indicator); in ocs_mgmt_domain_get_all()
1477 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "vlan_id", "%#x", domain->vlan_id); in ocs_mgmt_domain_get_all()
1478 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "indicator", "%#x", domain->indicator); in ocs_mgmt_domain_get_all()
1479 ocs_mgmt_emit_boolean(textbuf, MGMT_MODE_RD, "attached", domain->attached); in ocs_mgmt_domain_get_all()
1480 ocs_mgmt_emit_boolean(textbuf, MGMT_MODE_RD, "is_loop", domain->is_loop); in ocs_mgmt_domain_get_all()
1481 ocs_mgmt_emit_boolean(textbuf, MGMT_MODE_RD, "is_nlport", domain->is_nlport); in ocs_mgmt_domain_get_all()
1483 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RW, "femul_enable", "%d", domain->femul_enable); in ocs_mgmt_domain_get_all()
1485 ocs_mgmt_emit_int(textbuf, MGMT_MODE_RD, "num_sports", "%d", domain->sport_instance_count); in ocs_mgmt_domain_get_all()
1488 ocs_list_foreach(&domain->sport_list, sport) { in ocs_mgmt_domain_get_all()
1489 if ((sport->mgmt_functions) && (sport->mgmt_functions->get_all_handler)) { in ocs_mgmt_domain_get_all()
1490 sport->mgmt_functions->get_all_handler(textbuf, sport); in ocs_mgmt_domain_get_all()
1505 int retval = -1; in ocs_mgmt_domain_set()
1507 snprintf(qualifier, sizeof(qualifier), "%s/domain[%d]", parent, domain->instance_index); in ocs_mgmt_domain_set()
1518 ocs_list_foreach(&domain->sport_list, sport) { in ocs_mgmt_domain_set()
1519 if ((sport->mgmt_functions) && (sport->mgmt_functions->set_handler)) { in ocs_mgmt_domain_set()
1520 retval = sport->mgmt_functions->set_handler(qualifier, name, value, sport); in ocs_mgmt_domain_set()
1541 int retval = -1; in ocs_mgmt_domain_exec()
1543 snprintf(qualifier, sizeof(qualifier), "%s.domain%d", parent, domain->instance_index); in ocs_mgmt_domain_exec()
1550 ocs_list_foreach(&domain->sport_list, sport) { in ocs_mgmt_domain_exec()
1551 if ((sport->mgmt_functions) && (sport->mgmt_functions->exec_handler)) { in ocs_mgmt_domain_exec()
1552 …retval = sport->mgmt_functions->exec_handler(qualifier, action, arg_in, arg_in_length, arg_out, ar… in ocs_mgmt_domain_exec()