Lines Matching defs:node

61 	ibnd_node_t *node;
67 ibnd_node_t * node, int portnum);
74 ibnd_node_t *node = cb_data;
75 memcpy(node->switchinfo, switch_info, sizeof(node->switchinfo));
76 mad_decode_field(node->switchinfo, IB_SW_ENHANCED_PORT0_F,
77 &node->smaenhsp0);
82 ibnd_node_t * node)
84 node->smaenhsp0 = 0; /* assume base SP0 */
86 recv_switch_info, node);
109 * from that to find the node it is connected to. This counts as a
151 ibnd_node_t *node = cb_data;
152 memcpy(node->nodedesc, node_desc, sizeof(node->nodedesc));
157 ibnd_node_t * node)
160 recv_node_desc, node);
176 if (port->node->type == IB_NODE_SWITCH)
177 info = (uint8_t *)&port->node->ports[0]->info;
198 uint16_t devid = (uint16_t) mad_get_field(port->node->info, 0, IB_NODE_DEVID_F);
199 uint32_t vendorid = (uint32_t) mad_get_field(port->node->info, 0, IB_NODE_VENDORID_F);
229 ibnd_node_t *node = cb_data;
234 port = node->ports[port_num];
237 node->guid, port_num);
246 && ((node->type == IB_NODE_SWITCH && port_num != local_port) ||
247 (node == f_int->fabric.from_node && port_num == f_int->fabric.from_portnum))) {
251 if (node->type != IB_NODE_SWITCH &&
252 node == f_int->fabric.from_node &&
257 if (path.lid == 0 || node->type == IB_NODE_SWITCH)
263 cbdata->node = node;
276 ibnd_node_t *node = cb_data;
282 port = node->ports[port_num];
285 node->guid, port_num);
295 && ((node->type == IB_NODE_SWITCH && port_num != local_port) ||
296 (node == f_int->fabric.from_node && port_num == f_int->fabric.from_portnum))) {
300 if (node->type != IB_NODE_SWITCH &&
301 node == f_int->fabric.from_node &&
306 if (path.lid == 0 || node->type == IB_NODE_SWITCH)
312 cbdata->node = node;
322 ibnd_node_t * node, int portnum)
325 portid2str(portid), node->guid, portnum);
327 recv_mlnx_ext_port_info, node);
335 ibnd_node_t *node = cb_data;
347 port = node->ports[port_num];
349 port = node->ports[port_num] = calloc(1, sizeof(*port));
352 node->guid, port_num);
356 mad_get_field64(node->info, 0, IB_NODE_PORT_GUID_F);
360 port->node = node;
367 node->smalid = port->base_lid;
368 node->smalmc = port->lmc;
369 } else if (node->type == IB_NODE_SWITCH) {
370 port->base_lid = node->smalid;
371 port->lmc = node->smalmc;
386 if (port->node->type == IB_NODE_SWITCH)
387 info = (uint8_t *)&port->node->ports[0]->info;
400 node, port_num);
409 && ((node->type == IB_NODE_SWITCH && port_num != local_port) ||
410 (node == f_int->fabric.from_node && port_num == f_int->fabric.from_portnum))) {
415 if (node->type != IB_NODE_SWITCH &&
416 node == f_int->fabric.from_node &&
421 if (path.lid == 0 || node->type == IB_NODE_SWITCH)
427 cbdata->node = node;
439 ibnd_node_t *node = cb_data;
444 for (i = 1; i <= node->numports; i++)
445 query_port_info(engine, &smp->path, node, i);
451 ibnd_node_t * node, int portnum)
454 portid2str(portid), node->guid, portnum);
456 portnum ? recv_port_info : recv_port0_info, node);
465 IBND_ERROR("OOM: node creation failed\n");
487 " to insert new node guid 0x%016" PRIx64 " to DB\n",
499 static void link_ports(ibnd_node_t * node, ibnd_port_t * port,
503 " %p->%p:%u\n", node->guid, node, port, port->portnum,
515 ibnd_node_t * node, ibnd_port_t * port)
518 mad_dump_node_type(type, sizeof(type), &node->type, sizeof(int));
520 portid2str(path), prompt, type, node->guid,
521 node->type == IB_NODE_SWITCH ? 0 : port->portnum,
523 node->nodedesc);
535 ibnd_node_t *node;
543 rem_node = ni_cbdata->node;
548 node = ibnd_find_node_guid(&f_int->fabric, node_guid);
549 if (!node) {
550 node = create_node(engine, &smp->path, node_info);
551 if (!node)
555 IBND_DEBUG("Found %s node GUID 0x%" PRIx64 " (%s)\n",
556 node_is_new ? "new" : "old", node->guid,
559 port = node->ports[port_num];
562 port = node->ports[port_num] = calloc(1, sizeof(*port));
565 port->node = node;
572 node, port);
574 if (rem_node == NULL) { /* this is the start node */
575 f_int->fabric.from_node = node;
587 link_ports(node, port, rem_node, rem_node->ports[rem_port_num]);
591 query_node_desc(engine, &smp->path, node);
593 if (node->type == IB_NODE_SWITCH) {
594 query_switch_info(engine, &smp->path, node);
596 query_port_info(engine, &smp->path, node, 0);
600 if (node->type != IB_NODE_SWITCH)
601 query_port_info(engine, &smp->path, node, port_num);
617 ibnd_node_t *node;
624 for (node = fabric->nodestbl[hash]; node; node = node->htnext)
625 if (node->guid == guid)
626 return node;
634 return rc->node;
637 int add_to_nodeguid_hash(ibnd_node_t * node, ibnd_node_t * hash[])
641 int hash_idx = HASHGUID(node->guid) % HTSZ;
644 if (tblnode == node) {
647 node->guid);
651 node->htnext = hash[hash_idx];
652 hash[hash_idx] = node;
703 void add_to_type_list(ibnd_node_t * node, f_internal_t * f_int)
706 switch (node->type) {
708 node->type_next = fabric->ch_adapters;
709 fabric->ch_adapters = node;
712 node->type_next = fabric->switches;
713 fabric->switches = node;
716 node->type_next = fabric->routers;
717 fabric->routers = node;
824 void destroy_node(ibnd_node_t * node)
828 if (node->ports) {
829 for (p = 0; p <= node->numports; p++)
830 free(node->ports[p]);
831 free(node->ports);
833 free(node);
838 ibnd_node_t *node = NULL;
851 node = fabric->nodes;
852 while (node) {
853 next = node->next;
854 destroy_node(node);
855 node = next;
978 cur_node = remote_port->node;