IPMI的OEM命令格式
关键信息
IPMI规范把OEM命令分成了3类:1、组织扩展类(Group Extension);2、组织级OEM(OEM/Group);3、厂商级OEM(Controller-specific OEM/Group)
第1类:Netfn为2Ch、2Dh
由请求的第一个字节来区分组织。请求和响应的第一个字节都要带这个字节。请求和响应数据中不需要填写厂商ID
下面是一个典型的PICMG组织扩展的OEM命令定义,请求、响应第一个字节都带有PICMG标识。
第2类:Netfn为2Eh、2Fh:
这些命令的请求、响应前3个字节都要填IANA号。这个IANA号可以和设备的厂商ID不同。为什么呢?因为这些命令的含义是由组织定义的,不是由某个厂商定义的。如果某个厂商要实现这些命令,也要遵从该组织的定义。多个厂商实现的该命令,含义是相同的,功能要兼容。
第3类:Netfn为30h~3Fh:
这些命令是由各个厂家自定义的OEM命令。因此不要求在命令的请求、响应中填写厂商ID。那么如果不同厂家命令定义重复了但含义不同怎么办?上层软件需要通过厂商ID来区分,但OEM命令中没有填写厂商ID怎么办呢?从Get Device ID命令中获取厂商ID。
也就是上层软件需要先获取厂商ID,再来解析OEM命令。所以此类OEM命令中不需要再重复填写厂商ID。
厂商ID
查询网址:https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
申请地址:http://pen.iana.org/pen/PenApplication.page
| 厂商ID | 十六进制 | 厂商名称 |
|---|---|---|
| 2011 | 0x7db | HUAWEI Technology Co.,Ltd |
| 19621 | 0x4ca5 | alibaba |
权限说明
以openUBMC V3版本为例,mds ipmi.json语法支持九大权限,具体定义:
1)用户角色: role,遵循IPMI规范定义,可选的权限有Unspecified, Callback, User, Operator, Administrator ,OEM
2)九大权限: privilege,九大权限具体定义(注意"Mgmt"的单词简写):"UserMgmt" "BasicSetting" "KVMMgmt" "VMMMgmt" "SecurityMgmt" "PowerMgmt" "DiagnoseMgmt" "ReadOnly" "ConfigureSelf"
| 权限 | 英文解释 | 中文 | 对应V2配置 | V3适配指导 |
|---|---|---|---|---|
| Callback | This may be considered the lowest privilege level. Only commands necessary to support initiating a Callback are allowed. | 最低权限级别。只允许支持启动回调所需的命令。 | ||
| User | Only ‘benign’ commands are allowed. These are primarily commands that read data structures and retrieve status. Commands that can be used to alter BMC configuration, write data to the BMC or other management controllers, or perform system actions such as resets, power on/off, and watchdog activation are disallowed. | 只允许“良性”命令。这些主要是读取数据结构和检索状态的命令。不允许使用可用于更改BMC配置、向BMC或其他管理控制器写入数据或执行系统操作(如重置、电源打开/关闭和看门狗激活)的命令。 | RMCP_USER | 查询类命令 |
| Operator | All BMC commands are allowed, except for configuration commands that can change the behavior of the out-of-band interfaces. For example, Operator privilege does not allow the capability to disable individual channels, or change user access privileges. | 允许使用所有BMC命令,但可以更改带外接口行为的配置命令除外。例如,操作员权限不允许禁用单个频道或更改用户访问权限。 | RMCP_OPERATOR | 设置类命令 |
| Administrator | All BMC commands are allowed, including configuration commands. An Adminstrator can even execute configuration commands that would disable the channel that the Administrator is communicating over. | 允许所有BMC命令,包括配置命令。管理员甚至可以执行配置命令,以禁用管理员正在通信的通道。 | RMCP_ADMIN | 修改硬件GUID等命令 |