DUMP_FTS(8)

πŸ’… DUMP_FTS β€” the dump_fts page, but make it make sense

okay bestie, so this is DUMP_FTS from the OpenIB Diagnostics crew. It's a man page (section 8, sysadmin business πŸ’–) and it's about dumping InfiniBand forwarding tables. Let's get into it, no cap.


✨ SYNOPSIS ✨

dump_fts [options] [<startlid> [<endlid>]]

That's literally it. Options, then optionally a LID range. Slay.


πŸ¦‹ DESCRIPTION πŸ¦‹

So dump_fts is giving very much ibroute's cooler sibling energy. The difference? ibroute does one switch. dump_fts goes and dumps tables for every single switch it finds in an ibnetdiscover scan of the subnet. Every. One. Main character behavior, honestly. πŸ‘‘

And the dump file format? It's compatible with loading into OpenSM, using this syntax:

-R file -U /path/to/dump-file

So you can dump it and then feed it straight back to OpenSM. It's giving round-trip realness. πŸ”₯


πŸŽ€ OPTIONS πŸŽ€

  • -a, --all β€” show all lids in range, even invalid entries. Yes, even the cursed ones. πŸ™ˆ
  • -n, --no_dests β€” do NOT try to resolve destinations. We're being lazy today and that's valid.
  • -M, --Multicast β€” show multicast forwarding tables. Heads up bestie: in this case, the range parameters are specifying the mlid range. So <startlid> and <endlid> are doing double duty, iykyk.

🌸 Port Selection flags 🌸

  • -C, --Ca <ca_name> β€” use the specified ca_name.
  • -P, --Port <ca_port> β€” use the specified ca_port.
  • -Y, --pkey-idx <idx> β€” P_Key table index, range 0-65535, default 0, used for the outgoing SA/GMP MADs. And important: SMP (SMI directed-route/LID-routed) MADs always use P_Key index 0. No exceptions, periodt.

πŸ’œ Local port Selection πŸ’œ

Multiple port / Multiple CA support, okay so listen: when you don't specify an IB device or port (peep the "local umad parameters" situation below), the libibumad library picks the port for you, using these criteria:

  1. the first port that is ACTIVE.
  2. if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and it will fail if it is not possible. It's not gonna guess for you. πŸ’€

For example:

ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.

See how it escalates? Very demure, very mindful, very specific. ✨

πŸ› Debugging flags πŸ›

  • -d β€” raise the IB debugging level. May be used several times (-ddd or -d -d -d). Stack it like a good playlist.
  • -e β€” show send and receive errors (timeouts and others). The receipts. 🧾
  • -h, --help β€” show the usage message.
  • -v, --verbose β€” increase the application verbosity level. May be used several times (-vv or -v -v -v). Yap mode: unlocked.
  • -V, --version β€” show the version info.

⭐ Configuration flags ⭐

  • -t, --timeout <timeout_ms> β€” override the default timeout for the solicited mads.
  • -y, --m_key <key> β€” use the specified M_key for requests. And btw: if a non-numeric value (like 'x') is specified, then a value will be prompted for. Interactive era. πŸ™ˆ
  • --node-name-map <node-name-map> β€” Specify a node name map. This file maps GUIDs to more user friendly names. See the FILES section below, bestie.
  • --config, -z <config_file> β€” Specify alternate config file. Default: /etc/infiniband-diags/ibdiag.conf

🌈 FILES 🌈

πŸ“ CONFIG FILE πŸ“

/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See the supplied config file for details. It's the group chat settings of the diagnostic world. πŸ’…

🧚 NODE NAME MAP FILE FORMAT 🧚

The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

# comment
<guid> "<name>"

Example:

# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"

# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"

# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"

Look at all those friendly names. Ate. πŸŽ€


πŸ‘€ SEE ALSO πŸ‘€

dump_lfts(8), dump_mfts(8), ibroute(8), ibswitches(8), opensm(8)

Go read them too, they're all part of the same friend group, fr fr. 🫢


πŸ‘‘ AUTHORS πŸ‘‘

Ira Weiny

<ira.weiny@intel.com>


okay that's the whole page, bestie. you're now certified in forwarding table dumping. go forth and dump_fts. πŸ’–

This gem was brought to you by the OpenIB Diagnostics gang, dated 2013-03-26, and it still slays to this day. 🌸✨

πŸ“¦ where this page comes from
  • arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
  • ubuntu stonking: infiniband-diags 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms