【已评审】ipmitool user priv命令接口变更

背景介绍

背景

历史版本SetUserAccess未按照标准实现,用于设置用户权限,当前已将SetUserAccess按照标准实现优化为设置用户LAN通道权限,同时兼容历史功能。
当前现状:

1.单通道场景(仅有LAN1):
绑定用户权限与通道权限,即设置通道LAN1权限,同步设置用户权限;

2.多通道场景下(即LAN1、LAN2均使能):
针对不同网口通道提供独立的通道权限。(仅对RMCP/RMCP+协议生效)
同时为了兼容历史用户在Web/Redfish等接口权限,使用IPMI设置LAN1权限时,会同步刷新用户在Web/Redfish等其他接口的权限:

设置权限的通道 用户IPMI接口权限 用户Web/Redfish/CLI/SNMP接口权限
LAN1 跟随LAN1设置权限 跟随LAN1设置权限
LAN2 跟随LAN2设置权限 跟随LAN2设置权限
BT 此通道无权限、用户逻辑 BT仅供IPMI使用

存在的问题:

  1. 带内使用ipmitool user priv命令设置用户权限时,若不手动传入channel number,该命令会使用当前通道号(BT)。因默认带内通道无权限配置,多通道场景下,使用改命令会发送失败。

评审点

根据IPMI规范定义,用户在不同的channel number的LAN通道可以有不同的权限,需要决策带内设置用户权限的IPMI命令针对channel number参数的处理方案。

详细描述

方案一:带内使用ipmitool user priv命令(netfn=0x06,cmd=0x43)时channel number为必填参数,对原有使用方式产生变更

无论是单个LAN通道还是多个LAN通道,ipmitool user priv命令做如下变更:从带内发送时如果没有显性指定channel number,则返回失败。变更详情:

ipmitool user priv (userid) (privilege) [(channel number)] 老版本带内发送(变更前) 新版本带内发送(变更后) 友商A带内发送
ipmitool user priv 5 15 发送成功,设置用户权限 IPMI command failed: Command not supported in present stateSet Privilege Level command failed (user 5) IPMI command failed: Parameter out of rangeSet Privilege Level command failed (user 5)
ipmitool user priv 5 15 1 Set Privilege Level command successful (user 5) Set Privilege Level command successful (user 5) Set Privilege Level command successful (user 5)

方案二:带内使用ipmitool user priv命令(netfn=0x06,cmd=0x43)时channel number为选填参数,不对原有使用方式产生变更

单个LAN通道场景,带内使用ipmitool user priv命令不带通道号,默认设置channel 1的用户权限;
多个LAN通道场景,带内使用ipmitool user priv命令不带通道号,默认设置channel 1的用户权限,其它channel权限不变

影响分析:

方案 优点 缺点 对伙伴的影响 对开源社区的影响 兼容性影响 对装备的影响
方案一 符合标准 变更后,单通道场景下带内无法使用ipmitool user priv命令设置用户权限(需要带上channel number参数才能使用)(已确认:某伙伴使用时会带上通道号使用) 暂时无法评估对于所有伙伴的影响(不排除可能有些伙伴会直接使用该命令的场景) 按照标准实现,更符合开源社区要求 有影响,历史功能变化 装备直接使用命令字0x06 0x43,未使用ipmitool user priv命令,不影响装备
方案二 不影响历史功能 实现不符合标准,用户权限跟随不同通道权限变更 无影响 未按标准实现 兼容历史功能无影响 无影响

评审结论

同意方案一,ipmitool user priv命令在带内使用时,channel number从可选参数变更为必选参数。

遗留问题

1.需要补充变更说明 – 已补充 【变更声明】IPMI接口Set User Access带内设置用户通道权限变更
2.修改相关的接口说明文档,跟随后续版本发布文档发布

1 个赞