Lines Matching refs:port

133 decode_port_info(void *pi, Port *port)
135 mad_decode_field(pi, IB_PORT_LID_F, &port->lid);
136 mad_decode_field(pi, IB_PORT_LMC_F, &port->lmc);
137 mad_decode_field(pi, IB_PORT_STATE_F, &port->state);
138 mad_decode_field(pi, IB_PORT_PHYS_STATE_F, &port->physstate);
139 mad_decode_field(pi, IB_PORT_LINK_WIDTH_ACTIVE_F, &port->linkwidth);
140 mad_decode_field(pi, IB_PORT_LINK_SPEED_ACTIVE_F, &port->linkspeed);
145 get_port(Port *port, int portnum, ib_portid_t *portid)
150 port->portnum = portnum;
154 decode_port_info(pi, port);
157 portid2str(portid), portnum, port->lid, port->state, port->physstate, get_linkwidth_str(port->linkwidth), get_linkspeed_str(port->linkspeed));
164 get_node(Node *node, Port *port, ib_portid_t *portid)
182 port->portnum = node->localport;
183 port->portguid = node->portguid;
190 decode_port_info(pi, port);
195 node->smalid = port->lid;
196 node->smalmc = port->lmc;
198 /* after we have the sma information find out the real PortInfo for this port */
201 decode_port_info(pi, port);
226 dump_endnode(ib_portid_t *path, char *prompt, Node *node, Port *port)
234 node->nodeguid, node->type == SWITCH_NODE ? 0 : port->portnum,
235 port->lid, port->lid + (1 << port->lmc) - 1,
284 find_port(Node *node, Port *port)
289 if (old->portnum == port->portnum)
298 Port *port;
300 port = malloc(sizeof(*port));
301 if (!port)
304 memcpy(port, temp, sizeof(*port));
305 port->node = node;
306 port->next = node->ports;
307 node->ports = port;
309 return port;
313 link_ports(Node *node, Port *port, Node *remotenode, Port *remoteport)
316 node->nodeguid, node, port, port->portnum,
318 if (port->remoteport)
319 port->remoteport->remoteport = NULL;
322 port->remoteport = remoteport;
323 remoteport->remoteport = port;
327 handle_port(Node *node, Port *port, ib_portid_t *path, int portnum, int dist)
337 DEBUG("handle node %p port %p:%d dist %d", node, port, portnum, dist);
338 if (port->physstate != 5) /* LinkUp */
345 IBWARN("NodeInfo on %s failed, skipping port",
360 if (node != remotenode || port != remoteport)
361 IBWARN("port moving...");
368 link_ports(node, port, remotenode, remoteport);
383 Port *port;
404 port = create_port(node, &port_buf);
405 if (!port)
409 handle_port(node, port, from, node->localport, 0) < 0)
419 dump_endnode(path, "processing", node, port);
426 IBWARN("can't reach node %s port %d", portid2str(path), i);
430 port = find_port(node, &port_buf);
431 if (port)
434 port = create_port(node, &port_buf);
435 if (!port)
438 /* If switch, set port GUID to node GUID */
440 port->portguid = node->portguid;
442 handle_port(node, port, path, i, dist);
558 fprintf(f, "\nSwitch\t%d %s\t\t# \"%s\" %s port 0 lid %d lmc %d\n",
603 out_ext_port(Port *port, int group)
609 && port->node->chrecord && port->node->vendid == VTR_VENDOR_ID)
610 str = portmapstring(port);
616 out_switch_port(Port *port, int group)
621 DEBUG("port %p:%d remoteport %p", port, port->portnum, port->remoteport);
622 fprintf(f, "[%d]", port->portnum);
624 ext_port_str = out_ext_port(port, group);
629 port->remoteport->node->nodeguid,
630 port->remoteport->node->nodedesc);
632 ext_port_str = out_ext_port(port->remoteport, group);
634 node_name(port->remoteport->node),
635 port->remoteport->portnum,
637 if (port->remoteport->node->type != SWITCH_NODE)
638 fprintf(f, "(%" PRIx64 ") ", port->remoteport->portguid);
641 port->remoteport->node->type == SWITCH_NODE ? port->remoteport->node->smalid : port->remoteport->lid,
642 get_linkwidth_str(port->linkwidth),
643 get_linkspeed_str(port->linkspeed));
645 if (is_xsigo_tca(port->remoteport->portguid))
646 fprintf(f, " slot %d", port->portnum);
647 else if (is_xsigo_hca(port->remoteport->portguid))
655 out_ca_port(Port *port, int group)
660 fprintf(f, "[%d]", port->portnum);
661 if (port->node->type != SWITCH_NODE)
662 fprintf(f, "(%" PRIx64 ") ", port->portguid);
664 node_name(port->remoteport->node),
665 port->remoteport->portnum);
666 str = out_ext_port(port->remoteport, group);
669 if (port->remoteport->node->type != SWITCH_NODE)
670 fprintf(f, " (%" PRIx64 ") ", port->remoteport->portguid);
673 port->remoteport->node->nodeguid,
674 port->remoteport->node->nodedesc);
677 port->lid, port->lmc, rem_nodename,
678 port->remoteport->node->type == SWITCH_NODE ? port->remoteport->node->smalid : port->remoteport->lid,
679 get_linkwidth_str(port->linkwidth),
680 get_linkspeed_str(port->linkspeed));
689 Port *port;
698 fprintf(f, "# Initiated from node %016" PRIx64 " port %016" PRIx64 "\n", mynode->nodeguid, mynode->portguid);
737 for (port = ch->spinenode[n]->ports; port; port = port->next, i++)
738 if (port->remoteport)
739 out_switch_port(port, group);
746 for (port = ch->linenode[n]->ports; port; port = port->next, i++)
747 if (port->remoteport)
748 out_switch_port(port, group);
768 for (port = node->ports; port; port = port->next, i++)
769 if (port->remoteport)
770 out_switch_port(port, group);
786 for (port = node->ports; port; port = port->next, i++)
787 if (port->remoteport)
788 out_ca_port(port, group);
808 for (port = node->ports; port; port = port->next, i++)
809 if (port->remoteport)
810 out_switch_port(port, group);
833 for (port = node->ports; port; port = port->next, i++)
834 if (port->remoteport)
835 out_switch_port(port, group);
859 for (port = node->ports; port; port = port->next, i++)
860 if (port->remoteport)
861 out_ca_port(port, group);
874 Port *port;
882 for (p = 0, port = node->ports;
883 p < node->numports && port && !swlid;
884 port = port->next)
885 if (port->lid != 0)
886 swlid = port->lid;
887 for (p = 0, port = node->ports;
888 p < node->numports && port;
889 port = port->next)
890 port->lid = swlid;
895 for (p = 0, port = node->ports;
896 p < node->numports && port;
897 p++, port = port->next) {
900 node_type_str2(port->node), port->lid,
901 port->portnum,
902 port->portguid,
903 get_linkwidth_str(port->linkwidth),
904 get_linkspeed_str(port->linkspeed));
905 if (port->remoteport)
909 node_type_str2(port->remoteport->node),
910 port->remoteport->lid,
911 port->remoteport->portnum,
912 port->remoteport->portguid,
913 port->node->nodedesc,
914 port->remoteport->node->nodedesc);
917 port->node->nodedesc);