/freebsd/contrib/ofed/opensm/include/opensm/ |
H A D | osm_port.h | 221 void osm_physp_construct(IN osm_physp_t * p_physp); 245 void osm_physp_init(IN osm_physp_t * p_physp, IN ib_net64_t port_guid, 296 void osm_physp_destroy(IN osm_physp_t * p_physp); 325 static inline boolean_t osm_physp_is_valid(IN const osm_physp_t * p_physp) in osm_physp_is_valid() argument 327 CL_ASSERT(p_physp); in osm_physp_is_valid() 328 return (p_physp->port_guid != 0); in osm_physp_is_valid() 356 static inline boolean_t osm_physp_is_healthy(IN const osm_physp_t * p_physp) in osm_physp_is_healthy() argument 358 CL_ASSERT(p_physp); in osm_physp_is_healthy() 359 return p_physp->healthy; in osm_physp_is_healthy() 390 boolean_t osm_link_is_healthy(IN const osm_physp_t * p_physp); [all …]
|
/freebsd/contrib/ofed/opensm/opensm/ |
H A D | osm_port.c | 60 void osm_physp_construct(IN osm_physp_t * p_physp) in osm_physp_construct() argument 62 memset(p_physp, 0, sizeof(*p_physp)); in osm_physp_construct() 63 osm_dr_path_construct(&p_physp->dr_path); in osm_physp_construct() 64 cl_ptr_vector_construct(&p_physp->slvl_by_port); in osm_physp_construct() 65 osm_pkey_tbl_construct(&p_physp->pkeys); in osm_physp_construct() 68 void osm_physp_destroy(IN osm_physp_t * p_physp) in osm_physp_destroy() argument 73 if (p_physp->port_guid) { in osm_physp_destroy() 74 if (p_physp->p_guids) in osm_physp_destroy() 75 free(p_physp->p_guids); in osm_physp_destroy() 78 num_slvl = cl_ptr_vector_get_size(&p_physp->slvl_by_port); in osm_physp_destroy() [all …]
|
H A D | osm_pkey_mgr.c | 67 pkey_mgr_get_physp_max_pkeys(IN const osm_physp_t * p_physp) in pkey_mgr_get_physp_max_pkeys() argument 69 osm_node_t *p_node = osm_physp_get_node_ptr(p_physp); in pkey_mgr_get_physp_max_pkeys() 72 if (!p_node->sw || (osm_physp_get_port_num(p_physp) == 0)) in pkey_mgr_get_physp_max_pkeys() 80 pkey_mgr_get_physp_max_blocks(IN const osm_physp_t * p_physp) in pkey_mgr_get_physp_max_blocks() argument 82 return ((pkey_mgr_get_physp_max_pkeys(p_physp) + 31) / 32); in pkey_mgr_get_physp_max_blocks() 93 IN osm_physp_t * p_physp) in pkey_mgr_process_physical_port() argument 95 osm_node_t *p_node = osm_physp_get_node_ptr(p_physp); in pkey_mgr_process_physical_port() 100 p_pkey_tbl = &p_physp->pkeys; in pkey_mgr_process_physical_port() 107 osm_physp_get_port_num(p_physp)); in pkey_mgr_process_physical_port() 132 osm_physp_get_port_num(p_physp)); in pkey_mgr_process_physical_port() [all …]
|
H A D | osm_port_info_rcv.c | 82 static void pi_rcv_process_endport(IN osm_sm_t * sm, IN osm_physp_t * p_physp, in pi_rcv_process_endport() argument 96 port_guid = osm_physp_get_port_guid(p_physp); in pi_rcv_process_endport() 99 if (osm_physp_get_port_num(p_physp) != 0 && in pi_rcv_process_endport() 175 (p_physp), in pi_rcv_process_endport() 178 ib_port_info_get_m_key(&p_physp->port_info), in pi_rcv_process_endport() 207 IN osm_physp_t * p_physp, in pi_rcv_process_switch_port0() argument 216 if (p_physp->need_update) in pi_rcv_process_switch_port0() 219 pi_rcv_check_and_fix_lid(sm->p_log, p_pi, p_physp); in pi_rcv_process_switch_port0() 222 osm_physp_set_port_info(p_physp, p_pi, sm); in pi_rcv_process_switch_port0() 228 p_physp->port_info = *p_pi; in pi_rcv_process_switch_port0() [all …]
|
H A D | osm_node.c | 161 osm_physp_t *p_physp; in osm_node_link() local 164 p_physp = osm_node_get_physp_ptr(p_node, port_num); in osm_node_link() 167 if (p_physp->p_remote_physp) in osm_node_link() 168 p_physp->p_remote_physp->p_remote_physp = NULL; in osm_node_link() 172 osm_physp_link(p_physp, p_remote_physp); in osm_node_link() 178 osm_physp_t *p_physp; in osm_node_unlink() local 187 p_physp = osm_node_get_physp_ptr(p_node, port_num); in osm_node_unlink() 191 osm_physp_unlink(p_physp, p_remote_physp); in osm_node_unlink() 199 osm_physp_t *p_physp; in osm_node_link_exists() local 205 p_physp = osm_node_get_physp_ptr(p_node, port_num); in osm_node_link_exists() [all …]
|
H A D | osm_link_mgr.c | 61 static uint8_t link_mgr_get_smsl(IN osm_sm_t * sm, IN osm_physp_t * p_physp) in link_mgr_get_smsl() argument 72 (slid = osm_physp_get_base_lid(p_physp)))) { in link_mgr_get_smsl() 91 static int link_mgr_set_physp_pi(osm_sm_t * sm, IN osm_physp_t * p_physp, in link_mgr_set_physp_pi() argument 114 p_node = osm_physp_get_node_ptr(p_physp); in link_mgr_set_physp_pi() 116 p_old_pi = &p_physp->port_info; in link_mgr_set_physp_pi() 118 port_num = osm_physp_get_port_num(p_physp); in link_mgr_set_physp_pi() 127 osm_physp_get_port_guid(p_physp)); in link_mgr_set_physp_pi() 161 smsl = link_mgr_get_smsl(sm, p_physp); in link_mgr_set_physp_pi() 168 (p_physp))); in link_mgr_set_physp_pi() 178 (p_physp))); in link_mgr_set_physp_pi() [all …]
|
H A D | osm_sa_pkey_record.c | 67 static void sa_pkey_create(IN osm_sa_t * sa, IN osm_physp_t * p_physp, in sa_pkey_create() argument 84 if (p_physp->p_node->node_info.node_type != IB_NODE_TYPE_SWITCH) in sa_pkey_create() 85 lid = p_physp->port_info.base_lid; in sa_pkey_create() 87 lid = osm_node_get_base_lid(p_physp->p_node, 0); in sa_pkey_create() 92 cl_ntoh64(osm_physp_get_port_guid(p_physp)), in sa_pkey_create() 93 cl_ntoh16(lid), osm_physp_get_port_num(p_physp), block); in sa_pkey_create() 99 p_rec_item->resp.pkey_rec.port_num = osm_physp_get_port_num(p_physp); in sa_pkey_create() 106 tbl = osm_pkey_tbl_block_get(osm_physp_get_pkey_tbl(p_physp), block); in sa_pkey_create() 116 static void sa_pkey_check_physp(IN osm_sa_t * sa, IN osm_physp_t * p_physp, in sa_pkey_check_physp() argument 126 sa_pkey_create(sa, p_physp, p_ctxt, p_ctxt->block_num); in sa_pkey_check_physp() [all …]
|
H A D | osm_sa_portinfo_record.c | 76 IN const osm_physp_t * p_physp, in pir_rcv_new_pir() argument 98 cl_ntoh64(osm_physp_get_port_guid(p_physp)), in pir_rcv_new_pir() 99 cl_ntoh16(lid), osm_physp_get_port_num(p_physp)); in pir_rcv_new_pir() 104 p_rec_item->resp.port_rec.port_info = p_physp->port_info; in pir_rcv_new_pir() 110 if (osm_node_get_type(p_physp->p_node) == in pir_rcv_new_pir() 112 p_physp0 = osm_node_get_physp_ptr(p_physp->p_node, 0); in pir_rcv_new_pir() 115 p_pi = (ib_port_info_t *) &p_physp->port_info; in pir_rcv_new_pir() 117 if (ib_port_info_get_link_speed_ext_active(&p_physp->port_info)) { in pir_rcv_new_pir() 131 p_rec_item->resp.port_rec.port_num = osm_physp_get_port_num(p_physp); in pir_rcv_new_pir() 140 static void sa_pir_create(IN osm_sa_t * sa, IN const osm_physp_t * p_physp, in sa_pir_create() argument [all …]
|
H A D | osm_sa_vlarb_record.c | 74 static void sa_vl_arb_create(IN osm_sa_t * sa, IN osm_physp_t * p_physp, in sa_vl_arb_create() argument 90 if (p_physp->p_node->node_info.node_type != IB_NODE_TYPE_SWITCH) in sa_vl_arb_create() 91 lid = p_physp->port_info.base_lid; in sa_vl_arb_create() 93 lid = osm_node_get_base_lid(p_physp->p_node, 0); in sa_vl_arb_create() 98 cl_ntoh64(osm_physp_get_port_guid(p_physp)), in sa_vl_arb_create() 99 cl_ntoh16(lid), osm_physp_get_port_num(p_physp), block); in sa_vl_arb_create() 104 p_rec_item->resp.vlarb_rec.port_num = osm_physp_get_port_num(p_physp); in sa_vl_arb_create() 106 p_rec_item->resp.vlarb_rec.vl_arb_tbl = *(osm_physp_get_vla_tbl(p_physp, block)); in sa_vl_arb_create() 114 static void sa_vl_arb_check_physp(IN osm_sa_t * sa, IN osm_physp_t * p_physp, in sa_vl_arb_check_physp() argument 126 sa_vl_arb_create(sa, p_physp, p_ctxt, block); in sa_vl_arb_check_physp() [all …]
|
H A D | osm_dump.c | 186 osm_physp_t *p_physp = p_port->p_physp; in dump_ucast_routes() local 188 if (!p_physp || !p_physp->p_remote_physp || in dump_ucast_routes() 189 !p_physp->p_remote_physp->p_node->sw) in dump_ucast_routes() 193 osm_node_get_base_lid(p_physp-> in dump_ucast_routes() 198 p_physp->p_remote_physp->p_node-> in dump_ucast_routes() 373 osm_physp_t *p_physp, *p_default_physp, *p_rphysp; in dump_topology_node() local 383 p_physp = osm_node_get_physp_ptr(p_node, cPort); in dump_topology_node() 384 if (!p_physp) in dump_topology_node() 387 p_rphysp = p_physp->p_remote_physp; in dump_topology_node() 391 CL_ASSERT(cPort == p_physp->port_num); in dump_topology_node() [all …]
|
H A D | osm_sa_guidinfo_record.c | 86 IN const osm_physp_t * p_physp, in gir_rcv_new_gir() argument 110 if (p_physp->p_guids) in gir_rcv_new_gir() 112 *p_physp->p_guids + block_num * GUID_TABLE_MAX_ENTRIES, in gir_rcv_new_gir() 115 p_rec_item->resp.guid_rec.guid_info.guid[0] = osm_physp_get_port_guid(p_physp); in gir_rcv_new_gir() 131 const osm_physp_t *p_physp; in sa_gir_create_gir() local 157 p_physp = osm_node_get_physp_ptr(p_node, port_num); in sa_gir_create_gir() 158 if (!p_physp) in sa_gir_create_gir() 163 if (!osm_physp_share_pkey(sa->p_log, p_physp, p_req_physp, in sa_gir_create_gir() 167 port_guid = osm_physp_get_port_guid(p_physp); in sa_gir_create_gir() 179 if (p_physp->port_info.guid_cap == 0) in sa_gir_create_gir() [all …]
|
H A D | osm_drop_mgr.c | 84 static void drop_mgr_clean_physp(osm_sm_t * sm, IN osm_physp_t * p_physp) in drop_mgr_clean_physp() argument 89 p_remote_physp = osm_physp_get_remote(p_physp); in drop_mgr_clean_physp() 134 cl_ntoh64(osm_node_get_node_guid(p_physp->p_node)), in drop_mgr_clean_physp() 135 p_physp->port_num, in drop_mgr_clean_physp() 141 osm_ucast_cache_add_link(&sm->ucast_mgr, p_physp, in drop_mgr_clean_physp() 144 osm_physp_unlink(p_physp, p_remote_physp); in drop_mgr_clean_physp() 149 p_physp->p_node->physp_discovered[p_physp->port_num] = 0; in drop_mgr_clean_physp() 153 cl_ntoh64(osm_node_get_node_guid(p_physp->p_node)), in drop_mgr_clean_physp() 154 p_physp->port_num); in drop_mgr_clean_physp() 156 osm_physp_destroy(p_physp); in drop_mgr_clean_physp() [all …]
|
H A D | osm_node_info_rcv.c | 68 static void report_duplicated_guid(IN osm_sm_t * sm, osm_physp_t * p_physp, in report_duplicated_guid() argument 75 p_old = p_physp->p_remote_physp; in report_duplicated_guid() 83 cl_ntoh64(p_physp->p_node->node_info.node_guid), in report_duplicated_guid() 84 p_physp->port_num, in report_duplicated_guid() 90 osm_dump_dr_path_v2(sm->p_log, osm_physp_get_dr_path_ptr(p_physp), in report_duplicated_guid() 101 static void requery_dup_node_info(IN osm_sm_t * sm, osm_physp_t * p_physp, in requery_dup_node_info() argument 108 if (!p_physp->p_remote_physp) { in requery_dup_node_info() 114 path = *osm_physp_get_dr_path_ptr(p_physp->p_remote_physp); in requery_dup_node_info() 115 if (osm_dr_path_extend(&path, p_physp->p_remote_physp->port_num)) { in requery_dup_node_info() 123 p_physp->p_remote_physp->p_node->node_info.port_guid; in requery_dup_node_info() [all …]
|
H A D | osm_switch.c | 183 osm_physp_t *p_physp; in switch_find_guid_common() local 195 p_physp = osm_node_get_physp_ptr(p_sw->p_node, port_num); in switch_find_guid_common() 196 if (!p_physp) in switch_find_guid_common() 199 p_rem_physp = osm_physp_get_remote(p_physp); in switch_find_guid_common() 278 osm_physp_t *p_physp; in osm_switch_recommend_path() local 299 p_physp = p_port->p_physp; in osm_switch_recommend_path() 300 if (!p_physp || !p_physp->p_remote_physp || in osm_switch_recommend_path() 301 !p_physp->p_remote_physp->p_node->sw) in osm_switch_recommend_path() 304 if (p_physp->p_remote_physp->p_node->sw == p_sw) in osm_switch_recommend_path() 305 return p_physp->p_remote_physp->port_num; in osm_switch_recommend_path() [all …]
|
H A D | osm_req.c | 71 osm_physp_t *p_physp; in req_determine_mkey() local 77 p_physp = NULL; in req_determine_mkey() 90 p_physp = osm_node_get_physp_ptr(p_node, p_path->path[1]); in req_determine_mkey() 92 p_physp = p_sm_port->p_physp; in req_determine_mkey() 96 for (hop = 2; p_physp && hop <= p_path->hop_count; hop++) { in req_determine_mkey() 97 p_physp = p_physp->p_remote_physp; in req_determine_mkey() 98 if (!p_physp) in req_determine_mkey() 100 p_node = p_physp->p_node; in req_determine_mkey() 101 p_physp = osm_node_get_physp_ptr(p_node, p_path->path[hop]); in req_determine_mkey() 107 if (!p_physp) { in req_determine_mkey() [all …]
|
H A D | osm_mlnx_ext_port_info_rcv.c | 70 osm_physp_t *p_physp; in osm_mlnx_epi_rcv_process() local 113 p_physp = osm_node_get_physp_ptr(p_node, port_num); in osm_mlnx_epi_rcv_process() 114 CL_ASSERT(p_physp); in osm_mlnx_epi_rcv_process() 115 p_physp->ext_port_info = *p_pi; in osm_mlnx_epi_rcv_process() 125 p_physp = osm_node_get_physp_ptr(p_node, portnum); in osm_mlnx_epi_rcv_process() 126 CL_ASSERT(p_physp); in osm_mlnx_epi_rcv_process() 127 p_physp->ext_port_info = *p_pi; in osm_mlnx_epi_rcv_process()
|
H A D | osm_pkey_rcv.c | 63 osm_physp_t *p_physp; in osm_pkey_rcv_process() local 114 p_physp = osm_node_get_physp_ptr(p_node, port_num); in osm_pkey_rcv_process() 116 p_physp = p_port->p_physp; in osm_pkey_rcv_process() 117 port_num = p_physp->port_num; in osm_pkey_rcv_process() 134 if (!p_physp) { in osm_pkey_rcv_process() 144 p_physp, p_pkey_tbl, block_num, in osm_pkey_rcv_process()
|
H A D | osm_vl_arb_rcv.c | 72 osm_physp_t *p_physp; in osm_vla_rcv_process() local 120 p_physp = osm_node_get_physp_ptr(p_node, port_num); in osm_vla_rcv_process() 122 p_physp = p_port->p_physp; in osm_vla_rcv_process() 123 port_num = p_physp->port_num; in osm_vla_rcv_process() 140 if (!p_physp) { in osm_vla_rcv_process() 154 osm_physp_set_vla_tbl(p_physp, p_vla_tbl, block_num); in osm_vla_rcv_process()
|
H A D | osm_sa_slvl_record.c | 74 static void sa_slvl_create(IN osm_sa_t * sa, IN const osm_physp_t * p_physp, in sa_slvl_create() argument 90 if (p_physp->p_node->node_info.node_type != IB_NODE_TYPE_SWITCH) in sa_slvl_create() 91 lid = p_physp->port_info.base_lid; in sa_slvl_create() 93 lid = osm_node_get_base_lid(p_physp->p_node, 0); in sa_slvl_create() 98 cl_ntoh64(osm_physp_get_port_guid(p_physp)), in sa_slvl_create() 99 cl_ntoh16(lid), osm_physp_get_port_num(p_physp), in_port_idx); in sa_slvl_create() 104 if (p_physp->p_node->node_info.node_type == IB_NODE_TYPE_SWITCH) { in sa_slvl_create() 105 p_rec_item->resp.slvl_rec.out_port_num = osm_physp_get_port_num(p_physp); in sa_slvl_create() 109 *(osm_physp_get_slvl_tbl(p_physp, in_port_idx)); in sa_slvl_create() 143 p_port->p_physp->port_num); in sa_slvl_by_comp_mask() [all …]
|
H A D | osm_trap_rcv.c | 62 extern void osm_req_get_node_desc(IN osm_sm_t * sm, osm_physp_t *p_physp); 105 osm_physp_t *p_physp; in aging_tracker_callback() local 118 p_physp = get_physp_by_lid_and_num(sm, lid, port_num); in aging_tracker_callback() 119 if (!p_physp) in aging_tracker_callback() 125 else if (!osm_physp_is_healthy(p_physp)) { in aging_tracker_callback() 131 osm_physp_set_health(p_physp, TRUE); in aging_tracker_callback() 371 osm_physp_t *p_physp; in trap_rcv_process_request() local 452 p_physp = osm_get_physp_by_mad_addr(sm->p_log, sm->p_subn, in trap_rcv_process_request() 454 if (p_physp) in trap_rcv_process_request() 455 p_smp->m_key = ib_port_info_get_m_key(&p_physp->port_info); in trap_rcv_process_request() [all …]
|
H A D | osm_state_mgr.c | 127 osm_physp_t *p_physp; in state_mgr_get_sw_info() local 137 p_physp = osm_node_get_physp_ptr(p_node, 0); in state_mgr_get_sw_info() 138 p_dr_path = osm_physp_get_dr_path_ptr(p_physp); in state_mgr_get_sw_info() 148 FALSE, ib_port_info_get_m_key(&p_physp->port_info), in state_mgr_get_sw_info() 163 IN osm_physp_t * p_physp) in state_mgr_get_remote_port_info() argument 173 p_dr_path = osm_physp_get_dr_path_ptr(p_physp); in state_mgr_get_remote_port_info() 175 if (osm_dr_path_extend(&rem_node_dr_path, osm_physp_get_port_num(p_physp))) { in state_mgr_get_remote_port_info() 186 osm_node_get_node_guid(osm_physp_get_node_ptr(p_physp)); in state_mgr_get_remote_port_info() 187 mad_context.pi_context.port_guid = p_physp->port_guid; in state_mgr_get_remote_port_info() 200 cl_ntoh64(p_physp->port_guid), ib_get_err_str(status)); in state_mgr_get_remote_port_info() [all …]
|
H A D | osm_sa_multipath_record.c | 148 const osm_physp_t *p_physp, *p_physp0; in mpr_rcv_get_path_parms() local 175 p_dest_physp = p_dest_alias_guid->p_base_port->p_physp; in mpr_rcv_get_path_parms() 176 p_physp = p_src_alias_guid->p_base_port->p_physp; in mpr_rcv_get_path_parms() 177 p_src_physp = p_physp; in mpr_rcv_get_path_parms() 178 p_pi = &p_physp->port_info; in mpr_rcv_get_path_parms() 209 p_node = osm_physp_get_node_ptr(p_physp); in mpr_rcv_get_path_parms() 217 p_physp = osm_switch_get_route_by_lid(p_node->sw, dest_lid); in mpr_rcv_get_path_parms() 218 if (p_physp == 0) { in mpr_rcv_get_path_parms() 235 p_slvl_tbl = osm_physp_get_slvl_tbl(p_physp, 0); in mpr_rcv_get_path_parms() 279 while (p_physp != p_dest_physp) { in mpr_rcv_get_path_parms() [all …]
|
H A D | osm_sa_path_record.c | 156 const osm_physp_t *p_physp, *p_physp0; in pr_rcv_get_path_parms() local 185 p_dest_physp = p_dest_alias_guid->p_base_port->p_physp; in pr_rcv_get_path_parms() 186 p_physp = p_src_alias_guid->p_base_port->p_physp; in pr_rcv_get_path_parms() 187 p_src_physp = p_physp; in pr_rcv_get_path_parms() 188 p_pi = &p_physp->port_info; in pr_rcv_get_path_parms() 221 p_node = osm_physp_get_node_ptr(p_physp); in pr_rcv_get_path_parms() 229 p_physp = osm_switch_get_route_by_lid(p_node->sw, dest_lid); in pr_rcv_get_path_parms() 230 if (p_physp == 0) { in pr_rcv_get_path_parms() 246 p_slvl_tbl = osm_physp_get_slvl_tbl(p_physp, 0); in pr_rcv_get_path_parms() 290 while (p_physp != p_dest_physp) { in pr_rcv_get_path_parms() [all …]
|
H A D | osm_ucast_cache.c | 411 osm_physp_t *p_physp; in ucast_cache_validate() local 447 p_physp = osm_node_get_physp_ptr(p_node, port_num); in ucast_cache_validate() 449 if (!p_physp || !p_physp->p_remote_physp || in ucast_cache_validate() 450 !osm_physp_link_exists(p_physp, in ucast_cache_validate() 451 p_physp->p_remote_physp)) in ucast_cache_validate() 462 p_physp->p_remote_physp->p_node && in ucast_cache_validate() 463 osm_node_get_type(p_physp->p_remote_physp-> in ucast_cache_validate() 467 if (!p_physp->need_update) in ucast_cache_validate() 474 p_remote_physp = osm_physp_get_remote(p_physp); in ucast_cache_validate() 909 osm_physp_t *p_physp; in osm_ucast_cache_add_node() local [all …]
|
H A D | osm_congestion_control.c | 67 osm_physp_t *p_physp, in cc_mad_post() argument 77 port = osm_physp_get_port_num(p_physp); in cc_mad_post() 110 p_madw->context.cc_context.port_guid = osm_physp_get_port_guid(p_physp); in cc_mad_post() 222 osm_physp_t *p_physp; in cc_send_sw_cong_setting() local 229 p_physp = osm_node_get_physp_ptr(p_node, 0); in cc_send_sw_cong_setting() 231 force_update = p_physp->need_update || p_sm->p_subn->need_update; in cc_send_sw_cong_setting() 235 &p_physp->cc.sw.sw_cong_setting, in cc_send_sw_cong_setting() 255 cc_mad_post(p_cc, p_madw, p_node, p_physp, in cc_send_sw_cong_setting() 265 osm_physp_t *p_physp) in cc_send_ca_cong_setting() argument 275 force_update = p_physp->need_update || p_sm->p_subn->need_update; in cc_send_ca_cong_setting() [all …]
|