CSR配置字典之BoardSlotConfig类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | BoardSlotConfig类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建BoardSlotConfig类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
BoardSlotConfig 类
属性 | 值 |
---|---|
类名称 | BoardSlotConfig |
功能描述 | 背板位置配置对象,提供单板UID匹配和背板位置信息配置,用于更新背板位置信息 |
所属SIG组 | hardware |
所属组件 | 背板位置配置 |
责任人 | 硬件管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
UID | String | - | String | - | 单板UID vendor(00000001)+单板类型(02)+单板编码(0302031825) | 匹配单板加载 | "00000001020302031825" | 硬件提供 | 软件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
SlotConfigs | Array | - | Array | - | 背板的丝印信息和逻辑编号 槽位号与ChildSlotIndex匹配上,更新对应ChildSlotNumber和ChildSlotSilkText下标的背板位置信息 | 更新背板位置信息 | 详见配置示例 | CSR配置 | 软件 |
🔗 动态关联机制
语法规范
使用标准配置语法和复杂数组结构:
yaml
# 单板UID配置
UID: "00000001020302031825"
# 背板位置配置
SlotConfigs:
- SelfSlot: 1
ChildSlotType: "SEU"
ChildSlotIndex: [1, 2]
ChildSlotNumber: [2, 3]
ChildSlotSilkText: ["Rear", "Rear"]
关联说明
- UID匹配: 通过UID匹配对应的单板进行加载
- 槽位配置: SlotConfigs定义背板的槽位信息和位置关系
- 动态更新: 根据槽位号动态更新背板位置信息
📂 分类标准
硬件属性
- 定义:当前版本无硬件属性
- 特点:所有属性都是软件管理相关
- 示例:无
软件属性
- 定义:由软件管理和维护的背板位置配置参数
- 特点:UID匹配、槽位配置、位置信息等
- 示例:
UID
,SlotConfigs
📝 配置示例
基础背板位置配置
json
{
"BoardSlotConfig_Basic": {
"UID": "00000001020302031825",
"SlotConfigs": [
{
"SelfSlot": 1,
"ChildSlotType": "SEU",
"ChildSlotIndex": [1, 2],
"ChildSlotNumber": [2, 3],
"ChildSlotSilkText": ["Rear", "Rear"]
}
]
}
}
多槽位背板配置
json
{
"BoardSlotConfig_MultiSlot": {
"UID": "00000001020302031825",
"SlotConfigs": [
{
"SelfSlot": 1,
"ChildSlotType": "SEU",
"ChildSlotIndex": [1, 2, 3, 4],
"ChildSlotNumber": [2, 3, 4, 5],
"ChildSlotSilkText": ["Rear", "Rear", "Front", "Front"]
},
{
"SelfSlot": 2,
"ChildSlotType": "HDD",
"ChildSlotIndex": [5, 6, 7, 8],
"ChildSlotNumber": [6, 7, 8, 9],
"ChildSlotSilkText": ["Left", "Left", "Right", "Right"]
}
]
}
}
复杂背板配置
json
{
"BoardSlotConfig_Complex": {
"UID": "00000001020302031826",
"SlotConfigs": [
{
"SelfSlot": 1,
"ChildSlotType": "SEU",
"ChildSlotIndex": [1, 2],
"ChildSlotNumber": [2, 3],
"ChildSlotSilkText": ["Rear", "Rear"]
},
{
"SelfSlot": 2,
"ChildSlotType": "HDD",
"ChildSlotIndex": [3, 4, 5, 6],
"ChildSlotNumber": [4, 5, 6, 7],
"ChildSlotSilkText": ["Left", "Left", "Right", "Right"]
},
{
"SelfSlot": 3,
"ChildSlotType": "FAN",
"ChildSlotIndex": [7, 8],
"ChildSlotNumber": [8, 9],
"ChildSlotSilkText": ["Top", "Bottom"]
}
]
}
}
简单背板配置
json
{
"BoardSlotConfig_Simple": {
"UID": "00000001020302031825"
}
}
🔧 使用指南
配置步骤
- UID配置:设置单板的唯一标识符
- 槽位规划:规划背板的槽位布局和类型
- 配置映射:配置槽位索引、编号和丝印文本的映射关系
- 验证测试:验证配置是否正确加载和更新
UID编码规范
- Vendor: 厂商标识,如00000001(华为)
- 单板类型: 2位十六进制,如02表示背板
- 单板编码: 10位十六进制,唯一标识单板
- 完整格式: vendor(8位) + 单板类型(2位) + 单板编码(10位)
SlotConfigs配置说明
- SelfSlot: 背板自身的槽位号
- ChildSlotType: 子槽位类型,如SEU、HDD、FAN等
- ChildSlotIndex: 子槽位的索引数组
- ChildSlotNumber: 子槽位的逻辑编号数组
- ChildSlotSilkText: 子槽位的丝印文本数组
数组对应关系
- 索引对应: ChildSlotIndex[i] 对应 ChildSlotNumber[i] 和 ChildSlotSilkText[i]
- 长度一致: 三个数组的长度必须一致
- 顺序重要: 数组元素的顺序决定了槽位的映射关系
槽位类型说明
- SEU: 存储扩展单元
- HDD: 硬盘驱动器
- FAN: 风扇
- PSU: 电源单元
- 其他: 根据实际硬件定义
使用场景
- 单板加载: 通过UID匹配加载对应的单板配置
- 位置更新: 根据槽位配置更新背板位置信息
- 硬件识别: 识别和管理背板上的各种硬件组件
- 接口展示: 为北向接口提供位置信息
注意事项
- UID唯一性: 确保UID在系统中唯一
- 数组一致性: 确保SlotConfigs中的数组长度一致
- 槽位规划: 合理规划槽位布局,避免冲突
- 类型匹配: 确保ChildSlotType与实际硬件匹配
故障排除
单板加载失败:
- 检查UID是否正确配置
- 确认UID是否与硬件匹配
- 验证UID格式是否正确
位置信息错误:
- 检查SlotConfigs配置是否正确
- 确认数组长度是否一致
- 验证槽位映射关系是否正确
槽位冲突:
- 检查ChildSlotIndex是否有重复
- 确认ChildSlotNumber是否有冲突
- 验证槽位规划是否合理
性能优化
- 配置缓存: 缓存背板位置配置,减少重复计算
- 快速匹配: 优化UID匹配算法
- 批量更新: 批量更新背板位置信息