Lines Matching refs:p_mgr

65 void osm_ucast_mgr_construct(IN osm_ucast_mgr_t * p_mgr)
67 memset(p_mgr, 0, sizeof(*p_mgr));
70 void osm_ucast_mgr_destroy(IN osm_ucast_mgr_t * p_mgr)
72 CL_ASSERT(p_mgr);
74 OSM_LOG_ENTER(p_mgr->p_log);
76 if (p_mgr->cache_valid)
77 osm_ucast_cache_invalidate(p_mgr);
79 OSM_LOG_EXIT(p_mgr->p_log);
82 ib_api_status_t osm_ucast_mgr_init(IN osm_ucast_mgr_t * p_mgr, IN osm_sm_t * sm)
88 osm_ucast_mgr_construct(p_mgr);
90 p_mgr->sm = sm;
91 p_mgr->p_log = sm->p_log;
92 p_mgr->p_subn = sm->p_subn;
93 p_mgr->p_lock = sm->p_lock;
96 cl_qmap_init(&p_mgr->cache_sw_tbl);
98 OSM_LOG_EXIT(p_mgr->p_log);
130 static void ucast_mgr_process_neighbor(IN osm_ucast_mgr_t * p_mgr,
142 OSM_LOG_ENTER(p_mgr->p_log);
144 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
153 for (item = cl_qmap_head(&p_mgr->p_subn->sw_guid_tbl);
154 item != cl_qmap_end(&p_mgr->p_subn->sw_guid_tbl);
166 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A03: "
171 p_mgr->some_hop_count_set = TRUE;
175 OSM_LOG_EXIT(p_mgr->p_log);
201 static void ucast_mgr_process_port(IN osm_ucast_mgr_t * p_mgr,
214 OSM_LOG_ENTER(p_mgr->p_log);
221 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A04: "
235 if (lid_offset && !p_mgr->is_dor)
240 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
259 p_mgr->p_subn->ignore_existing_lfts,
260 p_mgr->p_subn->opt.lmc,
261 p_mgr->is_dor,
262 p_mgr->p_subn->opt.port_shifting,
270 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
278 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
292 if (!p_mgr->p_subn->opt.port_profile_switch_nodes)
308 p_mgr->is_dor,
314 OSM_LOG_EXIT(p_mgr->p_log);
360 osm_ucast_mgr_t *p_mgr = context;
364 OSM_LOG_ENTER(p_mgr->p_log);
368 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
375 alloc_ports_priv(p_mgr);
381 lids_per_port = 1 << p_mgr->p_subn->opt.lmc;
383 cl_qlist_t *list = &p_mgr->port_order_list;
388 ucast_mgr_process_port(p_mgr, p_sw, port, i);
392 free_ports_priv(p_mgr);
394 OSM_LOG_EXIT(p_mgr->p_log);
401 osm_ucast_mgr_t * p_mgr = context;
409 OSM_LOG_ENTER(p_mgr->p_log);
416 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
437 ucast_mgr_process_neighbor(p_mgr, p_sw,
444 OSM_LOG_EXIT(p_mgr->p_log);
596 int osm_ucast_mgr_build_lid_matrices(IN osm_ucast_mgr_t * p_mgr)
602 p_sw_guid_tbl = &p_mgr->p_subn->sw_guid_tbl;
604 OSM_LOG(p_mgr->p_log, OSM_LOG_VERBOSE,
611 if (p_mgr->p_subn->opt.hop_weights_file) {
612 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
614 p_mgr->p_subn->opt.hop_weights_file);
615 if (parse_node_map(p_mgr->p_subn->opt.hop_weights_file,
616 set_hop_wf, p_mgr)) {
617 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A05: "
619 p_mgr->p_subn->opt.hop_weights_file);
627 cl_qmap_apply_func(p_sw_guid_tbl, ucast_mgr_process_hop_0_1, p_mgr);
663 p_mgr->some_hop_count_set = TRUE;
664 for (i = 0; (i < iteration_max) && p_mgr->some_hop_count_set;
666 p_mgr->some_hop_count_set = FALSE;
668 ucast_mgr_process_neighbors, p_mgr);
670 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
860 static int ucast_mgr_build_lfts(osm_ucast_mgr_t * p_mgr)
862 cl_qlist_init(&p_mgr->port_order_list);
864 if (p_mgr->p_subn->opt.guid_routing_order_file) {
865 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
867 p_mgr->p_subn->opt.guid_routing_order_file);
869 if (parse_node_map(p_mgr->p_subn->opt.guid_routing_order_file,
870 add_guid_to_order_list, p_mgr))
871 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A0D: "
873 p_mgr->p_subn->opt.guid_routing_order_file);
875 sort_ports_by_switch_load(p_mgr);
877 if (p_mgr->p_subn->opt.port_prof_ignore_file) {
878 cl_qmap_apply_func(&p_mgr->p_subn->sw_guid_tbl,
880 if (parse_node_map(p_mgr->p_subn->opt.port_prof_ignore_file,
881 mark_ignored_port, p_mgr)) {
882 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A0E: "
884 p_mgr->p_subn->opt.port_prof_ignore_file);
888 cl_qmap_apply_func(&p_mgr->p_subn->port_guid_tbl,
889 add_port_to_order_list, p_mgr);
891 cl_qmap_apply_func(&p_mgr->p_subn->sw_guid_tbl, ucast_mgr_process_tbl,
892 p_mgr);
894 cl_qlist_remove_all(&p_mgr->port_order_list);
902 osm_ucast_mgr_t *p_mgr = cxt;
914 CL_ASSERT(p_mgr);
916 OSM_LOG_ENTER(p_mgr->p_log);
924 if (p_mgr->max_lid < p_sw->max_lid_ho)
925 p_mgr->max_lid = p_sw->max_lid_ho;
946 ib_switch_info_set_life_time(&si, p_mgr->p_subn->opt.packet_life_time);
952 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
959 status = osm_req_set(p_mgr->sm, p_path, (uint8_t *) & si,
966 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A06: "
971 OSM_LOG_EXIT(p_mgr->p_log);
974 static int set_lft_block(IN osm_switch_t *p_sw, IN osm_ucast_mgr_t *p_mgr,
989 CL_ASSERT(p_mgr->p_subn->opt.use_ucast_cache &&
990 p_mgr->cache_valid && !p_sw->need_update);
1003 if (!p_sw->need_update && !p_mgr->p_subn->need_update &&
1016 OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,
1020 status = osm_req_set(p_mgr->sm, p_path,
1028 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 3A10: "
1037 static void ucast_mgr_pipeline_fwd_tbl(osm_ucast_mgr_t * p_mgr)
1041 unsigned i, max_block = p_mgr->max_lid / IB_SMP_DATA_SIZE + 1;
1043 tbl = &p_mgr->p_subn->sw_guid_tbl;
1047 set_lft_block((osm_switch_t *)item, p_mgr, i);
1050 void osm_ucast_mgr_set_fwd_tables(osm_ucast_mgr_t * p_mgr)
1052 p_mgr->max_lid = 0;
1054 cl_qmap_apply_func(&p_mgr->p_subn->sw_guid_tbl, ucast_mgr_set_fwd_top,
1055 p_mgr);
1057 ucast_mgr_pipeline_fwd_tbl(p_mgr);
1098 int osm_ucast_mgr_process(IN osm_ucast_mgr_t * p_mgr)
1105 OSM_LOG_ENTER(p_mgr->p_log);
1107 p_sw_guid_tbl = &p_mgr->p_subn->sw_guid_tbl;
1108 p_osm = p_mgr->p_subn->p_osm;
1111 CL_PLOCK_EXCL_ACQUIRE(p_mgr->p_lock);
1117 ucast_mgr_setup_all_switches(p_mgr->p_subn) < 0)
1136 OSM_LOG(p_mgr->p_log, OSM_LOG_INFO,
1141 if (p_mgr->p_subn->opt.use_ucast_cache)
1142 p_mgr->cache_valid = TRUE;
1144 p_mgr->p_subn->subnet_initialization_error = TRUE;
1145 OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR,
1150 CL_PLOCK_RELEASE(p_mgr->p_lock);
1151 OSM_LOG_EXIT(p_mgr->p_log);