代码仓
中
更新时间: 2026/11/02
在AtomGit上查看源码

CSR配置字典之ChannelConfig类 ​

📋 文档信息 ​

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

📋 变更历史记录 ​

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

🎯 类概览 ​

属性值
类名称ChannelConfig
功能描述通道配置管理,用于配置IPMI/RMCP通信通道的参数和权限
所属SIG组interface
所属组件rmcpd
最后更新2025-04-24
状态🟢 正常运行

📊 属性定义详表 ​

必选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
IdU8-U8-通道ID唯一标识通道配置1CSR配置软件
PrivilegeLimitU8-U8-特权级别限制通道最大特权级别4CSR配置软件
AccessSetU8-U8-访问设置通道访问控制设置1CSR配置软件
PEFEnableU8-U8-PEF使能平台事件过滤使能1CSR配置软件
AuthMethodU8-U8-认证方式通道支持的认证方式0CSR配置软件
UserAuthEnableU8-U8-用户认证使能用户级别认证使能0CSR配置软件
AccessModeU8-U8-访问模式通道访问模式2CSR配置软件
PrivilegeSetU8-U8-特权级别设置通道特权级别设置1CSR配置软件
StandardPayloadSupportU16-U16-标准载荷支持通道支持的标准载荷3CSR配置软件
SessionPayloadSupportU16-U16-会话载荷支持会话支持的载荷类型63CSR配置软件
OEMPayloadSupportU16-U16-OEM载荷支持OEM扩展载荷支持0CSR配置软件
KGValueString-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": ""
  }
}

🔧 使用指南 ​

配置步骤 ​

  1. 设置通道ID:配置Id属性
  2. 设置权限级别:配置PrivilegeLimit和PrivilegeSet
  3. 设置访问控制:配置AccessSet和AccessMode
  4. 设置认证:配置AuthMethod和UserAuthEnable
  5. 设置PEF:配置PEFEnable
  6. 设置载荷:配置StandardPayloadSupport、SessionPayloadSupport和OEMPayloadSupport
  7. 设置密钥:配置KGValue

特权级别说明 ​

级别值级别名称说明
0保留保留值
1回调Callback级别
2用户User级别
3操作员Operator级别
4管理员Administrator级别
5OEMOEM级别

说明:PrivilegeLimit 表示该通道允许的最大特权级别,用户会话的实际权限取“用户自身权限”和“通道 PrivilegeLimit”中的较小值。rmcpd 校验时不接受大于 4(Administrator)的值,配置 5(OEM)会被 Set Channel Access 命令拒绝并返回 SetNotSupportedOnSelectedChannel;0 为保留级,实际可用取值为 1 ~ 4。

访问模式(AccessMode)说明 ​

取值名称说明
0disabled通道禁用,不转发任何 IPMI 消息(C 层 ipmi_messaging_enabled 置 0)
1pre-boot only仅在系统下电或系统尚未引导进入 OS(BIOS 阶段)时允许通信
2always available始终允许通信(rmcpd 默认值)
3shared与 always available 基本一致,区别是 BIOS 通常把串口留给上层软件使用,BMC 与软件共享

布尔/位域类属性说明 ​

属性取值说明
AccessSet0不修改访问相关配置(NOT_SET),本次不下发 AccessMode/PEFEnable/AuthMethod/UserAuthEnable
AccessSet1永久性设置访问配置并持久化,重启后仍生效(rmcpd 默认值 NON_VOLATILE)
AccessSet2临时性设置访问配置,立即生效但掉电/重启后不保存
AccessSet3保留值,命令返回 IPMIInvalidFieldRequest
PrivilegeSet0不修改特权级配置(NOT_SET)
PrivilegeSet1永久性设置 PrivilegeLimit 并持久化(rmcpd 默认值)
PrivilegeSet2临时性设置 PrivilegeLimit,不持久化
PrivilegeSet3保留值,命令返回 IPMIInvalidFieldRequest
PEFEnable0按 IPMI 规范使能 PEF(平台事件过滤)告警
PEFEnable1禁止 PEF 告警(rmcpd 通道配置默认值)
AuthMethod0允许逐条消息认证(默认)
AuthMethod1禁止逐条消息认证
UserAuthEnable0使能 User 级别认证,User 级命令需要认证(默认)
UserAuthEnable1禁止 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)IPMIIPMI 消息载荷
bit1 (0x02)SOL串口重定向载荷
bit2 (0x04)OEMOEM 自定义载荷
bit3~bit5其他标准载荷按 IPMI 规范保留/扩展

因此 StandardPayloadSupport = 3 表示同时支持 IPMI 和 SOL;SessionPayloadSupport = 63 表示 bit0~bit5 全部支持。KGValue 为密钥加密密钥(KEK)字符串,空字符串表示未配置。

通道类型说明 ​

通道ID通道名称说明
1IPMI 1.0标准IPMI 1.0通道
其他保留保留通道

使用场景 ​

  • 通道管理:配置IPMI通信通道
  • 权限控制:设置通道访问权限
  • 认证配置:配置通道认证方式
  • 载荷管理:配置支持的载荷类型

注意事项 ​

  • 通道唯一性:每个通道的Id必须唯一
  • 权限一致性:PrivilegeLimit应大于等于PrivilegeSet
  • 密钥安全:KGValue应妥善保管
  • 载荷支持:确保载荷支持与系统功能匹配
  • 认证方式:根据安全需求选择合适的认证方式

故障排除 ​

  1. 通道访问失败:

    • 检查AccessMode和AccessSet配置
    • 确认用户权限是否足够 -验证通道状态
  2. 认证失败:

    • 检查AuthMethod配置
    • 确认UserAuthEnable设置 -验证用户凭据
  3. 载荷不支持:

    • 检查SessionPayloadSupport配置
    • 确认StandardPayloadSupport设置 -验证载荷类型