NTB_TRANSPORT(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸŽ€ ntb_transport(4) β€” the group-chat guide πŸŽ€

okay so this is the manual page for ntb_transport, a packet-oriented transport for Non-Transparent Bridges, and it lives in section 4 of the Kernel Interfaces Manual πŸ’… bestie, let's get into it.


✨ SYNOPSIS ✨

so to compile this driver into your kernel, you literally just drop these lines into your kernel configuration file:

device ntb
device ntb_transport

or, if you'd rather load the driver as a module at boot (iconic behavior, no cap), put this line in loader.conf(5):

ntb_transport_load="YES"

the following tunables are settable from the loader(8), and yes we're listing all of them 🫢:

  • hw.ntb_transport.debug_level β€” driver debug level. default value is 0, and higher means more verbose. so if you're like "why is nothing printing" β€” it's giving level zero, bump it up πŸ’€
  • hw.ntb_transport.max_mw_size β€” limits maximum memory window usage. here's the vibe: allocation of big physically contiguous memory buffer may be a problem, while too big buffers makes no much sense for low latency network interface. so it's a tradeoff, iykyk βš–οΈ
  • hint.ntb_transport.X.config β€” configures a set of the transport consumers, separated by commas. each consumer can be configured as: "[<name>][:<queues>]", where: name is a name of the driver to attach (empty means any), queues is a number of queues to allocate (empty means automatic). the default configuration is empty string, which means single consumer with one queue per memory window, allowing any driver to attach 🌈
  • hint.ntb_transport.X.compact β€” non-zero value enables compact version of scratchpad protocol, using half as many registers. enabled automatically if there is not enough registers to negotiate all available memory windows. the compact version does not support memory windows of 4GB and above ⚠️ so like, know that before you enable it, bestie.

πŸ¦‹ DESCRIPTION πŸ¦‹

the ntb_transport driver attaches on top of the ntb driver to utilize its resources to create a set of bidirectional queues, delivering packets between the systems. the primary purpose of this driver is to be used by if_ntb network interface, but other consumers may also be developed using KPI πŸ”₯

each ntb_transport require from underlying ntb instance:

  • 1 or more memory windows;
  • 6 scratchpads, plus 2 more for each additional memory window, or 3 plus 1 in case of compact protocol;
  • 1 doorbell for each memory window or configured queue.

like, that's the shopping list. bring all of it or the vibe check fails πŸ’€βœ¨


🌸 SEE ALSO 🌸

if_ntb(4), ntb(4), ntb_hw_amd(4), ntb_hw_intel(4), ntb_hw_plx(4)

go read those too, they're lowkey essential 🧚


πŸ‘‘ AUTHORS πŸ‘‘

the ntb_transport driver was developed by Intel and originally written by Carl Delsey <carl@FreeBSD.org>. later improvements were done by Conrad E. Meyer <cem@FreeBSD.org> and Alexander Motin <mav@FreeBSD.org>. icons only, honestly πŸ«ΆπŸ’–


πŸ’Œ okay that's the whole page!! this beauty comes to you from Debian, dated November 9, 2019 β€” so like, it's vintage but it still slays. mwah, go configure your bridge πŸŽ€βœ¨πŸ’…
πŸ“¦ where this page comes from