opaextractmissinglinks(8)

okay so bestie, listen. opaextractmissinglinks is that girl. she makes you a CSV file listing all β€” or like, some β€” of the links in your fabric. no cap.

she's basically a front end to the opareport tool, and what she does is generate a report of every link that's present in the topology file you hand her but missing in the actual fabric. it's giving "where did my cables go" energy. 😭

and the glow-up? the output can be imported into a spreadsheet or parsed by other scripts. she's versatile like that. πŸ’…


✨ Syntax ✨

opaextractmissinglinks [-T topology_input] [-o report]
[opareport  options]

yes the spacing there is iconic and we keep it. πŸŽ€


🌸 Options 🌸

  • --help β€” produces the full help text. she'll tell you everything, she's an open book 🫢
  • -T/--topology topology_input β€” picks which topology file to verify against. default is /etc/opa/topology.0:0.xml. iykyk
  • -o/--output report β€” picks the report type for the output. go check Report Types below for the deets, bestie.
  • opareport options β€” the following get passed straight through to opareport. this subset is what's considered typical and useful for this command. think of them as the VIP guests πŸ’…
    • -h/--hfi hfi β€” specifies the HFI, numbered 1..n. using 0 means the -p port is a system-wide port number. default is 0.
    • -p/--port port β€” specifies the port, numbered 1..n. using 0 means the first active port. default is 0.
    • -X/--infile snapshot_input β€” generates a report using the data in the snapshot_input file. snapshot_input must have been generated during a previous -o snapshot run. when this is used, the -s, -i, -C, and -a options are ignored. and yeah, '-' can be used as snapshot_input to mean stdin. πŸ¦‹
    • -F/--focus point β€” specifies the focus area for the report. used for all reports except route, to limit the scope of the report. go see Point Syntax for the details.

πŸŽ€ -h and -p selections πŸŽ€

the -h and -p options let you do a whole variety of selections, and honestly? slay:

  • -h 0 β€” first active port in system (Default).
  • -h 0 -p 0 β€” first active port in system.
  • -h x β€” first active port on HFI x.
  • -h x -p 0 β€” first active port on HFI x.
  • -h 0 -p y β€” port y within system (no matter which ports are active).
  • -h x -p y β€” HFI x, port y.

πŸ¦‹ Report Types πŸ¦‹

  • verifylinks β€” compares fabric (or snapshot) links to the supplied topology and identifies differences and omissions. the classic πŸ’–
  • verifyextlinks β€” same deal, compares fabric (or snapshot) links to the supplied topology and identifies differences and omissions, but limits the analysis to links external to systems.
  • verifyfilinks β€” compares fabric (or snapshot) links to the supplied topology and identifies differences and omissions. limits analysis to links to FIs.
  • verifyislinks β€” compares fabric (or snapshot) links to the supplied topology and identifies differences and omissions. limits analysis to inter-switch links.
  • verifyextislinks β€” compares fabric (or snapshot) links to the supplied topology and identifies differences and omissions. limits analysis to inter-switch links external to systems.
  • verifyall β€” returns verifyfis, verifysws, verifysms, and verifylinks reports. the whole menu, bestie πŸ‘‘

πŸ‘‘ Point Syntax πŸ‘‘

this is the big one, so lock in. ✨

  • gid:value β€” value is the numeric port GID, of the form: subnet:guid.
  • lid:value β€” value is the numeric LID.
  • lid:value:node β€” value is the numeric LID; selects the entire node with the given LID.
  • lid:value:port:value2 β€” value is the numeric LID of the node, value2 is the port number.
  • portguid:value β€” value is the numeric port GUID.
  • nodeguid:value β€” value is the numeric node GUID.
  • nodeguid:value1:port:value2 β€” value1 is the numeric node GUID, value2 is the port number.
  • iocguid:value β€” value is the numeric IOC GUID.
  • iocguid:value1:port:value2 β€” value1 is the numeric IOC GUID, value2 is the port number.
  • systemguid:value β€” value is the numeric system image GUID.
  • systemguid:value1:port:value2 β€” value1 is the numeric system image GUID, value2 is the port number.
  • ioc:value β€” value is the IOC Profile ID String (IOC Name).
  • ioc:value1:port:value2 β€” value1 is the IOC Profile ID String (IOC Name), value2 is the port number.
  • iocpat:value β€” value is a glob pattern for the IOC Profile ID String (IOC Name).
  • iocpat:value1:port:value2 β€” value1 is a glob pattern for the IOC Profile ID String (IOC Name), value2 is the port number.
  • ioctype:value β€” value is the IOC type (SRP or OTHER).
  • ioctype:value1:port:value2 β€” value1 is the IOC type (SRP or OTHER); value2 is the port number.
  • node:value β€” value is the node description (node name).
  • node:value1:port:value2 β€” value1 is the node description (node name), value2 is the port number.
  • nodepat:value β€” value is a glob pattern for the node description (node name).
  • nodepat:value1:port:value2 β€” value1 is the glob pattern for the node description (node name), value2 is the port number.
  • nodedetpat:value β€” value is a glob pattern for node details.
  • nodedetpat:value1:port:value2 β€” value1 is the glob pattern for the node details, value2 is the port number.
  • nodetype:value β€” value is the node type (SW or FI).
  • nodetype:value1:port:value2 β€” value1 is the node type (SW or FI), value2 is the port number.
  • rate:value β€” value is a string for the rate (25g, 50g, 75g, 100g); omits switch mgmt port 0.
  • portstate:value β€” value is a string for state (down, init, armed, active, notactive, initarmed).
  • portphysstate:value β€” value is a string for PHYs state (polling, disabled, training, linkup, recovery, offline, test)
  • mtucap:value β€” value is the MTU size (2048, 4096, 8192, 10240); omits switch mgmt port 0.
  • labelpat:value β€” value is a glob pattern for the cable label.
  • lengthpat:value β€” value is a glob pattern for the cable length.
  • cabledetpat:value β€” value is a glob pattern for cable details.
  • cabinflenpat:value β€” value is a glob pattern for cable info length.
  • cabinfvendnamepat:value β€” value is a glob pattern for cable info vendor name.
  • cabinfvendpnpat:value β€” value is a glob pattern for cable info vendor part number.
  • cabinfvendrevpat:value β€” value is a glob pattern for cable info vendor revision.
  • cabinfvendsnpat:value β€” value is a glob pattern for cable info vendor serial number.
  • cabinftype:value β€” value is either optical, passive_copper, active_copper, or unknown.
  • linkdetpat:value β€” value is a glob pattern for link details.
  • portdetpat:value β€” value is a glob pattern for port details.
  • sm β€” specifies the master subnet manager (SM).
  • smdetpat:value β€” value is a glob pattern for SM details.
  • route:point1:point2 β€” specifies all ports along the routes between the two given points.
  • led:value β€” value is either on or off for the LED port beacon.
  • linkqual:value β€” specifies the ports with a link quality equal to value.
  • linkqualLE:value β€” specifies the ports with a link quality less than or equal to value.
  • linkqualGE:value β€” specifies the ports with a link quality greater than or equal to value.
  • nodepatfile:FILENAME β€” specifies the name of the file with the list of nodepats or node descriptions.
  • nodepairpatfile:FILENAME β€” specifies the name of the file with the list of node pairs, separated by a colon.
  • ldr β€” specifies the ports with a non-zero link down reason or neighbor link down reason.
  • ldr:value β€” specifies the ports with a link down reason or neighbor link down reason equal to value.

🌈 Examples 🌈

list all the missing links in the fabric:

opaextractmissinglinks

list all the missing links to a switch named "coresw1":

opaextractmissinglinks -T topology.0:0.xml -F "node:coresw1"

list all the missing connections to end-nodes:

opaextractmissinglinks -o verifyfilinks

list all the missing links on the 2nd HFI's fabric of a multi-plane fabric:

opaextractmissinglinks -h 2 -T /etc/opa/topology.2:1.xml

list all the missing links between two switches:

opaextractmissinglinks -o verifyislinks -T topology.0:0.xml

πŸ’€ reminder bestie: this whole thing is a front end to opareport, so if opareport is acting up, she's acting up. not her fault, fr fr.

and that's the whole page, gorgeous. 🌸 copyright(C) 2015-2019 Intel Corporation, and this lil' manual page is opaextractmissinglinks(8). go find those missing links, you absolute icon. πŸ’…βœ¨πŸ¦‹