Receive Event
更新时间: 2025/06/26
在Gitcode上查看源码33h-事件上报命令(Receive-Event)
修订记录
| openUBMC版本号 | 修订日期 | 修订内容 |
|---|---|---|
| 25.06 | 2025/06/26 | 初稿,新增命令详情 |
基本信息
功能说明
事件上报命令。
权限
命令信息
请求信息
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | 30h |
| CMD | 94h |
| 1:3 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 4 | Sub command,子命令=33h |
| 5:08 | New EventId,新事件码,小字节序,SMM与BMC内部交互使用新事件码,新事件码唯一标识一条事件。 |
| 9:12 | Old EventId,旧事件码,小字节序,没有旧事件码则填0,为了兼容,SMM组装SNMP TRAP OID时,若有旧事件码则使用旧事件码生成TRAP OID,否则使用新事件码生成TRAP OID。 |
| 13 | 对应传感器事件的事件类型,用于由旧事件码计算SNMP TRAP OID。 |
| 14 | 对应传感器事件的传感器类型,用于由旧事件码计算SNMP TRAP OID。 |
| 15 | Segment Id,1 based,对于高性能服务器9032,每个segment表示一个4P系统,用Segment Id来区分哪个4P;填0表示不涉及。 |
| 16 | Group Id,产品存在Slot Id(丝印编号)重复时,使用Group Id区分,从1开始,比如插在内存板上的内存条,不同内存板上对应位置内存条编号重复,Group Id就是用于区分哪个内存板。 |
| 17:18 | 事件主体编号,从1开始,跟丝印编号顺序一样递增,0xff表示指定segment和group的所有事件主体,填0表示不涉及。 |
| 19:20 | 事件序号,1~65535,小字节序。 |
| 21:24 | 产生时间,相对于1970年1月1日 0时0分0秒以来秒数。 |
| 25 | Serverity,严重性级别。- 0-Normal- 1-Minor- 2-Major- 3-Critical |
| 26 | 事件种类- 0: 系统事件- 1: 维护日志- 2: 运行日志- 3: 装备事件目前只支持了系统事件 |
| 27:28:00 | 上报协议- bit0: 本地记录- bit1: IPMI(管理模块)- bit2: SNMP Trap- bit3: syslog- bit4: e-mail- bit5: restful,小字节序 |
| 29 | 事件触发方式 1-正常监控 2-模拟 3-手动触发恢复事件 4-收到重报命令重报,含义与事件监控对象的Mode属性取值保持一致 |
| 30:33:00 | 事件互斥码,小字节序,不涉及则填0。 |
| 34 | [7:1]: reserved [0]: 级联标志 0=是最后一帧数据 1=后面还有数据 |
| 35:36:00 | Offset,写入的数据偏移,从0开始。 |
| 37:38:00 | 当数据较长需要多次写入时,一定要从头到尾按顺序写入,不能乱序。 Length,写入长度 |
| 39:N | data1:1-事件主体名称长度 data2:N-事件主体名称 说明: 事件主体名称由两部分组成,“--”两个横杆分隔:- 前部分为:传感器名称或事件主体名称,优先为传感器名称,新增的非传感器事件则为事件主体名称,有些网管绑定了传感器名称,上报传感器名称是为了让SMM/CMC的SNMP TRAP兼容网管。- 后部分为:附加标识信息,由事件监控对象1个或多个事件描述动态参数拼接而成;横杆和后部分可选。- 格式1:lang_xxx_str=[事件主体名称] 说明: 接收侧实现了事件多语言且由对应多语言ID时上报格式,事件描述、处理建议、动态数据含义类同。- 格式2:lang_xxx_str 说明: 无法或不需实现多语言事件时以此格式上报英文的事件主体名称,动态数据含义类同。- 格式3:[事件主体名称] 说明: 语言ID与接收侧软件版本存在配套关系(一般指第三方模块上报事件给BMC)或语言ID无法前后兼容,如某条事件的事件描述或处理建议格式变化且无法兼容时新增语言ID,回退到老版本,将无法识别该语言ID。 解决方法:事件描述或处理建议等属性按lang_xxx_str=xxxxxx形式赋值(xxxxxx为事件描述或处理建议新格式)时使用该格式,事件描述、处理建议、动态数据含义类同。 data(N+1):2-事件描述长度,小字节序 data(N+3):M-事件描述内容(包含事件主体、位置[可选])- 格式1:lang_xxx_str=[事件描述][0xba]动态数据1[0xba]动态数据2[0xba]动态数据3[0xba]动态数据4- 格式2:lang_xxx_str[0xba]动态数据1[0xba]动态数据2[0xba]动态数据3[0xba]动态数据4 其中每个“动态数据”的3种格式为:lang_xxx_str或lang_xxx_str=xxxxx或xxxxx。 说明: 动态数据N个数可选,以不可见字符0xba分隔,预留最多10个动态数据。 data(N+2+M):2-处理建议长度,小字节序,长度为0时表示无处理建议。 data(N+4+M):L-处理建议内容- 格式1:lang_xxx_str=[处理建议][0xba]动态数据1[0xba]动态数据2- 格式2:lang_xxx_str[0xba]动态数据1[0xba]动态数据2 其中每个“动态数据”的3种格式为:lang_xxx_str或lang_xxx_str=xxxxx或xxxxx 说明: 动态数据N个数可选,以不可见字符0xba分隔,预留最多10个动态数据。 data(N+4+M+L):4-健康互斥码。 |
| 注:- 为了减少BMC开发工作量,第一个版本不向管理板上报处理建议信息,命令中“处理建议长度”为0。- 事件描述和处理建议必须有对应的多语言ID,而事件主体名称和动态数据由于其特殊性在大多数情况下无法或不需要实现事件多语言时,可以没有对应的多语言ID,直接以英文字符显示或上报。 |
响应信息
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code |
| 2:04 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 5 | data1:1–事件接收侧是否实现了事件多语言 0–未实现,此时发送侧有多语言ID的项应该以lang_xxx_str=xxxxx格式上报,否则以xxxxx格式上报。 1–已实现,此时发送侧有多语言ID的项应该以lang_xxx_str格式上报,否则以xxxxx格式上报。 |
命令样例
事件上报命令
请求:
ipmicmd -k "0f 00 MM NN" smi 0响应:
0f MM NN