1
0
Fork 0

Merging upstream version 1.5.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 10:09:15 +01:00
parent 8f9ab756e2
commit 70a0abe13f
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
874 changed files with 9553 additions and 1347 deletions

View file

@ -1,5 +0,0 @@
[binaries]
c = 'clang'
cpp = 'clang++'
strip = 'strip'
pkgconfig = 'pkg-config'

View file

@ -1,6 +0,0 @@
[properties]
c_args = '-static'
cpp_args = c_args
[binaries]
c = '/usr/bin/gcc'

View file

@ -10,380 +10,120 @@ on:
workflow_dispatch:
jobs:
gcc-debug:
name: gcc debug
default:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc, clang]
buildtype: [debug, release]
container:
image: ghcr.io/igaw/linux-nvme/debian:0.30
steps:
- name: install libraries
run: sudo apt-get install gcc pkg-config libjson-c-dev libssl-dev python3-dev
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=debug
--wrap-mode=nofallback
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- name: build
run: |
scripts/build.sh -b ${{ matrix.buildtype }} -c ${{ matrix.compiler }}
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: logs files
path: |
build/meson-logs/*.txt
.build-ci/meson-logs/*.txt
gcc-release:
name: gcc release
cross:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- arch: armhf
port: armhf
compiler: gcc-arm-linux-gnueabihf
packages:
- arch: s390x
port: s390x
compiler: gcc-s390x-linux-gnu
packages: libgcc-s1:s390x
- arch: ppc64le
port: ppc64el
compiler: gcc-powerpc64le-linux-gnu
packges:
steps:
- name: install libraries
run: sudo apt-get install gcc pkg-config libjson-c-dev libdbus-1-dev python3-dev
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=nofallback
-Dlibdbus=enabled
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- name: set up arm architecture
run: |
export release=$(lsb_release -c -s)
sudo dpkg --add-architecture ${{ matrix.port }}
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
sudo dd of=/etc/apt/sources.list.d/${{ matrix.arch }}.list <<EOF
deb [arch=${{ matrix.port }}] http://ports.ubuntu.com/ $release main universe restricted"
deb [arch=${{ matrix.port }}] http://ports.ubuntu.com/ $release-updates main universe restricted"
EOF
sudo apt update
sudo apt install -y meson pkg-config qemu-user-static ${{ matrix.compiler}} libjson-c-dev:${{ matrix.port }} ${{ matrix.packages }}
- name: build
run: |
scripts/build.sh -b release -c gcc -t ${{ matrix.arch }} cross
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
.build-ci/meson-logs/*.txt
clang-release:
name: clang release
libdbus:
name: libdbus
runs-on: ubuntu-latest
container:
image: ghcr.io/igaw/linux-nvme/debian:0.30
steps:
- name: install libraries
run: sudo apt-get install clang pkg-config libjson-c-dev libdbus-1-dev python3-dev
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=nofallback
--cross-file=.github/cross/clang.txt
-Dlibdbus=enabled
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- name: build
run: |
scripts/build.sh -b release -c gcc libdbus
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
.build-ci/meson-logs/*.txt
fallback-shared-libraries:
name: fallback shared libraries
runs-on: ubuntu-latest
container:
image: ghcr.io/igaw/linux-nvme/debian:0.30
if: github.ref == 'refs/heads/master'
steps:
- name: install libraries
run: sudo apt-get install libpam-dev libcap-ng-dev
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=forcefallback
-Dlibdbus=enabled
-Ddbus:werror=false
-Dopenssl:werror=false
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- uses: actions/upload-artifact@v3
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
fallback-static-libraries:
name: fallback static libraries
runs-on: ubuntu-latest
steps:
- name: install libraries
run: sudo apt-get install libpam-dev libcap-ng-dev
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=forcefallback
--default-library=static
-Dlibdbus=enabled
-Ddbus:werror=false
-Dopenssl:werror=false
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
fallback-all-static:
name: fallback all static
runs-on: ubuntu-latest
steps:
- name: install libraries
run: sudo apt-get install libpam-dev libcap-ng-dev
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=forcefallback
--default-library=static
--cross-file=.github/cross/ubuntu-static.txt
-Dlibdbus=enabled
-Ddbus:werror=false
-Dopenssl:werror=false
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
cross-armhf:
name: cross armhf
runs-on: ubuntu-latest
steps:
- name: set up arm architecture
run: |
export release=$(lsb_release -c -s)
sudo dpkg --add-architecture armhf
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
sudo dd of=/etc/apt/sources.list.d/armhf.list <<EOF
deb [arch=armhf] http://ports.ubuntu.com/ $release main universe restricted"
deb [arch=armhf] http://ports.ubuntu.com/ $release-updates main universe restricted"
EOF
sudo apt update
- name: install armhf compiler
run: sudo apt install gcc-arm-linux-gnueabihf pkg-config qemu-user-static
- name: install libraries
run: sudo apt install libjson-c-dev:armhf
- uses: actions/checkout@v3
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=nofallback
--cross-file=.github/cross/ubuntu-armhf.txt
-Dpython=disabled
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
cross-ppc64le:
name: cross ppc64le
runs-on: ubuntu-latest
steps:
- name: set up ppc64le architecture
run: |
export release=$(lsb_release -c -s)
sudo dpkg --add-architecture ppc64el
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
sudo dd of=/etc/apt/sources.list.d/ppc64el.list <<EOF
deb [arch=ppc64el] http://ports.ubuntu.com/ $release main universe restricted"
deb [arch=ppc64el] http://ports.ubuntu.com/ $release-updates main universe restricted"
EOF
sudo apt update
- name: install powerpc64le compiler
run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config qemu-user-static
- name: install libraries
run: sudo apt install libjson-c-dev:ppc64el
- uses: actions/checkout@v3
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=nofallback
--cross-file=.github/cross/ubuntu-ppc64le.txt
-Dpython=disabled
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
cross-s390x:
name: cross s390x
runs-on: ubuntu-latest
steps:
- name: set up s390x architecture
run: |
export release=$(lsb_release -c -s)
sudo dpkg --add-architecture s390x
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
sudo dd of=/etc/apt/sources.list.d/s390x.list <<EOF
deb [arch=s390x] http://ports.ubuntu.com/ $release main universe restricted"
deb [arch=s390x] http://ports.ubuntu.com/ $release-updates main universe restricted"
EOF
sudo apt update
- name: install s390x compiler
run: sudo apt install gcc-s390x-linux-gnu pkg-config qemu-user-static
- name: install libraries
run: sudo apt install libjson-c-dev:s390x
- uses: actions/checkout@v3
- uses: BSFishy/meson-build@v1.0.3
name: build
with:
action: build
setup-options: >
--werror
--buildtype=release
--wrap-mode=nofallback
--cross-file=.github/cross/ubuntu-s390x.txt
-Dpython=disabled
meson-version: 0.61.2
- uses: BSFishy/meson-build@v1.0.3
name: test
with:
action: test
meson-version: 0.61.2
- uses: actions/upload-artifact@v3
name: upload logs
if: failure()
with:
name: log files
path: |
build/meson-logs/*.txt
build-muon:
name: muon minimal
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: build muon and samurai build-tool
run: |
mkdir build-tools
cd build-tools
git clone --depth 1 https://git.sr.ht/~lattis/muon
cd muon
export CC=gcc
export ninja=build/samu
./tools/bootstrap_ninja.sh build
./bootstrap.sh build
build/muon setup \
-Dlibcurl=disabled \
-Dlibarchive=disabled \
-Ddocs=disabled \
-Dsamurai=disabled \
build
build/samu -C build
build/muon -C build test
- name: build
run: |
export PATH=$(pwd)/build-tools/muon/build:$PATH
scripts/build.sh -b release -c gcc fallback
- uses: actions/upload-artifact@v3
if: failure()
with:
name: log files
path: |
.build-ci/meson-logs/*.txt
muon setup \
-Dpython=disabled \
-Dopenssl=disabled \
-Dlibdbus=disabled \
-Djson-c=disabled \
build
samu -C build
- name: test
build-muon:
name: muon minimal static
runs-on: ubuntu-latest
container:
image: ghcr.io/igaw/linux-nvme/debian:0.30
steps:
- uses: actions/checkout@v3
- name: build
run: |
export PATH=$(pwd)/build-tools/muon/build:$PATH
muon -C build test
scripts/build.sh -m muon

View file

@ -16,6 +16,9 @@ jobs:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- name: install libraries
run: sudo apt-get install gcc pkg-config libjson-c-dev libssl-dev python3-dev
- uses: actions/checkout@v3
- name: Build sdist

130
README.md
View file

@ -15,7 +15,7 @@ and payloads, and utilities to connect, scan, and manage nvme devices
on a Linux system.
The public specification is the authority to resolve any protocol
discrepencies with this library. For more info on NVM Express, please
discrepancies with this library. For more info on NVM Express, please
see:
https://nvmexpress.org
@ -36,52 +36,53 @@ Keith Busch 2020-02-06
------
# Building with meson
## What is the meson build system?
Here's an excerpt from the meson web site: *Meson is **an open source
build system** meant to be both extremely fast, and, even more
importantly, as user friendly as possible. The main design point of
Meson is that every moment a developer spends writing or debugging
build definitions is a second wasted.*
Several well-known projects such as `systemd` and `Gnome` use meson as
their build system. A summary of projects using meson can be found
[here](https://mesonbuild.com/Users.html). For more info on meson,
please consult the following sites:
**Wiki page**: https://en.wikipedia.org/wiki/Meson_(software)
**meson documentation**: https://mesonbuild.com/
**meson repo**: https://github.com/mesonbuild/meson
## Dependency
# Dependency
libnvme depends on minimum Linux kernel version v4.15, which
introduced the /sys/class/nvme-subsystem.
# Build from source
## Prerequisite
First, install meson.
A minimal build depends on a set of build tools
**Debian / Ubuntu**:
- gcc
- ninja
- meson
```bash
sudo apt-get install meson
```
Not all feature will be present with such configuration, e.g.
the fabrics part of the library wont support authentication or
TLS over the nvme-tcp transport.
**Fedora / Red Hat**:
To enable the optional features install following libraries
```bash
sudo dnf install meson
```
`/etc/nvme/config.json`` support:
- json-c (recommend)
Authentication and TLS over nvme-tcp:
- openssl
- keyutils
End point discovery for MI
- libdbus
Python bindings
- Python 3 interpreter
- Python 3 development libraries
## Minimal on embedded builds
The reference implemention of the Meson specification is in Python 3. Installing
or porting this dependency is not really feasible for embedded project. Though
there are two project which implement the Ninja and the Meson API in pure C99
- samurai: https://github.com/michaelforney/samurai.git
- muon: https://git.sr.ht/~lattis/muon
See the CI [build](.github/workflows/build.yml) for an example how to use it.
## To compile libnvme
Using meson is similar to projects that use a `configure` script before running `make`.
To `configure` the project:
```
@ -91,7 +92,7 @@ meson setup .build
Which will default to build a shared library. To configure for static libraries call
```
meson setup .build --default-library=static
meson setup --default-library=static .build
```
One nice feature of meson is that it doesn't mix build artifacts
@ -105,14 +106,7 @@ completely "clean" all the build artifacts, one need only delete the
To compile:
```
cd .build
ninja
```
Or:
```
ninja -C .build
meson -C .build
```
## To install libnvme
@ -120,8 +114,7 @@ ninja -C .build
To install `libnvme`:
```
cd .build
meson install
meson install -C .build
```
## To run unit tests
@ -129,23 +122,7 @@ meson install
To run unit tests:
```
cd .build
meson test
```
## To clean after a build
To perform the equivalent of a `make clean` without deleting the build configuration.
```
cd .build
ninja -t clean
```
Or:
```
ninja -C .build -t clean
meson test -C .build
```
## To purge everything
@ -160,10 +137,24 @@ rm -rf .build
A few build options can be specified on the command line when invoking meson.
| Option | Values [default] | Description |
| ------ | ------------------------- | ------------------------------------------------------------ |
| man | true, [false] | Instruct meson to configure the project to build the `libnvme` documentation. <br />Example: `meson .build -Dman=true` |
| Option | Values [default] | Description |
| ----------- | ------------------------- | ------------------------------------------------------------ |
| version-tag | none | Overwrite the git version string in the binary |
| htmldir | none | Installation directory for the HTML documentation |
| rstdir | none | Installation directory for the RST documentation |
| docs | [false], html, man, rst, all | Install documentation |
| docs-build | [false], true | Enable build documentation |
| python | [auto], enabled, disabled | Whether to build the Python bindings. When set to `auto`, the default, meson will check for the presence of the tools and libraries (e.g. `swig`) required to build the Python bindings. If found, meson will configure the project to build the Python bindings. If a tool or library is missing, then the Python bindings won't be built. Setting this to `enabled`, forces the Python bindings to be built. When set to `disabled`, meson will configure the project to not build the Python bindings.<br />Example: `meson setup .build -Dpython=disabled` |
| openssl | [auto], enabled, disabled | Enables OpenSSL dependend features (e.g. authentication), adds build dependency on OpenSSL |
| libdbus | auto, enabled, [disabled] | Enables D-Bus dependend features (libnvme-mi: End point discovery), adds build dependency on libdbus |
| json-c | [auto], enabled, disabled | (recommended) Enables JSON-C dependend features (e.g. config.json parsing), adds build depdency on json-c |
| keyutils | [auto], enabled, disabled | Enables keyutils dependend features (e.g. TLS over TCP), adds build dependency on keyutils |
See the full configuration options with
```bash
meson configure .build
```
### Changing the build options from the command-line (i.e. w/o modifying any files)
@ -183,12 +174,5 @@ meson setup .build -Db_sanitize=address
This option adds `-fsanitize=address` to the gcc options. Note that when using the sanitize feature, the library `libasan.so` must be available and must be the very first library loaded when running an executable. Ensuring that `libasan.so` gets loaded first can be achieved with the `LD_PRELOAD` environment variable as follows:
```
meson setup .build -Db_sanitize=address && LD_PRELOAD=/lib64/libasan.so.6 ninja -C .build test
meson setup .build -Db_sanitize=address && LD_PRELOAD=/lib64/libasan.so.6 ninja -C .build test
```
To list configuration options that are available and possible values:
```bash
meson configure .build
```

View file

@ -12,7 +12,7 @@ copyright = '2020, Keith Busch'
author = 'Keith Busch <kbusch@kernel.org>'
master_doc = 'index'
release = '1.4'
release = '1.5'
# -- General configuration ---------------------------------------------------

View file

@ -59,6 +59,10 @@
"type": "array",
"items": { "$ref": "#/$defs/port" }
},
"application": {
"description": "Program managing this subsystem",
"type": "string"
},
"required": [ "nqn" ]
}
},

View file

@ -59,6 +59,10 @@
"type": "array",
"items": { "$ref": "#/$defs/port" }
},
"application": {
"description": "Program managing this subsystem",
"type": "string"
},
"required": [ "nqn" ]
}
},

169
doc/man/nbft_control.2 Normal file
View file

@ -0,0 +1,169 @@
.TH "libnvme" 9 "struct nbft_control" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_control \- NBFT Table - Control Descriptor (Figure 8)
.SH SYNOPSIS
struct nbft_control {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 major_revision;"
.br
.BI " __u8 minor_revision;"
.br
.BI " __u8 reserved1;"
.br
.BI " __le16 csl;"
.br
.BI " __u8 flags;"
.br
.BI " __u8 reserved2;"
.br
.BI " struct nbft_heap_obj hdesc;"
.br
.BI " __u8 hsv;"
.br
.BI " __u8 reserved3;"
.br
.BI " __le32 hfio;"
.br
.BI " __le16 hfil;"
.br
.BI " __u8 hfiv;"
.br
.BI " __u8 num_hfi;"
.br
.BI " __le32 ssnso;"
.br
.BI " __le16 ssnsl;"
.br
.BI " __u8 ssnsv;"
.br
.BI " __u8 num_ssns;"
.br
.BI " __le32 seco;"
.br
.BI " __le16 secl;"
.br
.BI " __u8 secv;"
.br
.BI " __u8 num_sec;"
.br
.BI " __le32 disco;"
.br
.BI " __le16 discl;"
.br
.BI " __u8 discv;"
.br
.BI " __u8 num_disc;"
.br
.BI " __u8 reserved4[16];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field specifies the element (refer to
\fIenum nbft_desc_type\fP). This field shall be set to 1h (i.e.,
Control, #NBFT_DESC_CONTROL).
.IP "major_revision" 12
Major Revision: The major revision of the structure corresponding
to the Signature field. Larger major revision numbers should
not be assumed backward compatible to lower major revision
numbers with the same signature.
.IP "minor_revision" 12
Minor Revision: The minor revision of the structure corresponding
to the signature field. If the major revision numbers are
the same, any minor revision number differences shall be backwards
compatible with the same signature.
.IP "reserved1" 12
Reserved.
.IP "csl" 12
Control Structure Length (CSL): This field indicates the length
in bytes of the Control Descriptor.
.IP "flags" 12
Flags, see \fIenum nbft_control_flags\fP.
.IP "reserved2" 12
Reserved.
.IP "hdesc" 12
Host Descriptor (HDESC): This field indicates the location
and length of the Host Descriptor (see \fIstruct nbft_host\fP).
.IP "hsv" 12
Host Descriptor Version (HSV): This field indicates the version
of the Host Descriptor.
.IP "reserved3" 12
Reserved.
.IP "hfio" 12
HFI Descriptor List Offset (HFIO): If this field is set to
a non-zero value, then this field indicates the offset in bytes
of the HFI Descriptor List, if any, from byte offset 0h of the
NBFT Table Header. If the \fInum_hfi\fP field is cleared to 0h,
then this field is reserved.
.IP "hfil" 12
HFI Descriptor Length (HFIL): This field indicates the length
in bytes of each HFI Descriptor, if any. If the \fInum_hfi\fP field
is cleared to 0h, then this field is reserved.
.IP "hfiv" 12
HFI Descriptor Version (HFIV): This field indicates the version
of each HFI Descriptor.
.IP "num_hfi" 12
Number of Host Fabric Interface Descriptors (NumHFI): This field
indicates the number of HFI Descriptors (see \fIstruct nbft_hfi\fP)
in the HFI Descriptor List, if any. If no interfaces have been
configured, then this field shall be cleared to 0h.
.IP "ssnso" 12
SSNS Descriptor List Offset (SSNSO):: This field indicates
the offset in bytes of the SSNS Descriptor List, if any, from
byte offset 0h of the NBFT Table Header. If the \fInum_ssns\fP field
is cleared to 0h, then this field is reserved.
.IP "ssnsl" 12
SSNS Descriptor Length (SSNSL): This field indicates the length
in bytes of each SSNS Descriptor, if any. If the \fInum_ssns\fP
field is cleared to 0h, then this field is reserved.
.IP "ssnsv" 12
SSNS Descriptor Version (SSNSV): This field indicates the version
of the SSNS Descriptor.
.IP "num_ssns" 12
Number of Subsystem and Namespace Descriptors (NumSSNS): This
field indicates the number of Subsystem Namespace (SSNS)
Descriptors (see \fIstruct nbft_ssns\fP) in the SSNS Descriptor List,
if any.
.IP "seco" 12
Security Profile Descriptor List Offset (SECO): This field
indicates the offset in bytes of the Security Profile Descriptor
List, if any, from byte offset 0h of the NBFT Table Header.
If the \fInum_sec\fP field is cleared to 0h, then this field
is reserved.
.IP "secl" 12
Security Profile Descriptor Length (SECL): This field indicates
the length in bytes of each Security Profile Descriptor, if any.
If the \fInum_sec\fP field is cleared to 0h, then this field
is reserved.
.IP "secv" 12
Security Profile Descriptor Version (SECV): This field indicates
the version of the Security Profile Descriptor.
.IP "num_sec" 12
Number of Security Profile Descriptors (NumSec): This field
indicates the number of Security Profile Descriptors
(see \fIstruct nbft_security\fP), if any, in the Security Profile
Descriptor List.
.IP "disco" 12
Discovery Descriptor Offset (DISCO): This field indicates
the offset in bytes of the Discovery Descriptor List, if any,
from byte offset 0h of the NBFT Table Header. If the \fInum_disc\fP
field is cleared to 0h, then this field is reserved.
.IP "discl" 12
Discovery Descriptor Length (DISCL): This field indicates
the length in bytes of each Discovery Descriptor, if any.
If the \fInum_disc\fP field is cleared to 0h, then this field
is reserved.
.IP "discv" 12
Discovery Descriptor Version (DISCV): This field indicates
the version of the Discovery Descriptor.
.IP "num_disc" 12
Number of Discovery Descriptors (NumDisc): This field indicates
the number of Discovery Descriptors (see \fIstruct nbft_discovery\fP),
if any, in the Discovery Descriptor List, if any.
.IP "reserved4" 12
Reserved.

View file

@ -0,0 +1,12 @@
.TH "libnvme" 9 "enum nbft_control_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_control_flags \- Control Descriptor Flags
.SH SYNOPSIS
enum nbft_control_flags {
.br
.BI " NBFT_CONTROL_VALID"
};
.SH Constants
.IP "NBFT_CONTROL_VALID" 12
Block Valid: indicates that the structure is valid.

74
doc/man/nbft_desc_type.2 Normal file
View file

@ -0,0 +1,74 @@
.TH "libnvme" 9 "enum nbft_desc_type" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_desc_type \- NBFT Elements - Descriptor Types (Figure 5)
.SH SYNOPSIS
enum nbft_desc_type {
.br
.BI " NBFT_DESC_HEADER"
,
.br
.br
.BI " NBFT_DESC_CONTROL"
,
.br
.br
.BI " NBFT_DESC_HOST"
,
.br
.br
.BI " NBFT_DESC_HFI"
,
.br
.br
.BI " NBFT_DESC_SSNS"
,
.br
.br
.BI " NBFT_DESC_SECURITY"
,
.br
.br
.BI " NBFT_DESC_DISCOVERY"
,
.br
.br
.BI " NBFT_DESC_HFI_TRINFO"
,
.br
.br
.BI " NBFT_DESC_RESERVED_8"
,
.br
.br
.BI " NBFT_DESC_SSNS_EXT_INFO"
};
.SH Constants
.IP "NBFT_DESC_HEADER" 12
Header: an ACPI structure header with some additional
NBFT specific info.
.IP "NBFT_DESC_CONTROL" 12
Control Descriptor: indicates the location of host,
HFI, SSNS, security, and discovery descriptors.
.IP "NBFT_DESC_HOST" 12
Host Descriptor: host information.
.IP "NBFT_DESC_HFI" 12
HFI Descriptor: an indexable table of HFI Descriptors,
one for each fabric interface on the host.
.IP "NBFT_DESC_SSNS" 12
Subsystem Namespace Descriptor: an indexable table
of SSNS Descriptors.
.IP "NBFT_DESC_SECURITY" 12
Security Descriptor: an indexable table of Security
descriptors.
.IP "NBFT_DESC_DISCOVERY" 12
Discovery Descriptor: an indexable table of Discovery
Descriptors.
.IP "NBFT_DESC_HFI_TRINFO" 12
HFI Transport Descriptor: indicated by an HFI Descriptor,
corresponds to a specific transport for a single HFI.
.IP "NBFT_DESC_RESERVED_8" 12
Reserved.
.IP "NBFT_DESC_SSNS_EXT_INFO" 12
SSNS Extended Info Descriptor: indicated by an SSNS
Descriptor if required.

71
doc/man/nbft_discovery.2 Normal file
View file

@ -0,0 +1,71 @@
.TH "libnvme" 9 "struct nbft_discovery" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_discovery \- Discovery Descriptor (Figure 24)
.SH SYNOPSIS
struct nbft_discovery {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 flags;"
.br
.BI " __u8 index;"
.br
.BI " __u8 hfi_index;"
.br
.BI " __u8 sec_index;"
.br
.BI " __u8 reserved1;"
.br
.BI " struct nbft_heap_obj discovery_ctrl_addr_obj;"
.br
.BI " struct nbft_heap_obj discovery_ctrl_nqn_obj;"
.br
.BI " __u8 reserved2[14];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 6h
(i.e., Discovery Descriptor; #NBFT_DESC_DISCOVERY).
.IP "flags" 12
Discovery Descriptor Flags, see \fIenum nbft_discovery_flags\fP.
.IP "index" 12
Discovery Descriptor Index: This field indicates
the number of this Discovery Descriptor in
the Discovery Descriptor List.
.IP "hfi_index" 12
HFI Descriptor Index: This field indicates the value
of the HFI Descriptor Index field of the HFI Descriptor
associated with this Discovery Descriptor. If multiple
HFIs share a common Discovery controller, there shall
be multiple Discovery Descriptor entries with one per HFI.
.IP "sec_index" 12
Security Profile Descriptor Index: This field indicates
the value of the Security Profile Descriptor Index
field of the Security Descriptor associated with
this Discovery Descriptor.
.IP "reserved1" 12
Reserved.
.IP "discovery_ctrl_addr_obj" 12
Discovery Controller Address Heap Object Reference:
This field indicates the location and size of a heap
object containing a URI which indicates an NVMe Discovery
controller associated with this Discovery Descriptor.
If this field is cleared to 0h, then no URI is specified.
.IP "discovery_ctrl_nqn_obj" 12
Discovery Controller NQN Heap Object Reference:
If set to a non-zero value, this field indicates
the location and size of a heap object containing
an NVMe Discovery controller NQN. If the NVMe Discovery
controller referenced by this record requires secure
authentication with a well known Subsystem NQN, this
field indicates the unique NQN for that NVMe Discovery
controller. This record is involved formatted as an NQN
string. If this field is cleared to 0h, then this
field is reserved and the OS shall use the well
known discovery NQN for this record.
.IP "reserved2" 12
Reserved.

View file

@ -0,0 +1,14 @@
.TH "libnvme" 9 "enum nbft_discovery_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_discovery_flags \- Discovery Descriptor Flags
.SH SYNOPSIS
enum nbft_discovery_flags {
.br
.BI " NBFT_DISCOVERY_VALID"
};
.SH Constants
.IP "NBFT_DISCOVERY_VALID" 12
Descriptor Valid: if set to 1h, then this descriptor
is valid. If cleared to 0h, then this descriptor
is reserved.

93
doc/man/nbft_header.2 Normal file
View file

@ -0,0 +1,93 @@
.TH "libnvme" 9 "struct nbft_header" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_header \- NBFT Table - Header (Figure 8)
.SH SYNOPSIS
struct nbft_header {
.br
.BI " char signature[4];"
.br
.BI " __le32 length;"
.br
.BI " __u8 major_revision;"
.br
.BI " __u8 checksum;"
.br
.BI " char oem_id[6];"
.br
.BI " char oem_table_id[8];"
.br
.BI " __le32 oem_revision;"
.br
.BI " __le32 creator_id;"
.br
.BI " __le32 creator_revision;"
.br
.BI " __le32 heap_offset;"
.br
.BI " __le32 heap_length;"
.br
.BI " struct nbft_heap_obj driver_dev_path_sig;"
.br
.BI " __u8 minor_revision;"
.br
.BI " __u8 reserved[13];"
.br
.BI "
};
.br
.SH Members
.IP "signature" 12
Signature: An ASCII string representation of the table
identifier. This field shall be set to the value 4E424654h
(i.e. "NBFT", see #NBFT_HEADER_SIG).
.IP "length" 12
Length: The length of the table, in bytes, including the
header, starting from offset 0h. This field is used to record
the size of the entire table.
.IP "major_revision" 12
Major Revision: The major revision of the structure
corresponding to the Signature field. Larger major revision
numbers should not be assumed backward compatible to lower
major revision numbers with the same signature.
.IP "checksum" 12
Checksum: The entire table, including the Checksum field,
shall sum to 0h to be considered valid.
.IP "oem_id" 12
OEMID shall be populated by the NBFT driver writer by
an OEM-supplied string that identifies the OEM. All
trailing bytes shall be NULL.
.IP "oem_table_id" 12
OEM Table ID: This field shall be populated by the NBFT
driver writer with an OEM-supplied string that the OEM
uses to identify the particular data table. This field is
particularly useful when defining a definition block to
distinguish definition block functions. The OEM assigns
each dissimilar table a new OEM Table ID.
.IP "oem_revision" 12
OEM Revision: An OEM-supplied revision number. Larger
numbers are assumed to be newer revisions.
.IP "creator_id" 12
Creator ID: Vendor ID of utility that created the table.
For instance, this may be the ID for the ASL Compiler.
.IP "creator_revision" 12
Creator Revision: Revision of utility that created the
table. For instance, this may be the ID for the ASL Compiler.
.IP "heap_offset" 12
Heap Offset (HO): This field indicates the offset in bytes
of the heap, if any, from byte offset 0h of the NBFT
Table Header.
.IP "heap_length" 12
Heap Length (HL): The length of the heap, if any.
.IP "driver_dev_path_sig" 12
Driver Signature Heap Object Reference: This field indicates
the offset in bytes of a heap object containing the Driver
Signature, if any, from byte offset 0h of the NBFT Table
Header.
.IP "minor_revision" 12
Minor Revision: The minor revision of the structure
corresponding to the Signature field. If the major revision
numbers are the same, any minor revision number differences
shall be backwards compatible with the same signature.
.IP "reserved" 12
Reserved.

20
doc/man/nbft_heap_obj.2 Normal file
View file

@ -0,0 +1,20 @@
.TH "libnvme" 9 "struct nbft_heap_obj" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_heap_obj \- NBFT Header Driver Signature
.SH SYNOPSIS
struct nbft_heap_obj {
.br
.BI " __le32 offset;"
.br
.BI " __le16 length;"
.br
.BI "
};
.br
.SH Members
.IP "offset" 12
Offset in bytes of the heap object, if any, from byte offset 0h
of the NBFT Table Header.
.IP "length" 12
Length in bytes of the heap object, if any.

44
doc/man/nbft_hfi.2 Normal file
View file

@ -0,0 +1,44 @@
.TH "libnvme" 9 "struct nbft_hfi" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_hfi \- Host Fabric Interface (HFI) Descriptor (Figure 11)
.SH SYNOPSIS
struct nbft_hfi {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 index;"
.br
.BI " __u8 flags;"
.br
.BI " __u8 trtype;"
.br
.BI " __u8 reserved1[12];"
.br
.BI " struct nbft_heap_obj trinfo_obj;"
.br
.BI " __u8 reserved2[10];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 3h (i.e., Host Fabric
Interface Descriptor; #NBFT_DESC_HFI).
.IP "index" 12
HFI Descriptor Index: This field indicates the number of this
HFI Descriptor in the Host Fabric Interface Descriptor List.
.IP "flags" 12
HFI Descriptor Flags, see \fIenum nbft_hfi_flags\fP.
.IP "trtype" 12
HFI Transport Type, see \fIenum nbft_trtype\fP.
.IP "reserved1" 12
Reserved.
.IP "trinfo_obj" 12
HFI Transport Info Descriptor Heap Object Reference: If this
field is set to a non-zero value, then this field indicates
the location and size of a heap object containing
a HFI Transport Info.
.IP "reserved2" 12
Reserved.

13
doc/man/nbft_hfi_flags.2 Normal file
View file

@ -0,0 +1,13 @@
.TH "libnvme" 9 "enum nbft_hfi_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_hfi_flags \- HFI Descriptor Flags
.SH SYNOPSIS
enum nbft_hfi_flags {
.br
.BI " NBFT_HFI_VALID"
};
.SH Constants
.IP "NBFT_HFI_VALID" 12
Descriptor Valid: If set to 1h, then this descriptor is valid.
If cleared to 0h, then this descriptor is reserved.

137
doc/man/nbft_hfi_info_tcp.2 Normal file
View file

@ -0,0 +1,137 @@
.TH "libnvme" 9 "struct nbft_hfi_info_tcp" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_hfi_info_tcp \- HFI Transport Info Descriptor - NVMe/TCP (Figure 13)
.SH SYNOPSIS
struct nbft_hfi_info_tcp {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 version;"
.br
.BI " __u8 trtype;"
.br
.BI " __u8 trinfo_version;"
.br
.BI " __le16 hfi_index;"
.br
.BI " __u8 flags;"
.br
.BI " __le32 pci_sbdf;"
.br
.BI " __u8 mac_addr[6];"
.br
.BI " __le16 vlan;"
.br
.BI " __u8 ip_origin;"
.br
.BI " __u8 ip_address[16];"
.br
.BI " __u8 subnet_mask_prefix;"
.br
.BI " __u8 ip_gateway[16];"
.br
.BI " __u8 reserved1;"
.br
.BI " __le16 route_metric;"
.br
.BI " __u8 primary_dns[16];"
.br
.BI " __u8 secondary_dns[16];"
.br
.BI " __u8 dhcp_server[16];"
.br
.BI " struct nbft_heap_obj host_name_obj;"
.br
.BI " __u8 reserved2[18];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 7h (i.e.,
HFI Transport Info; #NBFT_DESC_HFI_TRINFO).
.IP "version" 12
Version: This field shall be set to 1h.
.IP "trtype" 12
HFI Transport Type, see \fIenum nbft_trtype\fP: This field
shall be set to 03h (i.e., NVMe/TCP; #NBFT_TRTYPE_TCP).
.IP "trinfo_version" 12
Transport Info Version: Implementations compliant to this
specification shall set this field to 1h.
.IP "hfi_index" 12
HFI Descriptor Index: The value of the HFI Descriptor Index
field of the HFI Descriptor (see \fIstruct nbft_hfi\fP.index)
whose HFI Transport Info Descriptor Heap Object Reference
field indicates this HFI Transport Info Descriptor.
.IP "flags" 12
HFI Transport Flags, see \fIenum nbft_hfi_info_tcp_flags\fP.
.IP "pci_sbdf" 12
PCI Express Routing ID for the HFI Transport Function:
This field indicates the PCI Express Routing ID as specified
in the PCI Express Base Specification.
.IP "mac_addr" 12
MAC Address: The MAC address of this HFI, in EUI-48TM format,
as defined in the IEEE Guidelines for Use of Extended Unique
Identifiers. This field shall be set to a non-zero value.
.IP "vlan" 12
VLAN: If this field is set to a non-zero value, then this
field contains the VLAN identifier if the VLAN associated
with this HFI, as defined in IEEE 802.1q-2018. If no VLAN
is associated with this HFI, then this field shall be cleared
to 0h.
.IP "ip_origin" 12
IP Origin: If this field is set to a non-zero value, then
this field indicates the source of Ethernet L3 configuration
information used by the driver for this interface. Valid
values are defined in the Win 32 API: NL_PREFIX_ORIGIN
enumeration specification. This field should be cleared
to 0h if the IP Origin field is unused by driver.
.IP "ip_address" 12
IP Address: This field indicates the IPv4 or IPv6 address
of this HFI. This field shall be set to a non-zero value.
.IP "subnet_mask_prefix" 12
Subnet Mask Prefix: This field indicates the IPv4 or IPv6
subnet mask in CIDR routing prefix notation.
.IP "ip_gateway" 12
IP Gateway: If this field is set to a non-zero value, this
field indicates the IPv4 or IPv6 address of the IP gateway
for this HFI. If this field is cleared to 0h, then
no IP gateway is specified.
.IP "reserved1" 12
Reserved.
.IP "route_metric" 12
Route Metric: If this field is set to a non-zero value,
this field indicates the cost value for the route indicated
by this HF. This field contains the value utilized by the
pre-OS driver when chosing among all available routes. Lower
values relate to higher priority. Refer to IETF RFC 4249.
If the pre-OS driver supports routing and did not configure
a specific route metric for this interface, then the pre-OS
driver should set this value to 500. If the pre-OS driver
does not support routing, then this field should be cleared
to 0h.
.IP "primary_dns" 12
Primary DNS: If this field is set to a non-zero value,
this field indicates the IPv4 or IPv6 address of the
Primary DNS server for this HFI, if any, from byte offset
0h of the NBFT Table Header. If this field is cleared to 0h,
then no Primary DNS is specified.
.IP "secondary_dns" 12
Secondary DNS: If this field is set to a non-zero value,
this field indicates the IPv4 or IPv6 address of
the Secondary DNS server for this HFI, if any, from byte
offset 0h of the NBFT Table Header. If this field is
cleared to 0h, then no Secondary DNS is specified.
.IP "dhcp_server" 12
DHCP Server: If the DHCP Override bit is set to 1h, then
this field indicates the IPv4 or IPv6 address of the DHCP
server used to assign this HFI address. If that bit is
cleared to 0h, then this field is reserved.
.IP "host_name_obj" 12
Host Name Heap Object Reference: If this field is set
to a non-zero value, then this field indicates the location
and size of a heap object containing a Host Name string.
.IP "reserved2" 12
Reserved.

View file

@ -0,0 +1,35 @@
.TH "libnvme" 9 "enum nbft_hfi_info_tcp_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_hfi_info_tcp_flags \- HFI Transport Flags
.SH SYNOPSIS
enum nbft_hfi_info_tcp_flags {
.br
.BI " NBFT_HFI_INFO_TCP_VALID"
,
.br
.br
.BI " NBFT_HFI_INFO_TCP_GLOBAL_ROUTE"
,
.br
.br
.BI " NBFT_HFI_INFO_TCP_DHCP_OVERRIDE"
};
.SH Constants
.IP "NBFT_HFI_INFO_TCP_VALID" 12
Descriptor Valid: if set to 1h, then this
descriptor is valid. If cleared to 0h, then
this descriptor is reserved.
.IP "NBFT_HFI_INFO_TCP_GLOBAL_ROUTE" 12
Global Route vs. Link Local Override Flag:
if set to 1h, then the BIOS utilized this
interface described by HFI to be the default
route with highest priority. If cleared to 0h,
then routes are local to their own scope.
.IP "NBFT_HFI_INFO_TCP_DHCP_OVERRIDE" 12
DHCP Override: if set to 1, then HFI information
was populated by consuming the DHCP on this
interface. If cleared to 0h, then the HFI
information was set administratively by
a configuration interface to the driver and
pre-OS envrionment.

36
doc/man/nbft_host.2 Normal file
View file

@ -0,0 +1,36 @@
.TH "libnvme" 9 "struct nbft_host" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_host \- Host Descriptor (Figure 9)
.SH SYNOPSIS
struct nbft_host {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 flags;"
.br
.BI " __u8 host_id[16];"
.br
.BI " struct nbft_heap_obj host_nqn_obj;"
.br
.BI " __u8 reserved[8];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 2h (i.e.,
Host Descriptor; #NBFT_DESC_HOST).
.IP "flags" 12
Host Flags, see \fIenum nbft_host_flags\fP.
.IP "host_id" 12
Host ID: This field shall be set to the Host Identifier. This
field shall not be empty if the NBFT and NVMe Boot are supported
by the Platform.
.IP "host_nqn_obj" 12
Host NQN Heap Object Reference: this field indicates a heap
object containing a Host NQN. This object shall not be empty
if the NBFT and NVMe Boot are supported by the Platform.
.IP "reserved" 12
Reserved.

75
doc/man/nbft_host_flags.2 Normal file
View file

@ -0,0 +1,75 @@
.TH "libnvme" 9 "enum nbft_host_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_host_flags \- Host Flags
.SH SYNOPSIS
enum nbft_host_flags {
.br
.BI " NBFT_HOST_VALID"
,
.br
.br
.BI " NBFT_HOST_HOSTID_CONFIGURED"
,
.br
.br
.BI " NBFT_HOST_HOSTNQN_CONFIGURED"
,
.br
.br
.BI " NBFT_HOST_PRIMARY_ADMIN_MASK"
,
.br
.br
.BI " NBFT_HOST_PRIMARY_ADMIN_NOT_INDICATED"
,
.br
.br
.BI " NBFT_HOST_PRIMARY_ADMIN_UNSELECTED"
,
.br
.br
.BI " NBFT_HOST_PRIMARY_ADMIN_SELECTED"
};
.SH Constants
.IP "NBFT_HOST_VALID" 12
Descriptor Valid: If set to 1h, then this
descriptor is valid. If cleared to 0h, then
this descriptor is reserved.
.IP "NBFT_HOST_HOSTID_CONFIGURED" 12
HostID Configured: If set to 1h, then the
Host ID field contains an administratively-configured
value. If cleared to 0h, then the Host ID
field contains a driver default value.
.IP "NBFT_HOST_HOSTNQN_CONFIGURED" 12
Host NQN Configured: If set to 1h, then the
Host NQN indicated by the Host NQN Heap Object
Reference field (\fIstruct nbft_host\fP.host_nqn)
contains an administratively-configured value.
If cleared to 0h, then the Host NQN indicated
by the Host NQN Offset field contains a driver
default value.
.IP "NBFT_HOST_PRIMARY_ADMIN_MASK" 12
Mask to get Primary Administrative Host Descriptor:
indicates whether the Host Descriptor in this
NBFT was selected as the primary NBFT for
administrative purposes of platform identity
as a hint to the OS. If multiple NBFT tables
are present, only one NBFT should be administratively
selected. There is no enforcement mechanism
for this to be coordinated between multiple NBFT
tables, but this field should be set to Selected
(#NBFT_HOST_PRIMARY_ADMIN_SELECTED) if
more than one NBFT is present.
.IP "NBFT_HOST_PRIMARY_ADMIN_NOT_INDICATED" 12
Not Indicated by Driver: The driver that created
this NBFT provided no administrative priority
hint for this NBFT.
.IP "NBFT_HOST_PRIMARY_ADMIN_UNSELECTED" 12
Unselected: The driver that created this NBFT
explicitly indicated that this NBFT should
not be prioritized over any other NBFT.
.IP "NBFT_HOST_PRIMARY_ADMIN_SELECTED" 12
Selected: The driver that created this NBFT
explicitly indicated that this NBFT should
be prioritized over any other NBFT.

43
doc/man/nbft_info.2 Normal file
View file

@ -0,0 +1,43 @@
.TH "libnvme" 9 "struct nbft_info" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info \- The parsed NBFT table data.
.SH SYNOPSIS
struct nbft_info {
.br
.BI " char *filename;"
.br
.BI " __u8 *raw_nbft;"
.br
.BI " ssize_t raw_nbft_size;"
.br
.BI " struct nbft_info_host host;"
.br
.BI " struct nbft_info_hfi **hfi_list;"
.br
.BI " struct nbft_info_security **security_list;"
.br
.BI " struct nbft_info_discovery **discovery_list;"
.br
.BI " struct nbft_info_subsystem_ns **subsystem_ns_list;"
.br
.BI "
};
.br
.SH Members
.IP "filename" 12
Path to the NBFT table.
.IP "raw_nbft" 12
The original NBFT table contents.
.IP "raw_nbft_size" 12
Size of \fIraw_nbft\fP.
.IP "host" 12
The Host Descriptor (should match other NBFTs).
.IP "hfi_list" 12
The HFI Descriptor List (null-terminated array).
.IP "security_list" 12
The Security Profile Descriptor List (null-terminated array).
.IP "discovery_list" 12
The Discovery Descriptor List (null-terminated array).
.IP "subsystem_ns_list" 12
The SSNS Descriptor List (null-terminated array).

View file

@ -0,0 +1,34 @@
.TH "libnvme" 9 "struct nbft_info_discovery" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info_discovery \- Discovery Descriptor
.SH SYNOPSIS
struct nbft_info_discovery {
.br
.BI " int index;"
.br
.BI " struct nbft_info_security *security;"
.br
.BI " struct nbft_info_hfi *hfi;"
.br
.BI " char *uri;"
.br
.BI " char *nqn;"
.br
.BI "
};
.br
.SH Members
.IP "index" 12
The number of this Discovery Descriptor in the Discovery
Descriptor List.
.IP "security" 12
The Security Profile Descriptor, see \fIstruct nbft_info_security\fP.
.IP "hfi" 12
The HFI Descriptor associated with this Discovery Descriptor.
See \fIstruct nbft_info_hfi\fP.
.IP "uri" 12
A URI which indicates an NVMe Discovery controller associated
with this Discovery Descriptor.
.IP "nqn" 12
An NVMe Discovery controller NQN.

24
doc/man/nbft_info_hfi.2 Normal file
View file

@ -0,0 +1,24 @@
.TH "libnvme" 9 "struct nbft_info_hfi" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info_hfi \- Host Fabric Interface (HFI) Descriptor
.SH SYNOPSIS
struct nbft_info_hfi {
.br
.BI " int index;"
.br
.BI " char transport[8];"
.br
.BI " struct nbft_info_hfi_info_tcp tcp_info;"
.br
.BI "
};
.br
.SH Members
.IP "index" 12
HFI Descriptor Index: indicates the number of this HFI Descriptor
in the Host Fabric Interface Descriptor List.
.IP "transport" 12
Transport Type string (e.g. 'tcp').
.IP "tcp_info" 12
The HFI Transport Info Descriptor, see \fIstruct nbft_info_hfi_info_tcp\fP.

View file

@ -0,0 +1,83 @@
.TH "libnvme" 9 "struct nbft_info_hfi_info_tcp" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info_hfi_info_tcp \- HFI Transport Info Descriptor - NVMe/TCP
.SH SYNOPSIS
struct nbft_info_hfi_info_tcp {
.br
.BI " __u32 pci_sbdf;"
.br
.BI " __u8 mac_addr[6];"
.br
.BI " __u16 vlan;"
.br
.BI " __u8 ip_origin;"
.br
.BI " char ipaddr[40];"
.br
.BI " __u8 subnet_mask_prefix;"
.br
.BI " char gateway_ipaddr[40];"
.br
.BI " __u16 route_metric;"
.br
.BI " char primary_dns_ipaddr[40];"
.br
.BI " char secondary_dns_ipaddr[40];"
.br
.BI " char dhcp_server_ipaddr[40];"
.br
.BI " char *host_name;"
.br
.BI " bool this_hfi_is_default_route;"
.br
.BI " bool dhcp_override;"
.br
.BI "
};
.br
.SH Members
.IP "pci_sbdf" 12
PCI Express Routing ID for the HFI Transport Function.
.IP "mac_addr" 12
MAC Address: The MAC address of this HFI,
in EUI-48TM format.
.IP "vlan" 12
The VLAN identifier if the VLAN is associated with
this HFI, as defined in IEEE 802.1q-2018 or zeroes
if no VLAN is associated with this HFI.
.IP "ip_origin" 12
The source of Ethernet L3 configuration information
used by the driver or 0 if not used.
.IP "ipaddr" 12
The IPv4 or IPv6 address of this HFI.
.IP "subnet_mask_prefix" 12
The IPv4 or IPv6 subnet mask in CIDR routing prefix
notation.
.IP "gateway_ipaddr" 12
The IPv4 or IPv6 address of the IP gateway for this
HFI or zeroes if no IP gateway is specified.
.IP "route_metric" 12
The cost value for the route indicated by this HFI.
.IP "primary_dns_ipaddr" 12
The IPv4 or IPv6 address of the Primary DNS server
for this HFI.
.IP "secondary_dns_ipaddr" 12
The IPv4 or IPv6 address of the Secondary DNS server
for this HFI.
.IP "dhcp_server_ipaddr" 12
The IPv4 or IPv6 address of the DHCP server used
to assign this HFI address.
.IP "host_name" 12
The Host Name string.
.IP "this_hfi_is_default_route" 12
If True, then the BIOS utilized this interface
described by HFI to be the default route with highest
priority. If False, then routes are local to their
own scope.
.IP "dhcp_override" 12
If True, then HFI information was populated
by consuming the DHCP on this interface. If False,
then the HFI information was set administratively
by a configuration interface to the driver and
pre-OS envrionment.

36
doc/man/nbft_info_host.2 Normal file
View file

@ -0,0 +1,36 @@
.TH "libnvme" 9 "struct nbft_info_host" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info_host \- Host Descriptor
.SH SYNOPSIS
struct nbft_info_host {
.br
.BI " unsigned char *id;"
.br
.BI " char *nqn;"
.br
.BI " bool host_id_configured;"
.br
.BI " bool host_nqn_configured;"
.br
.BI " enum nbft_info_primary_admin_host_flag primary;"
.br
.BI "
};
.br
.SH Members
.IP "id" 12
Host ID (raw UUID, length = 16 bytes).
.IP "nqn" 12
Host NQN.
.IP "host_id_configured" 12
HostID Configured Flag: value of True indicates that \fIid\fP
contains administratively-configured value, or driver
default value if False.
.IP "host_nqn_configured" 12
Host NQN Configured Flag: value of True indicates that
\fInqn\fP contains administratively-configured value,
or driver default value if False.
.IP "primary" 12
Primary Administrative Host Descriptor, see
\fIenum nbft_info_primary_admin_host_flag\fP.

View file

@ -0,0 +1,30 @@
.TH "libnvme" 9 "enum nbft_info_nid_type" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_info_nid_type \- Namespace Identifier Type (NIDT)
.SH SYNOPSIS
enum nbft_info_nid_type {
.br
.BI " NBFT_INFO_NID_TYPE_NONE"
,
.br
.br
.BI " NBFT_INFO_NID_TYPE_EUI64"
,
.br
.br
.BI " NBFT_INFO_NID_TYPE_NGUID"
,
.br
.br
.BI " NBFT_INFO_NID_TYPE_NS_UUID"
};
.SH Constants
.IP "NBFT_INFO_NID_TYPE_NONE" 12
No identifier available.
.IP "NBFT_INFO_NID_TYPE_EUI64" 12
The EUI-64 identifier.
.IP "NBFT_INFO_NID_TYPE_NGUID" 12
The NSGUID identifier.
.IP "NBFT_INFO_NID_TYPE_NS_UUID" 12
The UUID identifier.

View file

@ -0,0 +1,39 @@
.TH "libnvme" 9 "enum nbft_info_primary_admin_host_flag" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_info_primary_admin_host_flag \- Primary Administrative Host Descriptor Flags
.SH SYNOPSIS
enum nbft_info_primary_admin_host_flag {
.br
.BI " NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_NOT_INDICATED"
,
.br
.br
.BI " NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_UNSELECTED"
,
.br
.br
.BI " NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_SELECTED"
,
.br
.br
.BI " NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_RESERVED"
};
.SH Constants
.IP "NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_NOT_INDICATED" 12
Not Indicated by Driver: The driver
that created this NBFT provided no
administrative priority hint for
this NBFT.
.IP "NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_UNSELECTED" 12
Unselected: The driver that created
this NBFT explicitly indicated that
this NBFT should not be prioritized
over any other NBFT.
.IP "NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_SELECTED" 12
Selected: The driver that created
this NBFT explicitly indicated that
this NBFT should be prioritized over
any other NBFT.
.IP "NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_RESERVED" 12
Reserved.

View file

@ -0,0 +1,16 @@
.TH "libnvme" 9 "struct nbft_info_security" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info_security \- Security Profile Descriptor
.SH SYNOPSIS
struct nbft_info_security {
.br
.BI " int index;"
.br
.BI "
};
.br
.SH Members
.IP "index" 12
The number of this Security Profile Descriptor in the Security
Profile Descriptor List.

View file

@ -0,0 +1,94 @@
.TH "libnvme" 9 "struct nbft_info_subsystem_ns" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_info_subsystem_ns \- Subsystem Namespace (SSNS) info
.SH SYNOPSIS
struct nbft_info_subsystem_ns {
.br
.BI " int index;"
.br
.BI " struct nbft_info_discovery *discovery;"
.br
.BI " struct nbft_info_security *security;"
.br
.BI " int num_hfis;"
.br
.BI " struct nbft_info_hfi **hfis;"
.br
.BI " char transport[8];"
.br
.BI " char traddr[40];"
.br
.BI " char *trsvcid;"
.br
.BI " __u16 subsys_port_id;"
.br
.BI " __u32 nsid;"
.br
.BI " enum nbft_info_nid_type nid_type;"
.br
.BI " __u8 *nid;"
.br
.BI " char *subsys_nqn;"
.br
.BI " bool pdu_header_digest_required;"
.br
.BI " bool data_digest_required;"
.br
.BI " int controller_id;"
.br
.BI " int asqsz;"
.br
.BI " char *dhcp_root_path_string;"
.br
.BI "
};
.br
.SH Members
.IP "index" 12
SSNS Descriptor Index in the descriptor list.
.IP "discovery" 12
Primary Discovery Controller associated with
this SSNS Descriptor.
.IP "security" 12
Security Profile Descriptor associated with
this namespace.
.IP "num_hfis" 12
Number of HFIs.
.IP "hfis" 12
List of HFIs associated with this namespace.
Includes the primary HFI at the first position
and all secondary HFIs. This array is null-terminated.
.IP "transport" 12
Transport Type string (e.g. 'tcp').
.IP "traddr" 12
Subsystem Transport Address.
.IP "trsvcid" 12
Subsystem Transport Service Identifier.
.IP "subsys_port_id" 12
The Subsystem Port ID.
.IP "nsid" 12
The Namespace ID of this descriptor or when \fInid\fP
should be used instead.
.IP "nid_type" 12
Namespace Identifier Type, see \fIenum nbft_info_nid_type\fP.
.IP "nid" 12
The Namespace Identifier value.
.IP "subsys_nqn" 12
Subsystem and Namespace NQN.
.IP "pdu_header_digest_required" 12
PDU Header Digest (HDGST) Flag: the use of NVM Header
Digest Enabled is required.
.IP "data_digest_required" 12
Data Digest (DDGST) Flag: the use of NVM Data Digest
Enabled is required.
.IP "controller_id" 12
Controller ID (SSNS Extended Information Descriptor):
The controller ID associated with the Admin Queue
or 0 if not supported.
.IP "asqsz" 12
Admin Submission Queue Size (SSNS Extended Information
Descriptor) or 0 if not supported.
.IP "dhcp_root_path_string" 12
DHCP Root Path Override string (SSNS Extended
Information Descriptor).

98
doc/man/nbft_security.2 Normal file
View file

@ -0,0 +1,98 @@
.TH "libnvme" 9 "struct nbft_security" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_security \- Security Profile Descriptor (Figure 21)
.SH SYNOPSIS
struct nbft_security {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 index;"
.br
.BI " __le16 flags;"
.br
.BI " __u8 secret_type;"
.br
.BI " __u8 reserved1;"
.br
.BI " struct nbft_heap_obj sec_chan_alg_obj;"
.br
.BI " struct nbft_heap_obj auth_proto_obj;"
.br
.BI " struct nbft_heap_obj cipher_suite_obj;"
.br
.BI " struct nbft_heap_obj dh_grp_obj;"
.br
.BI " struct nbft_heap_obj sec_hash_func_obj;"
.br
.BI " struct nbft_heap_obj sec_keypath_obj;"
.br
.BI " __u8 reserved2[22];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 5h
(i.e., Security; #NBFT_DESC_SECURITY).
.IP "index" 12
Security Profile Descriptor Index: This field indicates
the number of this Security Profile Descriptor in the
Security Profile Descriptor List.
.IP "flags" 12
Security Profile Descriptor Flags, see \fIenum nbft_security_flags\fP.
.IP "secret_type" 12
Secret Type, see \fIenum nbft_security_secret_type\fP.
.IP "reserved1" 12
Reserved.
.IP "sec_chan_alg_obj" 12
Secure Channel Algorithm Heap Object Reference: If the
Security Policy List field is set to 1h, then this field
indicates the location and size of a heap object containing
a list of secure channel algorithms. The list is an array
of bytes and the values are defined in the Security Type
(SECTYPE) field in the Transport Specific Address Subtype
Definition in the NVMe TCP Transport Specification.
If the Security Policy List field is cleared to 0h, then
this field is reserved.
.IP "auth_proto_obj" 12
Authentication Protocols Heap Object Reference: If the
Authentication Policy List field is set to 1h, then this
field indicates the location and size of a heap object
containing a list of authentication protocol identifiers.
If the Authentication Policy List field is cleared to 0h,
then this field is reserved.
.IP "cipher_suite_obj" 12
Cipher Suite Offset Heap Object Reference: If the Cipher
Suites Restricted by Policy bit is set to 1h, then this
field indicates the location and size of a heap object
containing a list of cipher suite identifiers. The list,
if any, is an array of bytes and the values are defined
in the IANA TLS Parameters Registry. If the Cipher Suites
Restricted by Policy bit is cleared to 0h, then this field
is reserved.
.IP "dh_grp_obj" 12
DH Groups Heap Object Reference: If the Authentication DH Groups
Restricted by Policy List bit is set to 1h, then this field
indicates the location and size of a heap object containing
a list of DH-HMAC-CHAP Diffie-Hellman (DH) group identifiers.
If the Authentication DH Groups Restricted by Policy List
bit is cleared to 0h, then this field is reserved.
.IP "sec_hash_func_obj" 12
Secure Hash Functions Offset Heap Object Reference: If the
Secure Hash Functions Policy List bit is set to 1h, then
this field indicates the offset in bytes of a heap object
containing a list of DH-HMAC-CHAP hash function identifiers.
The list is an array of bytes and the values are defined
in the NVM Express Base Specification. If the Secure Hash
Functions Policy List bit is cleared to 0h, then this
field is reserved.
.IP "sec_keypath_obj" 12
Secret Keypath Offset Heap Object Reference: if this field
is set to a non-zero value, then this field indicates
the location and size of a heap object containing a URI.
The type of the URI is specified in the Secret Type field.
If this field is cleared to 0h, then this field is reserved.
.IP "reserved2" 12
Reserved.

View file

@ -0,0 +1,179 @@
.TH "libnvme" 9 "enum nbft_security_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_security_flags \- Security Profile Descriptor Flags (Figure 22)
.SH SYNOPSIS
enum nbft_security_flags {
.br
.BI " NBFT_SECURITY_VALID"
,
.br
.br
.BI " NBFT_SECURITY_IN_BAND_AUTH_MASK"
,
.br
.br
.BI " NBFT_SECURITY_IN_BAND_AUTH_NOT_SUPPORTED"
,
.br
.br
.BI " NBFT_SECURITY_IN_BAND_AUTH_NOT_REQUIRED"
,
.br
.br
.BI " NBFT_SECURITY_IN_BAND_AUTH_REQUIRED"
,
.br
.br
.BI " NBFT_SECURITY_AUTH_POLICY_LIST_MASK"
,
.br
.br
.BI " NBFT_SECURITY_AUTH_POLICY_LIST_NOT_SUPPORTED"
,
.br
.br
.BI " NBFT_SECURITY_AUTH_POLICY_LIST_DRIVER"
,
.br
.br
.BI " NBFT_SECURITY_AUTH_POLICY_LIST_ADMIN"
,
.br
.br
.BI " NBFT_SECURITY_SEC_CHAN_NEG_MASK"
,
.br
.br
.BI " NBFT_SECURITY_SEC_CHAN_NEG_NOT_SUPPORTED"
,
.br
.br
.BI " NBFT_SECURITY_SEC_CHAN_NEG_NOT_REQUIRED"
,
.br
.br
.BI " NBFT_SECURITY_SEC_CHAN_NEG_REQUIRED"
,
.br
.br
.BI " NBFT_SECURITY_SEC_POLICY_LIST_MASK"
,
.br
.br
.BI " NBFT_SECURITY_SEC_POLICY_LIST_NOT_SUPPORTED"
,
.br
.br
.BI " NBFT_SECURITY_SEC_POLICY_LIST_DRIVER"
,
.br
.br
.BI " NBFT_SECURITY_SEC_POLICY_LIST_ADMIN"
,
.br
.br
.BI " NBFT_SECURITY_CIPHER_RESTRICTED"
,
.br
.br
.BI " NBFT_SECURITY_AUTH_DH_GROUPS_RESTRICTED"
,
.br
.br
.BI " NBFT_SECURITY_SEC_HASH_FUNC_POLICY_LIST"
};
.SH Constants
.IP "NBFT_SECURITY_VALID" 12
Descriptor Valid: If set to 1h, then
this descriptor is valid. If cleared
to 0h, then this descriptor is not valid.
.IP "NBFT_SECURITY_IN_BAND_AUTH_MASK" 12
Mask to get the In-Band Authentication
Required field.
.IP "NBFT_SECURITY_IN_BAND_AUTH_NOT_SUPPORTED" 12
In-band authentication is not supported
by the NVM subsystem.
.IP "NBFT_SECURITY_IN_BAND_AUTH_NOT_REQUIRED" 12
In-band authentication is supported by
the NVM subsystem and is not required.
.IP "NBFT_SECURITY_IN_BAND_AUTH_REQUIRED" 12
In-band authentication is supported by
the NVM subsystem and is required.
.IP "NBFT_SECURITY_AUTH_POLICY_LIST_MASK" 12
Mask to get the Authentication Policy List
flag: This field indicates whether
authentication protocols were indicated
by policy from driver defaults or
administrative configuration.
.IP "NBFT_SECURITY_AUTH_POLICY_LIST_NOT_SUPPORTED" 12
Authentication Protocols Heap Object Reference
field Offset and Length are reserved.
.IP "NBFT_SECURITY_AUTH_POLICY_LIST_DRIVER" 12
Authentication Protocols Offset field and
the Authentication Protocols Length field
indicate a list of authentication protocols
used by the driver.
.IP "NBFT_SECURITY_AUTH_POLICY_LIST_ADMIN" 12
Authentication Protocols Offset field and
the Authentication Protocols Length field
indicate a list of authentication protocols
that were administratively set and used
by the driver.
.IP "NBFT_SECURITY_SEC_CHAN_NEG_MASK" 12
Mask to get the Secure Channel Negotiation
Required flag: This field indicates whether
secure channel negotiation (e.g. TLS)
is required.
.IP "NBFT_SECURITY_SEC_CHAN_NEG_NOT_SUPPORTED" 12
Secure channel negotiation is not supported
by the NVM subsystem.
.IP "NBFT_SECURITY_SEC_CHAN_NEG_NOT_REQUIRED" 12
Secure channel negotiation is supported
by the NVM subsystem and is not required.
.IP "NBFT_SECURITY_SEC_CHAN_NEG_REQUIRED" 12
Secure channel negotiation is supported
by the NVM subsystem and is required.
.IP "NBFT_SECURITY_SEC_POLICY_LIST_MASK" 12
Mask to get the Security Policy List flag:
This field indicates whether secure channel
protocols were indicated by policy from driver
defaults or administrative configuration.
.IP "NBFT_SECURITY_SEC_POLICY_LIST_NOT_SUPPORTED" 12
The Offset field and Length field in the
Secure Channel Algorithm Heap Object Reference
field are reserved.
.IP "NBFT_SECURITY_SEC_POLICY_LIST_DRIVER" 12
The Heap Object specified by the Secure Channel
Algorithm Heap Object Reference field indicates
a list of authentication protocols used
by the driver.
.IP "NBFT_SECURITY_SEC_POLICY_LIST_ADMIN" 12
The Heap Object specified by the Secure Channel
Algorithm Heap Object Reference field indicates
a list of authentication protocols that were
administratively set and used by the driver.
.IP "NBFT_SECURITY_CIPHER_RESTRICTED" 12
Cipher Suites Restricted by Policy: If set to 1h,
then the Cipher Suite Offset field and the
Ciper Suite Length field indicate a list
of supported cipher suites by the driver.
If cleared to 0h, then the Cipher Suite Offset
field and the Cipher Suite Length field
are reserved.
.IP "NBFT_SECURITY_AUTH_DH_GROUPS_RESTRICTED" 12
Authentication DH Groups Restricted
by Policy List: If set to 1h, then connections
shall use one of the authentication DH groups
in the Authentication DH Groups List is required.
If cleared to 0h, then no Authentication DH Groups
List is indicated and use of an authentication
DH Group is not required.
.IP "NBFT_SECURITY_SEC_HASH_FUNC_POLICY_LIST" 12
Secure Hash Functions Policy List: If set to 1h,
then connections shall use one of the secure
hash functions in the Secure Hash Functions
Policy List is required. If cleared to 0h,
then no Secure Hash Functions Policy
List is indicated and use of a secure
hash function is not required.

View file

@ -0,0 +1,16 @@
.TH "libnvme" 9 "enum nbft_security_secret_type" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_security_secret_type \- Security Profile Descriptor Secret Type
.SH SYNOPSIS
enum nbft_security_secret_type {
.br
.BI " NBFT_SECURITY_SECRET_REDFISH_HOST_IFACE_URI"
};
.SH Constants
.IP "NBFT_SECURITY_SECRET_REDFISH_HOST_IFACE_URI" 12
Redfish Host Interface URI:
If set to 1h, then the Secret Keypath
Object Reference is a URI pointing
to a Redfish Key Collection Object
that contains the PSK.

159
doc/man/nbft_ssns.2 Normal file
View file

@ -0,0 +1,159 @@
.TH "libnvme" 9 "struct nbft_ssns" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_ssns \- Subsystem Namespace (SSNS) Descriptor (Figure 15)
.SH SYNOPSIS
struct nbft_ssns {
.br
.BI " __u8 structure_id;"
.br
.BI " __le16 index;"
.br
.BI " __le16 flags;"
.br
.BI " __u8 trtype;"
.br
.BI " __le16 trflags;"
.br
.BI " __u8 primary_discovery_ctrl_index;"
.br
.BI " __u8 reserved1;"
.br
.BI " struct nbft_heap_obj subsys_traddr_obj;"
.br
.BI " struct nbft_heap_obj subsys_trsvcid_obj;"
.br
.BI " __le16 subsys_port_id;"
.br
.BI " __le32 nsid;"
.br
.BI " __u8 nidt;"
.br
.BI " __u8 nid[16];"
.br
.BI " __u8 security_desc_index;"
.br
.BI " __u8 primary_hfi_desc_index;"
.br
.BI " __u8 reserved2;"
.br
.BI " struct nbft_heap_obj secondary_hfi_assoc_obj;"
.br
.BI " struct nbft_heap_obj subsys_ns_nqn_obj;"
.br
.BI " struct nbft_heap_obj ssns_extended_info_desc_obj;"
.br
.BI " __u8 reserved3[62];"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 4h
(i.e., SSNS; #NBFT_DESC_SSNS).
.IP "index" 12
SSNS Descriptor Index: This field indicates the number
of this Subsystem Namespace Descriptor in the
Subsystem Namespace Descriptor List.
.IP "flags" 12
SSNS Flags, see \fIenum nbft_ssns_flags\fP.
.IP "trtype" 12
Transport Type, see \fIenum nbft_trtype\fP.
.IP "trflags" 12
Transport Specific Flags, see \fIenum nbft_ssns_trflags\fP.
.IP "primary_discovery_ctrl_index" 12
Primary Discovery Controller Index: The Discovery
Descriptor Index field of the Discovery Descriptor
(see \fIstruct nbft_discovery\fP) that is associated with
this SSNS Descriptor. If a Discovery controller was
used to establish this record this value shall
be set to a non-zero value. If this namespace was
associated with multiple Discovery controllers,
those Discovery controllers shall have records
in the Discovery Descriptor to facilitate multi-path
rediscovery as required. If no Discovery controller
was utilized to inform this namespace record,
this field shall be cleared to 0h.
.IP "reserved1" 12
Reserved.
.IP "subsys_traddr_obj" 12
Subsystem Transport Address Heap Object Reference:
This field indicates the location and size of a heap
object containing the Subsystem Transport Address.
For IP based transports types, shall be an IP Address.
.IP "subsys_trsvcid_obj" 12
Subsystem Transport Service Identifier Heap Object Reference:
This field indicates the location and size of a heap
object containing an array of bytes indicating
the Subsystem Transport Service Identifier.
See \fIenum nbft_trtype\fP.
.IP "subsys_port_id" 12
Subsystem Port ID: Port in the NVM subsystem
associated with this transport address used by
the pre-OS driver.
.IP "nsid" 12
Namespace ID: This field indicates the namespace
identifier (NSID) of the namespace indicated by
this descriptor. This field shall be cleared to 0h
if not specified by the user. If this value is cleared
to 0h, then consumers of the NBFT shall rely
on the NID.
.IP "nidt" 12
Namespace Identifier Type (NIDT): This field
contains the value of the Namespace Identifier Type (NIDT)
field in the Namespace Identification Descriptor
for the namespace indicated by this descriptor.
If a namespace supports multiple NIDT entries
for uniqueness, the order of preference is NIDT field
value of 3h (i.e., UUID) before 2h (i.e., NSGUID),
and 2h before 1h (i.e., EUI-64).
.IP "nid" 12
Namespace Identifier (NID): This field contains
the value of the Namespace Identifier (NID) field
in the Namespace Identification Descriptor for
the namespace indicated by this descriptor.
.IP "security_desc_index" 12
Security Profile Descriptor Index: If the Use Security
Flag bit in the SSNS Flags field is set to 1h, then
this field indicates the value of the Security Profile
Descriptor Index field of the Security Profile
Descriptor (see \fIstruct nbft_security\fP) associated
with this namespace. If the Use Security Flag bit
is cleared to 0h, then no Security Profile Descriptor
is associated with this namespace and this field
is reserved.
.IP "primary_hfi_desc_index" 12
Primary HFI Descriptor Index: This field indicates
the value of the HFI Descriptor Index field of the
HFI Descriptor (see \fIstruct nbft_hfi\fP) for the
interface associated with this namespace. If multiple
HFIs are associated with this record, subsequent
interfaces should be populated in the Secondary
HFI Associations field.
.IP "reserved2" 12
Reserved.
.IP "secondary_hfi_assoc_obj" 12
Secondary HFI Associations Heap Object Reference:
If this field is set to a non-zero value, then
this field indicates an array of bytes, in which
each byte contains the value of the HFI Descriptor
Index field of an HFI Descriptor in the HFI Descriptor
List. If this field is cleared to 0h, then no
secondary HFI associations are specified.
.IP "subsys_ns_nqn_obj" 12
Subsystem and Namespace NQN Heap Object Reference:
This field indicates the location and size of
a heap object containing the Subsystem and Namespace NQN.
.IP "ssns_extended_info_desc_obj" 12
SSNS Extended Information Descriptor Heap Object
Reference: If the SSNS Extended Info In-use Flag
bit is set to 1h, then this field indicates the
offset in bytes of a heap object containing an
SSNS Extended Information Descriptor
(see \fIstruct nbft_ssns_ext_info\fP) heap object
from byte offset 0h of the NBFT Table Header.
If the SSNS Extended Info In-use Flag bit is cleared
to 0h, then this field is reserved.
.IP "reserved3" 12
Reserved.

View file

@ -0,0 +1,55 @@
.TH "libnvme" 9 "struct nbft_ssns_ext_info" "June 2023" "API Manual" LINUX
.SH NAME
struct nbft_ssns_ext_info \- Subsystem and Namespace Extended Information Descriptor (Figure 19)
.SH SYNOPSIS
struct nbft_ssns_ext_info {
.br
.BI " __u8 structure_id;"
.br
.BI " __u8 version;"
.br
.BI " __le16 ssns_index;"
.br
.BI " __le32 flags;"
.br
.BI " __le16 cntlid;"
.br
.BI " __le16 asqsz;"
.br
.BI " struct nbft_heap_obj dhcp_root_path_str_obj;"
.br
.BI "
};
.br
.SH Members
.IP "structure_id" 12
Structure ID: This field shall be set to 9h
(i.e., SSNS Extended Info; #NBFT_DESC_SSNS_EXT_INFO).
.IP "version" 12
Version: This field shall be set to 1h.
.IP "ssns_index" 12
SSNS Descriptor Index: This field indicates the value
of the SSNS Descriptor Index field of the Subsystem
and Namespace Descriptor (see \fIstruct nbft_ssns\fP) whose
SSNS Extended Information Descriptor Heap Object
Reference field indicates this descriptor.
.IP "flags" 12
Flags, see \fIenum nbft_ssns_ext_info_flags\fP.
.IP "cntlid" 12
Controller ID: The controller identifier of the first
controller associated with the Admin Queue by the driver.
If a controller identifier is not administratively
specified or direct configuration is not supported
by the driver, then this field shall be cleared to 0h.
.IP "asqsz" 12
Admin Submission Queue Size (ASQSZ): The Admin Submission
Queue Size utilized for the respective SSNS by the driver.
.IP "dhcp_root_path_str_obj" 12
DHCP Root Path String Heap Object Reference: If the
SSNS DHCP Root Path Override (#NBFT_SSNS_DHCP_ROOT_PATH_OVERRIDE)
flag bit is set to 1h, then this field indicates
the offset in bytes of a heap object containing
an DHCP Root Path String used by the driver. If the
SNSS DHCP Root Path Override flag bit is cleared to 0h,
then this field is reserved.

View file

@ -0,0 +1,25 @@
.TH "libnvme" 9 "enum nbft_ssns_ext_info_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_ssns_ext_info_flags \- Subsystem and Namespace Extended Information Descriptor Flags
.SH SYNOPSIS
enum nbft_ssns_ext_info_flags {
.br
.BI " NBFT_SSNS_EXT_INFO_VALID"
,
.br
.br
.BI " NBFT_SSNS_EXT_INFO_ADMIN_ASQSZ"
};
.SH Constants
.IP "NBFT_SSNS_EXT_INFO_VALID" 12
Descriptor Valid: If set to 1h, then this descriptor
is valid. If cleared to 0h, then this descriptor
is reserved.
.IP "NBFT_SSNS_EXT_INFO_ADMIN_ASQSZ" 12
Administrative ASQSZ: If set to 1h, then the value
of the ASQSZ field was provided by administrative
configuration for this SSNS record. If cleared
to 0h, then the value of the ASQSZ field was
either obtained by discovery or assumed
by the driver.

121
doc/man/nbft_ssns_flags.2 Normal file
View file

@ -0,0 +1,121 @@
.TH "libnvme" 9 "enum nbft_ssns_flags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_ssns_flags \- Subsystem and Namespace Specific Flags Field (Figure 16)
.SH SYNOPSIS
enum nbft_ssns_flags {
.br
.BI " NBFT_SSNS_VALID"
,
.br
.br
.BI " NBFT_SSNS_NON_BOOTABLE_ENTRY"
,
.br
.br
.BI " NBFT_SSNS_USE_SECURITY_FIELD"
,
.br
.br
.BI " NBFT_SSNS_DHCP_ROOT_PATH_OVERRIDE"
,
.br
.br
.BI " NBFT_SSNS_EXTENDED_INFO_IN_USE"
,
.br
.br
.BI " NBFT_SSNS_SEPARATE_DISCOVERY_CTRL"
,
.br
.br
.BI " NBFT_SSNS_DISCOVERED_NAMESPACE"
,
.br
.br
.BI " NBFT_SSNS_UNAVAIL_NAMESPACE_MASK"
,
.br
.br
.BI " NBFT_SSNS_UNAVAIL_NAMESPACE_NOTIND"
,
.br
.br
.BI " NBFT_SSNS_UNAVAIL_NAMESPACE_AVAIL"
,
.br
.br
.BI " NBFT_SSNS_UNAVAIL_NAMESPACE_UNAVAIL"
};
.SH Constants
.IP "NBFT_SSNS_VALID" 12
Descriptor Valid: If set to 1h, then this descriptor
is valid. If cleared to 0h, then this descriptor
is not valid. A host that supports NVMe-oF Boot,
but does not currently have a remote Subsystem
and Namespace assigned may clear this bit to 0h.
.IP "NBFT_SSNS_NON_BOOTABLE_ENTRY" 12
Non-bootable Entry Flag: If set to 1h, this flag
indicates that this SSNS Descriptor contains
a namespace of administrative purpose to the boot
process, but the pre-OS may not have established
connectivity to or evaluated the contents of this
Descriptor. Such namespaces may contain supplemental
data deemed relevant by the Administrator as part
of the pre-OS to OS hand off. This may include
properties such as a UEFI device path that may
not have been created for this namespace. This means
an OS runtime may still require the contents
of such a namespace to complete later stages
of boot. If cleared to 0h, then this namespace did
not have any special administrative intent.
.IP "NBFT_SSNS_USE_SECURITY_FIELD" 12
Use Security Flag: If set to 1h, then there is
a Security Profile Descriptor associated with this
SSNS record and the Security Profile Descriptor Index
field is valid. If cleared to 0h, then there is
no Security Profile Descriptor associated with this
SSNS record and the Security Profile Descriptor Index
field is not valid.
.IP "NBFT_SSNS_DHCP_ROOT_PATH_OVERRIDE" 12
DHCP Root-Path Override Flag: If set to 1h, then
this SSNS descriptor was populated by consuming
the DHCP Root-Path on this interface. If cleared
to 0h, then the DHCP Root-Path was not used
in populating the SSNS descriptor.
.IP "NBFT_SSNS_EXTENDED_INFO_IN_USE" 12
SSNS Extended Info In-use Flag: If set to 1h,
then the SSNS Extended Information Offset field
and the SSNS Extended Information Length field
are valid. This flag, if set to 1h, indicates
that a Subsystem and Namespace Extended Information
Descriptor corresponding to this descriptor is present.
.IP "NBFT_SSNS_SEPARATE_DISCOVERY_CTRL" 12
Separate Discovery Controller Flag: If set to 1h,
then the Discovery controller associated with
this volume is on a different transport address
than the specified in the Subsystem Transport
Address Heap Object Reference. If cleared to 0h,
then the Discovery controller is the same as the
Subsystem Transport Address Heap Object Reference.
.IP "NBFT_SSNS_DISCOVERED_NAMESPACE" 12
Discovered Namespace Flag: If set to 1h, then
this namespace was acquired through discovery.
If cleared to 0h, then this namespace was
explicitly configured in the system.
.IP "NBFT_SSNS_UNAVAIL_NAMESPACE_MASK" 12
Mask to get Unavailable Namespace Flag: This
field indicates the availability of the namespace
at a specific point in time. Such use is only
a hint and its use does not guarantee the availability
of that referenced namespace at any future point in time.
.IP "NBFT_SSNS_UNAVAIL_NAMESPACE_NOTIND" 12
Not Indicated by Driver: No information is provided.
.IP "NBFT_SSNS_UNAVAIL_NAMESPACE_AVAIL" 12
Available: A referenced namespace described by this
flag was previously accessible by the pre-OS driver.
.IP "NBFT_SSNS_UNAVAIL_NAMESPACE_UNAVAIL" 12
Unavailable: This namespace was administratively
configured but unattempted, unavailable or
inaccessible when establishing connectivity
by the pre-OS driver.

View file

@ -0,0 +1,44 @@
.TH "libnvme" 9 "enum nbft_ssns_trflags" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_ssns_trflags \- SSNS Transport Specific Flags Field (Figure 17)
.SH SYNOPSIS
enum nbft_ssns_trflags {
.br
.BI " NBFT_SSNS_TRFLAG_VALID"
,
.br
.br
.BI " NBFT_SSNS_PDU_HEADER_DIGEST"
,
.br
.br
.BI " NBFT_SSNS_DATA_DIGEST"
};
.SH Constants
.IP "NBFT_SSNS_TRFLAG_VALID" 12
Transport Specific Flags in Use: If set to 1h, then
this descriptor is valid. If cleared to 0h, then
this descriptor is not valid.
.IP "NBFT_SSNS_PDU_HEADER_DIGEST" 12
PDU Header Digest (HDGST) Flag: If set to 1h, then
the host or administrator required the connection
described by this Subsystem and Namespace Descriptor
to use the NVM Header Digest Enabled. A consumer
of this information should attempt to use NVM Header
Digest when recreating this connection if enabled.
If cleared to 0h, then the host or administrator
did not require the connection described by this
Subsystem and Namespace Descriptor to use the
NVM Header Digest Enabled.
.IP "NBFT_SSNS_DATA_DIGEST" 12
Data Digest (DDGST) Flag: If set to 1h, then
the host or administrator required the connection
described by this Subsystem and Namespace Descriptor
to use the NVM Data Digest Enabled. If cleared
to 0h, then the host or administrator did not
require the connection described by this Subsystem
and Namespace Descriptor to use the NVM Data Digest
Enabled. A consumer of this field should attempt
to use NVM Data Digest when recreating this
connection if enabled.

12
doc/man/nbft_trtype.2 Normal file
View file

@ -0,0 +1,12 @@
.TH "libnvme" 9 "enum nbft_trtype" "June 2023" "API Manual" LINUX
.SH NAME
enum nbft_trtype \- NBFT Interface Transport Types (Figure 7)
.SH SYNOPSIS
enum nbft_trtype {
.br
.BI " NBFT_TRTYPE_TCP"
};
.SH Constants
.IP "NBFT_TRTYPE_TCP" 12
NVMe/TCP (802.3 + TCP/IP). String Designator "tcp".

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_admin_opcode" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_admin_opcode" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_admin_opcode \- Known NVMe admin opcodes
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "March 2023" "libnvme API manual" LINUX
.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_admin_passthru \- Submit an nvme passthrough command
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "March 2023" "libnvme API manual" LINUX
.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_admin_passthru64 \- Submit a 64-bit nvme passthrough command
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_ae_info_css_nvm \- Asynchronous Event Information - I/O Command Specific Status
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_ae_info_error" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_ae_info_error" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_ae_info_error \- Asynchronous Event Information - Error Status
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_ae_info_notice" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_ae_info_notice" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_ae_info_notice \- Asynchronous Event Information - Notice
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_ae_info_smart" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_ae_info_smart" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_ae_info_smart \- Asynchronous Event Information - SMART / Health Status
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_ae_type" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_ae_type" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_ae_type \- Asynchronous Event Type
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_ana_group_desc" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_ana_group_desc" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_ana_group_desc \- ANA Group Descriptor
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_ana_log" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_ana_log" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_ana_log \- Asymmetric Namespace Access Log
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_ana_state" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_ana_state" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_ana_state \- ANA Group Descriptor - Asymmetric Namespace Access State
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_apst_entry" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_apst_entry" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_apst_entry \- Autonomous Power State Transition
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_boot_partition" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_boot_partition" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_boot_partition \- Boot Partition Log
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_capacity_config_desc" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_capacity_config_desc" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_capacity_config_desc \- Capacity Configuration structure definitions
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "March 2023" "libnvme API manual" LINUX
.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_capacity_mgmt \- Capacity management command
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_change_ns_event" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_change_ns_event" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_change_ns_event \- Change Namespace Event Data
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_channel_config_desc" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_channel_config_desc" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_channel_config_desc \- Channel Configuration Descriptor
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_cmb_size" 9 "nvme_cmb_size" "March 2023" "libnvme API manual" LINUX
.TH "nvme_cmb_size" 9 "nvme_cmb_size" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_cmb_size \- Calculate size of the controller memory buffer
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_effects" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_effects" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_effects \- Commands Supported and Effects
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_cmd_effects_log" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_cmd_effects_log" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_cmd_effects_log \- Commands Supported and Effects Log
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_format_mset" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_format_mset" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_mset \- Format NVM - Metadata Settings
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_format_pi" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_format_pi" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_pi \- Format NVM - Protection Information
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_format_pil" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_format_pil" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_pil \- Format NVM - Protection Information Location
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_format_ses" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_format_ses" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_ses \- Format NVM - Secure Erase Settings
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_compare" 9 "nvme_compare" "March 2023" "libnvme API manual" LINUX
.TH "nvme_compare" 9 "nvme_compare" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_compare \- Submit an nvme user compare command
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_connect_err" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_connect_err" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_connect_err \- nvme connect error codes
.SH SYNOPSIS
@ -73,6 +73,14 @@ enum nvme_connect_err {
.br
.br
.BI " ENVME_CONNECT_CONNREFUSED"
,
.br
.br
.BI " ENVME_CONNECT_ADDRNOTAVAIL"
,
.br
.br
.BI " ENVME_CONNECT_IGNORED"
};
.SH Constants
@ -112,3 +120,7 @@ invalid interface
not supported
.IP "ENVME_CONNECT_CONNREFUSED" 12
connection refused
.IP "ENVME_CONNECT_ADDRNOTAVAIL" 12
cannot assign requested address
.IP "ENVME_CONNECT_IGNORED" 12
connect attempt is ignored due to configuration

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_constants" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_constants" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_constants \- A place to stash various constant nvme values
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_copy" 9 "nvme_copy" "March 2023" "libnvme API manual" LINUX
.TH "nvme_copy" 9 "nvme_copy" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_copy \- Copy command
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_copy_range" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_copy_range" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_copy_range \- Copy - Source Range Entries Descriptor Format
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "struct nvme_copy_range_f1" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "struct nvme_copy_range_f1" "June 2023" "API Manual" LINUX
.SH NAME
struct nvme_copy_range_f1 \- Copy - Source Range Entries Descriptor Format 1h
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "March 2023" "libnvme API manual" LINUX
.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_create_ctrl \- Allocate an unconnected NVMe controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_create_root" 9 "nvme_create_root" "March 2023" "libnvme API manual" LINUX
.TH "nvme_create_root" 9 "nvme_create_root" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_create_root \- Initialize root object
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "libnvme" 9 "enum nvme_csi" "March 2023" "API Manual" LINUX
.TH "libnvme" 9 "enum nvme_csi" "June 2023" "API Manual" LINUX
.SH NAME
enum nvme_csi \- Defined command set indicators
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_first_ns \- Start namespace iterator
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_first_path \- Start path iterator
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_ns \- Traverse namespaces
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_ns_safe \- Traverse namespaces
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_path \- Traverse paths
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_path_safe \- Traverse paths
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_address \- Address string of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_config \- Fabrics configuration of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_dhchap_host_key \- Return host key
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_dhchap_key \- Return controller key
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_fd \- Get associated file descriptor
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_firmware \- Firmware string of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_host_iface \- Host interface name of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_host_traddr \- Host transport address of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_model \- Model of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_name \- sysfs name of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_numa_node \- NUMA node of a controller
.SH SYNOPSIS

View file

@ -0,0 +1,12 @@
.TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_phy_slot \- PCI physical slot number of a controller
.SH SYNOPSIS
.B "const char *" nvme_ctrl_get_phy_slot
.BI "(nvme_ctrl_t c " ");"
.SH ARGUMENTS
.IP "c" 12
Controller instance
.SH "RETURN"
PCI physical slot number of \fIc\fP or empty string if slot
number is not present.

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_queue_count \- Queue count of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_serial \- Serial number of a controller
.SH SYNOPSIS

View file

@ -1,4 +1,4 @@
.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "March 2023" "libnvme API manual" LINUX
.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "June 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_sqsize \- SQ size of a controller
.SH SYNOPSIS

Some files were not shown because too many files have changed in this diff Show more