CSR配置字典之PCIeDevice类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | PCIeDevice类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建PCIeDevice类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
PCIeDevice 类
属性 | 值 |
---|---|
类名称 | PCIeDevice |
功能描述 | PCIe设备管理,提供PCIe卡的信息展示、状态监控和告警管理功能 |
所属SIG组 | hardware |
所属组件 | pcie |
责任人 | PCIe设备管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
DeviceName | String | "" | 字符串 | - | 设备资源名称 | pcie卡信息展示 | "NIC ${Slot} (SF223D-H)" | CSR配置 | 硬件 |
FunctionClass | U8 | 0 | 数字 | - | 功能分类 0:未知、1:RAID、2:网卡、3:GPU卡、4:存储卡(SSD卡/M.2卡)、5:SDI卡、6:加速卡、7:扩展卡(PCIe Riser)、8:FPGA卡、9:NPU卡 | pcie卡信息展示 | 2 | CSR配置 | 硬件 |
DeviceType | U8 | 0 | 数字 | - | Pcie设备的类型 | pcie卡信息展示 | 13 | CSR配置 | 硬件 |
Container | String | "" | 字符串 | - | PCIe设备容器引用 | pcie卡信息展示 | "${Container}" | CSR配置 | 硬件 |
GroupPosition | String | "" | 字符串 | - | PCIe设备对象的主键 同一个CSR里不能重复 | pcie卡信息展示 | "PCIeDevice_${GroupPosition}" | CSR配置 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
SlotID | U8 | 255 | 数字 | - | 槽位号 | pcie卡信息展示 | "${Slot}" | 组件更新 | 软件 |
Bus | U8 | 0 | 数字 | - | root port Bus | pcie卡信息展示 | 0 | 组件更新 | 软件 |
Device | U8 | 0 | 数字 | - | root port Device | pcie卡信息展示 | 0 | 组件更新 | 软件 |
Function | U8 | 0 | 数字 | - | root port Function | pcie卡信息展示 | 0 | 组件更新 | 软件 |
DevBus | U8 | 0 | 数字 | - | 设备总线 | pcie卡信息展示 | 0 | 组件更新 | 软件 |
DevDevice | U8 | 0 | 数字 | - | 设备的 Device | pcie卡信息展示 | 0 | 组件更新 | 软件 |
DevFunction | U8 | 0 | 数字 | - | 设备的 Function | pcie卡信息展示 | 0 | 组件更新 | 软件 |
SocketID | U8 | 0 | 数字 | - | CPU ID | pcie卡信息展示 | 0 | 组件更新 | 软件 |
Position | String | "" | 字符串 | - | 设备位置(容器名称) | pcie卡信息展示 | "chassis" | 组件更新 | 软件 |
DiagnosticFault | U8 | 0 | 数字 | - | 严重故障诊断告警状态 | pcie卡告警 | 0 | 组件更新 | 软件 |
PredictiveFault | U8 | 0 | 数字 | - | 预故障告警状态 | pcie卡告警 | 0 | 组件更新 | 软件 |
LinkSpeedReduced | U8 | 0 | 数字 | - | 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
}
}
🔧 使用指南
配置步骤
- 确定设备类型:根据PCIe卡功能设置FunctionClass和DeviceType
- 设置基本信息:配置DeviceName、Container、GroupPosition等基本属性
- 定义主键:确保GroupPosition在同一CSR中唯一
- 配置槽位信息:设置SlotID和Position等位置信息
- 设置总线信息:配置Bus、Device、Function等PCIe总线参数
- 关联CPU:设置SocketID关联对应的CPU
- 监控告警状态:通过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是否正确引用已存在容器