Lines Matching refs:engine
64 static int query_node_info(smp_engine_t * engine, ib_portid_t * portid,
66 static int query_port_info(smp_engine_t * engine, ib_portid_t * portid,
70 static int recv_switch_info(smp_engine_t * engine, ibnd_smp_t * smp, in recv_switch_info() argument
81 static int query_switch_info(smp_engine_t * engine, ib_portid_t * portid, in query_switch_info() argument
85 return issue_smp(engine, portid, IB_ATTR_SWITCH_INFO, 0, in query_switch_info()
98 static int retract_dpath(smp_engine_t * engine, ib_portid_t * portid) in retract_dpath() argument
100 ibnd_scan_t *scan = engine->user_data; in retract_dpath()
118 static int extend_dpath(smp_engine_t * engine, ib_portid_t * portid, in extend_dpath() argument
121 ibnd_scan_t *scan = engine->user_data; in extend_dpath()
147 static int recv_node_desc(smp_engine_t * engine, ibnd_smp_t * smp, in recv_node_desc() argument
156 static int query_node_desc(smp_engine_t * engine, ib_portid_t * portid, in query_node_desc() argument
159 return issue_smp(engine, portid, IB_ATTR_NODE_DESC, 0, in query_node_desc()
225 int mlnx_ext_port_info_err(smp_engine_t * engine, ibnd_smp_t * smp, in mlnx_ext_port_info_err() argument
228 f_internal_t *f_int = ((ibnd_scan_t *) engine->user_data)->f_int; in mlnx_ext_port_info_err()
254 rc = retract_dpath(engine, &path); in mlnx_ext_port_info_err()
258 rc = extend_dpath(engine, &path, port_num); in mlnx_ext_port_info_err()
265 query_node_info(engine, &path, cbdata); in mlnx_ext_port_info_err()
272 static int recv_mlnx_ext_port_info(smp_engine_t * engine, ibnd_smp_t * smp, in recv_mlnx_ext_port_info() argument
275 f_internal_t *f_int = ((ibnd_scan_t *) engine->user_data)->f_int; in recv_mlnx_ext_port_info()
303 rc = retract_dpath(engine, &path); in recv_mlnx_ext_port_info()
307 rc = extend_dpath(engine, &path, port_num); in recv_mlnx_ext_port_info()
314 query_node_info(engine, &path, cbdata); in recv_mlnx_ext_port_info()
321 static int query_mlnx_ext_port_info(smp_engine_t * engine, ib_portid_t * portid, in query_mlnx_ext_port_info() argument
326 return issue_smp(engine, portid, IB_ATTR_MLNX_EXT_PORT_INFO, portnum, in query_mlnx_ext_port_info()
330 static int recv_port_info(smp_engine_t * engine, ibnd_smp_t * smp, in recv_port_info() argument
333 ibnd_scan_t *scan = (ibnd_scan_t *)engine->user_data; in recv_port_info()
399 query_mlnx_ext_port_info(engine, &smp->path, in recv_port_info()
418 rc = retract_dpath(engine, &path); in recv_port_info()
422 rc = extend_dpath(engine, &path, port_num); in recv_port_info()
429 query_node_info(engine, &path, cbdata); in recv_port_info()
436 static int recv_port0_info(smp_engine_t * engine, ibnd_smp_t * smp, in recv_port0_info() argument
442 status = recv_port_info(engine, smp, mad, cb_data); in recv_port0_info()
445 query_port_info(engine, &smp->path, node, i); in recv_port0_info()
450 static int query_port_info(smp_engine_t * engine, ib_portid_t * portid, in query_port_info() argument
455 return issue_smp(engine, portid, IB_ATTR_PORT_INFO, portnum, in query_port_info()
459 static ibnd_node_t *create_node(smp_engine_t * engine, ib_portid_t * path, in create_node() argument
462 f_internal_t *f_int = ((ibnd_scan_t *) engine->user_data)->f_int; in create_node()
526 static int recv_node_info(smp_engine_t * engine, ibnd_smp_t * smp, in recv_node_info() argument
529 ibnd_scan_t *scan = engine->user_data; in recv_node_info()
550 node = create_node(engine, &smp->path, node_info); in recv_node_info()
591 query_node_desc(engine, &smp->path, node); in recv_node_info()
594 query_switch_info(engine, &smp->path, node); in recv_node_info()
596 query_port_info(engine, &smp->path, node, 0); in recv_node_info()
601 query_port_info(engine, &smp->path, node, port_num); in recv_node_info()
606 static int query_node_info(smp_engine_t * engine, ib_portid_t * portid, in query_node_info() argument
610 return issue_smp(engine, portid, IB_ATTR_NODE_INFO, 0, in query_node_info()
756 smp_engine_t engine; in ibnd_discover_fabric() local
799 if (smp_engine_init(&engine, ca_name, ca_port, &scan, &config)) { in ibnd_discover_fabric()
806 if (!query_node_info(&engine, from, NULL)) in ibnd_discover_fabric()
807 if (process_mads(&engine) != 0) in ibnd_discover_fabric()
810 f_int->fabric.total_mads_used = engine.total_smps; in ibnd_discover_fabric()
816 smp_engine_destroy(&engine); in ibnd_discover_fabric()
819 smp_engine_destroy(&engine); in ibnd_discover_fabric()