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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

BoardSlotConfig 类

属性
类名称BoardSlotConfig
功能描述背板位置配置对象,提供单板UID匹配和背板位置信息配置,用于更新背板位置信息
所属SIG组hardware
所属组件背板位置配置
责任人硬件管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
UIDString-String-单板UID
vendor(00000001)+单板类型(02)+单板编码(0302031825)
匹配单板加载"00000001020302031825"硬件提供软件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotConfigsArray-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"
  }
}

🔧 使用指南

配置步骤

  1. UID配置:设置单板的唯一标识符
  2. 槽位规划:规划背板的槽位布局和类型
  3. 配置映射:配置槽位索引、编号和丝印文本的映射关系
  4. 验证测试:验证配置是否正确加载和更新

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与实际硬件匹配

故障排除

  1. 单板加载失败

    • 检查UID是否正确配置
    • 确认UID是否与硬件匹配
    • 验证UID格式是否正确
  2. 位置信息错误

    • 检查SlotConfigs配置是否正确
    • 确认数组长度是否一致
    • 验证槽位映射关系是否正确
  3. 槽位冲突

    • 检查ChildSlotIndex是否有重复
    • 确认ChildSlotNumber是否有冲突
    • 验证槽位规划是否合理

性能优化

  • 配置缓存: 缓存背板位置配置,减少重复计算
  • 快速匹配: 优化UID匹配算法
  • 批量更新: 批量更新背板位置信息

📚 相关文档