ethreport(8)

πŸ“¦ version 12.1.0.1, in centos-stream 9, fedora 43, fedora 44, opensuse-leap 16.0

πŸ’– ethreport β€” the manual but make it a group chat πŸ’–

Okay bestie, sit down, hydrate, because ethreport is that girl. She provides powerful fabric analysis and reporting capabilities and she absolutely ate. There's one rule though, and it's not negotiable: you have to run her on a host that is connected to the Intel(R) Ethernet Fabric with the Intel(R) Ethernet Fabric Suite FastFabric Toolset installed. No toolset, no vibes. Iykyk.

This page is ethreport(8) from EFSFFCLIRG (Man Page) β€” that's the family she runs with. 🫢


🌸 NAME 🌸

ethreport β€” provides powerful fabric analysis and reporting capabilities. Must be run on a host connected to the Intel(R) Ethernet Fabric with the Intel(R) Ethernet Fabric Suite FastFabric Toolset installed.


πŸ¦‹ Syntax πŸ¦‹

ethreport  [-v][-q] [--timeout] [-o  report]
[-d  detail] [-P|-H]
         [-N] [-x] [-X  snapshot_input] [-T  topology_input]
[-s]
         [-A] [-c  file] [-L] [-F  point] [-Q] [-E  file] [-p plane] [-f  hostfile]

✨ OPTIONS ✨

Not me listing every single one. But I love her, so here we go β€” all of them, no skips, periodt.

  • --help β€” produces the full help text. The "hello, what do you do" button.
  • -v, --verbose β€” returns verbose output. More words, more detail, more tea. πŸ“
  • -q, --quiet β€” disables progress reports. She's being mysterious, let her cook.
  • --timeout β€” specifies the timeout (wait time for response) in ms. Default is 1000 ms.
  • -o, --output report β€” specifies the report type for output. Go check Report Types for the deets. πŸ‘‘
  • -d, --detail level β€” specifies the level of detail 0-n for output. Default is 2.
  • -P, --persist β€” only include data persistent across reboots. Like, the stuff that survives the drama.
  • -H, --hard β€” only include permanent hardware data. Hardware only, no software nonsense.
  • -N, --noname β€” omits node.
  • -x, --xml β€” produces output in XML.
  • -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. - may be used as the snapshot_input to specify stdin.
  • -T, --topology topology_input β€” uses the topology_input file to augment and verify fabric information. When used, various reports can be augmented with information not available electronically. - may be used to specify stdin.
  • -s, --stats β€” get performance stats for all ports.
  • -A, --allports β€” includes PortInfo for down switch ports. Yes, even the ones that are going through it. πŸ’€
  • -c, --config file β€” specifies the error thresholds configuration file. Default is the /etc/eth-tools/ethmon.conf file.
  • -E, --ethconfig file β€” specifies the Ethernet Mgt config file. Default is the /etc/eth-tools/mgt_config.xml file.
  • -p plane β€” specifies the name of the enabled plane defined in the Mgt config file. Default is the first enabled plane.
  • -f, --hostfile file β€” specifies the file with hosts in cluster. It overrides the HostsFile for the selected plane that is defined in the Mgt config file.
  • -L, --limit β€” limits operation to exact specified focus with -F for port error counters check (-o errors). Normally, the neighbor of each selected port is also checked. Does not affect other reports. So like, mind the scope, bestie.
  • -F, --focus point β€” specifies the focus area for report.

Limits output to reflect a subsection of the fabric. May not work with all reports. (For example, the verify* reports may ignore the option or not generate useful results.) 😭

  • -Q, --quietfocus β€” excludes focus description from report.

πŸŽ€ REPORT TYPES πŸŽ€

This is the menu, and honestly? Every item is a little iconic. Here's the whole thing:

  • comps β€” summary of all systems in fabric.
  • brcomps β€” brief summary of all systems in fabric.
  • nodes β€” summary of all node types in fabric.
  • brnodes β€” brief summary of all node types in fabric.
  • ifids β€” summary of all ifids in the fabric.
  • linkinfo β€” summary of all links with ifids in the fabric.
  • links β€” summary of all links.
  • extlinks β€” summary of links external to systems.
  • niclinks β€” summary of links to NICs.
  • islinks β€” summary of inter-switch links.
  • extislinks β€” summary of inter-switch links external to systems.
  • slowlinks β€” summary of links running slower than expected.
  • slowconfiglinks β€” summary of links configured to run slower than supported, includes slowlinks.
  • slowconnlinks β€” summary of links connected with mismatched speed potential, includes slowconfiglinks.
  • misconfiglinks β€” summary of links configured to run slower than supported.
  • misconnlinks β€” summary of links connected with mismatched speed potential.
  • errors β€” summary of links whose errors exceed counts in the configuration file.
  • otherports β€” summary of ports not connected to this fabric.
  • verifynics β€” compares fabric (or snapshot) NICs to supplied topology and identifies differences and omissions.
  • verifysws β€” compares fabric (or snapshot) switches to supplied topology and identifies differences and omissions.
  • verifynodes β€” returns verifynics and verifysws reports.
  • verifylinks β€” compares fabric (or snapshot) links to supplied topology and identifies differences and omissions.
  • verifyextlinks β€” compares fabric (or snapshot) links to supplied topology and identifies differences and omissions. Limits analysis to links external to systems.
  • verifyniclinks β€” compares fabric (or snapshot) links to supplied topology and identify differences and omissions. Limits analysis to links to NICs.
  • verifyislinks β€” compares fabric (or snapshot) links to supplied topology and identify differences and omissions. Limits analysis to inter-switch links.
  • verifyextislinks β€” compares fabric (or snapshot) links to supplied topology and identify differences and omissions. Limits analysis to inter-switch links external to systems.
  • verifyall β€” returns verifynics, verifysws, and verifylinks reports.
  • all β€” returns comps, nodes, links, extlinks, slowconnlinks, and errors reports.
  • snapshot β€” outputs snapshot of the fabric state for later use as snapshot_input. This implies -x. May not be combined with other reports. When selected, -F and -N options are ignored. πŸ’…
  • topology β€” outputs the topology of the fabric for later use as topology_input. This implies -x. May not be combined with other reports. Use with detail level 3 or more to get Port element under Node in output xml.
  • fabricinfo β€” outputs fabric information.
  • none β€” outputs no report. She's giving nothing and honestly, valid.

πŸ’… POINT SYNTAX πŸ’…

This is how you point at exactly the thing you mean. Learn the shapes, bestie, they're all slightly different and that's on purpose. πŸ”₯

  • ifid:value β€” value is numeric ifid.
  • ifid:value:node β€” value is numeric ifid, selects node with given ifid.
  • ifid:value:port:value2 β€” value is numeric ifid of node, value2 is port number.
  • ifid:value:portid:value2 β€” value is numeric ifid of node, value2 is port id.
  • mgmtifaddr:value β€” value is numeric port mgmtifaddr.
  • ifaddr:value β€” value is numeric node ifaddr.
  • ifaddr:value1:port:value2 β€” value1 is numeric node ifaddr, value2 is port number.
  • ifaddr:value1:portid:value2 β€” value1 is numeric node ifaddr, value2 is port id.
  • chassisid:value β€” value is numeric chassisid.
  • chassisid:value1:port:value2 β€” value1 is numeric chassisid, value2 is port number.
  • chassisid:value1:portid:value2 β€” value1 is numeric chassisid, value2 is port id.
  • node:value β€” value is node description (node name).
  • node:value1:port:value2 β€” value1 is node description (node name), value2 is port number.
  • node:value1:portid:value2 β€” value1 is node description (node name), value2 is port id.
  • nodepat:value β€” value is glob pattern for node description (node name).
  • nodepat:value1:port:value2 β€” value1 is the glob pattern for the node description (node name), value2 is port number.
  • nodepat:value1:portid:value2 β€” value1 is the glob pattern for the node description (node name), value2 is port id.
  • nodedetpat:value β€” value is glob pattern for node details.
  • nodedetpat:value1:port:value2 β€” value1 is the glob pattern for the node details, value2 is port number.
  • nodedetpat:value1:portid:value2 β€” value1 is the glob pattern for the node details, value2 is port id.
  • nodetype:value β€” value is node type (SW or NIC).
  • nodetype:value1:port:value2 β€” value1 is node type (SW or NIC), value2 is port number.
  • nodetype:value1:portid:value2 β€” value1 is node type (SW or NIC), value2 is port id.
  • rate:value β€” value is string for rate (25g, 50g, 75g, 100g), omits switch mgmt port 0.
  • portstate:value β€” value is a string for state (up, down, testing, unknown, dormant, notactive).
  • portphysstate:value β€” value is a string for PHYs state (other, unknown, operational, standby, shutdown, reset).
  • mtucap:value β€” value is MTU size (maximum size 65535), omits switch mgmt port 0.
  • linkdetpat:value β€” value is glob pattern for link details.
  • portdetpat:value β€” value is glob pattern for port details.
  • nodepatfile:FILENAME β€” specifies the name of file with the list of nodepats or node descriptions.
  • nodepairpatfile:FILENAME β€” specifies the name of 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.

and bestie… there's more πŸ’–

πŸ’… EXAMPLES (aka the fun part) πŸ’…

okay bestie, here's the thing β€” ethreport can spit out hundreds of different reports, which is lowkey iconic of it. but you don't need all of them. the ones people actually reach for, over and over, are these 🫢

no cap, just copy, paste, and vibe:

ethreport -o comps -d 3

ethreport -o errors -o slowlinks

ethreport -o nodes -F mgmtifaddr:0x00066a00a000447b

ethreport -o nodes -F ifaddr:0x001175019800447b:port:1

ethreport -o nodes -F ifaddr:0x001175019800447b

ethreport -o nodes -F 'node:duster-eth2'

ethreport -o nodes -F 'node:duster-eth2:port:1'

ethreport -o nodes -F 'nodepat:d*'

ethreport -o nodes -F 'nodepat:d*:port:1'

ethreport -o nodes -F 'nodedetpat:compute*'

ethreport -o nodes -F 'nodedetpat:compute*:port:1'

ethreport -o nodes -F nodetype:NIC

ethreport -o nodes -F nodetype:NIC:port:1

ethreport -o nodes -F ifid:1

ethreport -o nodes -F ifid:1:node

ethreport -o nodes -F ifid:1:port:2

ethreport -o nodes -F chassisid:0x001175019800447b

ethreport -o nodes -F chassisid:0x001175019800447b:port:1

ethreport -o extlinks -F rate:100g

ethreport -o extlinks -F portstate:up

ethreport -o extlinks -F portphysstate:operational

ethreport -o extlinks -F 'portdetpat:*mgmt*'

ethreport -o links -F mtucap:2048

ethreport -o snapshot > file

ethreport -o topology > topology.xml

ethreport -o errors -X file

see how many of them are just -o nodes with a different filter hanging off the end?? it's giving "one braincell, infinite combos" and honestly? we respect it. 😌


reminder bestie: those quotes around the 'node:duster-eth2'-style filters are not decorative. some of these strings have characters your shell would happily eat for breakfast, so keep them wrapped. πŸ”₯

and that's the whole page, bestie β€” you made it to the end πŸŽ€ the original footer on this one credits Copyright(C) 2020-2024 Intel Corporation and files it under section ethreport(8), so huge shoutout to Intel for the years 2020 through 2024 and to whoever decided this absolute baddie of a diagnostic tool needed a manual. periodt. πŸ’–βœ¨

πŸ“¦ where this page comes from