---
name: "ntb_transport"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/ntb_transport"
---

# ntb\_transport(4)

Packet-oriented transport for Non-Transparent Bridges

## NAME

**ntb\_transport** – Packet-oriented transport for Non-Transparent Bridges

## SYNOPSIS

To compile this driver into your kernel, place the following lines in your kernel configuration file:

**device ntb** **device ntb\_transport**

Or, to load the driver as a module at boot, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
ntb_transport_load="YES"
```

The following tunables are settable from the [loader(8)](/loader/8.md):

- *hw.ntb\_transport.debug\_level*

  Driver debug level. The default value is 0, higher means more verbose.

- *hw.ntb\_transport.max\_mw\_size*

  Limits maximum memory window usage. Allocation of big physically contiguous memory buffer may be a problem, while too big buffers makes no much sense for low latency network interface.

- *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.

## 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.

## SEE ALSO

[if\_ntb(4)](/if_ntb/4.md), [ntb(4)](/ntb/4.md), [ntb\_hw\_amd(4)](/ntb_hw_amd/4.md), [ntb\_hw\_intel(4)](/ntb_hw_intel/4.md), [ntb\_hw\_plx(4)](/ntb_hw_plx/4.md)

## 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*⟩.
