Skip to content

Commit 8982344

Browse files
authored
Merge pull request #402 from CodeConstruct/mi-kdoc
doc: check-in processed mi.rst
2 parents b7fe911 + 033e789 commit 8982344

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

doc/mi.rst

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
NVMe Management Interface (NVMe-MI) support
2+
===========================================
3+
4+
This libnvme project also includes support for the NVMe Management Interface
5+
(NVMe-MI), currently over a Management Component Transport (MCTP)
6+
protocol link. This MCTP link will typically use i2c/SMBus as the
7+
hardware transport, enabling out-of-band management and control over NVMe
8+
devices using a simple SMBus interface.
9+
10+
The MI interface is compiled into a separate shared object, ``libnvme-mi.so``.
11+
12+
Most of the MI API is transport-agnostic, except for the endpoint constructor
13+
functions. Once an endpoint object (``nvme_mi_ep_t``) is created, the generic
14+
functions can be used to manage it.
15+
16+
MCTP Transport
17+
--------------
18+
19+
The MI API is generally transport-agnostic, but the only currently-supported
20+
transport is MCTP, using the kernel ``AF_MCTP`` socket interface.
21+
22+
MCTP endpoints are addressed by a (network-id, endpoint-id) pair. Endpoint
23+
IDs (EIDs) are defined by the MCTP standard as an 8-bit value. Since the
24+
address space is somewhat limited, the Linux `AF_MCTP` support allows for
25+
separate MCTP "networks", which provide separate address spaces. These networks
26+
each have a unique ``unsigned int`` as their ID.
27+
28+
The default Network ID is 1; unless you have configured otherwise, MCTP
29+
endpoints will appear on this network.

0 commit comments

Comments
 (0)