数据结构与日志格式 - 第244页
深入分析 NVM Express® Base Specification, revision 2.0b - Discovery Log Page(日志标识符 70h)条目结构
Discovery Log Page(发现日志页面)是专门为 Discovery 控制器 设计的。该日志页面用于提供 NVM 子系统的目录信息,帮助主机与这些子系统建立关联。在本部分,我们深入分析 Discovery Log Page Entry 的结构和每个字段的含义。
Discovery Log Page Entry 结构解析
每个 Discovery Log Page Entry 描述了一个 NVM 子系统的发现信息或其他发现服务的引用。该条目提供有关 NVMe Transport 类型、地址族、子系统类型等关键信息。以下是各字段的详细解析:
1. Transport Type (TRTYPE)
- 功能:指定 NVMe 传输类型。
- 字段值:
00h: 保留01h: RDMA 传输(参见 NVMe RDMA 传输规范)02h: 光纤通道传输(参见 INCITS 556)03h: TCP 传输(参见 NVMe TCP 传输规范)04h-253h: 保留254h: 主机内传输(即环回,主机软件使用的保留值)255h: 保留
该字段指示了传输类型,可以帮助系统识别数据传输的协议和方法。
2. Address Family (ADRFAM)
- 功能:指定地址族,指示通信协议中的地址类型。
- 字段值:
00h: 保留01h: AF_INET(IPv4 地址族,格式参见 IETF RFC 3986)02h: AF_INET6(IPv6 地址族,格式参见 IETF RFC 3986)03h: AF_IB(InfiniBand 地址族)04h: 光纤通道地址族05h-253h: 保留254h: 主机内传输(即环回,主机软件使用的保留值)255h: 保留
此字段帮助识别通信所用的具体地址格式,通常包括 IPv4、IPv6 或 InfiniBand 等不同的网络协议。
3. Subsystem Type (SUBTYPE)
- 功能:指定 NVM 子系统的类型。
- 字段值:
00h: 保留01h: 该条目描述了一个指向其他 Discovery 服务的引用,包含更多记录。02h: 该条目描述了一个没有关联 Discovery 控制器的 NVM 子系统,其控制器可能附带命名空间。03h-255h: 保留
此字段指示当前条目描述的是 Discovery 服务(指向其他发现服务)还是 NVM 子系统。如果是指向其他服务,则会通过引用来获取更多记录。
4. Transport Requirements (TREQ)
- 功能:指示 NVMe 传输的要求。
- 字段值:
- Bit 2: 如果设置为
1,表示控制器支持禁用 SQ 流量控制。如果为0,表示控制器要求使用 SQ 流量控制。 - Bits 1:0: 表示连接是否必须通过安全通道(包括身份验证)进行。
00b: 未指定01b: 必须要求10b: 不要求11b: 保留
这个字段提供了关于控制器如何处理流量控制和是否需要安全连接的信息,尤其适用于在不同传输协议之间进行通信时的安全性要求。
5. Port ID (PORTID)
- 功能:指定特定的 NVM 子系统端口。不同的 NVMe 传输或地址族可能会使用相同的端口 ID 值。
- 字段值:
- 该字段为端口标识符,能够标识不同的端口,允许多个传输协议或地址族共享相同的端口 ID。例如,一个端口可能同时支持 iWARP 和 RoCE 协议。
总结:
Discovery Log Page Entry 的结构提供了 NVM 子系统的详细发现信息,包括:
- Transport Type:确定传输协议类型。
- Address Family:指定使用的地址格式。
- Subsystem Type:指示该记录描述的是一个 NVM 子系统还是一个指向其他 Discovery 服务的引用。
- Transport Requirements:指定与传输协议相关的要求,如流量控制和安全连接。
- Port ID:提供特定端口的标识符,用于多协议共享端口。
这些信息对于主机在进行 NVM 子系统发现和连接时至关重要,尤其是在多个传输协议和地址族的环境中,通过这些字段主机能够准确地识别和与目标子系统建立连接。