数据结构 - 持久事件日志报告上下文信息(Reporting Context Information, RCI) (第214页)
持久事件日志报告上下文信息(Reporting Context Information, RCI)
在 NVM Express® Base Specification, revision 2.0b 中,第 0Dh 日志标识符的持久事件日志页面中,包含了一个非常重要的部分——持久事件日志报告上下文信息(RCI)。这个部分涉及到与日志数据相关的上下文管理,具体信息如下:
RCI 字段解析
- Reserved (377:374)
-
描述:此字段保留,暂时不使用。
-
Reporting Context Exists (RCE) (Bit 18)
-
描述:该位表示持久事件日志报告上下文是否存在。如果此位设置为 1,则表示在处理请求该日志页的 Get Log Page 命令时,持久事件日志报告上下文已经存在。如果此位为 0,则表示持久事件日志报告上下文在请求时尚未存在。
-
Reporting Context Port Identifier Type (RCPIT) (Bits 17:16)
-
描述:如果 RCE 位设置为 1,此字段表示报告上下文端口标识符类型(RCPID 字段)。如果 RCE 位为 0,则此字段应为 00b。该字段指示了报告上下文的来源端口类型:
- 00b:持久事件日志报告上下文不存在。
- 01b:上下文由 NVM 子系统端口创建,RCPID 字段指示创建上下文的端口标识符。
- 10b:上下文由 NVMe-MI 端口创建,RCPID 字段指示创建上下文的 NVMe-MI 端口标识符。
- 11b:保留,未定义。
-
Reporting Context Port Identifier (RCPID) (Bits 15:00)
-
描述:如果 RCE 位为 1,此字段包含报告上下文端口标识符,具体取决于 RCPIT 字段的设置。如果 RCE 位为 0,则此字段被清零。
- RCPIT = 01b:此字段包含 NVM 子系统端口 的端口标识符。该标识符应遵循 Primary Controller Capabilities 数据结构 中定义的格式(参考 5.17.2.13 节)。
- RCPIT = 10b:此字段的低字节包含 NVMe-MI 端口 的端口标识符,而高字节则清零。
-
Reserved (479:378)
- 描述:此字段保留,暂时不使用。
RCI 字段作用总结
-
RCE (Reporting Context Exists):判断是否已经存在报告上下文。若已存在,主机可以直接使用该上下文获取持久事件日志数据;若不存在,必须通过特定操作创建。
-
RCPIT (Reporting Context Port Identifier Type):指示报告上下文来源的端口类型,帮助主机确定数据的来源和格式。
-
RCPID (Reporting Context Port Identifier):具体的端口标识符,提供上下文创建的源端口的信息,用于日志数据的归属标识。
使用场景
- 当主机需要读取持久事件日志时,RCE 和 RCPIT 字段提供了上下文是否存在以及其来源端口的信息。如果上下文已存在,主机可以继续从该上下文获取日志;如果不存在,则需要创建新的上下文。
- 通过 RCPIT 和 RCPID,可以精确定位上下文的来源,确保日志数据的正确性和一致性。