opasaquery(1)

πŸŽ€ opasaquery(1) πŸŽ€

IFSFFCLIRG (Man Page) β€” yeah bestie, that's the family this one lives in πŸ’–


✨ NAME ✨

opasaquery β€” (All) does a whole bunch of different queries against the subnet manager / subnet agent and hands you back detailed fabric info. It's giving fabric detective energy πŸ•΅οΈβ€β™€οΈβœ¨

So like, opareport and opareports from the Intel(R) Omni-Path Fabric Suite are honestly a more powerful tool overall. But sometimes opasaquery is just the girl for the job β€” especially when you're messing with virtual fabrics, service records, and multicast. iykyk πŸ’…

By default, opasaquery uses the first active port on the local system. But lowkey, if your node is connected to more than one fabric (like, a subnet), you can specify the Intel(R) Omni-Path Host Fabric Interface (HFI) and port to pick exactly which fabric's SA you're querying. main character selection energy πŸ‘‘


🌸 Syntax 🌸

opasaquery [-v [-v] [-v]] [-I] [-h  hfi|-b  addr] [-p  port] [--timeout]
[-x  gid] [-E] [-T  ssl_params] [-o  type] [-l  lid] [-t  type] [-s
guid]
[-n  guid] [-g  guid] [-k  pkey] [-i  vfIndex] [-S  serviceId] [-L  sl]
[-u  gid] [-m  gid] [-d  nodeDescription]  [-D  dg_name]  [-P 'guid
guid']
[-G 'gid gid'] [-H  mask]

πŸ’… Options πŸ’…

  • --help β€” spills the full help text, no cap 🫢
  • -v, --verbose β€” gives you verbose output. Hit it a second time and it turns on openib debugging; a third time turns on libibumad debugging. Three layers deep, obsessed 😭
  • -I, --IB β€” issues the query in legacy InfiniBand* format. vintage, but make it fashion ✨
  • -h, --hfi hfi β€” specifies the HFI, numbered 1..n. Using 0 means the -p port port is a system-wide port number. Default is 0.
  • -b, --oob address β€” specifies the Out-of-Band address of the node running the FE. Can be a hostname, an IPv4, or an IPv6 address. Default is "127.0.0.1".
  • -p, --port port β€” specifies the port. Details:
    • In-band: numbered 1..n. Using 0 specifies the first active port. Default is 0.
    • Out-of-band: the port the FE is listening on. Default is 3245.
  • --timeout β€” specifies the timeout (aka the wait time for a response) in ms. Default is 1000 ms. she's patient but not that patient πŸ•
  • -x, --source-gid src_gid β€” specifies the source GID of the local GID. (This is required for most Path and Trace Record Queries when Out-of-Band.) ⚠️ don't forget it
  • -E, --feEsm β€” specifies the ESM FE.
  • -T, --ssl-params file β€” specifies the SSL/TLS parameters XML file. Default is /etc/opa/opamgt_tls.xml. πŸ”
  • -o type β€” output type for the query. Default is node. See Output Types for the deets.
  • -l, --lid lid β€” query a specific LID.
  • -t, --type node_type β€” queries by node type. See Node Types for the deets.
  • -s, --sysguid system_image_guid β€” queries by system image GUID.
  • -n, --nodeguid node_guid β€” queries by node GUID.
  • -g, --portguid port_guid β€” queries by port GUID.
  • -k, --pkey pkey β€” queries a specific PKey.
  • -i, --vfindex vfIndex β€” queries a specific vfindex.
  • -S, --serviceId serviceId β€” queries a specific service ID.
  • -L, --SL SL β€” queries by service level.
  • -u, --portgid port_gid β€” queries by port GID. See GIDs for the deets.
  • -m, --mcgid multicast_gid β€” queries by multicast GID. See GIDs for the deets.
  • -d, --desc node_description β€” queries by node name/description.
  • -D, --dgname dg_name β€” queries by device group name/description.
  • -P, --guidpair guid guid β€” queries by a pair of port GUIDs.
  • -G, --gidpair gid gid β€” queries by a pair of GIDs. See GIDs for the deets.

πŸ¦‹ -h and -p options permit a variety of selections πŸ¦‹

like, mix and match, bestie:

  • -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.

🌈 Node Types 🌈

  • fi β€” Fabric Interface
  • sw β€” Switch

short and sweet, periodt πŸ’…


⭐ GIDs ⭐

Specifies a 64-bit subnet and a 64-bit interface ID in the form:

subnet:interface

NOTE: In the following example, the GID corresponds to a PortGID. In this case, the interface ID coincides with the lower 64-bits of the GUID of the card. The interface ID will be different if the GID is a MGID (that is, multicast GID). See opafm.xml for MGID examples. πŸ‘€
0xfe80000000000000:0x00117500a0000380

πŸ’– Output Types πŸ’–

Default is node. Here's the whole roster, no skips:

  • classportinfo β€” Specifies the classportinfo of the SA.
  • systemguid β€” Lists the system image GUIDs.
  • nodeguid β€” Lists the node GUIDs.
  • portguid β€” Lists the port GUIDs.
  • lid β€” Lists the LIDs.
  • desc β€” Lists the node descriptions/names.
  • path β€” Lists the path records.
  • node β€” Lists the node records.
  • portinfo β€” Lists the port info records.
  • sminfo β€” Lists the SM info records.
  • swinfo β€” Lists the switch info records.
  • link β€” Lists the link records.
  • scsc β€” Lists the SC to SC mapping table records.
  • slsc β€” Lists the SL to SC mapping table records.
  • scsl β€” Lists the SC to SL mapping table records.
  • scvlt β€” Lists the SC to VLt table records.
  • scvlr β€” Lists the SC to VLr table records.
  • scvlnt β€” Lists the SC to VLnt table records.
  • vlarb β€” Lists the VL arbitration table records.
  • pkey β€” Lists the PKey table records.
  • service β€” Lists the service records.
  • mcmember β€” Lists the multicast member records.
  • inform β€” Lists the inform info records.
  • linfdb β€” Lists the switch linear forwarding database (FDB) records.
  • mcfdb β€” Lists the switch multicast FDB records.
  • trace β€” Lists the trace records.
  • vfinfo β€” Lists the vFabrics.
  • vfinfocsv β€” Lists the vFabrics in CSV format.
  • vfinfocsv2 β€” Lists the vFabrics in CSV format with enums.
  • fabricinfo β€” Specifies the summary of fabric devices.
  • quarantine β€” Lists the quarantined nodes.
  • conginfo β€” Lists the Congestion Info Records.
  • swcongset β€” Lists the Switch Congestion Settings.
  • swportcong β€” Lists the Switch Port Congestion Settings.
  • hficongset β€” Lists the HFI Congestion Settings.
  • hficongcon β€” Lists the HFI Congestion Control Settings.
  • bfrctrl β€” Lists the buffer control tables.
  • cableinfo β€” Lists the Cable Info records.
  • portgroup β€” Lists the AR Port Group records.
  • portgroupfdb β€” Lists the AR Port Group FWD records.
  • dglist β€” Lists the Device Group Names.
  • dgmember β€” Lists the Device Group records.
  • dtree β€” Lists the Device Tree records.
  • swcost β€” Lists the switch cost records.

The vfinfocsv and vfinfocsv2 output formats are designed to make it easier to script vfinfo queries. One line is output per vFabric, of the form:

name:index:pkey:sl:mtu:rate:optionflag::mcastSl

The only difference between these two formats is how the MTU and rate get output. vfinfocsv outputs MTU and rate in human/text readable format. vfinfocsv2 outputs MTU and rate as enumerations defined for the SMA protocol. The opagetvf command is based on this capability of opasaquery. For more information, see opagetvf. πŸ”₯


🧚 Example 🧚

opasaquery -o desc -t fi

πŸ¦‹ Input Options vs. Output Permitted πŸ¦‹

okay bestie, this next bit is so important and it's literally the whole vibe check of opasaquery: not every input option lets you ask for every output. like, some combos just are not it. here's the full rundown of what input (the assorted query you make with options) plays nice with which outputs (-o) πŸ’–


✨ None ✨

no input option at all? you still get options, bestie πŸ‘‘

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, path, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, vfinfo, vfinfocsv, vfinfocsv2, scsc, slsc, scvlt, scnlmt, linfdb, classportinfo, fabricinfo, quarantine, conginfo, swcongset, swportcong, hficongset, hficongcon, bfrctl, cableinfo, portgroup, portgroupfdb, dglist, dgmember, dtree
  • ❌ -o output not permitted: trace
yes, linfdb really is in there twice. that's the manpage's business, not mine. 🫢

-t node_type

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, node, dglist, dgmember, dtree
  • ❌ -o output not permitted: portinfo, sminfo, swinfo, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, trace, vfinfo, vfinfocsv, vfinfocsv2

-l lid

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, path, node, portinfo, swinfo, slvl, vlarb, pkey, mcmember, linfdb, mcfdb, dgmember, dtree
  • ❌ -o output not permitted: sminfo, link, inform, service, trace, vfinfo, vfinfocsv, vfinfocsv2, dglist

-k pkey

  • βœ… -o output permitted: mcmember, path, vfinfo, vfinfocsv, vfinfocsv2
  • ❌ -o output not permitted: systemimageguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, dglist, dgmember, dtree
iykyk β€” yes, mcmember is in both lists for -k. that's exactly what the page says. don't come for me πŸ’…

-i vfindex

  • βœ… -o output permitted: vfinfo, vfinfocsv, vfinfocsv2
  • ❌ -o output not permitted: systemimageguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, dglist, dgmember, dtree

-s system_image_guid

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, node
  • ❌ -o output not permitted: portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, trace, vfinfo, vfinfocsv, vfinfocsv2, dglist, dgmember, dtree

-n node_guid

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, node
  • ❌ -o output not permitted: portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, trace, vfinfo, vfinfocsv, vfinfocsv2, dglist, dgmember, dtree

-g port_guid

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, path, node, trace, dgmember
  • ❌ -o output not permitted: portinfo, sminfo, swinfo, link, vlarb, pkey, linfdb, mcfdb, vfinfo, vfinfocsv, vfinfocsv2, dglist, dtree, service, mcmember, inform

-u port_gid

  • βœ… -o output permitted: path, service, mcmember, inform, trace
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, linfdb, mcfdb, vfinfo, vfinfocsv, vfinfocsv2, dglist, dgmember, dtree

-m multicast_gid

  • βœ… -o output permitted: mcmember, vfinfo, vfinfocsv, vfinfocsv2
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, path, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, inform, linfdb, mcfdb, trace, dglist, dgmember, dtree

-d node_description

  • βœ… -o output permitted: systemguid, nodeguid, portguid, lid, desc, node, dgmember
  • ❌ -o output not permitted: trace, dglist, dtree

-D dg_name

  • βœ… -o output permitted: dgmember
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, path, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, inform, linfdb, mcfdb, trace, dglist, dtree

-P port_guid_pair

  • βœ… -o output permitted: path, trace
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, dglist, dgmember, dtree

-S serviceId

  • βœ… -o output permitted: path, vfinfo, vfinfocsv, vfinfocsv2, service
  • ❌ -o output not permitted: systemimageguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, mcmember, inform, linfdb, mcfdb, dglist, dgmember, dtree

-L SL

  • βœ… -o output permitted: path, vfinfo, vfinfocsv, vfinfocsv2
  • ❌ -o output not permitted: systemimageguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, dglist, dgmember, dtree

-G gid_pair

  • βœ… -o output permitted: path, trace
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, dglist, dgmember, dtree

-a port_guid_list

  • βœ… -o output permitted: path
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, trace, dglist, dgmember, dtree

-A gid_list

  • βœ… -o output permitted: path
  • ❌ -o output not permitted: systemguid, nodeguid, portguid, lid, desc, node, portinfo, sminfo, swinfo, link, vlarb, pkey, service, mcmember, inform, linfdb, mcfdb, trace, dglist, dgmember, dtree

so yeah β€” that's the whole compatibility grid, bestie. if you try an input/output pair that's in the "not permitted" column, don't be shocked when it doesn't vibe. 🌸

πŸ’€ also peep that a couple of these lists use systemimageguid while the None list uses systemguid. that's literally what's written, so that's literally what you get. no cap.

and that's a wrap on opasaquery(1)! πŸŽ€ big Copyright(C) 2015-2019 Intel Corporation energy up in here β€” that's the source and version info this page belongs to, bestie, and honestly? iconic. go query some fabrics, main character. βœ¨πŸ¦‹πŸ’–