From: Jeremy Kerr Date: Thu, 23 Jun 2022 08:18:00 +0000 (+0800) Subject: doc: check-in processed mi.rst X-Git-Tag: v1.1-rc0~24^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=033e789268494a7d3548de7f34b2ee3c501cdc44;p=users%2Fsagi%2Flibnvme.git doc: check-in processed mi.rst It looks like the generated doc output on readthedocs.io requires the processed .rst output to be present in the repo, so check it in. Signed-off-by: Jeremy Kerr --- diff --git a/doc/mi.rst b/doc/mi.rst new file mode 100644 index 00000000..4a1bbe3b --- /dev/null +++ b/doc/mi.rst @@ -0,0 +1,29 @@ +NVMe Management Interface (NVMe-MI) support +=========================================== + +This libnvme project also includes support for the NVMe Management Interface +(NVMe-MI), currently over a Management Component Transport (MCTP) +protocol link. This MCTP link will typically use i2c/SMBus as the +hardware transport, enabling out-of-band management and control over NVMe +devices using a simple SMBus interface. + +The MI interface is compiled into a separate shared object, ``libnvme-mi.so``. + +Most of the MI API is transport-agnostic, except for the endpoint constructor +functions. Once an endpoint object (``nvme_mi_ep_t``) is created, the generic +functions can be used to manage it. + +MCTP Transport +-------------- + +The MI API is generally transport-agnostic, but the only currently-supported +transport is MCTP, using the kernel ``AF_MCTP`` socket interface. + +MCTP endpoints are addressed by a (network-id, endpoint-id) pair. Endpoint +IDs (EIDs) are defined by the MCTP standard as an 8-bit value. Since the +address space is somewhat limited, the Linux `AF_MCTP` support allows for +separate MCTP "networks", which provide separate address spaces. These networks +each have a unique ``unsigned int`` as their ID. + +The default Network ID is 1; unless you have configured otherwise, MCTP +endpoints will appear on this network.