opapaquery(8)

๐ŸŒธ NAME ๐ŸŒธ

opapaquery โ€” it's the opapaquery(8) girlie from the IFSFFCLIRG man page, and she's here to query things. ๐Ÿ’…

(All) โ€” bestie, this one runs for everybody. โœจ It performs various queries of the performance management (PM) / performance administration (PA) agent and hands you back all the deets about fabric performance. ๐Ÿฆ‹

Lowkey need the lore first? Go read the Intel(R) Omni-Path Fabric Suite Fabric Manager User Guide โ€” that's where the operation and client services of the PM/PA get described. ๐Ÿ“–

Okay so here's the vibe: by default, opapaquery queries the most recent data. Simple. But the second you hand it an image number (imgNum) and/or an image offset (imgOff), it goes digging and the query returns previous sweep data instead. ๐Ÿ™ˆ And here's the little detail that matters โ€” queries that access previous sweep data come back with the absolute image number representing that data, which means they have an image offset of zero. Periodt. ๐Ÿ’€

Not me needing to say this, but: opapaquery's whole operation is dependent on an Intel(R) Omni-Path Fabric Suite Fabric Manager version 6.0 or greater running as master SM/PM in the fabric. No FM, no magic. ๐Ÿ˜ญ

And for the port tea ๐ŸŽ€ โ€” by default, opapaquery uses the first active port on the local system. But if the Fabric Management Node is connected to more than one fabric (say, a subnet ๐Ÿ‘€), you can specify the HFI and port to pick exactly which fabric's PA you wanna query. Main character energy: you choose.


โœจ Syntax โœจ

opapaquery [-v] [-h hfi|-b addr] [-p port] [-x gid] [-E]
[-T ssl_params] [-o type] [-g groupName] [-l nodeLid] [-P portNumber]
[--timeout] [-G nodeGuid] [-D nodeDesc] [-d delta] [-j date_time]
[-q date_time] [-U] [-s select] [-f focus] [-S start] [-r range]
[-n imgNum] [-O imgOff] [-y imgTime] [-m moveImgNum] [-M moveImgOff] [-V
vfName]

โœจ OPTIONS โœจ

okay so this is where the magic happens. every flag, every knob, every little vibe check. let's go ๐Ÿ’–

  • -v/--verbose โ€” Specifies the verbose output. she's chatty, she's telling you everything ๐Ÿ—ฃ๏ธโœจ
  • -h/--hfi hfi โ€” Specifies the HFI, numbered 1..n. Using 0 specifies that the -p port port is a system-wide port number. Default is 0. so if you want the whole system, she's your girl ๐Ÿซถ
  • -b/--oob address โ€” Specifies Out-of-Band address of node running the FE. Can be either hostname, IPv4, or IPv6 address. Default is "127.0.0.1". localhost energy, but make it fashion ๐ŸŒˆ
  • -p/--port port โ€” Specifies the port.
    • In-band: Numbered 1...n. Using 0 specifies the first active port. Default is 0. first active, no cap โœจ
    • Out-of-band: Port FE is listening on. Default is 3245. that's the FE's little ear ๐Ÿ‘‚
  • -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.) required, bestie, don't skip it ๐Ÿ˜ญ
  • -E/--feEsm โ€” Specifies the ESM FE. ESM FE, iconic ๐Ÿ’œ
  • -T/--ssl-params file โ€” Specifies the SSL/TLS parameters XML file. Default is /etc/opa/opamgt_tls.xml. secure the bag ๐Ÿ”’
  • -o/--output type โ€” Specifies the output type. Default is groupList. See Output Types. pick your output, pick your destiny ๐ŸŽ€
  • -g/--groupName groupName โ€” Specifies the group name for groupInfo query. group chat, but for ports ๐Ÿ’ฌ
  • -l/--lid lid โ€” Specifies the LID of the node. LID, we love her ๐Ÿฆ‹
  • -P/--portNumber portNumber โ€” Specifies the port number within the node. port within node, very demure โœจ
  • --timeout โ€” Specifies the timeout (response wait time) in ms. Default is 1000 ms. don't ghost her for more than 1000 ms ๐Ÿ’€
  • -G/--nodeGuid โ€” Specifies the GUID of the node. GUID, the node's government name ๐Ÿ‘‘
  • -D/--nodeDesc โ€” Specifies the description of the node. describe the node, give her a little bio ๐Ÿ“
  • -d/--delta delta โ€” Specifies the delta flag for portCounters query - 0 or 1. 0 or 1, binary baddie ๐Ÿ’…
  • -j/--begin date_time โ€” Obtains portCounters over an interval beginning at date_time. date_time may be a time entered as HH:MM[:SS] or date as mm/dd/YYYY, dd.mm.YYYY, YYYY-mm-dd or date followed by time; for example, "2016-07-04 14:40". Relative times are taken as "x [second|minute|hour|day](s) ago. time travel, but make it metrics โณ
  • -q/--end date_time โ€” Obtains portCounters over an interval ending at date_time. date_time may be a time entered as HH:MM[:SS] or date as mm/dd/YYYY, dd.mm.YYYY, YYYY-mm-dd or date followed by time; for example, "2016-07-04 14:40". Relative times are taken as "x [second|minute|hour|day](s) ago. the end is giving closure ๐ŸŒ™
  • -U/--userCntrs โ€” Queries by user-controlled counters flag for portCounters. user-controlled, main character energy ๐Ÿ‘‘
  • -s/--select select โ€” Specifies the 32-bit select flag for clearing port counters. 32 bits of pure power โšก

Select bits for clrPortCounters. 0 is the least significant bit (rightmost). The clrPortCounters bit descriptions are listed in the order "mask - bit - location" below:

  • 0x80000000 - 31 - Transmit Data (XmitData) XmitData, she's transmitting ๐Ÿ“ก
  • 0x40000000 - 30 - Receive Data (RcvData) RcvData, receiving the vibe ๐Ÿ“ฅ
  • 0x20000000 - 29 - Transmit Packets (XmitPkts) packets on packets ๐Ÿ“ฆ
  • 0x10000000 - 28 - Receive Packets (RcvPkts) packets incoming ๐Ÿ“ฌ
  • 0x08000000 - 27 - Multicast Transmit Packets (MulticastXmitPkts) multicast, she's for the group ๐Ÿ‘ฏ
  • 0x04000000 - 26 - Multicast Receive Packets (MulticastRcvPkts) multicast receive, group chat energy ๐Ÿ’ฌ
  • 0x02000000 - 25 - Transmit Wait (XmitWait) waiting to transmit, relatable โณ
  • 0x01000000 - 24 - Congestion Discards (CongDiscards) congestion, throw it away ๐Ÿ—‘๏ธ
  • 0x00800000 - 23 - Receive FECN (RcvFECN) FECN ๐Ÿšฆ
  • 0x00400000 - 22 - Receive BECN (RcvBECN) BECN ๐Ÿšฆ
  • 0x00200000 - 21 - Transmit Time Congestion (XmitTimeCong) time congestion, she's stressed ๐Ÿ˜ฐ
  • 0x00100000 - 20 - Transmit Time Wasted BW (XmitWastedBW) wasted bandwidth, not the vibe ๐Ÿ’€
  • 0x00080000 - 19 - Transmit Time Wait Data (XmitWaitData) wait data, hold please โœ‹
  • 0x00040000 - 18 - Receive Bubble (RcvBubble) bubble, pop it ๐Ÿซง
  • 0x00020000 - 17 - Mark FECN (MarkFECN) mark it, FECN ๐Ÿ–๏ธ
  • 0x00010000 - 16 - Receive Constraint Errors (RcvConstraintErrors) constraint errors, oops ๐Ÿ˜ฌ
  • 0x00008000 - 15 - Receive Switch Relay (RcvSwitchRelayErrors) switch relay errors, not iconic ๐Ÿšซ
  • 0x00004000 - 14 - Transmit Discards (XmitDiscards) discards, bye ๐Ÿ‘‹
  • 0x00002000 - 13 - Transmit Constraint Errors (XmitConstraintErrors) constraint errors again ๐Ÿ˜ญ
  • 0x00001000 - 12 - Receive Remote Physical Errors (RcvRemotePhysicalErrors) remote physical errors, long distance drama ๐Ÿ“ž
  • 0x00000800 - 11 - Local Link Integrity (LocalLinkIntegrityErrors) local link integrity, keep it together ๐Ÿง˜
  • 0x00000400 - 10 - Receive Errors (RcvErrors) receive errors, she's not having it ๐Ÿ˜ค
  • 0x00000200 - 9 - Excessive Buffer Overrun (ExcessiveBufferOverruns) buffer overrun, too much ๐ŸŒŠ
  • 0x00000100 - 8 - FM Configuration Errors (FMConfigErrors) FM config errors, fix it ๐Ÿ”ง
  • 0x00000080 - 7 - Link Error Recovery (LinkErrorRecovery) link error recovery, healing era ๐ŸŒฑ
  • 0x00000040 - 6 - Link Error Downed (LinkDowned) link downed, she's down bad ๐Ÿ’”
  • 0x00000020 - 5 - Uncorrectable Errors (UncorrectableErrors) uncorrectable, no cap ๐Ÿšซ

Select bits for clrVfPortCounters. 0 is the least significant bit (rightmost). The clrVfPortCounters bit descriptions are listed in the order "mask - bit - location" below:

  • 0x80000000 - 31 - VL Transmit Data (VLXmitData) VL transmit data ๐Ÿ›ฃ๏ธ
  • 0x40000000 - 30 - VL Receive Data (VLRcvData) VL receive data ๐Ÿ“ฅ
  • 0x20000000 - 29 - VL Transmit Packets (VLXmitPkts) VL packets out ๐Ÿ“ฆ
  • 0x10000000 - 28 - VL Receive Packets (VLRcvPkts) VL packets in ๐Ÿ“ฌ
  • 0x08000000 - 27 - VL Transmit Discards (VLXmitDiscards) VL discards, thrown away ๐Ÿ—‘๏ธ
  • 0x04000000 - 26 - VL Congestion Discards (VLCongDiscards) VL congestion, crowded ๐Ÿšฆ
  • 0x02000000 - 25 - VL Transmit Wait (VLXmitWait) VL wait, hold on โณ
  • 0x01000000 - 24 - VL Receive FECN (VLRcvFECN) VL FECN ๐Ÿšฆ
  • 0x00800000 - 23 - VL Receive BECN (VLRcvBECN) VL BECN ๐Ÿšฆ
  • 0x00400000 - 22 - VL Transmit Time Congestion (VLXmitTimeCong) VL time congestion ๐Ÿ˜ฐ
  • 0x00200000 - 21 - VL Transmit Wasted BW (VLXmitWastedBW) VL wasted bandwidth ๐Ÿ’€
  • 0x00100000 - 20 - VL Transmit Wait Data (VLXmitWaitData) VL wait data โœ‹
  • 0x00080000 - 19 - VL Receive Bubble (VLRcvBubble) VL bubble ๐Ÿซง
  • 0x00040000 - 18 - VL Mark FECN (VLMarkFECN) VL mark FECN ๐Ÿ–๏ธ
  • Bits 17-0 reserved reserved, don't touch ๐Ÿšซ
  • -f/--focus focus โ€” Specifies the focus select value for getting focus ports. focus select values are:
    • unexpclrport โ€” Lists unexpectedly cleared ports - LID ordered. unexpectedly cleared, drama ๐Ÿ˜ฑ
    • norespport โ€” Lists no response ports - LID ordered. no response, ghosted ๐Ÿ‘ป
    • skippedport โ€” Lists skipped ports - LID ordered. skipped, not today โญ๏ธ
    • utilhigh โ€” Sorted by utilization - highest first. high utilization, she's busy ๐Ÿ”ฅ
    • pktrate โ€” Sorted by packet rate - highest first. packet rate, fast girl โšก
    • utillow โ€” Sorted by utilization - lowest first. low utilization, chill ๐ŸงŠ
    • integrity โ€” Sorted by integrity category - highest first. integrity, she has morals ๐Ÿ›ก๏ธ
    • congestion โ€” Sorted by congestion category - highest first. congestion, crowded ๐Ÿšฆ
    • smacongestion โ€” Sorted by SMA congestion category - highest first. SMA congestion, fancy ๐ŸŽฉ
    • bubbles โ€” Sorted by bubble category - highest first. bubbles, pop pop ๐Ÿซง
    • security โ€” Sorted by security category - highest first. security, keep it safe ๐Ÿ”’
    • routing โ€” Sorted by routing category - highest first. routing, she knows the way ๐Ÿ—บ๏ธ
    • vfutilhigh โ€” Sorted by utilization - highest first. VF high utilization ๐Ÿ”ฅ
    • vfpktrate โ€” Sorted by packet rate - highest first. VF packet rate โšก
    • vfutillow โ€” Sorted by utilization - lowest first. VF low utilization ๐ŸงŠ
    • vfcongestion โ€” Sorted by congestion category - highest first. VF congestion ๐Ÿšฆ
    • vfbubbles โ€” Sorted by bubble category - highest first. VF bubbles ๐Ÿซง
  • -S/--start start โ€” Specifies the start of window for focus ports, should always be 0. always 0, don't fight it 0๏ธโƒฃ
  • -r/--range range โ€” Specifies the size of window for focus ports list. range, the size of the window ๐ŸชŸ
  • -Q/--tuple โ€” Specifies a tuple that identifies a focus select value, comparator and argument in the form select: comparator:argument. Up to 8 tuples may be specified as: -Q s1:c1:a1 -Q s2:c2:a2 ... -Q s8:c8:a8 tuples, up to 8, she's flexible ๐Ÿงฎ

Valid focus select values are: utilization, pktrate, integrity, congestion, smacongestion, bubbles, security and routing. pick your fighter โš”๏ธ

Valid comparator values are: GT, GE, LT, LE greater than, greater equal, less than, less equal, math baddie ๐Ÿ“Š

Valid arguments are: Any 64-bit value in hexadecimal or decimal. 64-bit, big energy ๐Ÿ’ช

When specifying more than one tuple, a logical operator -Z/--operator must also be specified. don't forget the operator, bestie ๐Ÿ˜ญ

  • -Z/--operator โ€” Specifies a logical operator used to join the results of the specified tuples. logical operator, join the results ๐Ÿ”—
    • and - Specifies a port is returned if it meets all of the tuple filter criteria. and, all the things โœ…
    • or - Specifies a port is returned if it meets one or more of the tuple filter criteria. or, any of the things โœ…
  • -n/--imgNum imgNum โ€” Specifies the 64-bit image number. 64-bit image number, she's specific ๐Ÿ–ผ๏ธ
  • -O/--imgOff imgOff โ€” Specifies the image offset. image offset, shift it โžก๏ธ
  • -y/--imgTime โ€” Specifies the image time. May be used with imageinfo, groupInfo, groupInfo, groupConfig, freezeImage, focusPorts, vfInfo, vfConfig, and vfFocusPorts. Will return closest image within image interval if possible. See --begin/--end above for format. image time, time travel again โฐ
  • -m/--moveImgNum moveImgNum โ€” Specifies the 64-bit image number. Used with moveFreeze to move a freeze image. move image number, move the freeze ๐ŸงŠ
  • -M/--moveImgOff moveImgOff โ€” Specifies the image offset. Can be used with moveFreeze to move a freeze image. move image offset, shift the freeze ๐ŸงŠ
  • -V/--vfName vfName โ€” Specifies the VF name for vfInfo query. VF name, realness ๐Ÿ‘‘

โœจ -h and -p options permit a variety of selections โœจ

okay so these two? they're like a duo. here's the tea:

  • -h 0 โ€” First active port in system (Default). default, first active port in system ๐ŸŒŸ
  • -h 0 -p 0 โ€” First active port in system. same energy, but explicit โœจ
  • -h x โ€” First active port on HFI x. first active on HFI x ๐ŸŽฏ
  • -h x -p 0 โ€” First active port on HFI x. first active on HFI x, with port 0 ๐ŸŽฏ
  • -h 0 -p y โ€” Port y within system (no matter which ports are active). port y, system-wide, no matter what ๐Ÿ’…
  • -h x -p y โ€” HFI x, port y. HFI x, port y, you know the vibe โœจ

โœจ Output Types โœจ

okay bestie, so like, the -o option? it's literally the main character here โ€” it picks what kind of query you're doing. here's the full menu, no cap. ๐Ÿ’…

  • classPortInfo โ€” specifies the class port info. that's the whole vibe. ๐Ÿฆ‹
  • groupList โ€” specifies the list of PA groups. slay. โœจ
  • groupInfo โ€” specifies the summary statistics of a PA group. โš ๏ธ requires -g option for groupName. periodt.
  • groupConfig โ€” specifies the configuration of a PA group. requires -g option for groupName. ๐Ÿ’–
  • groupNodeInfo โ€” specifies the node information of a PA group. requires -g option for groupName. options -l lid, -G nodeGuid and -D nodeDesc are optional. lowkey flexible. ๐ŸŒธ
  • groupLinkInfo โ€” specifies the link Information of a PA group. requires -g option for groupName. options -l lid and -P port are optional. note that -P 255 specifies all ports. option -P port without -l lid is ignored. ๐Ÿ’€ (don't forget the lid!)
  • portCounters โ€” specifies the port counters of fabric port. requires -l lid and -P port options. -d delta is optional. ๐Ÿ“Š
  • clrPortCounters โ€” clears port counters of fabric port. requires -l lid and -P port, and -s select options. bye bye counters! ๐Ÿงน
  • clrAllPortCounters โ€” clears all port counters in fabric. the ultimate reset. ๐Ÿ”ฅ
  • pmConfig โ€” retrieves PM configuration information. iykyk. ๐Ÿ‘‘
  • freezeImage โ€” creates freeze frame for image ID. requires -n imgNum. โ„๏ธ
  • releaseImage โ€” releases freeze frame for image ID. requires -n imgNum. let it gooo. ๐Ÿฆ‹
  • renewImage โ€” renews lease for freeze frame for image ID. requires -n imgNum. subscription renewed bestie. ๐Ÿ’…
  • moveFreeze โ€” moves freeze frame from image ID to new image ID. requires -n imgNum and -m moveImgNum. glow up migration. โœจ
  • focusPorts โ€” gets sorted list of ports using utilization or error values (from group buckets). requires -g groupname, -f focus, -S start, -r range. main character ports only. ๐Ÿ’–
  • imageInfo โ€” gets configuration of a PA image (timestamps, etc.). requires -n imgNum. ๐Ÿ•ฐ๏ธ
  • vfList โ€” specifies the list of virtual fabrics. vf stands for very fabulous? no, virtual fabric. ๐Ÿ˜ญ
  • vfInfo โ€” specifies the summary statistics of a virtual fabric. requires -V option for vfName. ๐ŸŒˆ
  • vfConfig โ€” specifies the configuration of a virtual fabric. requires -V option for vfName. ๐ŸŽ€
  • vfPortCounters โ€” specifies the port counters of fabric port. requires -V vfName, -l lid and -P port options, -d delta is optional. ๐Ÿ“ˆ
  • vfFocusPorts โ€” gets sorted list of virtual fabric ports using utilization or error values (from VF buckets). requires -V vfname, -f focus, -S start, -r range. โœจ
  • clrVfPortCounters โ€” clears VF port counters of fabric port. requires -l lid, -P port, -s select, and -V vfname options. clean slate. ๐Ÿงผ

๐ŸŒธ Examples ๐ŸŒธ

bestie, here are the exact commands โ€” copy them character for character, no cap. ๐Ÿ’–

       opapaquery -o classPortInfo

       opapaquery -o groupList

       opapaquery -o groupInfo -g All

       opapaquery -o groupConfig -g All

       opapaquery -o groupNodeInfo -g All -G <nodeGuid>

       opapaquery -o groupNodeInfo -g All -D <nodeDesc>

       opapaquery -o groupNodeInfo -g All -l 1

       opapaquery -o groupNodeInfo -g All -l 1 -G <nodeGuid>

       opapaquery -o groupLinkInfo -g All

       opapaquery -o groupLinkInfo -g All -l 1 -P 1

       opapaquery -o groupLinkInfo -g All -l 1 -P 255

       opapaquery -o portCounters -l 1 -P 1 -d 1

       opapaquery -o portCounters -l 1 -P 1 -d 1 -n 0x20000000d02 -O 1

       opapaquery -o portCounters -l 1 -P 1 -d 1 -j 13:30 -q 14:20

       opapaquery -o clrPortCounters -l 1 -P 1 -s 0xC0000000

          (clears XmitData & RcvData)

       opapaquery -o clrAllPortCounters -s 0xC0000000

          (clears XmitData & RcvData on all ports)

       opapaquery -o pmConfig

       opapaquery -o freezeImage -n 0x20000000d02

       opapaquery -o releaseImage -n 0xd01

       opapaquery -o renewImage -n 0xd01

       opapaquery -o moveFreeze -n 0xd01 -m 0x20000000d02 -M -2

       opapaquery -o focusPorts -g All -f integrity -S 0 -r 20

       opapaquery -o focusPorts -g All -S 0 -r 20 -Z AND -Q integrity:ge:20 -Q
       bubbles:lt:10

       opapaquery -o focusPorts -g All -f skippedport -S 0 -r 20

       opapaquery -o imageInfo -n 0x20000000d02

       opapaquery -o imageInfo -y "1 hour ago"

       opapaquery -o vfList

       opapaquery -o vfInfo -V Default

       opapaquery -o vfConfig -V Default

       opapaquery -o vfPortCounters -l 1 -P 1 -d 1 -V Default

       opapaquery -o clrVfPortCounters -l 1 -P 1 -s 0xC0000000 -V Default

          (clears VLXmitData & VLRcvData)

       opapaquery -o vfFocusPorts -V Default -f integrity -S 0 -r 20

that's the whole vibe, bestie. this page is Copyright(C) 2015-2019 Intel Corporation โ€” opapaquery(8). go forth and query slayfully. ๐Ÿ’…โœจ