CSR配置字典之UnitConfiguration类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | UnitConfiguration类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建UnitConfiguration类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
UnitConfiguration 类
属性 | 值 |
---|---|
类名称 | UnitConfiguration |
功能描述 | 单元配置管理,主要用于UBC高速线缆检测和PCIe业务拓扑建立,支持白名单配置和拓扑匹配 |
所属SIG组 | topology |
所属组件 | configuration |
责任人 | 拓扑管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
SlotType | String | "" | 字符串 | - | UnitConfiguration对应板卡的类型,如IEU,SEU,对应组件名称 | UBC高速线缆检测 | "IEU" | CSR配置 | 硬件 |
SlotNumber | U8 | 0 | 数字 | - | IO槽位号 | UBC高速线缆检测 | 1 | CSR配置 | 硬件 |
SlotSilkText | String | "" | 字符串 | - | 对应web显示告警的,包含组件名称+组件槽位号,例如放置IO1的Riser命名为IEUSlot1 | UBC高速线缆检测 | "IEUSlot1" | CSR配置 | 硬件 |
ContainerUID | String | "" | 字符串 | - | PcieAddrInfo对象所属组件UID,举例riser IO1的所有PcieAddrInfo对象是riser IO1的组件UID | PCIe业务拓扑建立 | "00000001040302077044" | CSR配置 | 硬件 |
ContainerSlot | Mixed | 0 | 对象 | - | PcieAddrInfo对象所属组件槽位,举例riser IO1的所有PcieAddrInfo对象槽位是1 | PCIe业务拓扑建立 | "${Slot}" | CSR配置 | 硬件 |
Configurations | Object | [] | 对象 | - | 白名单配置和拓扑匹配配置 | UBC高速线缆检测、PCIe业务拓扑建立 | 复杂对象配置 | CSR配置 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Port1LinkInfo | String | "" | 字符串 | - | 用作高速线缆检测告警的描述,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警对应组件信息。包含组件UID | UBC高速线缆检测 | "" | CSR配置初始值,pcie_device组件设置 | 硬件 |
Port1Status | U8 | 0 | 数字 | - | 用作高速线缆检测告警,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警状态 | UBC高速线缆检测 | 0 | CSR配置初始值,pcie_device组件设置 | 硬件 |
Port2LinkInfo | String | "" | 字符串 | - | 用作高速线缆检测告警的描述,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警对应组件信息。包含组件UID | UBC高速线缆检测 | "" | CSR配置初始值,pcie_device组件设置 | 硬件 |
Port2Status | U8 | 0 | 数字 | - | 用作高速线缆检测告警,在pcie_device组件里设置。根据读取线缆信息和psr的白名单配置设置告警状态 | UBC高速线缆检测 | 0 | CSR配置初始值,pcie_device组件设置 | 硬件 |
AbsenceAllowed | U8 | 0 | 数字 | - | 0:不允许不在位,当不在位时产生该告警、1:允许不在位,不产生告警 | 没用到 | 0 | CSR配置 | 硬件 |
🔗 动态关联机制
语法规范
使用变量替换语法实现动态关联:
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]
}
]
}
}
🔧 使用指南
配置步骤
- 设置槽位信息:配置SlotType、SlotNumber、SlotSilkText标识槽位
- 设置容器信息:配置ContainerUID、ContainerSlot标识容器
- 配置白名单:设置Configurations配置拓扑匹配规则
- 可选端口配置:根据需要配置Port1/Port2的LinkInfo和Status
- 验证配置:确保所有配置项正确对应实际硬件
注意事项
- 槽位标识: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配置或拓扑匹配确定设备信息