CSR配置字典之PCIeDevice类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题PCIeDevice类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建PCIeDevice类配置字典全新文档系统管理员

🎯 类概览

PCIeDevice 类

属性
类名称PCIeDevice
功能描述PCIe设备管理,提供PCIe卡的信息展示、状态监控和告警管理功能
所属SIG组hardware
所属组件pcie
责任人PCIe设备管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
DeviceNameString""字符串-设备资源名称pcie卡信息展示"NIC ${Slot} (SF223D-H)"CSR配置硬件
FunctionClassU80数字-功能分类
0:未知、1:RAID、2:网卡、3:GPU卡、4:存储卡(SSD卡/M.2卡)、5:SDI卡、6:加速卡、7:扩展卡(PCIe Riser)、8:FPGA卡、9:NPU卡
pcie卡信息展示2CSR配置硬件
DeviceTypeU80数字-Pcie设备的类型pcie卡信息展示13CSR配置硬件
ContainerString""字符串-PCIe设备容器引用pcie卡信息展示"${Container}"CSR配置硬件
GroupPositionString""字符串-PCIe设备对象的主键
同一个CSR里不能重复
pcie卡信息展示"PCIeDevice_${GroupPosition}"CSR配置硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotIDU8255数字-槽位号pcie卡信息展示"${Slot}"组件更新软件
BusU80数字-root port Buspcie卡信息展示0组件更新软件
DeviceU80数字-root port Devicepcie卡信息展示0组件更新软件
FunctionU80数字-root port Functionpcie卡信息展示0组件更新软件
DevBusU80数字-设备总线pcie卡信息展示0组件更新软件
DevDeviceU80数字-设备的 Devicepcie卡信息展示0组件更新软件
DevFunctionU80数字-设备的 Functionpcie卡信息展示0组件更新软件
SocketIDU80数字-CPU IDpcie卡信息展示0组件更新软件
PositionString""字符串-设备位置(容器名称)pcie卡信息展示"chassis"组件更新软件
DiagnosticFaultU80数字-严重故障诊断告警状态pcie卡告警0组件更新软件
PredictiveFaultU80数字-预故障告警状态pcie卡告警0组件更新软件
LinkSpeedReducedU80数字-PCIe设备降速率检测告警上报事件属性
BIOS上报
pcie卡告警0组件更新软件

🔗 动态关联机制

语法规范

使用变量替换语法实现动态配置:

yaml
# 语法格式
属性名: "${变量名}"

# 实际示例
SlotID: "${Slot}"                           # 槽位号变量替换
DeviceName: "NIC ${Slot} (SF223D-H)"       # 设备名称包含槽位信息
Container: "${Container}"                   # 容器引用变量替换
GroupPosition: "PCIeDevice_${GroupPosition}" # 主键包含位置信息

关联说明

  • SlotID: 通过变量替换动态获取槽位号
  • DeviceName: 设备名称可包含槽位等动态信息
  • Container: 动态关联PCIe设备所属容器
  • GroupPosition: 作为主键,确保同一CSR内唯一性

📂 分类标准

硬件属性

  • 定义:与PCIe设备硬件特性直接相关的参数
  • 特点:通常在CSR配置中定义,与硬件BOM表对应
  • 示例DeviceName, FunctionClass, DeviceType, Container, GroupPosition

软件属性

  • 定义:由系统动态更新和管理的参数
  • 特点:通过组件更新机制动态获取和维护
  • 示例SlotID, Bus, Device, Function, DevBus, DevDevice, DevFunction, SocketID, Position, DiagnosticFault, PredictiveFault, LinkSpeedReduced

📝 配置示例

标准网卡配置

json
{
  "PCIeDevice": {
    "DeviceName": "NIC 1 (SF223D-H)",
    "FunctionClass": 2,
    "DeviceType": 13,
    "Container": "chassis",
    "GroupPosition": "PCIeDevice_1",
    "SlotID": 1,
    "Bus": 0,
    "Device": 0,
    "Function": 0,
    "DevBus": 1,
    "DevDevice": 0,
    "DevFunction": 0,
    "SocketID": 0,
    "Position": "chassis",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "LinkSpeedReduced": 0
  }
}

GPU卡配置

json
{
  "PCIeDevice": {
    "DeviceName": "GPU 2 (A100)",
    "FunctionClass": 3,
    "DeviceType": 15,
    "Container": "chassis",
    "GroupPosition": "PCIeDevice_2",
    "SlotID": 2,
    "Bus": 0,
    "Device": 1,
    "Function": 0,
    "DevBus": 2,
    "DevDevice": 0,
    "DevFunction": 0,
    "SocketID": 0,
    "Position": "chassis",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "LinkSpeedReduced": 0
  }
}

存储卡配置

json
{
  "PCIeDevice": {
    "DeviceName": "SSD 1 (NVMe)",
    "FunctionClass": 4,
    "DeviceType": 20,
    "Container": "chassis",
    "GroupPosition": "PCIeDevice_3",
    "SlotID": 3,
    "Bus": 0,
    "Device": 2,
    "Function": 0,
    "DevBus": 3,
    "DevDevice": 0,
    "DevFunction": 0,
    "SocketID": 1,
    "Position": "chassis",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "LinkSpeedReduced": 0
  }
}

NPU卡配置

json
{
  "PCIeDevice": {
    "DeviceName": "NPU 1 (Ascend 910)",
    "FunctionClass": 9,
    "DeviceType": 25,
    "Container": "chassis",
    "GroupPosition": "PCIeDevice_4",
    "SlotID": 4,
    "Bus": 0,
    "Device": 3,
    "Function": 0,
    "DevBus": 4,
    "DevDevice": 0,
    "DevFunction": 0,
    "SocketID": 0,
    "Position": "chassis",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "LinkSpeedReduced": 0
  }
}

🔧 使用指南

配置步骤

  1. 确定设备类型:根据PCIe卡功能设置FunctionClass和DeviceType
  2. 设置基本信息:配置DeviceName、Container、GroupPosition等基本属性
  3. 定义主键:确保GroupPosition在同一CSR中唯一
  4. 配置槽位信息:设置SlotID和Position等位置信息
  5. 设置总线信息:配置Bus、Device、Function等PCIe总线参数
  6. 关联CPU:设置SocketID关联对应的CPU
  7. 监控告警状态:通过DiagnosticFault、PredictiveFault、LinkSpeedReduced监控设备状态

注意事项

  • 主键唯一性:GroupPosition必须在同一CSR中保持唯一
  • 功能分类:FunctionClass需要根据实际设备功能正确设置
  • 容器引用:Container需要引用已存在的容器对象
  • 总线配置:Bus、Device、Function需要与实际PCIe拓扑对应
  • 告警状态:告警相关属性由组件更新机制自动维护
  • 变量替换:使用${变量名}语法时需要确保变量已定义

性能建议

  • 合理分组:使用GroupPosition进行逻辑分组管理
  • 状态监控:定期检查DiagnosticFault和PredictiveFault状态
  • 告警集成:合理配置告警属性实现故障预警
  • 拓扑优化:根据实际PCIe拓扑优化总线配置

故障排查

  • 设备不识别:检查DeviceType和FunctionClass配置
  • 总线错误:检查Bus、Device、Function配置是否正确
  • 告警异常:检查DiagnosticFault、PredictiveFault状态
  • 降速告警:检查LinkSpeedReduced状态和PCIe链路质量
  • 容器引用错误:检查Container是否正确引用已存在容器