第5章 管理接口命令集 - 页码98
NVMe-MI 1 min read

第5章 管理接口命令集 - 页码98

Blog Author

深入分析 MCTP Transmission Unit Size (Configuration Identifier 03h)

MCTP Transmission Unit Size 配置项允许请求者为每个管理端点指定一个新的 MCTP 数据传输单元大小。这个配置是与每个端口相关的,适用于端口的 MCTP 数据包的传输大小。

命令操作流程

  • 字段描述
  • Port Identifier (PORTID):指定要更新的端口。
  • Configuration Identifier (CID):指定要读取或设置的配置项。
  • MCTP Transmission Unit Size (MTUS):指定新的 MCTP 传输单元大小(以字节为单位),该大小将影响未来所有在该端口上执行的命令消息。

  • 行为和约束

  • 成功后执行: 一旦成功执行该命令,管理端点将在指定端口上更新 MCTP 传输单元的大小,用于未来的所有命令消息。
  • 错误处理:

    • 如果指定的传输单元大小不被支持,则管理端点将中止命令,并返回一个无效参数错误响应。
    • 如果指定的端口标识符无效,则也会中止命令并返回错误。
  • 额外限制:

  • 在有命令未完成的情况下不应更改 MCTP 传输单元大小。如果更改发生时有其他请求消息仍未完成,可能导致未定义的行为。
  • 如果改变传输单元大小后发起了回放控制原语(Replay Control Primitive),并且该回放的 MCTP 传输单元大小不同,也会导致未定义行为。

Asynchronous Event (AE) Configuration (Configuration Identifier 04h)

Asynchronous Event 配置项用于处理 异步事件(AE)和事件同步(AE Sync)。该配置包括两个关键的事件机制:

  1. AE Sync
  2. AEM Ack

AE Sync

  • 触发条件:Configuration Set 命令处理时,如果 AE Enable Data Structures 字段不为 0h,且 AE Occurrence List Overflow bit 被清除为 0,则触发 AE 同步。
  • 响应消息: AE 同步响应消息将包含所有启用的 AEs 当前状态,用于同步管理控制器和管理端点之间的 AEs 状态。

AEM Ack

  • 触发条件:Configuration Set 命令处理时,如果 AE Enable Data Structures 字段被清除为 0h,且 AE Occurrence List Overflow bit 被清除为 0,则触发 AEM Ack。
  • 在 AE Disarmed 状态下的行为: 如果在 AE Disarmed 状态下接收到 AEM Ack,并且在之前的 AE Armed 状态下发生了一个或多个 AE,则会丢弃这些 AE(即一旦管理控制器收到对应的 AEM,管理端点将不再重新传输这些 AE)。

  • 响应消息: AEM Ack 的响应消息包含所有在 AE Disarmed 状态下发生的 AEs,用于重新同步管理控制器和管理端点之间的状态。


总结

  1. MCTP Transmission Unit Size 配置
  2. 管理端点可以通过该命令设置特定端口的 MCTP 传输单元大小,用于未来的命令消息传输。
  3. 需要注意在有其他请求未完成时不应更改传输单元大小,避免引发未定义的行为。

  4. Asynchronous Event 配置

  5. AE SyncAEM Ack 是两个异步事件机制,用于同步和确认异步事件的处理。
  6. AE Sync 用于同步所有启用的 AEs,而 AEM Ack 确认异步事件的接收,并清理在 AE Disarmed 状态下发生的 AEs。

如果您有任何其他问题,或希望进一步分析该规范的其他部分,请随时告诉我!