Merging upstream version 1.5.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
8f9ab756e2
commit
70a0abe13f
874 changed files with 9553 additions and 1347 deletions
5
.github/cross/clang.txt
vendored
5
.github/cross/clang.txt
vendored
|
@ -1,5 +0,0 @@
|
||||||
[binaries]
|
|
||||||
c = 'clang'
|
|
||||||
cpp = 'clang++'
|
|
||||||
strip = 'strip'
|
|
||||||
pkgconfig = 'pkg-config'
|
|
6
.github/cross/ubuntu-static.txt
vendored
6
.github/cross/ubuntu-static.txt
vendored
|
@ -1,6 +0,0 @@
|
||||||
[properties]
|
|
||||||
c_args = '-static'
|
|
||||||
cpp_args = c_args
|
|
||||||
|
|
||||||
[binaries]
|
|
||||||
c = '/usr/bin/gcc'
|
|
398
.github/workflows/build.yml
vendored
398
.github/workflows/build.yml
vendored
|
@ -10,380 +10,120 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
gcc-debug:
|
default:
|
||||||
name: gcc debug
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
compiler: [gcc, clang]
|
||||||
|
buildtype: [debug, release]
|
||||||
|
container:
|
||||||
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
||||||
steps:
|
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/checkout@v3
|
||||||
- uses: actions/setup-python@v4
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- uses: BSFishy/meson-build@v1.0.3
|
- name: build
|
||||||
name: build
|
run: |
|
||||||
with:
|
scripts/build.sh -b ${{ matrix.buildtype }} -c ${{ matrix.compiler }}
|
||||||
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
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
name: upload logs
|
name: upload logs
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: logs files
|
name: logs files
|
||||||
path: |
|
path: |
|
||||||
build/meson-logs/*.txt
|
.build-ci/meson-logs/*.txt
|
||||||
|
|
||||||
gcc-release:
|
cross:
|
||||||
name: gcc release
|
|
||||||
runs-on: ubuntu-latest
|
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:
|
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/checkout@v3
|
||||||
- uses: actions/setup-python@v4
|
- name: set up arm architecture
|
||||||
with:
|
run: |
|
||||||
python-version: '3.x'
|
export release=$(lsb_release -c -s)
|
||||||
- uses: BSFishy/meson-build@v1.0.3
|
sudo dpkg --add-architecture ${{ matrix.port }}
|
||||||
name: build
|
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
|
||||||
with:
|
sudo dd of=/etc/apt/sources.list.d/${{ matrix.arch }}.list <<EOF
|
||||||
action: build
|
deb [arch=${{ matrix.port }}] http://ports.ubuntu.com/ $release main universe restricted"
|
||||||
setup-options: >
|
deb [arch=${{ matrix.port }}] http://ports.ubuntu.com/ $release-updates main universe restricted"
|
||||||
--werror
|
EOF
|
||||||
--buildtype=release
|
sudo apt update
|
||||||
--wrap-mode=nofallback
|
sudo apt install -y meson pkg-config qemu-user-static ${{ matrix.compiler}} libjson-c-dev:${{ matrix.port }} ${{ matrix.packages }}
|
||||||
-Dlibdbus=enabled
|
- name: build
|
||||||
meson-version: 0.61.2
|
run: |
|
||||||
- uses: BSFishy/meson-build@v1.0.3
|
scripts/build.sh -b release -c gcc -t ${{ matrix.arch }} cross
|
||||||
name: test
|
|
||||||
with:
|
|
||||||
action: test
|
|
||||||
meson-version: 0.61.2
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
name: upload logs
|
name: upload logs
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: log files
|
name: log files
|
||||||
path: |
|
path: |
|
||||||
build/meson-logs/*.txt
|
.build-ci/meson-logs/*.txt
|
||||||
|
|
||||||
clang-release:
|
libdbus:
|
||||||
name: clang release
|
name: libdbus
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
||||||
steps:
|
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/checkout@v3
|
||||||
- uses: actions/setup-python@v4
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- uses: BSFishy/meson-build@v1.0.3
|
- name: build
|
||||||
name: build
|
run: |
|
||||||
with:
|
scripts/build.sh -b release -c gcc libdbus
|
||||||
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
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
name: upload logs
|
name: upload logs
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: log files
|
name: log files
|
||||||
path: |
|
path: |
|
||||||
build/meson-logs/*.txt
|
.build-ci/meson-logs/*.txt
|
||||||
|
|
||||||
fallback-shared-libraries:
|
fallback-shared-libraries:
|
||||||
name: fallback shared libraries
|
name: fallback shared libraries
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
steps:
|
steps:
|
||||||
- name: install libraries
|
|
||||||
run: sudo apt-get install libpam-dev libcap-ng-dev
|
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-python@v4
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
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
|
- name: build
|
||||||
run: |
|
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 \
|
build-muon:
|
||||||
-Dpython=disabled \
|
name: muon minimal static
|
||||||
-Dopenssl=disabled \
|
runs-on: ubuntu-latest
|
||||||
-Dlibdbus=disabled \
|
container:
|
||||||
-Djson-c=disabled \
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
||||||
build
|
steps:
|
||||||
samu -C build
|
- uses: actions/checkout@v3
|
||||||
- name: test
|
- name: build
|
||||||
run: |
|
run: |
|
||||||
export PATH=$(pwd)/build-tools/muon/build:$PATH
|
scripts/build.sh -m muon
|
||||||
|
|
||||||
muon -C build test
|
|
||||||
|
|
3
.github/workflows/release-python.yml
vendored
3
.github/workflows/release-python.yml
vendored
|
@ -16,6 +16,9 @@ jobs:
|
||||||
name: Build source distribution
|
name: Build source distribution
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
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/checkout@v3
|
||||||
|
|
||||||
- name: Build sdist
|
- name: Build sdist
|
||||||
|
|
130
README.md
130
README.md
|
@ -15,7 +15,7 @@ and payloads, and utilities to connect, scan, and manage nvme devices
|
||||||
on a Linux system.
|
on a Linux system.
|
||||||
|
|
||||||
The public specification is the authority to resolve any protocol
|
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:
|
see:
|
||||||
|
|
||||||
https://nvmexpress.org
|
https://nvmexpress.org
|
||||||
|
@ -36,52 +36,53 @@ Keith Busch 2020-02-06
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|
||||||
# Building with meson
|
# Dependency
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
libnvme depends on minimum Linux kernel version v4.15, which
|
libnvme depends on minimum Linux kernel version v4.15, which
|
||||||
introduced the /sys/class/nvme-subsystem.
|
introduced the /sys/class/nvme-subsystem.
|
||||||
|
|
||||||
|
# Build from source
|
||||||
## Prerequisite
|
## Prerequisite
|
||||||
|
|
||||||
First, install meson.
|
A minimal build depends on a set of build tools
|
||||||
|
|
||||||
**Debian / Ubuntu**:
|
- gcc
|
||||||
|
- ninja
|
||||||
|
- meson
|
||||||
|
|
||||||
```bash
|
Not all feature will be present with such configuration, e.g.
|
||||||
sudo apt-get install meson
|
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
|
`/etc/nvme/config.json`` support:
|
||||||
sudo dnf install meson
|
- 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
|
## To compile libnvme
|
||||||
|
|
||||||
Using meson is similar to projects that use a `configure` script before running `make`.
|
|
||||||
|
|
||||||
To `configure` the project:
|
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
|
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
|
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:
|
To compile:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd .build
|
meson -C .build
|
||||||
ninja
|
|
||||||
```
|
|
||||||
|
|
||||||
Or:
|
|
||||||
|
|
||||||
```
|
|
||||||
ninja -C .build
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## To install libnvme
|
## To install libnvme
|
||||||
|
@ -120,8 +114,7 @@ ninja -C .build
|
||||||
To install `libnvme`:
|
To install `libnvme`:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd .build
|
meson install -C .build
|
||||||
meson install
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## To run unit tests
|
## To run unit tests
|
||||||
|
@ -129,23 +122,7 @@ meson install
|
||||||
To run unit tests:
|
To run unit tests:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd .build
|
meson test -C .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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## To purge everything
|
## To purge everything
|
||||||
|
@ -160,10 +137,24 @@ rm -rf .build
|
||||||
|
|
||||||
A few build options can be specified on the command line when invoking meson.
|
A few build options can be specified on the command line when invoking meson.
|
||||||
|
|
||||||
| Option | Values [default] | Description |
|
| Option | Values [default] | Description |
|
||||||
| ------ | ------------------------- | ------------------------------------------------------------ |
|
| ----------- | ------------------------- | ------------------------------------------------------------ |
|
||||||
| man | true, [false] | Instruct meson to configure the project to build the `libnvme` documentation. <br />Example: `meson .build -Dman=true` |
|
| 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` |
|
| 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)
|
### 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:
|
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
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ copyright = '2020, Keith Busch'
|
||||||
author = 'Keith Busch <kbusch@kernel.org>'
|
author = 'Keith Busch <kbusch@kernel.org>'
|
||||||
master_doc = 'index'
|
master_doc = 'index'
|
||||||
|
|
||||||
release = '1.4'
|
release = '1.5'
|
||||||
|
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
|
|
|
@ -59,6 +59,10 @@
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": { "$ref": "#/$defs/port" }
|
"items": { "$ref": "#/$defs/port" }
|
||||||
},
|
},
|
||||||
|
"application": {
|
||||||
|
"description": "Program managing this subsystem",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"required": [ "nqn" ]
|
"required": [ "nqn" ]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -59,6 +59,10 @@
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": { "$ref": "#/$defs/port" }
|
"items": { "$ref": "#/$defs/port" }
|
||||||
},
|
},
|
||||||
|
"application": {
|
||||||
|
"description": "Program managing this subsystem",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"required": [ "nqn" ]
|
"required": [ "nqn" ]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
169
doc/man/nbft_control.2
Normal file
169
doc/man/nbft_control.2
Normal 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.
|
12
doc/man/nbft_control_flags.2
Normal file
12
doc/man/nbft_control_flags.2
Normal 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
74
doc/man/nbft_desc_type.2
Normal 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
71
doc/man/nbft_discovery.2
Normal 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.
|
14
doc/man/nbft_discovery_flags.2
Normal file
14
doc/man/nbft_discovery_flags.2
Normal 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
93
doc/man/nbft_header.2
Normal 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
20
doc/man/nbft_heap_obj.2
Normal 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
44
doc/man/nbft_hfi.2
Normal 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
13
doc/man/nbft_hfi_flags.2
Normal 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
137
doc/man/nbft_hfi_info_tcp.2
Normal 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.
|
35
doc/man/nbft_hfi_info_tcp_flags.2
Normal file
35
doc/man/nbft_hfi_info_tcp_flags.2
Normal 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
36
doc/man/nbft_host.2
Normal 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
75
doc/man/nbft_host_flags.2
Normal 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
43
doc/man/nbft_info.2
Normal 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).
|
34
doc/man/nbft_info_discovery.2
Normal file
34
doc/man/nbft_info_discovery.2
Normal 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
24
doc/man/nbft_info_hfi.2
Normal 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.
|
83
doc/man/nbft_info_hfi_info_tcp.2
Normal file
83
doc/man/nbft_info_hfi_info_tcp.2
Normal 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
36
doc/man/nbft_info_host.2
Normal 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.
|
30
doc/man/nbft_info_nid_type.2
Normal file
30
doc/man/nbft_info_nid_type.2
Normal 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.
|
39
doc/man/nbft_info_primary_admin_host_flag.2
Normal file
39
doc/man/nbft_info_primary_admin_host_flag.2
Normal 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.
|
16
doc/man/nbft_info_security.2
Normal file
16
doc/man/nbft_info_security.2
Normal 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.
|
94
doc/man/nbft_info_subsystem_ns.2
Normal file
94
doc/man/nbft_info_subsystem_ns.2
Normal 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
98
doc/man/nbft_security.2
Normal 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.
|
179
doc/man/nbft_security_flags.2
Normal file
179
doc/man/nbft_security_flags.2
Normal 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.
|
16
doc/man/nbft_security_secret_type.2
Normal file
16
doc/man/nbft_security_secret_type.2
Normal 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
159
doc/man/nbft_ssns.2
Normal 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.
|
55
doc/man/nbft_ssns_ext_info.2
Normal file
55
doc/man/nbft_ssns_ext_info.2
Normal 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.
|
25
doc/man/nbft_ssns_ext_info_flags.2
Normal file
25
doc/man/nbft_ssns_ext_info_flags.2
Normal 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
121
doc/man/nbft_ssns_flags.2
Normal 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.
|
44
doc/man/nbft_ssns_trflags.2
Normal file
44
doc/man/nbft_ssns_trflags.2
Normal 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
12
doc/man/nbft_trtype.2
Normal 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".
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_admin_opcode \- Known NVMe admin opcodes
|
enum nvme_admin_opcode \- Known NVMe admin opcodes
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_admin_passthru \- Submit an nvme passthrough command
|
nvme_admin_passthru \- Submit an nvme passthrough command
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_admin_passthru64 \- Submit a 64-bit nvme passthrough command
|
nvme_admin_passthru64 \- Submit a 64-bit nvme passthrough command
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_ae_info_css_nvm \- Asynchronous Event Information - I/O Command Specific Status
|
enum nvme_ae_info_css_nvm \- Asynchronous Event Information - I/O Command Specific Status
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_ae_info_error \- Asynchronous Event Information - Error Status
|
enum nvme_ae_info_error \- Asynchronous Event Information - Error Status
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_ae_info_notice \- Asynchronous Event Information - Notice
|
enum nvme_ae_info_notice \- Asynchronous Event Information - Notice
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_ae_info_smart \- Asynchronous Event Information - SMART / Health Status
|
enum nvme_ae_info_smart \- Asynchronous Event Information - SMART / Health Status
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_ae_type \- Asynchronous Event Type
|
enum nvme_ae_type \- Asynchronous Event Type
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate
|
struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page
|
struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_ana_group_desc \- ANA Group Descriptor
|
struct nvme_ana_group_desc \- ANA Group Descriptor
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_ana_log \- Asymmetric Namespace Access Log
|
struct nvme_ana_log \- Asymmetric Namespace Access Log
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_ana_state \- ANA Group Descriptor - Asymmetric Namespace Access State
|
enum nvme_ana_state \- ANA Group Descriptor - Asymmetric Namespace Access State
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_apst_entry \- Autonomous Power State Transition
|
enum nvme_apst_entry \- Autonomous Power State Transition
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_boot_partition \- Boot Partition Log
|
struct nvme_boot_partition \- Boot Partition Log
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_capacity_config_desc \- Capacity Configuration structure definitions
|
struct nvme_capacity_config_desc \- Capacity Configuration structure definitions
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_capacity_mgmt \- Capacity management command
|
nvme_capacity_mgmt \- Capacity management command
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_change_ns_event \- Change Namespace Event Data
|
struct nvme_change_ns_event \- Change Namespace Event Data
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_channel_config_desc \- Channel Configuration Descriptor
|
struct nvme_channel_config_desc \- Channel Configuration Descriptor
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_cmb_size \- Calculate size of the controller memory buffer
|
nvme_cmb_size \- Calculate size of the controller memory buffer
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_effects \- Commands Supported and Effects
|
enum nvme_cmd_effects \- Commands Supported and Effects
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_cmd_effects_log \- Commands Supported and Effects Log
|
struct nvme_cmd_effects_log \- Commands Supported and Effects Log
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_format_mset \- Format NVM - Metadata Settings
|
enum nvme_cmd_format_mset \- Format NVM - Metadata Settings
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_format_pi \- Format NVM - Protection Information
|
enum nvme_cmd_format_pi \- Format NVM - Protection Information
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_format_pil \- Format NVM - Protection Information Location
|
enum nvme_cmd_format_pil \- Format NVM - Protection Information Location
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_format_ses \- Format NVM - Secure Erase Settings
|
enum nvme_cmd_format_ses \- Format NVM - Secure Erase Settings
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers
|
enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field
|
enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_compare \- Submit an nvme user compare command
|
nvme_compare \- Submit an nvme user compare command
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_connect_err \- nvme connect error codes
|
enum nvme_connect_err \- nvme connect error codes
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -73,6 +73,14 @@ enum nvme_connect_err {
|
||||||
.br
|
.br
|
||||||
.br
|
.br
|
||||||
.BI " ENVME_CONNECT_CONNREFUSED"
|
.BI " ENVME_CONNECT_CONNREFUSED"
|
||||||
|
,
|
||||||
|
.br
|
||||||
|
.br
|
||||||
|
.BI " ENVME_CONNECT_ADDRNOTAVAIL"
|
||||||
|
,
|
||||||
|
.br
|
||||||
|
.br
|
||||||
|
.BI " ENVME_CONNECT_IGNORED"
|
||||||
|
|
||||||
};
|
};
|
||||||
.SH Constants
|
.SH Constants
|
||||||
|
@ -112,3 +120,7 @@ invalid interface
|
||||||
not supported
|
not supported
|
||||||
.IP "ENVME_CONNECT_CONNREFUSED" 12
|
.IP "ENVME_CONNECT_CONNREFUSED" 12
|
||||||
connection refused
|
connection refused
|
||||||
|
.IP "ENVME_CONNECT_ADDRNOTAVAIL" 12
|
||||||
|
cannot assign requested address
|
||||||
|
.IP "ENVME_CONNECT_IGNORED" 12
|
||||||
|
connect attempt is ignored due to configuration
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_constants \- A place to stash various constant nvme values
|
enum nvme_constants \- A place to stash various constant nvme values
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_copy \- Copy command
|
nvme_copy \- Copy command
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_copy_range \- Copy - Source Range Entries Descriptor Format
|
struct nvme_copy_range \- Copy - Source Range Entries Descriptor Format
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
struct nvme_copy_range_f1 \- Copy - Source Range Entries Descriptor Format 1h
|
struct nvme_copy_range_f1 \- Copy - Source Range Entries Descriptor Format 1h
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_create_ctrl \- Allocate an unconnected NVMe controller
|
nvme_create_ctrl \- Allocate an unconnected NVMe controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_create_root \- Initialize root object
|
nvme_create_root \- Initialize root object
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
enum nvme_csi \- Defined command set indicators
|
enum nvme_csi \- Defined command set indicators
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_first_ns \- Start namespace iterator
|
nvme_ctrl_first_ns \- Start namespace iterator
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_first_path \- Start path iterator
|
nvme_ctrl_first_path \- Start path iterator
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_for_each_ns \- Traverse namespaces
|
nvme_ctrl_for_each_ns \- Traverse namespaces
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_for_each_ns_safe \- Traverse namespaces
|
nvme_ctrl_for_each_ns_safe \- Traverse namespaces
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_for_each_path \- Traverse paths
|
nvme_ctrl_for_each_path \- Traverse paths
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_for_each_path_safe \- Traverse paths
|
nvme_ctrl_for_each_path_safe \- Traverse paths
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_address \- Address string of a controller
|
nvme_ctrl_get_address \- Address string of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_config \- Fabrics configuration of a controller
|
nvme_ctrl_get_config \- Fabrics configuration of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_dhchap_host_key \- Return host key
|
nvme_ctrl_get_dhchap_host_key \- Return host key
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_dhchap_key \- Return controller key
|
nvme_ctrl_get_dhchap_key \- Return controller key
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_fd \- Get associated file descriptor
|
nvme_ctrl_get_fd \- Get associated file descriptor
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_firmware \- Firmware string of a controller
|
nvme_ctrl_get_firmware \- Firmware string of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_host_iface \- Host interface name of a controller
|
nvme_ctrl_get_host_iface \- Host interface name of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_host_traddr \- Host transport address of a controller
|
nvme_ctrl_get_host_traddr \- Host transport address of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_model \- Model of a controller
|
nvme_ctrl_get_model \- Model of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_name \- sysfs name of a controller
|
nvme_ctrl_get_name \- sysfs name of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_numa_node \- NUMA node of a controller
|
nvme_ctrl_get_numa_node \- NUMA node of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
12
doc/man/nvme_ctrl_get_phy_slot.2
Normal file
12
doc/man/nvme_ctrl_get_phy_slot.2
Normal 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.
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_queue_count \- Queue count of a controller
|
nvme_ctrl_get_queue_count \- Queue count of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_serial \- Serial number of a controller
|
nvme_ctrl_get_serial \- Serial number of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -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
|
.SH NAME
|
||||||
nvme_ctrl_get_sqsize \- SQ size of a controller
|
nvme_ctrl_get_sqsize \- SQ size of a controller
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue