• NVMe-MI --- Message Transport(消息传输)


    3. 消息传输

            该规范定义了一个支持多种消息传输的接口。消息格式与带外机制和带内隧道机制相同。

    3.1 NVMe-MI消息

            NVMe-MI消息在带外机制和带内隧道机制中都有使用。NVMe-MI消息的格式如图17和图18所示。

            在带外机制中,NVMe-MI消息由一个或多个MCTP包的有效负载组成。NVMe-MI消息的最大大小为4224Byte(即:4KB + 128Byte)。请参考MCTP绑定规范上的NVMe管理消息。长度大于4224Byte的NVMe-MI消息被认为是无效的。

            在带内隧道机制中,NVMe-MI消息不拆分为MCTP报文,且NVMe-MI消息的最大大小等于最大数据传输大小(MDTS),可以参考NVM Express规范。

    3.1.1 NVMe-MI消息字段

            NVMe-MI消息的格式由:Message Header(1dword) + Message Data + Message Integrity Check(1dword)。如果完整性检查(IC)bit设置为“1”,则NVMe-MI消息以IC结束。

            消息头包含MCTP基本规范定义的消息类型(MT)字段和完整性检查(IC)位。消息类型字段指定消息体中包含的有效负载类型,在所有NVMe-MI消息中需要设置为4h(参考MCTP id和代码规范)。完整性检查(IC)字段表示NVMe-MI消息是否受消息完整性检查保护。

    • 带外机制中所有的NVMe-MI消息都有32位CRC保护,IC字段应该设置为“1”
    • 带内隧道机制中所有的NVMe-MI消息没有CRC保护,IC字段应该设置为“0”

            消息头中的(POR)位指定了NVMe-MI消息是请求消息还是响应消息。消息类型(NMIMT)字段指定消息是控制原语还是命令消息的特定类型。命令槽标识符(CSI)位指定了在带外机制中NVMe-MI消息与之关联的命令槽。

            消息头中的管理端点缓冲区(MEB)位指定消息数据是包含在NVMe-MI消息的相关消息数据字段中,还是包含在管理端点缓冲区中。这个位应该只在支持管理端点缓冲区操作的命令消息中设置。在任何其他命令消息中设置此位都是错误的,当发生此情况时,将响应无效参数命令消息。

    3.2 带外消息传输

            本规范中定义的带外机制利用MCTP作为管理控制器和管理端点之间可靠的有序消息传输。

    3.2.1 MCTP包

            在MCTP基本规范中,数据传输的最小单位是MCTP包。将一个或多个报文组合起来创建MCTP消息。在这个规范中,MCTP消息被称为NVMe-MI消息。一个数据包总是包含至少1Byte的有效载荷,但总长度不得超过协商的MCTP传输单元大小。MCTP数据包的格式如图20所示。

            MCTP规范使用大端字节排序,而NVM Express规范使用小端字节排序。本规范中所有图形都使用小端字节排序进行说明。注意:实际物理层上还是使用的大端排序。

            物理介质专用的报头、报尾由端口使用的MCTP传输绑定规范定义。

            管理组件传输协议(MCTP)基本规范定义了MCTP报头,MCTP包字段如图21所示。符合要求的管理端点应实现MCTP基本规范中定义的所有MCTP要求的特性。可能支持可选特性。 

     3.2.1.1 报文组装成消息

            一个NVMe-MI消息可以被分解成多个MCTP包载荷,并作为一系列包发送。图22显示了一个NVMe-MI消息示例,它的内容被分成四个MCTP包。请参阅MCTP基本规范了解封包和消息组装规则。

            NVMe-MI消息 = N个MCTP包(NVMe-MI MCTP Message)

     除了MCTP基本规范和传输绑定规范中概述的要求外,该规范还有以下附加要求:

    • 除消息中最后一个数据包外,给定消息中所有数据包的MCTP传输单元大小应与协商的MCTP传输单元大小相等;
    • 一个完整的NVMe-MI 消息组装完成后,就需要校验消息的完整性。如果校验通过,则处理NVMe-MI消息;如果校验失败,则丢弃NVMe-MI消息。
  • 相关阅读:
    OOALV总结
    安保公司的商业计划书
    1308. 不同性别每日分数总计
    MySQL数据库复习——事务
    vue3中若v-model绑定的响应字段出现三级,该如何实现rules验证规则
    如何才能去Salesforce原厂工作?
    LeetCode 1582. 二进制矩阵中的特殊位置
    技术管理进阶——管理者如何做绩效沟通及把控风险
    libcef最新下载地址-在VS2015下编译为MD-动态链接
    go并发之context
  • 原文地址:https://blog.csdn.net/xinghuanmeiying/article/details/126296391