The triage toolkit: resources, optics and what tcpdump will not tell you
S6·E1The empty capture at 02:40 · Customer AI hall C, 02:40, second night of the same ticket
Builds on: Streaming telemetry: OTLP, high-frequency counters, latency measurement, Playbook: 'RoCE is slow', Links that come up: breakout, FEC and auto-negotiation
Before you read: what do you already know?
3 quick questions. Wrong answers are fine and expected; trying first makes the lesson stick.
After this lesson you can
- Distinguish the hardware ASIC resource view from the software `cl-resource-query` view and read the high-watermark columns on an intermittent fault.
- Diagnose a marginal link from BER, per-lane PHY health and transceiver data instead of from link state alone.
- Explain why `tcpdump` on a Cumulus switch cannot answer a data-plane question and name the tool that can.
- Select the telemetry surface that answers a given symptom and state the constraint attached to it.
Episode 1 — The empty capture at 02:40
The night-shift operator has been awake since the collectives slowed at midnight. He has a crash cart parked in front of leaf07 with a fresh label on it, and a capture that has run two hours and caught nothing — which he reads on the bridge as proof the fabric is clean. Sixty-four nodes in Hall C, acceptance Friday, a second pod nobody buys unless Friday goes well. You are dialled in from a kitchen table two time zones away, and you take that conclusion away gently: tcpdump on Cumulus Linux monitors control-plane traffic to and from the switch CPUs and does not monitor data-plane traffic, so an empty capture is the expected result whether the fabric is perfect or dropping every GPU packet.[2]
That sentence is why this toolkit exists. Forwarding lives in the ASIC and the CPU never sees the packets it forwards, so evidence had to be rebuilt as instrumentation: resource tables with a High-Watermark column and a timestamp that survive a transient the instantaneous Used column has already forgotten[1], a per-interface BER view that names Eff-BER and Sym-Errs across every port in one table[3], and a drop-reason engine for the packets that never arrive.[4] Each surface answers one class of question and carries one constraint; the wrong one costs a maintenance window.
An empty capture is not evidence of health; it is the wrong instrument reporting correctly. You ask for a support bundle before anyone changes anything, then the two resource views.[2][1] Segment 1 starts with the two views that are designed to disagree.
1Capacity is not congestion: the two resource views
Half of the “the fabric is unstable” calls are capacity questions wearing a performance costume, and the NCP-AIN blueprint names the tool for them directly: objective 5.1 is “Use tools like cl-resource-query to check resource allocation in Spectrum-X environments.”[10] There are two views and they do not agree by design. NVUE reports resource utilization from hardware when available, and otherwise reports software-maintained values; cl-resource-query reports software-maintained utilization.[1] The documentation says the reported values might differ slightly, so a small delta between them is not a bug to escalate.[1]
The NVUE surface is nv show platform asic <asic-id> resource, with resource global for the tabular global view and resource acl for ACL resources alone.[1] The columns are the reason to prefer it: Resource Name, Used, Percentage, Max, Free, High-Watermark and High-Watermark-Timestamp.[1] On an intermittent problem the instantaneous Used column tells you nothing; the watermark and its timestamp tell you the table filled at 03:14 last night. Tracked resources include IPv4 and IPv6 routes and host entries, MAC entries, ACL rules at 18B, 36B and 54B, ECMP entries and counters.[1] Reset the history for a clean window with nv action generate system tech-support first, then nv action clear platform asic <asic-id> resource, which clears only the High-Watermark and Last-High-Watermark metrics and leaves every other metric untouched.[1]
One trap belongs here rather than in the upgrade lesson. ISSU requires nv set system forwarding resource-mode half, and half-resource mode reduces forwarding resources by 50 percent; changing resource mode also requires a switchd restart, which is disruptive.[7] A pod that fits comfortably today can stop fitting the moment the customer decides they want hitless upgrades.
Click a tool, or tab to it and press Enter. Dashed edge: WJH streamed through the NetQ agent instead of read locally.
Routes or MAC entries stop installing at scale, intermittently, then recover.
Commit first: pick the surface you would reach for. The map stays quiet until you do.
Forwarding resources
How full the forwarding tables are: IPv4/IPv6 routes and hosts, MAC entries, ACL rules (18B, 36B, 54B), ECMP entries and flow counters, each with a utilization percentage against a maximum.
sudo cl-resource-query # software-maintained view nv show platform asic 0 resource # hardware view nv show platform asic 0 resource acl nv action clear platform asic 0 resource # new in Cumulus Linux 5.18.0
ASIC floor: No ASIC floor.
Constraint: Columns: Resource Name, Used, Percentage, Max, Free, High-Watermark, High-Watermark-Timestamp. On an intermittent problem only the high-watermark columns matter.
- The NVUE hardware view and cl-resource-query can differ: "the reported values might differ slightly under certain conditions". A small delta is not a bug.
- ISSU half-resource mode halves every maximum — a pod that fits in full-resource mode may not fit once ISSU is enabled.
Do not use this for: Capacity, not congestion. A table at 12% tells you nothing about why a queue overflowed.
FAE angle: named outright in the NCP-AIN blueprint — "use tools like cl-resource-query to check resource allocation in Spectrum-X environments". Expect it on the exam and in the first customer escalation about scale.
2Layer 1 without a light meter
A link that is up is not a link that is healthy. Start wide with nv show interface status, which shows admin status, operational status and fault detection, and nv show interface --view counters for all statistics across all interfaces.[3] The view that finds the bad port is nv show interface --view ber, a tabular PHY health summary whose columns are Eff-BER, Raw-BER, Sym-BER, Sym-Errs, Eff-Errs and Last-Clr(min).[3] Then go deep on the one port: nv show interface <interface-id> link phy health for per-lane SNR and error data, and nv show interface <interface-id> link phy detail for physical-layer diagnostics.[3]
The module is the next suspect. nv show platform transceiver lists identifier, vendor, part number and serial number; nv show platform transceiver <transceiver-id> adds module hardware capabilities; ... <transceiver-id> channel gives per-channel RX and TX power; and nv show interface <interface-id> transceiver thresholds prints the alarm and warning thresholds you are supposed to compare those powers against.[3] Two actions matter in the field: nv action clear interface <interface-id> link phy health to zero the error history before a timed test, and nv action reset platform transceiver <transceiver-id> to reset a module to its initial state.[3] On the SN5610 only, nv set platform transceiver <transceiver-id> temperature setpoint <value> accepts 30 to 80 degrees and must stay below the module’s advertised high warning threshold.[3] Cumulus Linux 5.18 also added the --ber PHY-health surface and a Beta --dom transceiver view.[12]
Before you blame the optic, rule out configuration. FEC defaults to auto and the docs warn not to configure fec auto explicitly because it causes a link flap on every commit; if auto-negotiation is disabled on 100G or 25G interfaces you must set FEC to off, RS or BaseR to match the neighbour; and Spectrum-4 to Spectrum-4 with PAM4 modulation requires auto-negotiation enabled.[9]
FEC and auto-negotiation
- FEC default is auto; the modes are rs (Reed-Solomon, IEEE 802.3 Clause 108/91), baser (Base-R / FireCode, Clause 74) and off.
- Do not explicitly configure fec auto: it flaps the link on every net commit / ifreload -a. Leave it unset instead.
- Auto-negotiation default is on; nv set interface swp1 link auto-negotiate off turns it off. With it off on 100G and 25G you must set FEC to off, RS or BaseR to match the neighbor.
- 100GBASE-DR1: FEC off or unset. 400GBASE-DR4: the switch enables FEC even if you set off.
- Spectrum-4 to Spectrum-4 over PAM4 requires auto-negotiation enabled — the opposite of the SN4700/SN4410 QSFP-DD 400G habit, where auto-negotiation is unsupported and you force the speed.
- MTU: 552-9216, default 9216 (eth0 is 1500), and the only interface setting you must set manually. A VXLAN VNI MTU must be 50 bytes below the physical MTU.
FAE angle: the OS10/SONiC reflex — force speed, force FEC — is the exact wrong move on a Spectrum-4 PAM4 switch-to-switch link. Check order: breakout/adjacent port, then explicit fec auto, then FEC matching with auto-negotiation off, then the PAM4 auto-negotiation rule, then Rx precoding on SN5600 ports 10-50.
Switch Port Attributes, Cumulus Linux 5.18 · Switch Port Attributes, Cumulus Linux 5.13 · NVUE interface set/unset reference · Interface Configuration and Management 5.13
swp17s0 swp17s1nv set interface swp17 link breakout 2x nv set interface swp17s0-1 link state up nv set interface swp17s0 link auto-negotiate off nv set interface swp17s0 link speed 400G # ⚠ speed token form not verified in the fetched docs # leave FEC unset — do NOT run: nv set interface swp17s0 link fec auto (link flap on commit) # media: Spectrum-4 ↔ Spectrum-4, PAM4 — Switch-to-switch PAM4 link. Auto-negotiation must be enabled. nv set interface swp17s0 link mtu 9216 # 552-9216, the one setting you must set manually nv config diff nv config apply
# /etc/cumulus/ports.conf 17=2x sudo systemctl reload switchd.service
Then verify (layer-1 triage)
nv show interface nv show interface swp1s0 link # speed, FEC, auto-negotiate state nv show interface status nv show interface --view ber # effective BER, raw BER, symbol errors nv show interface swp1s0 link phy health # per-lane SNR, lane0..lane7 nv show platform transceiver nv action reset platform transceiver <transceiver-id>
--view ber gives effective BER, raw BER and symbol errors; nv show interface --ber and the Beta --dom view are new in 5.18.0. Monitoring Interfaces and Transceivers with NVUE 5.18
3What tcpdump will not tell you
This is the single most useful sentence to have memorised on a customer bridge call. The Cumulus Linux troubleshooting page states: “You can use the Linux tcpdump command to monitor control plane traffic (traffic sent to and coming from the switch CPUs). tcpdump does not monitor data plane traffic; use cl-acltool instead.”[2] Forwarded packets are handled by the ASIC and never reach the CPU, so a capture on the leaf proves nothing about the GPU-to-GPU flow the customer is complaining about. Data-plane questions go to WJH, a SPAN session or telemetry.[4]
The other baseline tool has a fabric-specific upgrade. On a BGP-unnumbered leaf-spine there are no interface addresses to identify a hop, so Cumulus implements the RFC 5837 ICMP extensions: enable with nv set system global icmp ipv4 errors-extension ingress-interface (the IPv6 form is identical with ipv6), remove with the matching nv unset, and then send probes with nv action traceroute system <destination> errors-extension.[2] Without it, a traceroute across an unnumbered fabric gives you link-local next hops and no interface names.
Two evidence habits complete the layer. Take a support bundle before you change anything, with nv action generate system tech-support or sudo cl-support, and read /var/log/switchd.log alongside syslog when the ASIC is involved.[2] And know what you cannot reproduce: in a virtual Cumulus Linux switch, ACLs, QoS including buffer management and packet marking, WJH, SPAN and ERSPAN, adaptive routing and ASIC monitoring are not supported, and sensor output is artificial.[11] That list is why a simulation can rehearse your commands but cannot confirm a data-plane symptom.
Sample runs, exits cleanly, but zero throughput
4Choosing the instrument before the customer chooses one for you
Every observability surface on this platform answers one class of question and carries one constraint. WJH names the drop reason across L1, L2, L3, tunnel, buffer and ACL categories, but buffer packet drop monitoring needs Spectrum-2 or later and uses a SPAN destination, so it competes with any SPAN sessions the customer already runs; and, separately, when the NetQ agent is doing WJH the on-switch service must be disabled with nv set system wjh state disabled plus sudo systemctl disable nv-wjh, because the agent retrieves and exports WJH data itself.[4] On 5.18 the unit is nv-wjh.service and the CLI is nv-wjh-cli, which is why an older runbook’s what-just-happened poll returns nothing.[4]
OTLP export answers “what is the trend”, not “what happened in that microsecond”: the default gRPC port is 8443, insecure mode must be explicitly enabled if you supply no CA certificate, and the Spectrum-X stat group ai-ethernet-stats samples at 1 second by default and requires adaptive routing, packet trimming or SRv6 to be enabled separately before it emits anything.[5] High-frequency telemetry is the microburst tool: 100 to 12,750 microseconds in multiples of 50, default 5000, Spectrum-4 and later, a single gRPC destination for streaming, one active job on the ASIC, and no support on ports using 8 lanes.[6]
NetQ is the only cross-switch consistency view. netq check roce runs six tests — mode, classification, congestion control, flow control, ETS and miscellaneous — but NetQ supports lossless and lossy modes and does not support lossless-single-ipool, so a customer on that mode gets no RoCE validation at all.[8] Its Adaptive Routing dashboard needs Spectrum-4, Cumulus Linux 5.5.0 or later, RoCE lossless mode and ASIC monitoring; with asic-monitor disabled the histogram metrics report zero rather than “unavailable”, which is a silent failure worth naming out loud.[13]
Click a tool, or tab to it and press Enter. Dashed edge: WJH streamed through the NetQ agent instead of read locally.
p99 latency spikes while average link utilization sits under 40%.
Commit first: pick the surface you would reach for. The map stays quiet until you do.
High-frequency telemetry
Microburst-resolution counters: rx/tx bytes and packets, pause frames, priority-group occupancy, traffic-class buffer occupancy and adaptive-routing grades, sampled in microseconds.
nv set system telemetry hft sample-interval-usec <100-12750> # multiples of 50, default 5000 nv set system telemetry hft counter <counter> nv set interface <swp> telemetry hft state enabled nv set system telemetry hft export state enabled nv action schedule system telemetry hft job
ASIC floor: Spectrum-4 and later.
Constraint: Sampling interval is 100 to 12,750 microseconds in multiples of 50; the default is 5000 microseconds.
- Not supported on ports using 8 lanes — on Spectrum-4, swp1-swp64 must be broken out before HFT will run on them.
- The switch ASIC runs one HFT job at a time; up to 25 concurrent jobs can be active.
- Streamed HFT supports a single gRPC export destination. The alternative is JSON written to a local file on the switch and uploaded later.
- NTP is required and PTP is recommended so samples from different switches line up.
Do not use this for: Not a fabric view and not a drop reason. HFT shows the queue rising; WJH names the packet that died at the top of it.
FAE angle: the first question on any "enable HFT on our 800G ports" request is lane count. A native 8-lane 800G port cannot run the job at all — the customer has to break the port out first, which changes their cabling plan, not just a config line.
Answers: Microburst-resolution counters: rx/tx bytes and packets, pause frames, priority-group occupancy, traffic-class buffer occupancy and adaptive-routing grades, sampled in microseconds.
ASIC floor: Spectrum-4 and later.
Constraint: Sampling interval is 100 to 12,750 microseconds in multiples of 50; the default is 5000 microseconds.
Not for: Not a fabric view and not a drop reason. HFT shows the queue rising; WJH names the packet that died at the top of it.
Answers: Continuous counters shipped off-box to your own collector. Stat groups: acl-stats, ai-ethernet-stats, buffer-stats, control-plane-stats, dot1x-stats, histogram, interface-stats, lldp, platform-stats, router, software-stats.
ASIC floor: Spectrum-2 and later.
Constraint: Default gRPC port is 8443. Secure export needs a CA certificate; supply none and you must enable insecure mode explicitly. Export uses the default VRF unless you set nv set system telemetry export vrf.
Not for: Anything faster than its interval. A burst that fills and drains a traffic-class buffer inside a millisecond never appears in a stat group.
5The fifteen-minute sweep
The toolkit is only useful if it fits in the first quarter hour of a call, before the customer has decided what the problem is. Build it once, in order, and reuse it.
Symptom as reported: “One leaf drops traffic under load. It started after we added a rack.”
Minute 0 — freeze the evidence.
nv action generate system tech-supportTake the bundle before anything is cleared. It carries the resource, PHY and transceiver state you are about to disturb.[2]
Minutes 1-4 — is it capacity?
sudo cl-resource-query
nv show platform asic 0 resource global
nv show platform asic 0 resource aclRead Percentage and High-Watermark together. A route or ACL class at 100% watermark with a timestamp that matches the new rack is your answer; the two views differing by a little is expected and not a finding.[1] If the customer runs ISSU, confirm whether resource-mode half is set, because it halves every Max in that table.[7]
Minutes 5-8 — is it layer 1?
nv show interface status
nv show interface --view ber
nv show interface swp17 link phy health
nv show platform transceiver 17
nv show interface swp17 transceiver thresholdsSym-Errs climbing on one port while the rest are flat localises the fault to that link; per-lane SNR says whether it is one lane or the whole module; the thresholds tell you whether the measured RX power is actually out of spec.[3]
Minutes 9-12 — is it a drop with a name?
nv show system wjh channel
nv show system wjh aggregate-buffer
nv-wjh-cli poll --data drops --output-type tableIf nothing appears, check first whether the NetQ agent owns WJH, in which case the local service must be disabled rather than both left running.[4]
Minutes 13-15 — is it consistent across the fabric?
netq check roce
netq check interfaces
netq check mtunetq check roce covers mode, classification, congestion control, flow control and ETS consistency; interface tests cover speed and auto-negotiation consistency; MTU tests exist because MTU mismatch is a top cause.[8]
What you do not run: tcpdump on the leaf, hoping to see the customer’s flow. It cannot be there.[2]
Same call, different leaf. Fill the blanks.
- Freeze evidence:
____________________(NVUE form) orsudo cl-support. - Capacity:
sudo ____________________andnv show platform asic 0 resource ______. The column that survives an intermittent fault is____________________. - If the customer plans ISSU, the setting that halves every Max is
nv set system forwarding ____________________. - Layer 1: the all-interface error table is
nv show interface --view ______; per-lane SNR isnv show interface swp9 link ____________________. - Drops: on Cumulus Linux 5.18 the WJH CLI binary is
____________________, and if the NetQ agent is collecting WJH the local service must be____________________. - Consistency:
netq check ______validates RoCE mode, classification, ECN/RED thresholds, PFC and ETS — except in mode____________________, which NetQ does not support.
New symptom. A Dell customer’s SN5600 leaf shows no drops in WJH, no BER errors and flat resource counters, yet their training job’s collectives are 30% slower than the same job on the adjacent pod. They ask you to “packet capture the leaf and find it”.
Produce, in under 250 words: (a) the one-sentence reason a capture cannot answer this; (b) three commands you ask for instead and what each would prove; (c) the one telemetry surface you would enable, with the constraint you must state to the customer before they enable it; and (d) the question you ask about the other pod.
Acceptance criteria. (a) cites the control-plane-only limitation; (b) includes at least one counter view and one cross-switch validation; (c) names either HFT with its 8-lane and one-job-per-ASIC limits or ai-ethernet-stats with its “requires AR, trimming or SRv6 enabled separately” caveat; (d) asks what differs between the pods — versions against the RA row, RoCE mode, or adaptive-routing eligibility.
Episode 1 — 03:20, one port named
The BER table puts symbol errors on a single 400G uplink while every other port is clean, and the per-lane PHY health view on that interface shows one lane carrying them.[3] The resource watermarks are unremarkable, so this was never capacity wearing a performance costume.[1] Before you blame the module you check the link configuration, because on Spectrum-4 with PAM4 the documentation requires auto-negotiation enabled.[9] What you say to the operator: “Stop capturing. Clear the PHY counters on that port, give me thirty minutes of traffic, and we will know whether it is the optic or the link settings.”[3]
By breakfast the optic is swapped and the lane is clean. The pod is still thirty percent slower than its twin, and the paragraph that lands overnight blames adaptive routing.
Lab
Pre-flight inventory (do this first). On both Dell-lab hosts record: uname -r, ethtool -i <ifname> (driver and firmware version), ibstat or ibv_devinfo for the ConnectX/BlueField-3 port state, the cable type and length in each port, and ethtool -S <ifname> saved to a file as the baseline. You have no NVIDIA switch, so the goal is to build the host half of the layer-1 toolkit and map it onto the switch commands you will run at a customer.
- Module diagnostics.
sudo ethtool -m <ifname>on a host port with an optical module. Expected: identifier, vendor, part number, temperature, supply voltage and per-lane RX/TX power with alarm thresholds. Map it: this is the host-side equivalent ofnv show platform transceiver <id>plusnv show interface <id> transceiver thresholds.[3] If not: a passive DAC returns almost nothing — that is expected, use an optical port. - Error counters.
ethtool -S <ifname> | grep -Ei 'err|symbol|fcs|crc|pause'. Expected: symbol, CRC and pause counters. Map it:nv show interface --view bergives Eff-BER, Raw-BER, Sym-BER and Sym-Errs for every switch port in one table.[3] - Marginal link (mutating). With traffic running, partially unseat the DAC or move to a longer cable of the same class, then re-read the counters every 30 s for five minutes. Expected: Sym-Errs and CRC errors climb while link state stays up — the exact shape a customer describes as “random slowness”. Rollback: re-seat the original cable in the original port, re-run
ethtool -Sand confirm the error deltas return to zero; if they do not, replace that cable and re-baseline. Never leave a deliberately marginal cable in the lab. - Counter hygiene (mutating). Before any timed test, save the baseline file from pre-flight; host counters are cumulative and there is no per-lane clear equivalent to
nv action clear interface <id> link phy health. Rollback: none is possible after a reset, which is why the baseline file is the rollback.[3] - Optional (customer lab, read-only). On a real Spectrum leaf, collect
nv action generate system tech-supportand locate three sections inside the bundle: the ASIC resource output, the PHY/BER data and the transceiver inventory.[2][1][3] Rollback: none needed; generating a bundle changes no configuration. Do not runnv action clear ...on a customer switch without their written agreement — it destroys their watermark history.
Goal. Build the sweep on a simulated switch and prove the tcpdump limitation to yourself, so you never argue it from memory.
Cumulus VX is no longer released as a standalone image; NVIDIA’s stated path to simulate a Cumulus Linux switch is DSX Air.[12] Use a two-leaf, one-spine blank-canvas topology with one Ubuntu host per leaf.
- Resource views side by side. On leaf01 run
sudo cl-resource-query, thennv show platform asic 0 resource global. Expected: both list route, host, MAC and ACL classes with utilization. Record any class where the two disagree. If not: on a virtual switch some hardware-backed values are unavailable and NVUE falls back to software values, which is the documented behaviour — note that as an artefact of simulation, not a defect.[1][11] - Clear and re-read the watermarks. Run
nv action clear platform asic 0 resource, then re-run the global view. Expected: High-Watermark and Last-High-Watermark reset while Used and Max are unchanged.[1] If not: re-read which metrics the action is documented to clear before filing anything. - The tcpdump limit, and why a simulation cannot show it. Open two terminals on leaf01. In the first run
sudo tcpdump -i any -n icmp. From host01, ping the leaf’s own address, then ping host02 through the leaf. Expected: both appear. A virtual Cumulus Linux switch has “full data plane functionality through the Linux kernel”, so forwarded packets cross the CPU and the capture sees them.[11] That is the point of the step: the control-plane-only limitation is a property of the Spectrum ASIC, not of thetcpdumpcommand, so a simulation can never demonstrate it and an Air capture is not evidence about a customer’s SN5600.[2] Write that sentence down in the form you would say it on a call. If not: if the transit pings do not appear, confirm host01 actually routes to host02 via leaf01 (ip routeon host01) rather than over a direct link. - Extended traceroute. Enable it with
nv set system global icmp ipv4 errors-extension ingress-interfaceandnv config apply, then runnv action traceroute system <host02-address> errors-extensionfrom leaf01. Expected: the ICMP errors carry the ingress interface of each hop rather than only a link-local next hop.[2] If not: check the apply landed withnv config diff applied startup. - Write down what you could not test. List, from the virtual-environment limitations, every part of the sweep that a simulation cannot exercise: ACLs, QoS and buffer management, WJH, SPAN, adaptive routing and ASIC monitoring.[11] This list is the honest caveat you attach to any lab-based claim in front of a customer.
Retrieval check
10 questions from memory. Answer before looking anything up; misses become flashcards.
Explain it to a Dell SE
Explain to a Dell support engineer, in four sentences, why you asked for `nv show interface --view ber` and a tech-support bundle instead of a packet capture on the leaf.
Sources
Facts in this lesson were checked against Cumulus Linux 5.18 docs re-fetched 2026-09-07 (Resource Diagnostics, Network Troubleshooting, Monitoring Interfaces and Transceivers with NVUE); NetQ 5.1; NCP-AIN study guide doc 4417000 MAY26. Dates are when each page was fetched.
- Resource Diagnostics | Cumulus Linux 5.18 · fetched 2026-09-07
- Network Troubleshooting | Cumulus Linux 5.18 · fetched 2026-09-07
- Monitoring Interfaces and Transceivers with NVUE | Cumulus Linux 5.18 · fetched 2026-09-07
- What Just Happened (WJH) | Cumulus Linux 5.18 · fetched 2026-09-07
- Open Telemetry Export | Cumulus Linux 5.18 · fetched 2026-09-07
- High Frequency Telemetry | Cumulus Linux 5.16 · fetched 2026-09-07
- Upgrading Cumulus Linux | Cumulus Linux 5.18 · fetched 2026-09-07
- Validation Tests Reference | Cumulus NetQ 5.1 · fetched 2026-09-07
- Switch Port Attributes | Cumulus Linux 5.18 · fetched 2026-09-07
- NVIDIA-Certified Professional: AI Networking Exam Study Guide (doc 4417000, MAY26) · fetched 2026-09-07
- Cumulus Linux in a Virtual Environment | Cumulus Linux 5.18 · fetched 2026-09-07
- What's New | Cumulus Linux 5.18 · fetched 2026-09-07
- ECMP and Adaptive Routing monitoring | Cumulus NetQ 5.1 · fetched 2026-09-07
The same idea elsewhere
Other lessons that cover this ground, sometimes from another course's angle.