更新时间: 2026/11/02
在AtomGit上查看源码CSR配置字典之ChannelConfig类
📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | ChannelConfig类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2025-04-24 |
| 最后更新 | 2025-04-24 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2025-04-24 | 初始版本 | 创建ChannelConfig类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
| 属性 | 值 |
|---|---|
| 类名称 | ChannelConfig |
| 功能描述 | 通道配置管理,用于配置IPMI/RMCP通信通道的参数和权限 |
| 所属SIG组 | interface |
| 所属组件 | rmcpd |
| 最后更新 | 2025-04-24 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
Id | U8 | - | U8 | - | 通道ID | 唯一标识通道配置 | 1 | CSR配置 | 软件 |
PrivilegeLimit | U8 | - | U8 | - | 特权级别限制 | 通道最大特权级别 | 4 | CSR配置 | 软件 |
AccessSet | U8 | - | U8 | - | 访问设置 | 通道访问控制设置 | 1 | CSR配置 | 软件 |
PEFEnable | U8 | - | U8 | - | PEF使能 | 平台事件过滤使能 | 1 | CSR配置 | 软件 |
AuthMethod | U8 | - | U8 | - | 认证方式 | 通道支持的认证方式 | 0 | CSR配置 | 软件 |
UserAuthEnable | U8 | - | U8 | - | 用户认证使能 | 用户级别认证使能 | 0 | CSR配置 | 软件 |
AccessMode | U8 | - | U8 | - | 访问模式 | 通道访问模式 | 2 | CSR配置 | 软件 |
PrivilegeSet | U8 | - | U8 | - | 特权级别设置 | 通道特权级别设置 | 1 | CSR配置 | 软件 |
StandardPayloadSupport | U16 | - | U16 | - | 标准载荷支持 | 通道支持的标准载荷 | 3 | CSR配置 | 软件 |
SessionPayloadSupport | U16 | - | U16 | - | 会话载荷支持 | 会话支持的载荷类型 | 63 | CSR配置 | 软件 |
OEMPayloadSupport | U16 | - | U16 | - | OEM载荷支持 | OEM扩展载荷支持 | 0 | CSR配置 | 软件 |
KGValue | String | - | String | - | KG密钥值 | 通道密钥(密钥加密密钥) | "" | CSR配置 | 软件 |
可选属性
- 无可选属性
🔗 动态关联机制
语法规范
yaml
# 通道配置
Id: 1
PrivilegeLimit: 4
AccessSet: 1
PEFEnable: 1
AuthMethod: 0
UserAuthEnable: 0
AccessMode: 2
PrivilegeSet: 1
StandardPayloadSupport: 3
SessionPayloadSupport: 63
OEMPayloadSupport: 0
KGValue: ""关联说明
- Id: 唯一标识通道配置实例
- PrivilegeLimit: 通道的最大特权级别限制
- AccessSet: 通道访问控制设置
- PEFEnable: 平台事件过滤功能使能
- AuthMethod: 支持的认证方法
- UserAuthEnable: 用户认证使能
- AccessMode: 通道访问模式
- PrivilegeSet: 通道特权级别设置
- StandardPayloadSupport: 标准载荷支持
- SessionPayloadSupport: 会话载荷支持
- OEMPayloadSupport: OEM载荷支持
- KGValue: 密钥值
📂 分类标准
硬件属性
- 定义:当前版本无硬件属性
- 特点:所有属性都是软件管理相关
- 示例:无
软件属性
- 定义:由软件管理和维护的通道配置参数
- 特点:通道管理、权限控制、载荷管理等
- 示例:所有属性都是软件属性
📝 配置示例
标准通道配置
json
{
"ChannelConfig": {
"Id": 1,
"PrivilegeLimit": 4,
"AccessSet": 1,
"PEFEnable": 1,
"AuthMethod": 0,
"UserAuthEnable": 0,
"AccessMode": 2,
"PrivilegeSet": 1,
"StandardPayloadSupport": 3,
"SessionPayloadSupport": 63,
"OEMPayloadSupport": 0,
"KGValue": ""
}
}🔧 使用指南
配置步骤
- 设置通道ID:配置Id属性
- 设置权限级别:配置PrivilegeLimit和PrivilegeSet
- 设置访问控制:配置AccessSet和AccessMode
- 设置认证:配置AuthMethod和UserAuthEnable
- 设置PEF:配置PEFEnable
- 设置载荷:配置StandardPayloadSupport、SessionPayloadSupport和OEMPayloadSupport
- 设置密钥:配置KGValue
特权级别说明
| 级别值 | 级别名称 | 说明 |
|---|---|---|
| 0 | 保留 | 保留值 |
| 1 | 回调 | Callback级别 |
| 2 | 用户 | User级别 |
| 3 | 操作员 | Operator级别 |
| 4 | 管理员 | Administrator级别 |
| 5 | OEM | OEM级别 |
说明:
PrivilegeLimit表示该通道允许的最大特权级别,用户会话的实际权限取“用户自身权限”和“通道 PrivilegeLimit”中的较小值。rmcpd 校验时不接受大于4(Administrator)的值,配置5(OEM)会被Set Channel Access命令拒绝并返回SetNotSupportedOnSelectedChannel;0为保留级,实际可用取值为1 ~ 4。
访问模式(AccessMode)说明
| 取值 | 名称 | 说明 |
|---|---|---|
| 0 | disabled | 通道禁用,不转发任何 IPMI 消息(C 层 ipmi_messaging_enabled 置 0) |
| 1 | pre-boot only | 仅在系统下电或系统尚未引导进入 OS(BIOS 阶段)时允许通信 |
| 2 | always available | 始终允许通信(rmcpd 默认值) |
| 3 | shared | 与 always available 基本一致,区别是 BIOS 通常把串口留给上层软件使用,BMC 与软件共享 |
布尔/位域类属性说明
| 属性 | 取值 | 说明 |
|---|---|---|
AccessSet | 0 | 不修改访问相关配置(NOT_SET),本次不下发 AccessMode/PEFEnable/AuthMethod/UserAuthEnable |
AccessSet | 1 | 永久性设置访问配置并持久化,重启后仍生效(rmcpd 默认值 NON_VOLATILE) |
AccessSet | 2 | 临时性设置访问配置,立即生效但掉电/重启后不保存 |
AccessSet | 3 | 保留值,命令返回 IPMIInvalidFieldRequest |
PrivilegeSet | 0 | 不修改特权级配置(NOT_SET) |
PrivilegeSet | 1 | 永久性设置 PrivilegeLimit 并持久化(rmcpd 默认值) |
PrivilegeSet | 2 | 临时性设置 PrivilegeLimit,不持久化 |
PrivilegeSet | 3 | 保留值,命令返回 IPMIInvalidFieldRequest |
PEFEnable | 0 | 按 IPMI 规范使能 PEF(平台事件过滤)告警 |
PEFEnable | 1 | 禁止 PEF 告警(rmcpd 通道配置默认值) |
AuthMethod | 0 | 允许逐条消息认证(默认) |
AuthMethod | 1 | 禁止逐条消息认证 |
UserAuthEnable | 0 | 使能 User 级别认证,User 级命令需要认证(默认) |
UserAuthEnable | 1 | 禁止 User 级别认证,User 级命令可免认证执行 |
说明:
AccessSet、PrivilegeSet在 IPMI 报文中均为 2 bit(SetChange/LevelChange),0 表示不改变、1 表示永久设置、2 表示临时设置、3 为保留;只有取值为 1 时 rmcpd 才会把配置持久化。PEFEnable、AuthMethod、UserAuthEnable是位域中的单 bit,语义与 IPMI 规范一致。
载荷支持位图说明
StandardPayloadSupport、SessionPayloadSupport、OEMPayloadSupport 均为按位表示的载荷支持位图:
| 位 | 载荷类型 | 说明 |
|---|---|---|
| bit0 (0x01) | IPMI | IPMI 消息载荷 |
| bit1 (0x02) | SOL | 串口重定向载荷 |
| bit2 (0x04) | OEM | OEM 自定义载荷 |
| bit3~bit5 | 其他标准载荷 | 按 IPMI 规范保留/扩展 |
因此 StandardPayloadSupport = 3 表示同时支持 IPMI 和 SOL;SessionPayloadSupport = 63 表示 bit0~bit5 全部支持。KGValue 为密钥加密密钥(KEK)字符串,空字符串表示未配置。
通道类型说明
| 通道ID | 通道名称 | 说明 |
|---|---|---|
| 1 | IPMI 1.0 | 标准IPMI 1.0通道 |
| 其他 | 保留 | 保留通道 |
使用场景
- 通道管理:配置IPMI通信通道
- 权限控制:设置通道访问权限
- 认证配置:配置通道认证方式
- 载荷管理:配置支持的载荷类型
注意事项
- 通道唯一性:每个通道的Id必须唯一
- 权限一致性:PrivilegeLimit应大于等于PrivilegeSet
- 密钥安全:KGValue应妥善保管
- 载荷支持:确保载荷支持与系统功能匹配
- 认证方式:根据安全需求选择合适的认证方式
故障排除
通道访问失败:
- 检查AccessMode和AccessSet配置
- 确认用户权限是否足够 -验证通道状态
认证失败:
- 检查AuthMethod配置
- 确认UserAuthEnable设置 -验证用户凭据
载荷不支持:
- 检查SessionPayloadSupport配置
- 确认StandardPayloadSupport设置 -验证载荷类型