NTB_TRANSPORT(4)
π 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 is0, 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
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2016-2019 Alexander Motin <mav@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms