数据结构 - 持久事件日志报告上下文信息(Reporting Context Information, RCI) (第214页)
NVME2.0协议解读 1 min read

数据结构 - 持久事件日志报告上下文信息(Reporting Context Information, RCI) (第214页)

Blog Author

持久事件日志报告上下文信息(Reporting Context Information, RCI)

NVM Express® Base Specification, revision 2.0b 中,第 0Dh 日志标识符的持久事件日志页面中,包含了一个非常重要的部分——持久事件日志报告上下文信息(RCI)。这个部分涉及到与日志数据相关的上下文管理,具体信息如下:

RCI 字段解析

  1. Reserved (377:374)
  2. 描述:此字段保留,暂时不使用。

  3. Reporting Context Exists (RCE) (Bit 18)

  4. 描述:该位表示持久事件日志报告上下文是否存在。如果此位设置为 1,则表示在处理请求该日志页的 Get Log Page 命令时,持久事件日志报告上下文已经存在。如果此位为 0,则表示持久事件日志报告上下文在请求时尚未存在。

  5. Reporting Context Port Identifier Type (RCPIT) (Bits 17:16)

  6. 描述:如果 RCE 位设置为 1,此字段表示报告上下文端口标识符类型(RCPID 字段)。如果 RCE 位为 0,则此字段应为 00b。该字段指示了报告上下文的来源端口类型:

    • 00b:持久事件日志报告上下文不存在。
    • 01b:上下文由 NVM 子系统端口创建,RCPID 字段指示创建上下文的端口标识符。
    • 10b:上下文由 NVMe-MI 端口创建,RCPID 字段指示创建上下文的 NVMe-MI 端口标识符。
    • 11b:保留,未定义。
  7. Reporting Context Port Identifier (RCPID) (Bits 15:00)

  8. 描述:如果 RCE 位为 1,此字段包含报告上下文端口标识符,具体取决于 RCPIT 字段的设置。如果 RCE 位为 0,则此字段被清零。

    • RCPIT = 01b:此字段包含 NVM 子系统端口 的端口标识符。该标识符应遵循 Primary Controller Capabilities 数据结构 中定义的格式(参考 5.17.2.13 节)。
    • RCPIT = 10b:此字段的低字节包含 NVMe-MI 端口 的端口标识符,而高字节则清零。
  9. Reserved (479:378)

  10. 描述:此字段保留,暂时不使用。

RCI 字段作用总结

  • RCE (Reporting Context Exists):判断是否已经存在报告上下文。若已存在,主机可以直接使用该上下文获取持久事件日志数据;若不存在,必须通过特定操作创建。

  • RCPIT (Reporting Context Port Identifier Type):指示报告上下文来源的端口类型,帮助主机确定数据的来源和格式。

  • RCPID (Reporting Context Port Identifier):具体的端口标识符,提供上下文创建的源端口的信息,用于日志数据的归属标识。

使用场景

  • 当主机需要读取持久事件日志时,RCE 和 RCPIT 字段提供了上下文是否存在以及其来源端口的信息。如果上下文已存在,主机可以继续从该上下文获取日志;如果不存在,则需要创建新的上下文。
  • 通过 RCPITRCPID,可以精确定位上下文的来源,确保日志数据的正确性和一致性。