8.5.1. opareport Detailed Information
This section provides additional information about using opareport.
8.5.1.1. opareport Basics
opareport can be run with no options at all. In this mode, it provides a brief list of the nodes in the fabric, the brnodes report.
A sample of an opareport for a small fabric follows:
# opareport
Getting All Node Records...
Done Getting All Node Records
Done Getting All Link Records
Done Getting All Cable Info Records
Done Getting All SM Info Records
Node Type Brief Summary
4 Connected FIs in Fabric:
NodeGUID Type Name
Port LID PortGUID Width Speed
0x00117501016a35f0 FI coyote hfi1_0
1 0x0004 0x00117501016a35f0 4 25Gb
0x00117501016a361d FI goblin hfi1_0
1 0x0003 0x00117501016a361d 4 25Gb
0x00117501016a365f FI ogre hfi1_0
1 0x0005 0x00117501016a365f 4 25Gb
0x00117501016a366d FI duster hfi1_0
1 0x0001 0x00117501016a366d 4 25Gb
1 Connected Switches in Fabric:
NodeGUID Type Name
Port LID PortGUID Width Speed
0x00117500ff6a5619 SW edge1
0 0x0002 0x00117500ff6a5619 1 25Gb
12 4 25Gb
31 4 25Gb
35 4 25Gb
39 4 25Gb
1 Connected SMs in Fabric:
State GUID Name
Master 0x00117501016a366d duster hfi1_0Each opareport allows for various levels of detail. Increasing detail is shown as further indentation of the additional information. The -d option to opareport controls the detail level. The default is 2. Values from 0-n are permitted. The maximum detail per report varies, but most have less than five detail levels.
Note
Several report types can include port counters if both the counters are available (via the use of the stats flag or input from a snapshot file) and a high enough detail level is used. Usually, a detail level between 5 and 8 is high enough to include per-port counters in report outputs. In addition to options already described in opareport, some reports such as errors or the use of flags such as -F linkqual already implies the use of -s.
For example, when the previous report is run at detail level 0, the output is as follows:
# opareport -d 0 Getting All Node Records... Done Getting All Node Records Done Getting All Link Records Done Getting All Cable Info Records Done Getting All SM Info Records Node Type Brief Summary 4 Connected FIs in Fabric 1 Connected Switches in Fabric 1 Connected SMs in Fabric
A summary of fabric components is shown in the following example. This report is very similar to opafabricinfo. At the next level of detail, the report has more detail:
# opareport -d 1 Getting All Node Records... Done Getting All Node Records Done Getting All Link Records Done Getting All Cable Info Records Done Getting All SM Info Records Node Type Brief Summary 4 Connected FIs in Fabric: NodeGUID Type Name 0x00117501016a35f0 FI ogre hfi1_0 0x00117501016a361d FI goblin hfi1_0 0x00117501016a365f FI coyote hfi1_0 0x00117501016a366d FI duster hfi1_0 1 Connected Switches in Fabric: NodeGUID Type Name 0x00117500ff6a5619 SW edge1 1 Connected SMs in Fabric: State GUID Name Master 0x00117501016a366d duster hfi1_0
The previous examples were all performed with a single report: the brnodes (Brief Nodes) report. This is just one of the many topology reports that opareport can generate.
Other reports summarize the present state of the fabric. Use these reports to analyze the configuration of the fabric and verify that the installation is consistent with the desired design and configuration. These reports include:
nodesA more verbose form of
brnodethat provides much greater levels of detail to drill down into all the details of every node, even down to all the port state, IOUs/IOCs/Services, and Port counters.compsandbrcompsVery similar to
brnodesandnodes, except the reports are organized around systems. The grouping into systems is based on system image GUIDs for each node. This report presents more complex systems (such as servers with multiple SuperNICs or large switches composed of multiple switch chips).linksPresents all the links in the fabric. The output is very concise and helps to identify the connectivity between nodes in the fabric. This includes both internal (inside a large switch or system) and external ports (cables).
extlinksLists all the external links in the fabric, for example, those between different systems. This report omits links internal to a single system. Identification of a system is through
SystemImageGuid.lidsSimilar to
brnodes, however, it is organized and sorted by LID. The output is very concise and provides a simple cross reference of LIDs assigned to each SuperNIC and Switch in the fabric. This information can be useful in interpreting the output from thelinear,mcast, andportusagereports.iousSimilar to the
nodesreports, however the focus is around IOUs/IOCs and IO Services in the fabric. This report identifies various IO devices in the fabric and their capabilities, such as direct-attach storage.otherportsLists all ports that are not connected to this fabric. This report identifies additional ports on FIs or Switches that are not connected to this fabric. For switches, these represent unused ports. For FIs, these may be ports connected to other fabrics or unused ports.
Additionally, opareport has reports that analyze the operational characteristics of the fabric and identify bottlenecks and faulty components in the fabric. These reports include:
slowlinksIdentifies links that are running slower than expected, that pinpoints bad cables or components in the fabric. For example, can identify a 4x cable that is poorly connected and only runs at 1x link width. The analysis includes both link speed and width.
slowconfiglinksExtends the
slowlinksreport to also report links that have been configured (typically by software) to run at a width or speed below their potential. Includes DDR-capable links that have been forced to run at SDR rates.slowconnlinksExtends on the
slowconfiglinksreport to also report links that are cabled such that one of the ends of the link can never run to its potential. For example, a DDR-capable SuperNIC connected to an SDR switch.misconfiglinksSimilar to
slowconfiglinksin that it reports links that have been configured to run below their potential. However, the report does not include links that are running slower than expected.misconnlinksSimilar to
slowconnlinksin that it reports links that have been connected between ports of different speed potential. However, the report does not include links that are running slower than expected, nor links that have been configured to run slower than their potential.errorsPerforms a single point-in-time analysis of the PMA port counters for every node and port in the fabric. All the counters are compared against configured thresholds. Defaults are listed in the
opamon.conffile. Any link whose counters exceed these thresholds are listed. Depending on the detail level, the exact counter and threshold are reported. This is a powerful way to identify marginal links in the fabric such as bad or loose cables or damaged components. Theopamon.si.conffile can also be used to check for any non-zero values for signal integrity (SI) counters.routeIdentifies two end points in the fabric (by node name, node GUID, port name, port GUID, system image GUID, LID, port GID, IOC GUID, or IOC name), and obtains a list of all the links and components used when these two end points communicate. If there are multiple paths between the end points, such as an FI with 2 connected ports or a system with 2 FIs, the route for every available path is reported based on presently configured routing tables.
linearShows the linear forwarding table for each switch in the fabric. Used to manually review the routing of unicast traffic in the fabric. For each switch, every unicast LID is shown along with the port it is routed out (egress port), and the neighboring Node and Port. For large fabrics, this report can be quite large.
mcastShows the multicast forwarding table for each switch in the fabric. Used to manually review the routing of multicast traffic in the fabric. For each switch, every multicast LID is shown along with the list of ports it is routed out. For large fabrics, this report can be quite large.
portusageProvides a summary analysis of the unicast routing in the fabric, in terms of how many LIDs of each node type are routed out a given port. Used for analysis of how balanced the routes in the fabric are, especially for ISLs and core switches. For each switch, all the ports are shown along with the counts of how many unicast LIDs are routed out each port. The total is shown along with SuperNIC-All, SuperNIC-Base, and Switch.
HFI-All includes all LIDs that correspond to a SuperNIC, including LIDs that are the base LID of the SuperNIC and LIDs that map to the SuperNIC through LMC masking.
HFI-Base includes only LIDs that correspond to the base LID of a SuperNIC. HFI-Base is always a subset of HFI-All.
Switch includes all LIDs that correspond to a Switch.
pathusageComputes all the FI-to-FI dLID paths through the fabric and reports on the usage of each ISL Port (Switch-to-Switch link). The
-Foption indicates the switches and the ports on those switches to analyze. Switch Port 0 is always omitted from the analysis. These reports can also be run against snapshots that were performed with the-roption.treepathusageSimilar to
pathusagewith the exception thattreepathusageis applicable only to Fat Tree topologies and provides specific analysis of uplink and downlink paths, indicating what tier each switch is in within the fabric.
8.5.1.2. Simple Topology Verification
opareport provides a flexible way to identify changes to the fabric or the appropriate reassembly of the fabric after a move. For example, run opareport after staging and testing the fabric in a remote location before final installation at a customer site.
This type of report can be saved for later comparison to a future report. Since opareport produces simple text reports, standard tools such as sdiff (side by side diff) can be used for comparison and analysis of the changes.
In this mode of operation, all previous reports are available, however, you can filter the information that is output. Use the all report to include all reports of general interest.
Use the -P option to omit information that does not persist across a fabric reboot, for example, LIDs and error counters. In the report, the information is marked out with xxx.
If software configuration changes are anticipated, use the opareport -H option to only include hardware information. Use this option when adjusting the timeouts the SM configures in the fabric.
Use the -N option to omit all the node and IOC names from the report. If changes are anticipated in this area, this option can be used so future differences do not report changes in names.
8.5.1.3. Advanced Topology Verification
You can use the -T option for opareport to compare the state of the fabric against a previous state or a user-generated configuration for the fabric.
The XML description used by the -T option is the same as the XML format generated by the -o links or -o extlinks and/or -o brnodes reports when they are run with the -x option. The opareport -o topology argument is an easy way to generate such a report and is equivalent to specifying all three of these reports.
A simple way to perform topology verification against a previous configuration is to generate the previous topology using a command such as:
opareport -o topology -x > topology.xml
Later, the fabric can be compared against that topology using a command such as:
opareport -T topology.xml -o verifyall
Unlike simple diff comparisons, this method of topology verification performs a more context-sensitive comparison and presents information in terms of links, nodes, or SMs that are missing, unexpected, or incorrectly configured.
All the other capabilities of opareport are fully available when using a topology_input file. For example, snapshot_input files can also be used to generate or compare topologies based on previous fabric snapshots. In addition, the -F option may be used to focus the analysis.
Note
verify* reports may still report missing links, nodes, or SMs outside the scope of the desired focus.
There are multiple variations of advanced topology verification: verifycas, verifysws, verifyrtrs, verifysms, verifylinks, and verifyextlinks. In addition, verifynodes and verifyall can be used to generate combined reports.
verifylinks and verifyextlinks perform the same analysis, however, they differ in the scope of the analysis. verifylinks checks all links in the fabric. In contrast, verifyextlinks performs the following:
Limits its verification to links outside of a system.
Does not analyze links between nodes with the same SystemImageGuid, such as within a large CN5000 Omni-Path Chassis.
Ignores links from the
topology_inputfile that specify a non-zero value for the XML tag <Internal> within the <Link> tag.
The XML format of topology_input file is shown in the following example. The example is purposely brief and omits many links, nodes, and SMs.
<?xml version="1.0" encoding="utf-8" ?> <Report> <LinkSummary> <Link> <Rate>25g</Rate> <MTU>8192</MTU> <Internal>0</Internal> <LinkDetails>SampleHost1 to Switch</LinkDetails> <Cable> <CableLength>11m</CableLength> <CableLabel>S4567</CableLabel> <CableDetails>sample cable model xxx</CableDetails> </Cable> <Port> <NodeGUID>0x0x0011750101660572</NodeGUID> <PortGUID>0x0011750101660572</PortGUID> <PortNum>1</PortNum> <NodeType>FI</NodeType> <NodeDesc>SampleHost1 HFI-1</NodeDesc> <PortDetails>SampleHost1 primary port</PortDetails> </Port> <Port> <NodeGUID>0x0011750007000df6</NodeGUID> <PortNum>1</PortNum> <NodeType>SW</NodeType> <NodeDesc>SampleSwitch1 Leaf 4, Chip A</NodeDesc> </Port> </Link> <Link> <Rate>25g</Rate> <MTU>8192</MTU> <Internal>0</Internal> <Port> <NodeGUID>0x0011750101660574</NodeGUID> <PortGUID>0x0011750101660574</PortGUID> <PortNum>1</PortNum> <NodeType>FI</NodeType> <NodeDesc>SampleHost2 HFI-1</NodeDesc> </Port> <Port> <NodeGUID>0x0011750007000e6d</NodeGUID> <PortNum>4</PortNum> <NodeType>SW</NodeType> <NodeDesc>SampleSwitch1 Leaf 5, Chip A</NodeDesc> </Port> </Link> </LinkSummary> <Nodes> <FIs> <Node id="0x0011750101660576"> <NodeGUID>0x0011750101660576</NodeGUID> <NodeDesc>SampleHost2 HFI-1</NodeDesc> <NodeDetails>SampleHost2 only HFI</NodeDetails> </Node> </FIs> <Switches> <Node id="0x001175000600025a"> <NodeGUID>0x001175000600025a</NodeGUID> <NodeDesc>SampleSwitch1 Spine 1, Chip A</NodeDesc> <NodeDetails>core switch</NodeDetails> </Node> </Switches> <SMs> <SM id="0x0011750101660578:1"> <NodeGUID>0x0011750101660578</NodeGUID> <NodeDesc>SampleHost2 HFI-1</NodeDesc> <PortNum>1</PortNum> <PortGUID>0x0011750101660579</PortGUID> <NodeType>FI</NodeType> <NodeType_Int>1</NodeType_Int> <SMDetails>SampleHost2 SM</SMDetails> </SM> </SMs> </Nodes> </Report>
The XML tags have the following meanings:
<Report>Primary top level tag. Exactly one such tag is permitted per file. Alternatively, this may be
<Topology>.<LinkSummary>Container tag describing all the links expected in the fabric. Alternatively,
<ExternalLinkSummary>may be used.<ExternalLinkSummary>should be used if the file only describes external links. If both external and internal links are described,<LinkSummary>should be used. Only one of these two choices is permitted per file.<Link>Container tag describing a single link. Many instances of this tag can occur per
<LinkSummary>or<ExternalLinkSummary>.<Link>allows the following tags:<Rate>String describing the expected rate of the link. Valid values are 2.5g, 5g, 10g, 20g, 30g, 40g, 60g, 80g, or 120g. The value is case-insensitive but must contain no extra whitespace. Alternatively, an integer value
<Rate_Int>may be provided based on the values for Rate from the SMA packets. If both<Rate>and<Rate_Int>are specified, whichever value appears later within the given link is used. If neither is specified, the rate of the link is not verified.<MTU>An integer describing the expected MTU of the link. Valid values are 256, 512, 1024, 2048, and 4096. If not specified, the MTU of the link is not verified.
<Internal>A flag indicating if the link is internal or external. A value of 0 indicates external links that are processed by both verifylinks and verifyextlinks. A value of 1 indicates an internal link that is only processed by verifylinks. If omitted, the actual fabric link attributes or the attributes of the port are used to determine if the link should be processed. The value for this field is not verified against the actual fabric.
<LinkDetails>A free-form text field of up to 64 characters. This field is optional. When provided, this is output as a link attribute in all reports that show link details, such as links, extlinks, route, verifylinks, and verifyextlinks reports. Cornelis recommends you use this field to describe the purpose of the link. This field can also be used by the linkdetpat focus option to select the link.
<Cable>A container tag providing additional information about the cable.
<Cable>allows the following tags:<CableLength>A free-form text field of up to 10 characters. This field is optional. When provided, this is output as a link cable attribute in all reports that show link details, such as links, extlinks, route, verifylinks, and verifyextlinks reports. Cornelis recommends you use this field to describe the length of the cable using text such as 11m. This field can also be used by the lengthpat focus option to select the link.
<CableLabel>A free-form text field of up to 20 characters. This field is optional. When provided, this is output as a link cable attribute in all reports that show link details, such as links, extlinks, route, verifylinks, and verifyextlinks reports. Cornelis recommends you use this field to describe the identifying label attached to the cable using text such as S4576. This field can also be used by the labelpat focus option to select the link. Using this field to match the actual unique physical labels placed on the cables during installation can greatly help cross-referencing the reports to the physical cluster, such as when needing to identify or replace cables.
<CableDetails>A free-form text field of up to 64 characters. This field is optional. When provided, this is output as a link attribute in all reports that show link details, such as links, extlinks, route, verifylinks, and verifyextlinks reports. Cornelis recommends you use this field to describe the type, model, and/or manufacturer of the cable. This field can also be used by the
cabledetpatfocus option to select the link.
<Port>A container tag providing additional information about the two ports that make up the link.
<Port>allows the following tags:<NodeGUID><PortGUID>Port GUID reported by the SMA for the given FI or switch.
Note
Switches only have PortGuids for port 0 (the internal management port), while FIs have a unique GUID for every port.
<PortNum>Port Number within the FI or switch.
<NodeDesc>Node Description reported by the FI or switch. Cornelis recommends that you configure a unique value for this field in each node in your fabric. For example, CN5000 OPX Software Linux hosts use the combination of Linux hostname and SuperNIC number to create a unique NodeDesc.
<NodeType>Node type reported by the node. Values include: FI or SW. Alternatively, an integer value
<NodeType_Int>may be provided based on the values for NodeType from the SMA packets. If both<NodeType>and<NodeType_Int>are specified, whichever appears later within the given Port is used. If neither is specified, the node type of the port is not verified.<PortDetails>Free-form text field of up to 64 characters. This field is optional. When provided, this is output as a port attribute in all reports that show port details, such as links, extlinks, route, comps, verifylinks, and verifyextlinks reports. Cornelis recommends you use this field to describe the purpose of the port. This field can also be used by the portdetpat focus option to select the port.
The previous fields are used to associate a port in the
topology_inputfile with an actual port in the fabric, also called resolving the port. You need not provide all of the information. Association to an actual port in the fabric is performed using the following order of checks based on the tags that are specified:NodeGUID,PortNumNodeGUID,PortGUIDNodeGUID– if given FI has exactly 1 port.NodeDesc,PortNumNodeDesc,PortGUIDNodeDesc– if given FI has exactly 1 port.PortGUID,PortNum– useful to select ports other than 0 on a switch.PortGUID
If
NodeDescis used to specify ports, it is important that the fabric is configured such that eachNodeDescis unique. Otherwise, the<Port>may resolve to a different port than desired, which could result in incorrect results or errors during topology verification.When redundant information is provided, the extra information is ignored while resolving the port. However, during
verifylinksorverifyextlinksall the input provided is verified against the actual fabric and any discrepancies are reported.Some examples of redundant information:
NodeGuid,NodeDesc–NodeDescis not used to resolve port.NodeGuid,PortNum,PortGuid–PortGuidis not used to resolve port.NodeDesc,PortNum,PortGuid–PortGuidis not used to resolve port.
The
<NodeType>field is never used during resolution; it is only used during verification.<Nodes>Container tag describing all the nodes expected in the fabric.
<FIs>Container tag describing all the FIs expected in the fabric. Many instances of this tag can occur per
<Nodes>.<Switches>Container tag describing all the Switches expected in the fabric. Many instances of this tag can occur per
<Nodes>.<SMs>Container tag describing all the SMs expected in the fabric. Many instances of this tag can occur per
<Nodes>.<Node>Container tag describing a single node (FI or SW). Many instances of this tag can occur per
<FIs>or<Switches>.<Node>allows the following tags:<NodeGUID><NodeDesc>Node Description reported by the FI or switch. Cornelis recommends that you configure a unique value for this field in each node in your fabric. For example, CN5000 OPX Software Linux hosts use the combination of Linux hostname and SuperNIC number to create a unique NodeDesc.
<NodeDetails>Free-form text field of up to 64 characters. This field is optional. When provided, this is output as a node attribute in all reports that show node details, such as links, extlinks, route, comps, verifycas, verifysws, verifyrts, verifylinks, and verifyextlinks reports. Cornelis recommends you use this field to describe the purpose and/or model of the node. This field can also be used by the nodedetpat focus option to select the node.
The previous fields are used to associate a Node (FI or Switch) in the
topology_inputfile with an actual node in the fabric, also called resolving the node. You need not provide all of the information. Association to an actual node in the fabric is performed using the following order of checks based on the tags that are specified:NodeGUIDNodeDesc
If
NodeDescis used to specify nodes, the fabric must be configured such that eachNodeDescis unique. Otherwise, the<Node>may resolve to a different node than desired, which could result in incorrect results or errors during topology verification.When redundant information is provided, the extra information is ignored while resolving the node. However, during
verifycas,verifysws, orverifyrtrs, all the input provided is verified against the actual fabric and any discrepancies are reported.An example of redundant information:
NodeGuid,NodeDesc-NodeDescis not used to resolve node.
The node type (as implied by the container tag for the
<Node>) is never used during resolution, it is only used during verification.<SM>Container tag describing a single SM. Many instances of this tag can occur per
<SMs>.<SM>allows the following tags:<NodeGUID>Node GUID reported by the SMA for the given FI or switch that is running the FM.
<NodeDesc>Node Description reported by the FI or switch that is running the SM. Cornelis recommends that you configure a unique value for this field in each node in your fabric. For example,CN5000 OPX Software Linux hosts use the combination of Linux hostname and SuperNIC number to create a unique NodeDesc.
<PortGUID>Port GUID reported by the SMA for the given FI or switch that is running the SM.
Note
Switches only have PortGuids for port 0 (the internal management port), while FIs have a unique GUID for every port.
<PortNum>Port Number within the FI or switch that is running the SM.
<NodeType>Node type reported by the node that is running the SM. Values include: FI or SW. Alternatively, an integer value
<NodeType_Int>may be provided based on the values for NodeType from the SMA packets. If both<NodeType>and<NodeType_Int>are specified, whichever appears later within the given port is used. If neither is specified, the node type of the SM is not verified.<SMDetails>Free-form text field of up to 64 characters. This field is optional. When provided, this is output as an SM attribute in all reports that show SM details, such as comps and verifysms reports. Cornelis recommends you use this field to describe the purpose of the SM. This field can also be used by the smdetpat focus option to select the SM.
The previous fields are used to associate a port running an SM in the
topology_inputfile with an actual port in the fabric, also called resolving the SM. You need not provide all of the information. Association to an actual port in the fabric is performed using the following order of checks based on the tags that are specified:NodeGUID,PortNumNodeGUID,PortGUIDNodeGUID– if given FI has exactly 1 active port or is a switch.NodeDesc,PortNumNodeDesc,PortGUIDNodeDesc– if given FI has exactly 1 active port or is a switch.PortGUID,PortNum– limited usefulness.PortGUID
If
NodeDescis used to specify SM ports, the fabric must be configured such that eachNodeDescis unique. Otherwise, the<SM>may resolve to a different port than desired, which could result in incorrect results or errors during topology verification.When redundant information is provided, the extra information is ignored while resolving the port for an SM. However, during
verifysmsall the input provided is verified against the actual fabric and any discrepancies are reported.Some examples of redundant information:
NodeGuid,NodeDesc–NodeDescis not used to resolve port.NodeGuid,PortNum,PortGuid–PortGuidis not used to resolve port.NodeDesc,PortNum,PortGuid–PortGuidis not used to resolve port.
The
NodeTypefield is never used during resolution, it is only used during verification.
8.5.1.4. Augmented Report Information
A topology_input file includes additional information including cable (length, label, details), links (details), ports (details), nodes (details), and SMs (details). The file can be used during any report to provide information about the fabric that is not electronically available. This can help cross-reference the output of the report against the physical fabric. For example, if the cable length field is supplied, reports can be focused on all cables of a given length. Similarly, if cable labels are supplied, the report output includes the labels, making it much easier to locate the actual cables for tasks such as rerouting or replacement.
8.5.1.5. Focused Reports
One of the more powerful features of opareport is the ability to focus a report on a subset of the fabric. Using the -F option, you can specify a node name, node name pattern, node GUID, node type, port GUID, IOC name, IOC name pattern, IOC GUID, IOC type, system image GUID, port GID, port rate, port state, port physical state, MTU capability, LID, link quality indicator, cable info for cable length, cable info for vendor name, cable info for vendor part number, cable info for vendor rev, cable info for vendor serial number, or SM.
The subsequent report indicates the total components in the fabric but only reports on those that relate to the focus area. For example, in a nodes report, if a port is specified for focus, only the node containing that port is reported on. In a links report, if a port is specified for focus, only the link using that port is reported.
When a focus is used for fabric analysis, -o errors, -C or -i, the analysis includes all the ports selected by the focus as well as their neighbors. If desired, the -L option limits the operation to exactly the selected ports.
You may choose a focus level that is different from the orientation of the report. For example, if a node name is specified as the focus for a links report, a report of all the links to that node is provided. This includes multiple switch ports or FI ports.
You can perform reverse lookups by carefully using this feature of report focus. For example, requesting a brnodes report with a focus on a LID performs reverse lookup on that LID and indicates what node it is for.
When focusing a report, you can also specify a detail level. For detail 0, the report shows only a count of number of matches. For detail 1, the report shows only the highest level of the entity that matches.
8.5.1.6. Advanced Focus
As mentioned previously, you can focus a report on a subset of the fabric. In addition, you can further limit the report focus using the following methods.
The beginning of a focused report includes a summary of the items focused on. When the focus has a large scope, this list can be quite long. To omit the summary section from the report, use the -Q option.
Port number specifier
The node name, node name pattern, node GUID, node type, IOC name, IOC name pattern, IOC GUID, IOC type, and system image GUID also allow for a port number specifier. This limits the focus to the given port number. If the selection resolves to multiple switches or FIs, all ports on the present fabric matching the given port number are selected for the report. For example, in a system composed of multiple nodes, there may be multiple ports with the same port number.
Route between points
This method focuses on all the ports involved in a particular route and can be an excellent way to determine a performance or error situation reported between two specific points in the fabric. For example, MPI may report
StatusTimeoutRetrybetween two processes in its run.* syadmin fields supplied in a topology file, typically generated by
opaxlattopology, including cable labels, cable details, planned cable length, link details, port details, and SM details.glob-style patterns
You can use a wildcard focus for the node name, IOC name, node details, cable label, cable length, cable details, cable vendor name, cable vendor part number, cable vendor rev, cable vendor serial number, link details, port details, or SM details. If a consistent naming convention is used for fabric components, this method provides a powerful way to focus reports on nodes. If the host names are prefixed with an indication of their purpose, searches can be performed based on the purpose of the node.
For example, if you use a naming convention such as the following:
l###= login node ###,n###= compute node ###,s###= storage node ###, then you can create a report using one of the following patterns:'l*','n*', or's*'.Note
A glob style pattern is a shell-style wildcard pattern as used by
bashand other tools. If you use this style of pattern, you must also use single quotes so the shell does not try to expand them to match local file names.
8.5.1.7. Focus Examples
Examples of using the focus options are shown in the following list:
opareport -o nodes -F portguid:0x00117500a000447b opareport -o nodes -F nodeguid:0x001175009800447b:port:1 opareport -o nodes -F nodeguid:0x001175009800447b opareport -o nodes -F node:duster opareport -o nodes -F node:duster:port:1 opareport -o nodes -F 'nodepat:d*' opareport -o nodes -F 'nodepat:d*:port:1' opareport -o nodes -F nodetype:FI opareport -o nodes -F nodetype:FI:port:1 opareport -o nodes -F lid:1 opareport -o nodes -F lid:1:node opareport -o nodes -F gid:0xfe80000000000000:0x00117500a000447b opareport -o nodes -F systemguid:0x001175009800447b opareport -o nodes -F systemguid:0x001175009800447b:port:1 opareport -o nodes -F iocguid:0x00117501300001e0 opareport -o nodes -F iocguid:0x00117501300001e0:port:2 opareport -o nodes -F 'ioc:Chassis 0x001175005000010C, Slot 2, IOC 1' opareport -o nodes -F 'ioc:Chassis 0x001175005000010C, Slot 2, IOC 1:port:2' opareport -o nodes -F 'iocpat:*Slot 2*' opareport -o nodes -F 'iocpat:*Slot 2*:port:2' opareport -o nodes -F ioctype:XXXX opareport -o nodes -F ioctype:XXXX:port:2 opareport -o nodes -F sm opareport -o nodes -F route:node:duster:node:cuda opareport -o nodes -F route:node:duster:port:1:node:cuda:port:2
8.5.1.8. Scriptable Output
opareport permits custom scripting. As previously mentioned, options like -H, -P, and -N generate reports that can be compared to each other. The -x option permits output reports to be generated in XML format. The XML hierarchy is similar to the text-based reports. Using XML permits other XML tools (such as PERL XML extensions) to easily parse opareport output, enabling you to create scripts to further search and refine report output formats.
The opaxmlextract tool easily converts between XML files and delimited text files.
You can integrate opareport into custom scripts. You can also generate customer-specific new report formats and cross-reference opareport with other site-specific information.
8.5.1.9. Monitor for Fabric Changes Using opareport
opareport can easily be used in other scripts. For example, the following simple script can be run as a cron job to identify if the fabric has changed from the initial design.
#!/bin/bash # specify some filenames to use expected_config=/usr/local/report.master # master copy of config previously created config=/tmp/report$$ # where we will generate new report diffs=/tmp/report.diff$$ # where we will generate diffs opareport -o all -d 5 -P > $config 2>/dev/null if ! diff $config $expected_config > $diffs 2>/dev/null then # notify admin, for example mail the new report to the admin cat $diffs $expected_config $config | mail -s "fabric change detected" admin@somewhere fi rm -f $config $diffs
8.5.1.10. Sample Outputs
8.5.1.10.1. Analyze all ports in fabric for errors, inconsistent connections, bad cables
[root@duster root]# opareport -o errors -o slowlinks
Links running slower than expected Summary
Links running slower than expected:
Rate NodeGUID Port Type Name
Active Enabled
Lanes, Used(Tx), Used(Rx), Rate, Lanes, DownTo, Rates
100g 0x00117501025019ab 44 SW edge1
4 3 3 25Gb 1,2,3,4 3,4 25Gb
<-> 0x0011750102513139 44 SW edge2
4 3 3 25Gb 1,2,3,4 3,4 25Gb
100g 0x00117501025019ab 48 SW edge1
4 3 4 25Gb 1,2,3,4 3,4 25Gb
<-> 0x0011750102513139 48 SW edge2
4 4 3 25Gb 1,2,3,4 3,4 25Gb
96 of 96 Links Checked, 2 Errors found
-------------------------------------------------------------------------------
Links with errors > threshold Summary
Configured Error Thresholds:
LinkQualityIndicator 5
LinkDowned 3
RcvErrors 100
ExcessiveBufferOverruns 3
LinkErrorRecovery 3
LocalLinkIntegrityErrors 3
XmitConstraintErrors 10
RcvConstraintErrors 10
CongDiscards 100
96 of 96 Links Checked, 0 Errors found
-------------------------------------------------------------------------------8.5.1.10.2. Identify the route between two nodes
[root@goblin root]# opareport -o route -S node:"goblin hfi1_0" -D node:"orc hfi1_0"
Getting All Node Records...
Done Getting All Node Records
Done Getting All Link Records
Done Getting All Cable Info Records
Done Getting All SM Info Records
Routes Summary Between:
Node: 0x001175010157409d FI goblin hfi1_0
and Node: 0x001175010157403d FI orc hfi1_0
Routes between ports:
0x001175010157409d 1 FI goblin hfi1_0
and 0x001175010157403d 1 FI orc hfi1_0
2 Paths
SGID: 0xfe80000000000000:001175010157409d
DGID: 0xfe80000000000000:001175010157403d
SLID: 0x0001 DLID: 0x0018 Reversible: Y PKey: 0x8001
Raw: N FlowLabel: 0x00000 HopLimit: 0x00 TClass: 0x00
SL: 0 Mtu: 8192 Rate: 100g PktLifeTime: 134 ms Pref: 0
Rate NodeGUID Port Type Name
100g 0x001175010157409d 1 FI goblin hfi1_0
-> 0x00117501025131cb 44 SW edge1
100g 0x00117501025131cb 40 SW edge2
-> 0x001175010157403d 1 FI orc hfi1_0
2 Links Traversed
SGID: 0xfe80000000000000:001175010157409d
DGID: 0xfe80000000000000:001175010157403d
SLID: 0x0001 DLID: 0x0018 Reversible: Y PKey: 0xffff
Raw: N FlowLabel: 0x00000 HopLimit: 0x00 TClass: 0x00
SL: 0 Mtu: 8192 Rate: 100g PktLifeTime: 134 ms Pref: 0
Rate NodeGUID Port Type Name
100g 0x001175010157409d 1 FI goblin hfi1_0
-> 0x00117501025131cb 44 SW edge1
100g 0x00117501025131cb 40 SW edge1
-> 0x001175010157403d 1 FI orc hfi1_0
2 Links Traversed8.5.1.10.3. Obtain very detailed information about nodes
Note
To shorten the length of the output, the following example focuses on only one node.
[root@phwtpriv27 ~]$ opareport -o nodes -F node:"duster hfi1_0" -d 5 -s
Getting All Node Records...
Done Getting All Node Records
Done Getting All Link Records
Done Getting All Cable Info Records
Done Getting All SM Info Records
Done Getting vFabric Records
Getting All Port Counters...
Done Getting All Port Counters
Node Type Summary
Focused on:
Node: 0x0002b3010100002b FI duster hfi1_0
48 Connected FIs in Fabric:
Name: duster hfi1_0
NodeGUID: 0x0002b3010100002b Type: FI
Ports: 1 PartitionCap: 16 SystemImageGuid: 0x0002b3010100002b
BaseVer: 128 SmaVer: 128 VendorID: 0x2b3 DeviceID: 0x7220 Rev: 0x60002
1 Connected Ports:
PortNum: 1 LID: 0x0006 GUID: 0x0002b3010100002b
Neighbor: Name: MOOSE_STL_SWITCH0
NodeGUID: 0x0002b30102000000 Type: SW PortNum: 5
LocalPort: 1 PortState: Active PhysState: LinkUp
IsSMConfigurationStarted: True NeighborNormal: True
PortType: Standard
LID: 0x0006 LMC: 0 Subnet: 0xfe80000000000000
SMLID: 0x0002 SMSL: 0 RespTimeout: 8 ms SubnetTimeout: 536 ms
M_KEY: 0x0000000000000000 Lease: 0 s Protect: Read-only
MTU Supported: (0x6) 8192 bytes
VLStallCount (per VL): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MTU Active by VL:
00: 8192 01: 0 02: 0 03: 0 04: 0 05: 0 06: 0 07: 0
08: 0 09: 0 10: 0 11: 0 12: 0 13: 0 14: 0 15: 2048
16: 0 17: 0 18: 0 19: 0 20: 0 21: 0 22: 0 23: 0
24: 0 25: 0 26: 0 27: 0 28: 0 29: 0 30: 0 31: 0
LinkWidth: Active: 4 Supported: 1,2,3,4 Enabled: 1,2,3,4
LinkWidthDnGrade: ActiveTx: 4 Rx: 4 Supported: 1,2,3,4 Enabled: 3,4
PortLinkMode: Active: STL Supported: STL Enabled: STL
LinkSpeed: Active: 25Gb Supported: 25Gb Enabled: 25Gb
SM_TrapQP: 0x0 SA_QP: 0x1 IPAddr Prim/Sec: :: / 0.0.0.0
VLs: Active: 8+1 Supported: 8+1
HOQLife (Per VL):
VL 0: 0x0 VL 1: 0x0 VL 2: 0x0 VL 3: 0x0 VL 4: 0x0
VL 5: 0x0 VL 6: 0x0 VL 7: 0x0 VL 8: 0x0 VL 9: 0x0
VL10: 0x0 VL11: 0x0 VL12: 0x0 VL13: 0x0 VL14: 0x0
VL15: 0x0
VL Arb Cap: High: 16 Low: 16 HiLimit: 0 PreemptLimit 0
VLFlowControlDisabledMask: 0x00000000
NeighborMode MgmtAllowed: No FwAuthenBypass: Off NeighborNodeType: Switch
Capability 0x00000000: -
Capability3 0x0008: SS
Violations: M_Key: 0 P_Key: 0 Q_Key: 0
PortMode ActiveOptimize: Off PassThrough: Off VLMarker: Off
FlitCtrlInterleave Distance Max: 0 Enabled: 0
MaxNestLevelTxEnabled: 10 MaxNestLevelRxSupported: 10
SmallPktLimit: 0x07 MaxSmallPktLimit: 0xff PreemptionLimit: 0x10
FlitCtrlPreemption MinInital: 80 MinTail: 80 LargePktLim: 0x07
BufferUnits: VL15Init 0x0040; VL15CreditRate 0x00; CreditAck 0x0; BufferAlloc 0x3
PortErrorActions: 0x172000: CE-UVLMCE-BCDCE-BTDCE-BHDR-BVLM
ReplayDepth Buffer 0x00; Wire 0x00
DiagCode: 0x0000
OverallBufferSpace: 0x0900
P_Key Enforcement: In: Off Out: Off
Performance: Transmit
Xmit Data 0 MB (5677 Flits)
Xmit Pkts 63
MC Xmt Pkts 0
Performance: Receive
Rcv Data 0 MB (3762 Flits)
Rcv Pkts 57
MC Rcv Pkts 0
Performance: Congestion
Congestion Discards 0
Rcv FECN 0
Rcv BECN 0
Mark FECN 0
Xmit Time Congestion 0
Xmit Wait 0
Performance: Bubbles
Xmit Wasted BW 0
Xmit Wait Data 0
Rcv Bubble 0
Errors: Signal Integrity
Link Qual Indicator 5 (Excellent)
Uncorrectable Errors 0
Link Downed 0
Rcv Errors 0
Exc. Buffer Overrun 0
FM Config Errors 0
Link Error Recovery 0
Local Link Integ Err 0
Rcv Rmt Phys Err 0
Errors: Security
Xmit Constraint 0
Rcv Constraint 0
Errors: Routing
Rcv Sw Relay Err 0
Xmit Discards 0
QSFP: ActiveCu , 1m STL Simulator
Power Class 5, 4.0W max S/N 0x0000000000033
OUI 0x0002B3
Cable Type: Linear active copper cable
Speed Sup: 0 Gb
1 Matching FIs Found
1 Connected Switches in Fabric:
0 Matching Switches Found
1 Connected SMs in Fabric:
0 Matching SMs Found
-------------------------------------------------------------------------------8.5.1.10.4. Obtain very detailed information about IOCs
Note
To shorten the length of the output, the following example focuses on only one IOC.
[root@duster root]# opareport -o ious -F ioc:'Chassis 0x00066A005000010C, Slot 2,
IOC 2' -d 5
IOU Summary Focused on:
Ioc: 2 0x00066a02300001e0 Chassis 0x00066A005000010C, Slot 2, IOC 2
in Node: 0x00066a00580001e0 FI VEx in Chassis 0x00066a005000010c, Slot
1 IOUs in Fabric:
Name: VEx in Chassis 0x00066a005000010c, Slot 2
NodeGUID: 0x00066a00580001e0 Type: FI
Ports: 2 PartitionCap: 64 SystemImageGuid: 0x00066a00580001e0
BaseVer: 1 SmaVer: 1 VendorID: 0x66a DeviceID: 0x5a44 Rev: 0xa1
1 Connected Ports:
PortNum: 2 LID: 0x0013 GUID: 0x00066a02580001e0
Neighbor: 0x00066a00280002cd 3 SW InfiniCon Systems InfiniFabric
(Sw A Dev A)
PortState: Active PhysState: LinkUp DownDefault: Pollig
LID: 0x0013 LMC: 0 Subnet: 0xfe8000000000000
SMLID: 0x0001 SMSL: 0 RespTimeout: 33 ms SubnetTimeout: 56 ms
M_KEY: 0x0000000000000000 Lease: 0 s Protect: Readonly
MTU: Active: 2048 Supported: 2048 VL Stall: 0
LinkWidth: Active: 4x Supported: 1-4x Enabled: 1-4x
LinkSpeed: Active: 2.5Gb Supported: 2.5Gb Enabled: 2.5Gb
VLs: Active: 1+1 Supported: 4+1 HOQLife: 4096 ns
Capability 0x02090048: CR DM CM SL Trap
Violations: M_Key: 0 P_Key: 0 Q_Key: 0
ErrorLimits: Overrun: 15 LocalPhys: 15 DiagCode: 0x0000
P_Key Enforcement: In: Off Out: Off FilterRaw: In: Off Out: Off
Max IOCs: 3 Change ID: 9 DiagDeviceId: 0 Rom: 0
IocSlot: 2 GUID: 0x00066a02300001e0
ID String: Chassis 0x00066A005000010C, Slot 2, IOC 2
IO Class: 2000 SubClass: 66a Protocol: 0 Protocol Ver: 1
VendorID: 0x66a DeviceID: 0x30 Rev: 0x1
Subsystem: VendorID: 0x66a DeviceID: 0x30
Capability: 0x33: ST SF WT WF
Send Depth: 2 Size: 256; RDMA Read Depth: 0 RDMA Size: 4294967295
2 Services:
Name: InfiniNIC.InfiniConSys.Control:02
Id: 0x1000066a00000002
Name: InfiniNIC.InfiniConSys.Data:02
Id: 0x1000066a00000102
1 Matching IOUs Found8.5.1.10.5. Identify connections and links composing the fabric
[goblin1 root@goblin1]# opareport -o links Getting All Node Records... Done Getting All Node Records Done Getting All Link Records Done Getting All Cable Info Records Done Getting All SM Info Records Link Summary 96 Links in Fabric: Rate NodeGUID Port Type Name 100g 0x001175010157401b 1 FI goblin8 hfi1_0 <-> 0x00117501025131cb 7 SW edge2 100g 0x001175010157403d 1 FI goblin2 hfi1_0 <-> 0x00117501025131cb 40 SW edge2 100g 0x0011750101574053 1 FI goblin12 hfi1_0 <-> 0x00117501025131cb 23 SW edge2 100g 0x001175010157405c 1 FI goblin16 hfi1_0 <-> 0x00117501025019ab 33 SW edge1 100g 0x001175010157406c 1 FI goblin13 hfi1_0 <-> 0x00117501025019ab 42 SW edge1 100g 0x0011750101574071 1 FI goblin18 hfi1_0 <-> 0x00117501025131cb 4 SW edge2 100g 0x0011750101574074 1 FI goblin15 hfi1_0 <-> 0x00117501025019ab 41 SW edge1 100g 0x0011750101574077 1 FI goblin20 hfi1_0 <-> 0x00117501025131cb 3 SW edge2 100g 0x001175010157409d 1 FI goblin1 hfi1_0 <-> 0x00117501025131cb 44 SW edge2 100g 0x00117501015740bb 1 FI goblin22 hfi1_0 <-> 0x00117501025019ab 2 SW edge1 100g 0x00117501015740bd 1 FI goblin3 hfi1_0 <-> 0x00117501025131cb 43 SW edge2 100g 0x00117501015740db 1 FI goblin21 hfi1_0 <-> 0x00117501025019ab 10 SW edge1 100g 0x00117501015740e0 1 FI goblin41 hfi1_0 <-> 0x00117501025019ab 22 SW edge1 100g 0x00117501015740e3 1 FI goblin33 hfi1_0 <-> 0x00117501025131cb 48 SW edge2 100g 0x0011750101574e8b 1 FI goblin25 hfi1_0 <-> 0x00117501025019ab 46 SW edge1 100g 0x0011750101574f08 1 FI goblin45 hfi1_0 <-> 0x00117501025019ab 18 SW edge1 100g 0x0011750101574f6c 1 FI goblin42 hfi1_0 <-> 0x00117501025019ab 30 SW edge1 100g 0x0011750101574fea 1 FI goblin29 hfi1_0 <-> 0x00117501025131cb 32 SW edge2 100g 0x0011750101575021 1 FI goblin46 hfi1_0 <-> 0x00117501025019ab 25 SW edge1 100g 0x001175010157504e 1 FI goblin47 hfi1_0 <-> 0x00117501025019ab 17 SW edge1 100g 0x0011750101575068 1 FI goblin10 hfi1_0 <-> 0x00117501025131cb 24 SW edge2 100g 0x0011750101575082 1 FI goblin23 hfi1_0 <-> 0x00117501025019ab 9 SW edge1 100g 0x00117501015750a1 1 FI goblin48 hfi1_0 <-> 0x00117501025019ab 26 SW edge1 100g 0x001175010157513c 1 FI goblin34 hfi1_0 <-> 0x00117501025131cb 47 SW edge2 100g 0x0011750101575153 1 FI goblin35 hfi1_0 <-> 0x00117501025131cb 36 SW edge2 100g 0x001175010157515e 1 FI goblin4 hfi1_0 <-> 0x00117501025131cb 39 SW edge2 100g 0x0011750101575188 1 FI goblin17 hfi1_0 <-> 0x00117501025131cb 16 SW edge2 100g 0x00117501015751b8 1 FI goblin11 hfi1_0 <-> 0x00117501025131cb 27 SW edge2 100g 0x00117501015751c9 1 FI goblin30 hfi1_0 <-> 0x00117501025131cb 19 SW edge2 100g 0x00117501015751d6 1 FI goblin6 hfi1_0 <-> 0x00117501025131cb 8 SW edge2 100g 0x00117501015751dd 1 FI goblin37 hfi1_0 <-> 0x00117501025019ab 14 SW edge1 100g 0x00117501015751df 1 FI goblin43 hfi1_0 <-> 0x00117501025019ab 29 SW edge1 100g 0x00117501015751e5 1 FI goblin31 hfi1_0 <-> 0x00117501025131cb 20 SW edge2 100g 0x00117501015751ef 1 FI goblin38 hfi1_0 <-> 0x00117501025019ab 5 SW edge1 100g 0x00117501015751ff 1 FI goblin19 hfi1_0 <-> 0x00117501025131cb 15 SW edge2 100g 0x0011750101575f28 1 FI goblin39 hfi1_0 <-> 0x00117501025019ab 6 SW edge1 100g 0x0011750101575f63 1 FI goblin26 hfi1_0 <-> 0x00117501025019ab 45 SW edge1 100g 0x0011750101575f6a 1 FI goblin44 hfi1_0 <-> 0x00117501025019ab 21 SW edge1 100g 0x0011750101575fa1 1 FI goblin40 hfi1_0 <-> 0x00117501025019ab 13 SW edge1 100g 0x0011750101575fba 1 FI goblin7 hfi1_0 <-> 0x00117501025131cb 11 SW edge2 100g 0x0011750101575feb 1 FI goblin14 hfi1_0 <-> 0x00117501025019ab 34 SW edge1 100g 0x001175010157e3d1 1 FI goblin36 hfi1_0 <-> 0x00117501025131cb 35 SW edge2 100g 0x001175010157e3f0 1 FI goblin24 hfi1_0 <-> 0x00117501025019ab 1 SW edge1 100g 0x001175010157e3f3 1 FI goblin32 hfi1_0 <-> 0x00117501025131cb 31 SW edge2 100g 0x001175010157e406 1 FI goblin27 hfi1_0 <-> 0x00117501025019ab 38 SW edge1 100g 0x001175010157e40e 1 FI goblin9 hfi1_0 <-> 0x00117501025131cb 28 SW edge2 100g 0x001175010157e418 1 FI goblin28 hfi1_0 <-> 0x00117501025019ab 37 SW edge1 100g 0x001175010157e427 1 FI goblin5 hfi1_0 <-> 0x00117501025131cb 12 SW edge2 100g 0x00117501025019ab 3 SW edge1 <-> 0x0011750102513145 3 SW edge4 100g 0x00117501025019ab 4 SW edge1 <-> 0x0011750102513145 4 SW edge4 100g 0x00117501025019ab 7 SW edge1 <-> 0x0011750102513145 7 SW edge4 100g 0x00117501025019ab 8 SW edge1 <-> 0x0011750102513145 8 SW edge4 100g 0x00117501025019ab 11 SW edge1 <-> 0x0011750102513139 11 SW edge3 100g 0x00117501025019ab 12 SW edge1 <-> 0x0011750102513139 12 SW edge3 100g 0x00117501025019ab 15 SW edge1 <-> 0x0011750102513139 15 SW edge3 100g 0x00117501025019ab 16 SW edge1 <-> 0x0011750102513139 16 SW edge3 100g 0x00117501025019ab 19 SW edge1 <-> 0x0011750102513145 19 SW edge4 100g 0x00117501025019ab 20 SW edge1 <-> 0x0011750102513145 20 SW edge4 100g 0x00117501025019ab 23 SW edge1 <-> 0x0011750102513145 23 SW edge4 100g 0x00117501025019ab 24 SW edge1 <-> 0x0011750102513145 24 SW edge4 100g 0x00117501025019ab 27 SW edge1 <-> 0x0011750102513139 27 SW edge3 100g 0x00117501025019ab 28 SW edge1 <-> 0x0011750102513139 28 SW edge3 100g 0x00117501025019ab 31 SW edge1 <-> 0x0011750102513139 31 SW edge3 100g 0x00117501025019ab 32 SW edge1 <-> 0x0011750102513139 32 SW edge3 100g 0x00117501025019ab 35 SW edge1 <-> 0x0011750102513145 35 SW edge4 100g 0x00117501025019ab 36 SW edge1 <-> 0x0011750102513145 36 SW edge4 100g 0x00117501025019ab 39 SW edge1 <-> 0x0011750102513145 39 SW edge4 100g 0x00117501025019ab 40 SW edge1 <-> 0x0011750102513145 40 SW edge4 100g 0x00117501025019ab 43 SW edge1 <-> 0x0011750102513139 43 SW edge3 100g 0x00117501025019ab 44 SW edge1 <-> 0x0011750102513139 44 SW edge3 100g 0x00117501025019ab 47 SW edge1 <-> 0x0011750102513139 47 SW edge3 100g 0x00117501025019ab 48 SW edge1 <-> 0x0011750102513139 48 SW edge3 100g 0x0011750102513139 1 SW edge3 <-> 0x00117501025131cb 1 SW edge2 100g 0x0011750102513139 2 SW edge3 <-> 0x00117501025131cb 2 SW edge2 100g 0x0011750102513139 5 SW edge3 <-> 0x00117501025131cb 5 SW edge2 100g 0x0011750102513139 6 SW edge3 <-> 0x00117501025131cb 6 SW edge2 100g 0x0011750102513139 17 SW edge3 <-> 0x00117501025131cb 17 SW edge2 100g 0x0011750102513139 18 SW edge3 <-> 0x00117501025131cb 18 SW edge2 100g 0x0011750102513139 21 SW edge3 <-> 0x00117501025131cb 21 SW edge2 100g 0x0011750102513139 22 SW edge3 <-> 0x00117501025131cb 22 SW edge2 100g 0x0011750102513139 33 SW edge3 <-> 0x00117501025131cb 33 SW edge2 100g 0x0011750102513139 34 SW edge3 <-> 0x00117501025131cb 34 SW edge2 100g 0x0011750102513139 37 SW edge3 <-> 0x00117501025131cb 37 SW edge2 100g 0x0011750102513139 38 SW edge3 <-> 0x00117501025131cb 38 SW edge2 100g 0x0011750102513145 9 SW edge4 <-> 0x00117501025131cb 9 SW edge2 100g 0x0011750102513145 10 SW edge4 <-> 0x00117501025131cb 10 SW edge2 100g 0x0011750102513145 13 SW edge4 <-> 0x00117501025131cb 13 SW edge2 100g 0x0011750102513145 14 SW edge4 <-> 0x00117501025131cb 14 SW edge2 100g 0x0011750102513145 25 SW edge4 <-> 0x00117501025131cb 25 SW edge2 100g 0x0011750102513145 26 SW edge4 <-> 0x00117501025131cb 26 SW edge2 100g 0x0011750102513145 29 SW edge4 <-> 0x00117501025131cb 29 SW edge2 100g 0x0011750102513145 30 SW edge4 <-> 0x00117501025131cb 30 SW edge2 100g 0x0011750102513145 41 SW edge4 <-> 0x00117501025131cb 41 SW edge2 100g 0x0011750102513145 42 SW edge4 <-> 0x00117501025131cb 42 SW edge2 100g 0x0011750102513145 45 SW edge4 <-> 0x00117501025131cb 45 SW edge2 100g 0x0011750102513145 46 SW edge4 <-> 0x00117501025131cb 46 SW edge2
8.5.1.10.6. Reverse lookup
The following example translates a LID or GUID into the information about the node or port represented.
[root@duster duster]# opareport -o nodes -F lid:5
Getting All Node Records...
Done Getting All Node Records
Done Getting All Link Records
Done Getting All Cable Info Records
Done Getting All SM Info Records
Node Type Summary
Focused on:
Port: 1 0x0011750101574071
in Node: 0x0011750101574071 FI goblin2 hfi1_0
48 Connected FIs in Fabric:
Name: goblin2 hfi1_0
NodeGUID: 0x0011750101574071 Type: FI
Ports: 1 PartitionCap: 16 SystemImageGuid: 0x0011750101574071
BaseVer: 128 SmaVer: 128 VendorID: 0x1175 DeviceID: 0x24f0 Rev: 0x0
1 Connected Ports:
PortNum: 1 LID: 0x0005 GUID: 0x0011750101574071
Neighbor: Name: edge1
NodeGUID: 0x00117501025131cb Type: SW PortNum: 4
Width: 4 Speed: 25Gb Downgraded? No
1 Matching FIs Found
4 Connected Switches in Fabric:
0 Matching Switches Found
1 Connected SMs in Fabric:
0 Matching SMs Found
----------------------------------------8.5.1.10.7. Forward lookup
The following example returns information about nodes or IOCs listed by name.
[root@duster root]# opareport -o nodes -F "node:goblin2 hfi1_0"
Getting All Node Records...
Done Getting All Node Records
Done Getting All Link Records
Done Getting All Cable Info Records
Done Getting All SM Info Records
Node Type Summary
Focused on:
Node: 0x0011750101574071 FI goblin2 hfi1_0
48 Connected FIs in Fabric:
Name: goblin2 hfi1_0
NodeGUID: 0x0011750101574071 Type: FI
Ports: 1 PartitionCap: 16 SystemImageGuid: 0x0011750101574071
BaseVer: 128 SmaVer: 128 VendorID: 0x1175 DeviceID: 0x24f0 Rev: 0x0
1 Connected Ports:
PortNum: 1 LID: 0x0005 GUID: 0x0011750101574071
Neighbor: Name: edge1
NodeGUID: 0x00117501025131cb Type: SW PortNum: 4
Width: 4 Speed: 25Gb Downgraded? No
1 Matching FIs Found
4 Connected Switches in Fabric:
0 Matching Switches Found
1 Connected SMs in Fabric:
0 Matching SMs Found
-------------------------------------------------------------------------------8.5.1.10.8. Generate report for comparison
The following example generates a report so topology verification can be performed against a known good configuration.
Note
To shorten the length of the output, the following example focuses on only one node.
[root@phwtpriv27 ~]$ opareport -o nodes -F node:"goblin02 hfi1_0" -d 5 -P
Getting All Node Records...
Done Getting All Node Records
Done Getting All Link Records
Done Getting All Cable Info Records
Done Getting All SM Info Records
Done Getting vFabric Records
Node Type Summary
Focused on:
Node: 0x0002b3010100002b FI goblin02 hfi1_0
48 Connected FIs in Fabric:
Name: goblin02 hfi1_0
NodeGUID: 0x0002b3010100002b Type: FI
Ports: 1 PartitionCap: 16 SystemImageGuid: 0x0002b3010100002b
BaseVer: 128 SmaVer: 128 VendorID: 0x2b3 DeviceID: 0x7220 Rev: 0x60002
1 Connected Ports:
PortNum: 1 LID: xxxxxx GUID: 0x0002b3010100002b
Neighbor: Name: MOOSE_STL_SWITCH0
NodeGUID: 0x0002b30102000000 Type: SW PortNum: 5
LocalPort: 1 PortState: Active PhysState: LinkUp
IsSMConfigurationStarted: True NeighborNormal: True
PortType: Standard
LID: xxxxxx LMC: 0 Subnet: 0xfe80000000000000
SMLID: xxxxxx SMSL: 0 RespTimeout: 8 ms SubnetTimeout: 536 ms
M_KEY: 0x0000000000000000 Lease: 0 s Protect: Read-only
MTU Supported: (0x6) 8192 bytes
VLStallCount (per VL): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MTU Active by VL:
00: 8192 01: 0 02: 0 03: 0 04: 0 05: 0 06: 0 07: 0
08: 0 09: 0 10: 0 11: 0 12: 0 13: 0 14: 0 15: 2048
16: 0 17: 0 18: 0 19: 0 20: 0 21: 0 22: 0 23: 0
24: 0 25: 0 26: 0 27: 0 28: 0 29: 0 30: 0 31: 0
LinkWidth: Active: 4 Supported: 1,2,3,4 Enabled: 1,2,3,4
LinkWidthDnGrade: ActiveTx: 4 Rx: 4 Supported: 1,2,3,4 Enabled: 3,4
PortLinkMode: Active: STL Supported: STL Enabled: STL
LinkSpeed: Active: 25Gb Supported: 25Gb Enabled: 25Gb
SM_TrapQP: 0x0 SA_QP: 0x1 IPAddr Prim/Sec: :: / 0.0.0.0
VLs: Active: 8+1 Supported: 8+1
HOQLife (Per VL):
VL 0: 0x0 VL 1: 0x0 VL 2: 0x0 VL 3: 0x0 VL 4: 0x0
VL 5: 0x0 VL 6: 0x0 VL 7: 0x0 VL 8: 0x0 VL 9: 0x0
VL10: 0x0 VL11: 0x0 VL12: 0x0 VL13: 0x0 VL14: 0x0
VL15: 0x0 VL16: 0x0 VL17: 0x0 VL18: 0x0 VL19: 0x0
VL20: 0x0 VL21: 0x0 VL22: 0x0 VL23: 0x0 VL24: 0x0
VL25: 0x0 VL26: 0x0 VL27: 0x0 VL28: 0x0 VL29: 0x0
VL30: 0x0 VL31: 0x0
VL Arb Cap: High: 16 Low: 16 HiLimit: 0 PreemptLimit 0
VLFlowControlDisabledMask: 0x00000000
NeighborMode MgmtAllowed: No FwAuthenBypass: Off NeighborNodeType: Switch
Capability 0x00000000: -
Capability3 0x0008: SS
Violations: M_Key: xxxxx P_Key: xxxxx Q_Key: xxxxx
PortMode ActiveOptimize: Off PassThrough: Off VLMarker: Off
FlitCtrlInterleave Distance Max: 0 Enabled: 0
MaxNestLevelTxEnabled: 10 MaxNestLevelRxSupported: 10
SmallPktLimit: 0x07 MaxSmallPktLimit: 0xff PreemptionLimit: 0x10
FlitCtrlPreemption MinInital: 80 MinTail: 80 LargePktLim: 0x07
BufferUnits: VL15Init 0x0040; VL15CreditRate 0x00; CreditAck 0x0; BufferAlloc 0x3
PortErrorActions: 0x172000: CE-UVLMCE-BCDCE-BTDCE-BHDR-BVLM
ReplayDepth Buffer 0x00; Wire xxxx
DiagCode: 0x0000
OverallBufferSpace: 0x0900
P_Key Enforcement: In: Off Out: Off
QSFP: ActiveCu , 1m STL Simulator
Power Class 5, 4.0W max S/N 0x0000000000033
OUI 0x0002B3
Cable Type: Linear active copper cable
Speed Sup: 0 Gb
1 Matching FIs Found
1 Connected Switches in Fabric:
0 Matching Switches Found
1 Connected SMs in Fabric:
0 Matching SMs Found
----------------------------------------------------------------------------8.5.1.11. Snapshots
You can take a snapshot of the fabric state for later offline analysis using the -o snapshot report. This report generates an XML snapshot of the present fabric status in a format that opareport can parse.
Note
Cornelis recommends that you do not develop your own tools against this format because it may change in future versions of opareport.
The snapshot capability can be used to provide powerful analysis capabilities. Multiple reports can be run against the exact same fabric snapshot, which saves time by not requiring the subsequent reports to query the fabric. Also, historic snapshots can be retained for later offline analysis or historical tracking of the fabric.
When a snapshot is generated, no additional -o options are allowed during the run and certain opareport options are ignored. These include: -F, -P, -H, and -N. However, the following options are valid:
-sincludes port counters in the snapshot.-rincludes switch routing tables in the snapshot.-Vincludes QoS VL-related tables in the snapshot.-i,-L,-a, and-Ccontrol the port counters.
Note
Quarantined nodes cannot be obtained from a snapshot.
opareport -o quarantinednodes -X snapshotdoes not give the quarantined nodes on a snapshot of the same fabric.Use
opareport -o quarantinednodesto return the quarantined nodes on a fabric with quarantined nodes.
After a snapshot has been generated, it may then be used as input to generate many types of opareport reports. To do this, use the -X snapshot_input option, where the snapshot_input file is the output from a previous snapshot run. When using a snapshot as input, the fabric is not accessed and the node running opareport does not need to be attached to the fabric. Because this is a static report, certain options are not available, including -i, -a, -C, -h HFI, and -p port.
The report generated from the snapshot includes port counters only if the original snapshot was run with the -s option. If not, reports such as -o errors are not permitted against the snapshot.
Similarly, certain reports are permitted only if the original snapshot was run with the -r option. This includes: -o linear, -o mcast,-o portusage, -o pathusage, -o treepathusage, and -o route.
If you want to use standard input (stdin) for the snapshot file, then specify -X. This can be helpful if snapshots are piped through gzip/gunzip to conserve disk space.
Note
Limitations of -o route:
The Path Records reported may not be complete. The report shows the minimum valid value or an invalid value because certain fields such as
SLID,SL,PKey,MTU,Rate, andPktLifeTimeare not available. These values do not impact the actual route shown.Some routes reported may not be incomplete or not available to applications.