openUBMC 182x大板管理特性设计说明书
| 所属SIG组: | hardware SIG |
| 落入版本: | openUBMC 26.3.0 |
| 设计人员: | 常德兴 |
| 日期: | 2026-01-15 |
Copyright © 2025 openUBMC Community
您对"本文档"的复制,使用,修改及分发受木兰宽松许可证, 第2版协议(以下简称"MulanPSL2")的约束。 为了方便用户理解,您可以通过访问https://license.coscl.org.cn/MulanPSL2了解MulanPSL2的概要 (但不是替代)。 MulanPSL2的完整协议内容您可以访问如下网址获取:https://license.coscl.org.cn/MulanPSL2。
改版记录
| 日期 | 修订版本 | 修订描述 | 作者 | 审核 |
|---|---|---|---|---|
| 2025-09-23 | 1.0 | 初版创建 | 常德兴 | 已审核 |
| 2026-01-15 | 2.0 | 文档更新 | 常德兴 | 已审核 |
| 2026-01-29 | 3.0 | 更新热替换、网口切换等内容 | 常德兴 | 已审核 |
目录
特性概述
1.1 目的
1.2 范围
1.3 特性需求列表需求场景分析
2.1 特性需求来源与价值概述
2.2 特性场景分析
2.3 特性影响分析特性/功能实现原理
3.1 目标
3.2 总体方案Use Case一实现:182x网卡芯片控制
4.1 设计思路
4.2 约束条件
4.3 详细实现
4.4 关键接口Use Case二实现:182x网卡管理与CSR加载
5.1 设计思路
5.2 约束条件
5.3 详细实现
5.4 关键接口Use Case三实现:私有SMBus命令扩展
6.1 设计思路
6.2 约束条件
6.3 详细实现
6.4 关键接口Use Case四实现:性能优化机制
7.1 设计思路
7.2 约束条件
7.3 详细实现
7.4 关键接口Use Case五实现:异常防抖策略
8.1 设计思路
8.2 约束条件
8.3 详细实现
8.4 关键接口Use Case六实现:182x网卡网口模式配置
9.1 设计思路
9.2 约束条件
9.3 详细实现
9.4 关键接口Use Case七实现:网口与光模块指定映射关联
10.1 设计思路
10.2 约束条件
10.3 详细实现
10.4 关键接口可靠性&可用性设计
11.1 冗余设计
11.2 故障管理
11.3 过载控制设计安全&隐私&韧性设计
12.1 安全威胁分析及设计
12.2 隐私风险分析特性非功能性质量属性相关设计
13.1 可测试性
13.2 可服务性
13.3 可演进性
13.4 兼容性参考资料清单
表目录
表1:特性场景相关性分析
表2:特性需求列表
表3:SMBus命令字定义
表4:性能基线要求
图目录
图1:182x大板管理整体架构图
图2:异常防抖机制图
图3:网口模式配置架构图
图4:网口数量动态切换时序图
图5:网口与光模块指定映射关系图
1. 特性概述
openUBMC 182x大板管理特性是针对高密度182x网卡大板的专业化管理解决方案。该特性通过天池组件架构,实现了对182x大板及其承载的多个182x网卡的统一管理,支持大板级别的网卡芯片控制、带外信息获取、网卡网口模式配置等全生命周期管理功能。
本特性采用南向设备树管理模式,通过CPLD扩展总线架构,支持单个BMC管理2个182x大板共16个182x网卡的高密度部署场景,为数据中心网络设备提供了完整的带外管理能力。
1.1 目的
本文档基于openUBMC 182x大板管理需求分析,对该特性的功能进行详细设计,明确系统架构、接口规范和实现方案,作为后续软件开发人员、测试人员和硬件集成工程师的技术指导文档。
文档详细描述了网卡控制、性能优化、异常处理等核心组件的设计与实现,为开发团队提供全面的技术规范和实现指南。
1.2 范围
182x大板管理特性主要包含以下功能模块和适用场景:
核心功能模块:
- 网卡芯片控制:182x芯片复位和上下电控制
- 网卡管理与CSR:南向设备树管理、CSR加载、告警监控
- 私有SMBus命令:网卡、网口、光模块信息获取
- 性能优化:多网卡并发管理优化
- 异常防抖:带内热升级场景防抖策略
- 网口模式配置:网口数量动态配置、CSR动态加载、配置导入导出
- 网口光模块映射:网口与光模块的一对一指定映射关联
适用场景分析:
| 场景编号 | 场景1 | 场景2 | 场景3 | 场景4 | 场景5 | 场景6 |
|---|---|---|---|---|---|---|
| 场景名称 | 大板集中管理 | 高密度网卡部署 | 网卡带内热升级 | 带外监控 | 网口模式配置 | 网口光模块映射 |
| 特性是否相关 | √ | √ | √ | √ | √ | √ |
| 实现状态 | 设计中 | 设计中 | 设计中 | 设计中 | 设计中 | 设计中 |
1.3 特性需求列表
182x大板管理特性需求清单,解决高密度网卡管理和性能优化的技术挑战:
| 需求编号 | 需求名称 | 特性描述 | 优先级 |
|---|---|---|---|
| 182X002 | 网卡芯片控制 | 支持182x芯片复位和上下电控制 | P0 |
| 182X003 | 设备树管理 | 南向设备树方式管理网卡和CSR加载 | P0 |
| 182X004 | 私有SMBus扩展 | 网卡、网口、光模块私有命令扩展 | P0 |
| 182X006 | 性能优化 | 多网卡管理性能优化策略 | P0 |
| 182X007 | 异常防抖 | 带内热升级场景异常防抖处理 | P0 |
| 182X010 | 网口模式配置 | 支持182x网卡网口数量动态配置 | P0 |
| 182X011 | 网口光模块映射 | 支持网口与光模块的指定映射关联 | P0 |
2. 需求场景分析
2.1 特性需求来源与价值概述
需求来源背景:
openUBMC 182x大板管理特性需求主要来源于数据中心高密度网络设备管理的核心挑战:
高密度网卡管理复杂性:
- 单个BMC需要管理2个182x大板共16个182x网卡
- 传统网卡管理方式无法满足高密度部署需求
- 缺乏统一的大板级别管理机制
- 网卡间协调和性能优化困难
专业化管理需求:
- 182x网卡具有特殊的控制和监控需求
- 需要支持网口与光模块的指定映射关系
- 支持网口数量动态配置和CSR动态加载
- 带内热升级场景下的稳定性要求高
性能和可靠性挑战:
- 16个网卡并发管理对系统性能要求高
- SMBus通信性能限制需要优化策略
- 带内热升级过程中的异常处理要求严格
- 网卡状态监控和信息获取的实时性要求高
价值概述:
182x大板管理特性通过专业化设计,全面解决了高密度网卡管理挑战:
- 统一管理:通过天池组件提供大板级别的统一管理能力,简化运维复杂度
- 性能优化:针对多网卡并发场景进行专门优化,确保系统性能稳定
- 可靠性保障:完善的异常防抖和错误处理机制,提升系统可靠性
- 标准化接口:提供完整的Redfish和设备树标准化接口支持
- 扩展性强:支持未来更多182x网卡类型和功能扩展
2.2 特性场景分析
182x大板管理特性的业务使用场景主要涵盖数据中心网络设备的全生命周期管理:
主要应用场景:
- 大板集中管理场景:统一管理182x大板的信息、固件和配置
- 高密度网卡部署场景:管理16个182x网卡的并发部署和监控
- 网卡带内热升级场景:支持网卡带内热升级的异常防抖处理
- 带外监控场景:实时监控网卡、网口和光模块状态
- 网口模式配置场景:支持网卡网口数量动态配置和切换
- 网口光模块映射场景:管理网口与光模块的指定映射关系
关键场景分析:
| 使用者 | 场景频率 | 关键场景/任务 | 解决的痛点 | 操作描述 |
|---|---|---|---|---|
| 运维工程师 | 日常运维 | 大板信息监控 | 缺乏统一的大板管理界面 | 通过Web和Redfish接口查看大板状态 |
| 网络管理员 | 故障处理 | 网卡芯片控制 | 网卡故障时无法远程控制 | 通过接口对网卡进行复位和上下电 |
| 系统集成工程师 | 部署阶段 | 多网卡配置 | 16个网卡配置复杂度高 | 通过设备树和CSR统一配置管理 |
| 网络管理员 | 配置变更 | 网口模式配置 | 网口数量切换复杂易出错 | 通过Web界面配置网口数量并自动加载CSR |
| 运维工程师 | 日常运维 | 光模块信息查询 | 网口与光模块映射关系不清晰 | 查看网口关联的光模块信息及状态 |
2.3 特性影响分析
182x大板管理特性作为openUBMC系统中网络设备管理的重要扩展,对系统架构和管理能力产生重要影响。
系统位置与周边接口:
- 作为硬件管理组件的专业化扩展,为上层管理界面提供182x设备管理能力
- 通过SMBus、I3C等总线与硬件设备进行交互
- 与天池组件、设备树管理系统协同工作
- 集成到现有的Redfish和Web管理框架中
关键约束与限制:
- 单个BMC最多管理16个182x网卡
- SMBus通信带宽限制需要合理调度
- 带内热升级防抖时间不能超过10秒
- 网口模式配置生效需要OS复位和网卡复位
3. 特性/功能实现原理
3.1 目标
182x大板管理特性设计目标是构建一个高效、可靠、可扩展的182x网络设备管理框架:
主要目标:
- 统一管理:实现182x大板和网卡的统一管理框架
- 高性能:支持16个网卡的并发高效管理
- 高可靠:提供完善的异常处理和防抖机制
- 标准化:建立标准化的接口和管理规范
- 易扩展:支持未来更多182x设备类型扩展
- 易运维:提供友好的管理界面和操作体验
技术规格:
- 支持2个182x大板,16个182x网卡管理
- SMBus命令响应时间< 100ms
- 带内热升级防抖时间< 10s
- 网口模式配置支持2网口/4网口动态切换
- CPU占用率增长符合预期基线
3.2 总体方案
系统概述:
182x大板管理特性通过天池组件架构和南向设备树管理,实现了对高密度182x网卡的专业化管理。该方案采用CPLD总线扩展技术,通过性能优化和异常防抖策略,确保16个网卡的稳定可靠管理。
架构设计原则:
- 分层管理:大板-网卡分层管理架构
- 总线扩展:通过CPLD实现总线扩展和设备连接
- 串行化处理:关键操作串行化避免并发冲突
- 异常隔离:单个网卡异常不影响整体功能
- 性能优化:针对多网卡场景进行专门优化
图1:182x大板管理整体架构图
4. Use Case一实现:182x网卡芯片控制
4.1 设计思路
182x网卡芯片控制功能通过CPLD寄存器操作,实现对指定网卡182x芯片的复位和上下电控制。
实现思路:
CPLD寄存器控制:
- 通过182x大板上的CPLD寄存器实现对指定网卡182x芯片的精确控制
- 每个CPLD管理4个网卡的芯片控制操作
- 提供寄存器级别的直接访问和控制能力
芯片复位功能:
- 支持182x大板通过CPLD寄存器对指定网卡182x芯片进行软复位
- 支持182x大板通过CPLD寄存器对指定网卡182x芯片进行硬复位
- 复位操作精确到单个网卡,不影响其他网卡正常工作
芯片电源管理:
- 支持182x大板通过CPLD寄存器对指定网卡182x芯片进行上电操作
- 支持182x大板通过CPLD寄存器对指定网卡182x芯片进行下电操作
- 提供电源状态的实时监控和反馈
Redfish接口支持:
- 新增Redfish接口支持对指定网卡182x芯片进行复位操作
- 新增Redfish接口支持对指定网卡182x芯片进行上下电操作
- 提供标准化的RESTful API接口,便于上层应用集成
4.2 约束条件
前提条件:
- CPLD寄存器可正常访问
- 网卡182x芯片支持远程控制
限制条件:
- 同一时间只能对一个网卡执行控制操作
- 控制操作期间网卡功能不可用
可靠性要求:
- 182x芯片复位或上下电期间,不能有误告警和异常调速,在网卡无响应时过滤20s的异常,信息保持上次的结果
- 网卡复位或上下电完成后,网卡、网口及光模块信息获取成功
4.3 详细实现
芯片控制流程:
- 控制类型:支持软复位、硬复位、上电、下电、电源重启等操作类型
- 状态管理:跟踪芯片的上电、下电、复位、错误等状态
- 寄存器操作:通过CPLD寄存器实现对182x芯片的底层控制
- 操作验证:执行控制操作后验证结果,确保操作成功
4.4 关键接口
芯片控制核心接口:
- 基础控制接口:网卡芯片复位、上电、下电、电源重启等操作接口
- 状态查询接口:芯片状态查询、电源状态获取等监控接口
- Redfish接口映射:标准化的RESTful API接口支持
5. Use Case二实现:182x网卡管理与CSR加载
5.1 设计思路
182x网卡管理与CSR加载功能采用南向设备树管理方式,实现网卡适配、CSR配置加载、告警监控等功能。
实现思路:
南向设备树管理框架:
- 采用南向设备树方式管理182x网卡的完整生命周期
- 建立182x网卡的设备树模型和节点结构
- 通过设备树实现182x网卡的统一管理和配置
182x网卡适配:
- 支持大板上182x网卡的自动识别和适配
- 包括光模块相关的配置参数和兼容性处理
- 支持不同版本和型号182x网卡的统一管理
CSR配置加载机制:
- 新增182x网卡的CSR配置支持
- CSR加载由上一级182x大板的CSR配置连接器进行加载
- 支持CSR配置的动态加载、版本管理和验证
带外信息获取:
- 支持从带外获取网卡的详细信息(型号、版本、状态等)
- 支持从带外获取网口的配置信息(链路状态、速率等)
- 支持从带外获取光模块的完整信息(厂商、型号、状态等)
多接口显示支持:
- 支持在Web管理界面显示网卡、网口及光模块信息
- 支持通过Redfish接口查询和获取设备信息
- 支持通过CLI命令行接口查看设备状态和配置
功能适配集成:
- 适配网卡的告警功能,支持各种异常状态的告警上报
- 适配网卡的传感器功能,支持温度、电压等传感器数据获取
- 适配网卡的调速功能,支持风扇转速的动态调节
5.2 约束条件
前提条件:
- 设备树管理系统正常运行
- CSR配置文件格式正确
限制条件:
- CSR加载期间网卡功能可能受影响
- 设备树修改需要系统重启生效
5.3 详细实现
设备树管理:
建立182x网卡设备树节点结构,包含节点名称、兼容性字符串、寄存器地址、大板ID、连接器ID、网卡ID、CSR配置路径等信息。
CSR加载流程:
- 解析CSR配置文件并验证兼容性
- 备份当前CSR配置支持回滚
- 应用新的CSR配置到网卡
- 验证CSR加载结果
- 触发网卡重新初始化
5.4 关键接口
设备树管理接口:
- 设备注册接口:网卡设备注册、注销、更新等管理接口
- CSR管理接口:CSR配置加载、重载、版本查询等操作接口
- 告警集成接口:告警监控启用、禁用、状态查询等集成接口
6. Use Case三实现:私有SMBus命令扩展
6.1 设计思路
182x网卡需要新增多个私有SMBus命令,为网卡、网口、光模块提供专门的信息获取能力。特别是针对性能优化需求,新增了汇聚查询命令,可通过一次SMBus命令获取多个相关信息,显著提升查询效率。
实现思路:
命令字扩展架构:
- 定义182x网卡专用的私有SMBus命令字集合
- 建立命令字与功能的完整映射关系
- 确保命令字的唯一性和兼容性
- 支持单项查询和汇聚查询两种模式
网卡相关命令:
- 获取网卡实际带宽:当前网卡的实际工作带宽
- 获取网卡实际速率:当前网卡的实际工作速率
- 获取网卡最大带宽能力:网卡硬件支持的最大带宽
- 获取网卡最大速率能力:网卡硬件支持的最大速率
- 设置网卡槽位号:支持动态设置网卡的槽位编号
- 获取网卡槽位号:查询当前网卡的槽位编号配置
网口相关命令(包含汇聚查询):
获取网口全双工状态:查询网口是否处于全双工模式
获取网口自协商状态:查询网口自协商功能的开启状态
获取网口链路速率:获取网口当前的链路连接速率
获取网口MAC地址:获取网口配置的MAC地址信息
【新增】汇聚网口查询信息:一次性获取网口的多项信息
- 网口工作MAC地址:当前正在使用的MAC地址
- 网口永久MAC地址:网卡出厂配置的永久MAC地址
- 物理连接状态:网口的物理链路连接状态(连接/断开)
- 网口链路速率:当前链路的实际速率(如1G/10G/25G)
- 网口自协商状态:自协商功能的当前状态(启用/禁用)
光模块基本信息命令:
- 获取光模块厂商名称:光模块制造商的名称信息
- 获取厂商部件名称:厂商的具体部件型号名称
- 获取厂商序列号:光模块的唯一序列号标识
- 获取生产日期:光模块的制造生产日期
- 获取收发器类型:光模块的收发器类型规格
- 获取传输模式:光模块支持的数据传输模式
- 获取波长信息:光模块的工作波长参数
- 获取光模块类型:光模块的具体类型分类
- 获取支持速率:光模块支持的传输速率范围
- 获取光模块识别码:光模块的标准识别编码
- 获取连接器类型:光模块的物理连接器类型
- 获取介质类型:光模块的传输介质类型
- 获取传输距离:光模块支持的最大传输距离
光模块扩展信息命令(包含汇聚查询):
光模块Rx端信号检测:检测光模块接收端是否有信号
光模块Tx端故障检测:检测光模块发送端是否出现故障
读取光模块电压:获取光模块当前的工作电压值
低压告警阈值:获取光模块低压告警的阈值设定
高压告警阈值:获取光模块高压告警的阈值设定
读取接收功率(通道级):获取各通道的光接收功率
接收功率告警下限阈值(通道级):各通道接收功率下限告警阈值
接收功率告警上限阈值(通道级):各通道接收功率上限告警阈值
读取发送功率(通道级):获取各通道的光发送功率
发送功率告警下限阈值(通道级):各通道发送功率下限告警阈值
发送功率告警上限阈值(通道级):各通道发送功率上限告警阈值
读取温度:获取光模块当前的工作温度
低温告警阈值:获取光模块低温告警的阈值设定
高温告警阈值:获取光模块高温告警的阈值设定
读取当前偏置电流:获取光模块当前的偏置电流值
发送偏置电流告警下限阈值:发送偏置电流下限告警阈值
发送偏置电流告警上限阈值:发送偏置电流上限告警阈值
【新增】汇聚光模块查询信息:一次性获取光模块的多项信息
- 光模块在位状态:光模块是否在位(在位/不在位)
- 光模块静态信息:包括厂商名称、部件名称、序列号、生产日期、类型等不变信息
- 光模块动态信息:包括温度、电压、接收功率、发送功率、偏置电流等实时变化信息
【新增】获取光模块在位状态:快速查询单个光模块的在位状态
6.2 约束条件
前提条件:
- 182x网卡支持相应的SMBus命令
- SMBus总线通信正常
限制条件:
- SMBus带宽限制需要合理调度
- 部分命令可能需要网卡特定状态
6.3 详细实现
SMBus命令分类:
网卡相关命令:获取网卡带宽、速率、最大带宽能力、最大速率能力,设置槽位号
网口相关命令:
- 单项查询:获取全双工状态、自协商状态、链路速率、MAC地址
- 汇聚查询:一次性获取工作MAC、永久MAC、物理连接状态、链路速率、自协商状态
光模块基本信息:获取厂商名称、部件名称、序列号、生产日期、收发器类型等
光模块扩展信息:
- 单项查询:获取电压、功率、温度、偏置电流及相应的告警阈值
- 汇聚查询:一次性获取在位状态、静态信息、动态信息
- 快速查询:单独获取光模块在位状态
命令执行流程:
命令发送阶段:
- BMC通过I2C/SMBus总线向182x网卡发送命令字
- 携带必要的参数(如网口索引、光模块索引)
- 设置适当的超时时间(汇聚命令建议100ms)
网卡处理阶段:
- 网卡固件接收并解析命令
- 对于汇聚命令,依次获取各个字段信息
- 将数据按照定义的格式打包
- 准备返回数据
数据返回阶段:
- 通过SMBus总线返回打包后的数据
- BMC接收并解析返回数据
- 将数据更新到资源协作接口的相应属性
异常处理:
- 命令超时:重试机制,最多3次
- 数据校验失败:CRC或校验和验证
- 设备不在位:返回错误码,不影响其他设备查询
6.4 关键接口
SMBus命令核心接口:
网卡信息接口:
- 带宽信息获取、速率信息获取、槽位号设置和获取
网口信息接口:
- 单项查询:链路状态获取、MAC地址获取等网口管理接口
- 返回值:0=成功,负数=错误码
- 优势:一次调用获取网口完整状态信息
光模块信息接口:
单项查询:基本信息获取、扩展信息获取、阈值信息获取
返回值:0=成功,负数=错误码
优势:一次调用获取光模块完整状态信息,适用于周期性监控
【新增】获取光模块在位状态接口:
返回值:0=成功,负数=错误码
优势:轻量级查询,适用于快速扫描所有光模块在位情况
性能对比分析:
| 查询场景 | 传统方式 | 汇聚查询方式 | 性能提升 |
|---|---|---|---|
| 光模块完整信息 | 10-15次SMBus命令 | 1次SMBus命令 | 10-15倍 |
| 网口完整信息 | 5次SMBus命令 | 1次SMBus命令 | 5倍 |
| 16网卡光模块扫描 | ~640次SMBus命令 | ~64次SMBus命令 | 10倍 |
| 总执行时间(16网卡) | ~6.4秒 | ~0.64秒 | 10倍 |
7. Use Case四实现:性能优化机制
7.1 设计思路
支持多张182x网卡管理的性能优化,针对一个BMC管理2个182x大板总共16个182x网卡的高密度场景,对网卡带外信息获取机制进行全面优化。
核心策略:
私有SMBus命令汇聚优化:
- 将多个私有SMBus命令进行智能汇聚处理
- 尽量减少向网卡发送请求的次数
- 批量执行相关命令,提高总线使用效率
- 减少SMBus总线的占用时间和通信开销
数据更新频率优化:
- 静态数据(如网卡型号、序列号等)减少更新次数
- 动态数据(如温度、功率等)降低更新频率
- 根据数据变化特性制定差异化的更新策略
- 实现数据更新的智能调度和优先级管理
错峰执行机制:
- 每张网卡的带外信息更新采用错峰执行策略
- 避免同一时间对多个网卡发起大量请求
- 实现16个网卡的时间片轮询机制
- 确保SMBus总线负载的均衡分布
南向设备树管理:
- 通过南向设备树方式进行182x网卡管理
- 在设备树中配置性能优化相关参数
- 实现设备管理与性能优化的统一协调
- 支持设备树配置的动态调整和优化
可靠性保障要求:
- 确保16张网卡的带外信息获取功能正常
- 避免出现SMBus通信超时等异常情况
- 提供网卡通信状态的实时监控和告警
- 实现通信异常时的自动重试和恢复机制
性能指标要求:
- CPU占用率的增长必须符合预期基线
- 系统整体性能不能因网卡管理而显著下降
- 内存使用增长控制在合理范围内
- 网卡信息更新的实时性满足业务需求
7.2 约束条件
性能要求:
- CPU占用率增长符合预期基线
- SMBus通信无超时异常
- 16个网卡信息获取正常
可靠性要求:
- 优化策略不影响功能正确性
- 提供性能监控和调整机制
7.3 详细实现
性能优化管理器:
建立性能优化配置管理,包含批量操作大小、静态数据更新间隔、动态数据更新间隔、网卡调度间隔等配置参数。
命令批量处理:
实现SMBus命令的批量处理机制,将多个命令合并为批量操作,减少总线访问次数,提高通信效率。
7.4 关键接口
性能优化核心接口:
- 优化配置接口:性能优化参数配置、优化功能启用禁用
- 调度管理接口:网卡调度优先级设置、更新间隔配置、性能统计获取
8. Use Case五实现:异常防抖策略
8.1 设计思路
支持新的182x网卡异常防抖策略,针对182x网卡支持带内热升级的特性,在带内热升级场景下避免BMC误报告警。
防抖策略:
带内热升级场景识别:
- 182x网卡支持带内热升级功能,在升级过程中可能出现无响应
- 当BMC下发命令给网卡时,如果网卡处于带内热升级过程则会无响应
- 需要准确识别带内热升级场景与真实故障的区别
- 建立带内热升级状态检测和判断机制
防抖处理机制:
- 在网卡带内热升级场景下,避免BMC因下发命令失败而误报告警
- 对网卡通信失败进行智能判断,区分带内热升级和真实故障
- 实现防抖时间窗口,在防抖期间暂停相关告警上报
- 提供防抖状态的实时监控和管理
温度获取防抖:
- 网卡温度获取场景需要进行专门的防抖处理
- 光模块温度获取场景需要进行专门的防抖处理
- 防止因带内热升级过程中温度读取失败而产生误告警
- 实现温度数据的平滑处理和异常过滤
带内热升级完成检测:
- 网卡带内热升级完成后,BMC下发命令应该能够成功
- 实现带内热升级完成状态的自动检测机制
- 带内热升级完成后自动恢复正常的监控和告警功能
- 验证网卡功能的完整性和可用性
可靠性要求:
- 网卡执行10次以上带内热升级过程中,不能出现误告警
- 网卡带内热升级完成后,网卡信息获取必须成功
- 网卡带内热升级完成后,网口信息获取必须成功
- 网卡带内热升级完成后,光模块信息获取必须成功
- 整个防抖过程必须稳定可靠
性能要求:
- 带内热升级时长不能超过10秒
- 网卡防抖策略处理时间不能超过10秒
- 光模块调速等防抖策略不能超过10秒
- 防抖处理不能影响系统的整体性能
图2:异常防抖机制图
8.2 约束条件
时间要求:
- 带内热升级时长不超过10秒
- 防抖策略不能超过10秒
- 异常检测响应及时
可靠性要求:
- 10次带内热升级以上无误告警
- 带内热升级完成后信息获取成功
- 提供完整的状态跟踪
8.3 详细实现
防抖策略管理:
建立网卡防抖状态管理,包含网卡ID、当前状态、前一状态、状态变化时间、重试次数、防抖激活状态等信息。
带内热升级检测:
实现网卡存在状态的检测机制,通过SMBus命令和CPLD寄存器判断网卡的插入、拔出和带内热升级过程状态。
8.4 关键接口
异常防抖核心接口:
- 防抖控制接口:防抖配置设置、带内热升级检测启用、防抖状态查询
- 状态查询接口:网卡存在状态获取、防抖状态监控、带内热升级统计信息
9. Use Case六实现:182x网卡网口模式配置
9.1 设计思路
182x网卡网口模式配置功能支持网卡网口数量的动态配置和切换,实现网卡从2网口模式到4网口模式的灵活切换,满足不同业务场景需求。
实现思路:
网口数量动态配置:
- 新的182x网卡支持2个网口和4个网口两种模式
- 通过Web和Redfish接口配置网卡的待生效网口数量
- 配置后需要OS复位和网卡复位才能生效
- 支持待生效网口数量的持久化存储
网口数量异常处理:
- 用户配置网口数量后,OS复位联动网卡复位生效新的网口数量
- BMC获取网卡运行网口数量,与当前需要获取的网口信息数量不匹配时
- 对不匹配网口的数据做兼容处理,不产生误告警和调速异常
- 实现网口数量变更的平滑过渡机制
CSR动态加载机制:
- 新增2个网口和4个网口及光模块映射的CSR文件
- 将网口和光模块的告警、传感器等信息放到CSR配置中
- 网卡CSR中新增两个Connector,用于加载下一级的网口及光模块映射CSR文件
- 根据网卡的待生效网口数量动态加载对应的CSR配置
待生效网口数量管理:
- 新增网卡的待生效网口数量属性,来自CSR且掉电持久化
- 通过网卡设备名+槽位号作为主键区分不同网卡
- 支持私有SMBus命令设置和获取待生效及运行的网口数量
- APP启动阶段比对待生效与运行网口数量,不一致则上报告警
可配置范围管理:
- 网卡资源协作接口新增可配置待生效网口数量范围,来源CSR
- 数组形式存储可配置范围,如:[2, 4]
- Web和Redfish接口根据可配置范围字段判断是否显示配置项
- 配置值必须在可配置范围内才允许设置
配置导入导出功能:
- 支持每张网卡的待生效网口数量配置导出
- 支持每张网卡的待生效网口数量配置导入
- 刷新配置导入导出相关资料文档
- 确保配置的可移植性和可恢复性
Web和Redfish接口支持:
- Web接口支持设置和显示网卡的待生效网口数量
- Redfish接口支持查询可配置待生效网口数量范围
- Redfish接口支持网卡的待生效网口数量配置
- 对超出可配置范围的配置进行参数校验和报错
Web前端适配:
- 在网络适配器页面的网卡设备下新增配置项
- 根据后台返回的可配置范围字段进行页面显示
- 配置值校验必须在可配置范围内
- 支持小语种的国际化显示
带外信息动态匹配:
- 带外信息获取动态匹配网口数量变更
- 获取对应网口及映射的光模块信息
- 自发现网卡的CSR加载时,根据待生效网口数量加载对应CSR
- 确保网口数量变更后的信息获取准确性
图3:网口模式配置架构图
图4:网口数量动态切换时序图
9.2 约束条件
前提条件:
- 182x网卡硬件支持2网口和4网口模式切换
- 网卡固件版本支持网口数量动态配置
- CSR配置文件包含2网口和4网口两套配置
限制条件:
- 网口数量配置生效需要OS复位和网卡复位
- 切换过程中网卡功能暂时不可用
- 可配置网口数量范围由CSR定义,通常为[2, 4]
- 单次只能配置一种网口模式
性能要求:
- 配置下发响应时间 < 500ms
- CSR动态加载时间 < 2s
- 网口数量切换后信息获取时间 < 5s
- 异常检测和兼容处理时间 < 1s
可靠性要求:
- 配置持久化确保掉电不丢失
- 网口数量不匹配时不产生误告警
- 切换失败时保持原有配置
- 提供配置回滚机制
9.3 详细实现
待生效网口数量管理:
建立待生效网口数量数据结构,包含网卡ID、网卡设备名、槽位号、当前运行网口数量、待生效网口数量、可配置网口数量范围、配置状态等信息。
配置流程:
配置验证阶段:
- 从资源协作接口获取可配置网口数量范围
- 验证用户配置值是否在范围内
- 检查网卡是否支持网口数量配置功能
- 验证配置参数的有效性
配置下发阶段:
- 通过私有SMBus命令设置网卡待生效网口数量
- 将待生效配置持久化到本地存储
- 更新资源协作接口的待生效网口数量属性
CSR动态加载阶段:
- 配置成功后立即触发CSR重新加载
- 卸载当前历史CSR配置
- 根据待生效网口数量选择对应的CSR配置文件
- 通过Connector机制加载2网口或4网口的CSR
- 加载网口和光模块的告警、传感器配置
- 验证新CSR与网卡待生效配置是否匹配
异常处理阶段:
- 检测BMC配置的网口数量与网卡实际运行数量
- 对不匹配的网口进行兼容处理
- 抑制不存在网口的告警上报
- 调速功能只作用于实际存在的网口
- 不匹配时上报配置不一致告警
信息获取阶段:
- 带外信息获取根据运行网口数量动态匹配
- 遍历实际存在的网口获取状态信息
- 获取每个网口映射的光模块信息
- 更新Web和Redfish显示的网口数量
CSR配置结构:
网卡CSR根配置
├── 网卡基础信息
├── 待生效网口数量属性
├── 可配置网口数量范围
├── Connector_2Port (2网口配置连接器)
│ ├── 2个网口对象
│ └── 对应的光模块映射
└── Connector_4Port (4网口配置连接器)
├── 4个网口对象
└── 对应的光模块映射配置导入导出实现:
配置导出:
- 遍历所有182x网卡
- 读取每张网卡的待生效网口数量
- 生成JSON格式的配置文件
- 包含网卡标识和网口数量配置
配置导入:
- 解析导入的配置文件
- 验证配置文件格式和内容
- 匹配网卡标识进行配置恢复
- 更新待生效网口数量配置
9.4 关键接口
资源协作接口:
网卡资源协作接口扩展:
text属性:PendingPortCount(待生效网口数量) - 类型:U8 - 读写:可读可写 - 持久化:是 - 来源:CSR配置 属性:ConfigurablePortCountRange(可配置网口数量范围) - 类型:U8数组 - 读写:只读 - 来源:CSR配置 - 示例:[2, 4] 属性:RunningPortCount(运行网口数量) - 类型:U8 - 读写:只读 - 来源:带外获取SMBus私有命令接口:
设置待生效网口数量:
- 命令字:0xXX (待定义)
- 输入参数:网口数量值(2或4)
- 返回值:成功/失败状态
获取待生效网口数量:
- 命令字:0xXX (待定义)
- 输入参数:无
- 返回值:待生效网口数量
获取运行网口数量:
- 命令字:0xXX (待定义)
- 输入参数:无
- 返回值:当前运行网口数量
Web接口:
查询接口:
- 获取可配置网口数量范围
- 获取待生效网口数量
- 获取运行网口数量
配置接口:
- 设置待生效网口数量
- 参数校验和范围检查
- 返回配置结果
Redfish接口:
GET /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{AdapterId}
- 返回字段:
- PendingPortCount:待生效网口数量
- ConfigurablePortCountRange:可配置范围
- RunningPortCount:运行网口数量
- 返回字段:
PATCH /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{AdapterId}
请求体:
json{ "PendingPortCount": 4 }响应:配置成功/失败及错误信息
配置导入导出接口:
导出接口:
- 生成包含所有182x网卡待生效网口数量的配置文件
- 格式:JSON
导入接口:
- 解析配置文件并恢复网口数量配置
- 验证配置合法性
10. Use Case七实现:网口与光模块指定映射关联
10.1 设计思路
182x网卡支持网口与光模块的指定映射关联功能,实现灵活的网口-光模块映射配置。针对新的182x网卡硬件设计,每张卡只有1个光模块,仅在第1个网口下映射显示,其他网口不显示光模块信息。
实现思路:
新型硬件架构:
- 新的182x网卡支持2个网口或4个网口(可通过网口模式配置动态切换)
- 每张182x网卡硬件设计只配备1个光模块
- 光模块物理连接到网卡,不直接连接到特定网口
- 通过软件配置实现网口与光模块的逻辑映射关系
指定映射策略:
- 采用固定映射策略:仅第1个网口(Port 0)映射光模块
- 第2、3、4个网口(Port 1/2/3)不映射光模块
- 无论网卡工作在2网口模式还是4网口模式,映射策略保持一致
- 确保映射关系的简单性和一致性
CSR配置映射关系:
- 在网卡的CSR配置中定义网口与光模块的映射关系
- 2网口模式CSR:定义Port 0映射1个光模块,Port 1无光模块
- 4网口模式CSR:定义Port 0映射1个光模块,Port 1/2/3无光模块
- CSR加载时自动建立映射关系
资源协作接口适配:
- 网口资源协作接口新增光模块引用属性
- Port 0的光模块引用指向实际的光模块对象
- Port 1/2/3的光模块引用为空或不存在
- 通过资源协作接口查询可获取网口的光模块信息
Web和Redfish接口显示:
- Web管理界面网口信息页面显示光模块信息
- Port 0显示完整的光模块信息(厂商、型号、状态等)
- Port 1/2/3不显示光模块相关信息或显示"无光模块"
- Redfish接口返回网口资源时,仅Port 0包含光模块链接
- 确保前端显示与后端映射关系一致
带外信息获取:
- 带外信息获取时,仅对Port 0查询光模块信息
- Port 1/2/3跳过光模块信息查询,减少无效SMBus访问
- 光模块信息更新仅关联到Port 0
- 提升信息获取效率
告警和传感器关联:
- 光模块的告警事件关联到Port 0
- 光模块的温度、功率等传感器数据显示在Port 0下
- 光模块状态变化(在位、拔出等)关联到Port 0
- 确保告警和传感器显示位置准确
兼容性处理:
- 兼容旧版182x网卡的多光模块映射方式
- 通过CSR配置区分新旧硬件架构
- 新硬件使用指定映射策略
- 旧硬件保持原有的多对多映射方式
图5:网口与光模块指定映射关系图
映射关系对比:
| 网口模式 | Port 0 | Port 1 | Port 2 | Port 3 | 光模块总数 |
|---|---|---|---|---|---|
| 2网口模式 | ✅ 映射光模块1 | ❌ 无光模块 | - | - | 1 |
| 4网口模式 | ✅ 映射光模块1 | ❌ 无光模块 | ❌ 无光模块 | ❌ 无光模块 | 1 |
10.2 约束条件
前提条件:
- 182x网卡硬件为新版本,仅配备1个光模块
- CSR配置中定义了正确的网口-光模块映射关系
- 网口模式配置功能正常工作
限制条件:
- 每张182x网卡最多1个光模块
- 光模块固定映射到Port 0,不支持动态修改映射关系
- 其他网口(Port 1/2/3)无法显示光模块信息
- 映射关系由硬件架构决定,软件不可更改
兼容性要求:
- 需要区分新旧硬件架构
- 新硬件使用指定映射,旧硬件保持原有方式
- 通过CSR配置标识硬件类型
10.3 详细实现
映射关系数据结构:
建立网口-光模块映射关系数据结构,包含网口ID、光模块ID、映射状态、映射类型等信息。
映射关系建立流程:
CSR加载阶段:
- APP启动时加载网卡的CSR配置
- 解析Ports数组,识别每个网口的光模块引用
- 解析OpticalModules数组,识别光模块对象
- 建立网口到光模块的映射表
资源协作接口初始化:
- 为Port 0创建资源协作接口对象,包含光模块引用属性
- 为Port 1/2/3创建资源协作接口对象,光模块引用为空
- 设置Port 0的光模块属性指向实际光模块对象
- 其他端口的光模块属性设置为null或不可用
带外信息获取优化:
- 周期性带外信息获取时,检查映射关系
- 仅对Port 0执行光模块信息查询
- Port 1/2/3跳过光模块查询逻辑
- 减少无效的SMBus访问,提升性能
Web和Redfish显示适配:
- Web前端查询网口列表时获取光模块信息
- Port 0显示光模块卡片,包含完整信息
- Port 1/2/3不显示光模块卡片或显示"无光模块"提示
- Redfish接口仅在Port 0资源中包含OpticalModule链接
10.4 关键接口
资源协作接口扩展:
网口资源协作接口:
text接口:NetworkPort 属性:OpticalModuleReference(光模块引用) - 类型:ObjectReference - 读写:只读 - 描述:引用关联的光模块对象 - Port 0:引用实际光模块对象,如 "#/OpticalModule_Slot1_0" - Port 1/2/3:值为null或空字符串光模块资源协作接口:
text接口:OpticalModule 属性:MappedToPort(映射到的网口) - 类型:U8 - 读写:只读 - 描述:光模块映射到的网口索引 - 值:固定为0(Port 0)
11. 可靠性&可用性设计
11.1 冗余设计
- 大板冗余:支持双182x大板冗余部署
- 通信冗余:SMBus和I3C双通道备份
- 数据冗余:关键配置和状态信息备份
11.2 故障管理
- 故障检测:实时监控网卡、大板和通信状态
- 故障隔离:单网卡故障不影响其他网卡
- 自动恢复:提供故障自动恢复机制
11.3 过载控制设计
负载监控机制:
- 资源使用监控:监控系统CPU、内存、总线带宽使用情况
- 限流保护策略:实现接口调用频率限制和并发控制
12. 安全&隐私&韧性设计
12.1 安全威胁分析及设计
主要威胁:
- 恶意SMBus/I3C命令注入
- 未授权访问网卡配置
- 敏感信息泄露
防护措施:
- 命令参数严格验证
- 基于角色的访问控制
- 敏感数据加密传输
12.2 隐私风险分析
该特性主要处理硬件设备信息,不涉及用户个人数据,隐私风险较低。
13. 特性非功能性质量属性相关设计
13.1 可测试性
- 支持硬件模拟器测试
- 提供完整的单元测试框架
- 支持压力测试和性能测试
13.2 可服务性
- 完善的日志记录和监控
- 提供专业的诊断工具
- 支持远程故障定位
13.3 可演进性
- 模块化设计便于功能扩展
- 标准化接口支持版本升级
- 预留扩展接口
13.4 兼容性
- 向后兼容现有网卡管理功能
- 支持多版本182x硬件
- 标准Redfish接口兼容
14. 参考资料清单
- openUBMC Hardware Management Architecture Guide
- SMBus Specification Version 3.2
- I3C Basic Specification Version 1.1.1
- Redfish Network Adapter Schema v1.8.0
- 182x Network Card Technical Reference Manual
- openUBMC Device Tree Configuration Guide
- BMC Performance Optimization Guidelines
- Network Device Hot-swap Design Patterns