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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

UnitConfiguration 类

属性
类名称UnitConfiguration
功能描述单元配置管理,主要用于UBC高速线缆检测和PCIe业务拓扑建立,支持白名单配置和拓扑匹配
所属SIG组topology
所属组件configuration
责任人拓扑管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotTypeString""字符串-UnitConfiguration对应板卡的类型,如IEU,SEU,对应组件名称UBC高速线缆检测"IEU"CSR配置硬件
SlotNumberU80数字-IO槽位号UBC高速线缆检测1CSR配置硬件
SlotSilkTextString""字符串-对应web显示告警的,包含组件名称+组件槽位号,例如放置IO1的Riser命名为IEUSlot1UBC高速线缆检测"IEUSlot1"CSR配置硬件
ContainerUIDString""字符串-PcieAddrInfo对象所属组件UID,举例riser IO1的所有PcieAddrInfo对象是riser IO1的组件UIDPCIe业务拓扑建立"00000001040302077044"CSR配置硬件
ContainerSlotMixed0对象-PcieAddrInfo对象所属组件槽位,举例riser IO1的所有PcieAddrInfo对象槽位是1PCIe业务拓扑建立"${Slot}"CSR配置硬件
ConfigurationsObject[]对象-白名单配置和拓扑匹配配置UBC高速线缆检测、PCIe业务拓扑建立复杂对象配置CSR配置硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
Port1LinkInfoString""字符串-用作高速线缆检测告警的描述,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警对应组件信息。包含组件UIDUBC高速线缆检测""CSR配置初始值,pcie_device组件设置硬件
Port1StatusU80数字-用作高速线缆检测告警,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警状态UBC高速线缆检测0CSR配置初始值,pcie_device组件设置硬件
Port2LinkInfoString""字符串-用作高速线缆检测告警的描述,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警对应组件信息。包含组件UIDUBC高速线缆检测""CSR配置初始值,pcie_device组件设置硬件
Port2StatusU80数字-用作高速线缆检测告警,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警状态UBC高速线缆检测0CSR配置初始值,pcie_device组件设置硬件
AbsenceAllowedU80数字-0:不允许不在位,当不在位时产生该告警、1:允许不在位,不产生告警没用到0CSR配置硬件

🔗 动态关联机制

语法规范

使用变量替换语法实现动态关联:

yaml
# 槽位变量替换
ContainerSlot: "${Slot}"

关联说明

  • ContainerSlot: 使用槽位变量实现动态槽位配置

📂 分类标准

硬件属性

  • 定义:与硬件拓扑和线缆检测直接相关的参数
  • 特点:用于UBC高速线缆检测和PCIe业务拓扑建立
  • 示例SlotType, SlotNumber, SlotSilkText, ContainerUID, ContainerSlot, Configurations, Port1LinkInfo, Port1Status, Port2LinkInfo, Port2Status, AbsenceAllowed

软件属性

  • 定义:用于软件逻辑控制的参数
  • 特点:本类中暂无纯软件属性
  • 示例:无

📝 配置示例

标准IEU配置

json
{
  "UnitConfiguration": {
    "Port1LinkInfo": "",
    "Port1Status": 0,
    "Port2LinkInfo": "",
    "Port2Status": 0,
    "AbsenceAllowed": 0,
    "SlotType": "IEU",
    "SlotNumber": 1,
    "SlotSilkText": "IEUSlot1",
    "ContainerUID": "00000001040302077044",
    "ContainerSlot": "${Slot}",
    "Configurations": [
      {
        "UID": "00000001040302023940",
        "Index": 1,
        "SrcPortName": ["A3a", "A3c"],
        "TargetPortID": [49, 50],
        "Slot": [2, 3],
        "Device": []
      }
    ]
  }
}

SEU存储单元配置

json
{
  "UnitConfiguration": {
    "Port1LinkInfo": "",
    "Port1Status": 0,
    "Port2LinkInfo": "",
    "Port2Status": 0,
    "AbsenceAllowed": 0,
    "SlotType": "SEU",
    "SlotNumber": 1,
    "SlotSilkText": "SEUSlot1",
    "ContainerUID": "00000001040302077045",
    "ContainerSlot": "1",
    "Configurations": [
      {
        "UID": "00000001040302023941",
        "Index": 1,
        "SrcPortName": ["B2a", "B2c"],
        "TargetPortID": [51, 52],
        "Slot": [4, 5],
        "Device": [1, 2]
      }
    ]
  }
}

多配置白名单

json
{
  "UnitConfiguration": {
    "SlotType": "EXU",
    "SlotNumber": 2,
    "SlotSilkText": "EXUSlot2",
    "ContainerUID": "00000001040302077046",
    "ContainerSlot": "2",
    "Configurations": [
      {
        "UID": "00000001040302023942",
        "Index": 1,
        "default": true,
        "SrcPortName": ["C1a", "C1c"],
        "TargetPortID": [53, 54],
        "Slot": [6, 7],
        "Device": []
      },
      {
        "UID": "00000001040302023943",
        "Index": 2,
        "default": false,
        "SrcPortName": ["C2a", "C2c"],
        "TargetPortID": [55, 56],
        "Slot": [8, 9],
        "Device": [3, 4]
      }
    ]
  }
}

🔧 使用指南

配置步骤

  1. 设置槽位信息:配置SlotType、SlotNumber、SlotSilkText标识槽位
  2. 设置容器信息:配置ContainerUID、ContainerSlot标识容器
  3. 配置白名单:设置Configurations配置拓扑匹配规则
  4. 可选端口配置:根据需要配置Port1/Port2的LinkInfo和Status
  5. 验证配置:确保所有配置项正确对应实际硬件

注意事项

  • 槽位标识:SlotType、SlotNumber、SlotSilkText必须与实际硬件对应
  • UID唯一性:ContainerUID和Configurations中的UID必须唯一
  • 白名单匹配:Configurations中的配置用于线缆信息匹配
  • 端口状态:Port1/Port2状态由pcie_device组件自动设置
  • 默认配置:default为true的配置用于未匹配时的默认处理

性能建议

  • 合理配置白名单:根据实际拓扑需求配置Configurations
  • 优化匹配规则:合理设置SrcPortName和TargetPortID的对应关系
  • 槽位管理:使用变量替换实现灵活的槽位配置

故障排查

  • 线缆检测失败:检查Configurations中的白名单配置
  • 拓扑匹配错误:检查SrcPortName和TargetPortID的对应关系
  • 告警显示异常:检查SlotSilkText和ContainerUID配置
  • 端口状态异常:检查pcie_device组件的状态设置

白名单配置详解

Configurations对象结构

  • UID: 对应白名单配置里的组件UID
  • Index: 槽位,0表示不校验
  • BCUIndex: 0表示不校验,非0表示不同的基础板BCU
  • default: true表示默认配置,false表示按线缆信息匹配
  • SrcPortName: 基础板zone区+连接器序号+位置标识(a/b/c/d)
  • TargetPortID: 线缆拓扑检测值,与SrcPortName一一对应
  • Slot: 全局槽位号,在PSR的Slot数组中取值
  • Device: 空数组表示使用拓扑匹配,非空表示直接使用配置的PortID

UBC高速线缆检测

  • 检测原理:通过读取线缆信息与白名单配置进行匹配
  • 告警机制:Port1/Port2状态用于告警显示
  • 组件信息:LinkInfo包含组件UID等描述信息
  • 状态管理:由pcie_device组件自动设置端口状态

PCIe业务拓扑建立

  • 拓扑匹配:根据Configurations配置建立业务拓扑
  • 组件关联:通过ContainerUID关联PcieAddrInfo对象
  • 槽位映射:通过ContainerSlot映射到具体槽位
  • 设备标识:通过Device配置或拓扑匹配确定设备信息