sensor 主要用于承接传感器管理
功能简介
传感器主要用于监测如CPU、内存、硬盘、风扇、电源、卡等部件的信息,如部件在位、温度、电压、风扇转速等信息。并相应记录IPMI SEL以及通过传感器健康状态进行表征,以此达到监管部件的运行状态及健康状况的目的。
关键特性
门限型传感器
门限传感器 又叫做 连续性传感器,表征传感器的值是连续变化的(对比了解:数学中的连续值/曲线),如:温度,电压,功耗,转速等。通过门限传感器可描述性资源表征传感器的运行状态和健康状况。
关联类:ThresholdSensor
门限型传感器可描述资源
门限传感器可描述资源均使用ThresholdSensorDisplay类来进行表示,该类不需要CSR配置,由sensor 组件进行解析和完成资源协作接口注册。
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| UpperNonrecoverableDisplay | string | RO | NA | 传感器紧急门限上限可读描述,精度3位有效数字 |
| UpperCriticalDisplay | string | RO | NA | 传感器严重门限上限可读描述,精度3位有效数字 |
| UpperNoncriticalDisplay | string | RO | NA | 传感器一般门限上限可读描述,精度3位有效数字 |
| LowerNonrecoverableDisplay | string | RO | NA | 传感器紧急门限下限可读描述,精度3位有效数字 |
| LowerNoncriticalDisplay | string | RO | NA | 传感器一般门限下限可读描述,精度3位有效数字 |
| LowerCriticalDisplay | string | RO | NA | 传感器严重门限下限可读描述,精度3位有效数字 |
| PositiveHysteresisDisplay | string | RO | NA | 传感器正向迟滞量可读描述,精度3位有效数字 |
| NegativeHysteresisDisplay | string | RO | NA | 传感器负向迟滞量可读描述,精度3位有效数字 |
| ReadingDisplay | string | RW | NA | 传感器读值可读描述,精度3位有效数字 |
| UnitDisplay | string | RO | NA | 传感器单位可读描述 |
| Status | string | RO | Enabled/Disabled/InTest/Starting | 传感器当前状态:Enabled:传感器使能;Disabled:传感器禁用;InTest:传感器测试中;Starting:传感器更新中 |
| Health | string | RO | Critical/Major/Minor/OK | 传感器健康状态:Critical:紧急;Major:严重;Minor:一般;OK:正常 |
| AssertStatus | uint16 | RO | 0-65535 | 传感器SEL事件状态,16进制的数,bit4 - bit15依次对应12种门限事件状态,1:Assert;0:Deassert |
离散型传感器
离散传感器,表征传感器的值是离散的(对比了解:数学中的离散值/曲线),如:运行状态,隔离值等。通过离散型传感器可描述性资源表征传感器的运行状态和健康状况。
关联类:DiscreteSensor
离散型传感器可描述资源
离散型传感器可描述资源均使用DiscreteSensorDisplay类来进行表示,该类不需要CSR配置,由sensor组件进行解析和完成资源协作接口注册。
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| Status | string | RO | Enabled/Disabled/InTest/Starting | 传感器当前状态:Enabled:传感器使能;Disabled:传感器禁用;InTest:传感器测试中;Starting:传感器更新中 |
| Health | string | RO | Critical/Major/Minor/OK | 传感器健康状态:Critical:紧急;Major:严重;Minor:一般;OK:正常 |
| AssertStatus | uint16 | RO | 0-65535 | 传感器SEL事件状态,bit0 - bit14依次对应15种offset的离散事件状态,1:Assert;0:Deassert |
IPMI SEL
连续型传感器触发事件
连续传感器的事件生成条件即:读值与门限值比较后是否满足了产生或恢复事件的条件。会依次比较读值与6个门限值是否满足产生与恢复条件。
检查是否满足事件生成条件流程如下:
离散型传感器触发事件
离散传感器的事件生成条件即关联的离散事件的方向是否发生改变,然后查看是否满足产生与恢复条件。
| 监听方式 | 数据组成 |
|---|---|
| 组合监听 | Property:`event_dir |
| 独立监听 | 本对象属性:EventDir、EventData1、EventData2、EventData3 |
| ---- | ---- |
| 事件翻转 | Conversion属性低4位为翻转位,翻转该事件的方向Conversion & 0x0F == 1:assert => deassert 或 deassert => assert |
检查是否满足事件生成条件流程如下:
对外接口
资源协作接口
Sensors
Path:
/bmc/kepler/Chassis/:ChassisId/SensorsInterface:
bmc.kepler.Chassis.Sensors
属性:
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| Health | string | RO | Normal/Minor/Major/Critical | 系统健康状态,取值有0:Normal,1:Minor,2:Major,3:Critical |
方法:
| 方法 | 描述 |
|---|---|
| GetThresholdSensorList | 查询门限传感器列表 |
| MockSensor | 模拟传感器 |
| GetSensorList | 查询所有传感器列表 |
| SetSensorStatus | 设置传感器使能状态 |
| ExportSel | 导出传感器事件列表 |
| GetSel | 获取传感器事件列表 |
| GetDiscreteSensorList | 查询离散传感器列表 |
| GetReportedSel | 获取上报事件 |
| DumpSDR | 将SDR数据dump为二进制文件 |
| AddOemSel | 添加OEM SEL |
| ClearSel | 清空所有SEL事件 |
| ClearSensorSel | 清空传感器事件 |
| SetThresholds | 设置门限传感器门限值 |
查询门限传感器列表 GetThresholdSensorList
输入:
- 无
输出:
SensorList(Array<ThresholdSensorItem>):门限传感器列表
ThresholdSensorItem 结构:
SensorNumber(uint16):传感器编号SensorName(string):传感器名称SensorIdentifier(string):传感器标识SensorUnit(string):传感器单位,具体的描述单位,比如RPMSensorStatus(string):传感器状态SensorReading(string):传感器读数,经过单位转换之后LowerThresholdFatal(string):传感器紧急事件下限LowerThresholdCritical(string):传感器严重事件下限LowerThresholdNonCritical(string):传感器一般事件下限UpperThresholdNonCritical(string):传感器一般事件上限UpperThresholdCritical(string):传感器严重事件上限UpperThresholdFatal(string):传感器紧急事件上限SensorType(uint8):传感器类型Status(string):传感器状态Health(string):传感器健康状态SystemId(uint8):传感器归属host的编号
模拟传感器 MockSensor
输入:
Enabled(uint8):是否使能模拟,取值范围:0-1SensorName(string):模拟传感器的名称Value(string):模拟传感器读值,stop表示停止模拟
输出:
- 无
查询所有传感器列表 GetSensorList
输入:
- 无
输出:
SensorList(Array<AllSensorItem>):查询到的传感器列表
AllSensorItem 结构:
SensorNumber(uint16):传感器编号SensorName(string):传感器名称SensorUnit(string):传感器单位,具体的描述单位,比如RPMSensorStatus(string):传感器状态SensorReading(string):传感器读数,经过单位转换之后LowerFatal(string):传感器紧急事件下限LowerCritical(string):传感器严重事件下限LowerNonCritical(string):传感器一般事件下限UpperNonCritical(string):传感器一般事件上限UpperCritical(string):传感器严重事件上限UpperFatal(string):传感器紧急事件上限PosHysteresis(string):传感器正向迟滞量NegHysteresis(string):传感器负向迟滞量SensorType(uint8):传感器类型BaseUnit(uint8):单位(数字描述)ReadingType(uint8):读值类型SystemId(uint8):传感器归属host的编号
设置传感器使能状态 SetSensorStatus
输入:
SensorName(string):传感器的名称Status(string):使能状态(enabled,disabled)
输出:
- 无
导出传感器事件列表 ExportSel
输入:
Path(string):导出SEL的路径
输出:
TaskId(uint32):Task标识,用于拼接任务路径
获取传感器事件列表 GetSel
输入:
StartId(uint16):事件索引,取值范围:0-65535。StartId 大于等于 1,超过总条数会返回空表Count(uint16):事件条数,取值范围:0-65535。Count 大于等于 0,超过总条数会返回所有事件
输出:
Total(uint16):事件总条数SelList(Array<SelInfo>):事件列表
SelInfo 结构:
MappingTable(Array<KeyValueTable>):Sel信息键值表,键的值包括:序号,时间戳,传感器名称,传感器类型,传感器事件级别,传感器事件状态,传感器事件描述
KeyValueTable 结构:
Key(string)Value(string)
查询离散传感器列表 GetDiscreteSensorList
输入:
- 无
输出:
SensorList(Array<DiscreteSensorItem>):离散传感器列表
DiscreteSensorItem 结构:
SensorNumber(uint16):传感器编号SensorName(string):传感器名称SensorIdentifier(string):传感器标识SensorStatus(string):传感器状态SystemId(uint8):传感器归属host的编号
获取上报事件 GetReportedSel
输入:
StartId(uint64):事件起始序列号,取值范围:0-18446744073709551615Count(uint16):事件条数,取值范围:0-65535
输出:
Total(uint16):事件总条数SelList(Array<SelInfo>):事件列表
SelInfo 结构同 GetSel 中的 SelInfo。
将SDR数据dump为二进制文件 DumpSDR
输入:
DumpMode(string):SDR数据缓存模式,限定为 LAN/BT 两种模式,取值范围:LAN/BT
输出:
- 无
添加OEM SEL AddOemSel
输入:
RecordType(uint8):表征当前要添加的OEM SEL的类型,取值范围:0-255Timestamp(uint32):表征当前SEL发生的时间,取值范围:0-4294967295ManufactureID(uint32):表征当前SEL记录的厂商,取值范围:0-4294967295SELDatas(string):表征当前SEL记录的数据
输出:
RecordId(uint32):当前OEM SEL数据记录id
清空所有SEL事件 ClearSel
输入:
- 无
输出:
- 无
清空传感器事件 ClearSensorSel
输入:
- 无
输出:
- 无
设置门限传感器门限值 SetThresholds
输入:
SensorName(string):需要修改的传感器名称(若存在重名,以第一个为准)PersistenceType(uint8):持久化类型,取值范围:0/1,其中 0 表示不持久化,1 表示掉电持久化Attributes(Dictionary<ThresholdAttributeItem>):需要修改的门限属性与取值,支持同时设置多个。属性值为双精度数字字符串,精度为3位小数(如1.000)
输出:
- 无
ThresholdAttributeItem 结构:
key(string):可选值:UpperNonrecoverable/UpperCritical/UpperNoncritical/LowerNonrecoverable/LowerNoncritical/LowerCriticalvalue(string):门限属性值,双精度数字字符串,精度为3位小数(如1.000)
IPMI接口
- 具体参数参考本组件配置文件ipmi.json
| 方法 | 描述 |
|---|---|
| SetSensorEventReceiver | 设置传感器事件接收器 |
| GetSensorEventReceiver | 获取传感器事件接收器 |
| ReportSensorEvent | 传感器事件消息 |
| GetPEFCapabilities | 获取PEF能力 |
| SetPEFPostponeTimer | 设置PEF延迟定时器 |
| SetPEFParameters | 设置PEF参数 |
| GetPEFParameters | 获取PEF参数 |
| SetPEFLastEventId | 设置PEF最新事件ID |
| GetPEFLastEventId | 获取PEF最新事件ID |
| GetDeviceSDRInfo | 获取设备SDR信息 |
| GetDeviceSDR | 获取设备SDR |
| ReserveDeviceSDR | 预留设备SDR存储库 |
| GetSensorFactors | 获取传感器读数计算系数 |
| SetSensorHysteresis | 设定传感器迟滞 |
| GetSensorHysteresis | 获取传感器迟滞 |
| SetSensorThreshold | 设置传感器阈值 |
| GetSensorThreshold | 获取传感器阈值 |
| SetSensorEventEnable | 设置传感器事件启用状态 |
| GetSensorEventEnable | 获取传感器事件启用状态 |
| RearmSensorEvent | 重新布置传感器事件 |
| GetSensorEventStatus | 获取传感器事件状态 |
| GetSensorReading | 获取传感器读数 |
| GetSensorType | 获取传感器类型 |
| GetSDRRepoInfo | 获取SDR存储库信息 |
| GetSDRRepoAllocInfo | 获取SDR存储库分配信息 |
| GetSDRReserveId | 获取SDR预约ID |
| GetSDR | 获取SDR |
| AddSDR | 添加一条SDR |
| AddPartialSDR | 添加部分SDR |
| DeleteSDR | 删除一条SDR |
| ClearSDR | 清除SDR |
| EnterSDRRepoUpdate | 进入SDR存储库更新模式 |
| ExitSDRRepoUpdate | 退出SDR存储库更新模式 |
| RunSDRInitAgent | 运行SDR初始化代理 |
| GetSelInfo | 获取SEL信息 |
| GetSelAllocInfo | 获取SEL分配信息 |
| GetSelReserveId | 获取SEL预约ID |
| GetSelEntry | 获取SEL条目 |
| AddSelEntry | 添加SEL条目 |
| ClearSel | 清除SEL |
| OEMGetSystemSel | 查询系统健康事件(BMC内部使用) |
| OEMGetSystemSel2 | 查询系统健康事件(DFT) |
| SetBMCEnables | 设置BMC全局启用 |
| GetBMCEnables | 获取BMC全局启用 |
| SetBIOSEventData | 设置BIOS事件数据 |
| GetDeviceLocatorRecordId | 获取设备定位器记录ID |
| GetTemperatureReadings | 获取温度读数 |
配置介绍
传感器配置需要一定程度上参照 IPMI标准规范协议官方文档
实体资源配置
传感器实体资源,表征当前的传感器依赖或者所属的硬件的实体描述,该实体的在位状态或者上下电状态会影响当前传感器的值以及状态,还有对应传感器事件IPMI SEL的生成状态。
配置属性
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| Id | uint8 | RO | 0-255 | Entity Id,IPMI 规范 43.14 |
| Instance | uint8 | RO | 0-255(默认96) | Entity Instance,IPMI 规范 43.1中描述Instance配置,默认值 96 |
| Slot | uint8 | RO | 0-255(默认255) | Entity所在的槽位号,默认 255 |
| Name | string | RO | NA | Entity的名称 |
| PowerState | uint8 | RO | 0-255 | Entity的上下电状态,关联对应的上下电信号来源 |
| Presence | uint8 | RO | 0-255 | Entity的在位状态,关联对应的在位信号来源 |
| Health | uint8 | RO | 0-255(默认0) | Entity的健康状态,不需要配置,默认值 0 |
配置关键点
Entity Id严格按照IPMI 规范中的表格进行配置Entity Instance保证同一Entity Id下唯一
连续型传感器配置
连续型传感器,表征传感器的值是连续变化的,如:温度,电压,功耗,转速等。
配置属性
以下属性配置原则皆参照 Section 43.1 SDR Type 01h, Full Sensor Record(P521)
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| OwnerId | uint8 | RO | 0-255(默认32) | 传感器归属标识,默认32(归属于BMC),来自于IPMI 规范,具体可以参考规范 43.1 |
| OwnerLun | uint8 | RO | 0-255(默认0) | 传感器的Lun,默认0,来自于IPMI 规范,具体可以参考规范 43.1 |
| EntityId | uint8 | RO | 0-255 | 传感器对应的实体,来自于IPMI 规范,具体需要关联传感器对应的Entity.Id |
| EntityInstance | uint8 | RO | 0-255 | 传感器对应的实体,来自于IPMI 规范,具体需要关联传感器对应的Entity.Instance |
| Initialization | uint8 | RO | 0-255 | 传感器初始化选项,来自于IPMI 规范,具体可以参考规范 43.1 |
| Capabilities | uint8 | RO | 0-255 | 传感器支持能力,来自于IPMI 规范,具体可以参考规范 43.1 |
| SensorType | uint8 | RO | 0-255 | 传感器类型,来自于IPMI 规范,具体可以参考规范 42.2 |
| ReadingType | uint8 | RO | 0-255 | 传感器读值类型,来自于IPMI 规范,具体可以参考规范 42.1 |
| SensorIdentifier | string | RO | NA | 传感器标识 |
| SensorName | string | RO | NA | 传感器对外显示的名称 |
| AssertMask | uint16 | RO | 0-65535 | 传感器事件发生掩码,来自于IPMI 规范,具体可以参考规范 43.1 |
| DeassertMask | uint16 | RO | 0-65535 | 传感器事件恢复掩码,来自于IPMI 规范,具体可以参考规范 43.1 |
| ReadingMask | uint16 | RO | 0-65535 | 传感器读值掩码,来自于IPMI 规范,具体可以参考规范 43.1 |
| Unit | uint8 | RO | 0-255 | 传感器的表征单位,可以表征比率,修饰,百分比,具体参考 IPMI 规范 43.1 |
| BaseUnit | uint8 | RO | 0-255 | 传感器基准单位,来自于IPMI 规范,具体可以参考规范 43.17 |
| ModifierUnit | uint8 | RO | 0-255 | 传感器单位描述符,默认0,来自于IPMI 规范,具体可以参考规范 43.1 |
| Linearization | uint8 | RO | 0-255 | 传感器线性计算方程,来自于IPMI 规范,具体可以参考规范 43.1 |
| M | uint8 | RO | 0-255 | 传感器M计算表达式低8bit,来自于IPMI 规范,具体可以参考规范 36.3 |
| MT | uint8 | RO | 0-255 | 传感器M计算表达式高2bit和容差,来自于IPMI 规范,具体可以参考规范 36.3 |
| B | uint8 | RO | 0-255 | 传感器B计算表达式低8bit,来自于IPMI 规范,具体可以参考规范 36.3 |
| BA | uint8 | RO | 0-255 | 传感器B计算表达式高2bit和准确率低6bit,来自于IPMI 规范,具体可以参考规范 36.3 |
| Accuracy | uint8 | RO | 0-255 | 传感器准确率高6bit和传感器方向,来自于IPMI 规范,具体可以参考规范 36.3 |
| RBExp | uint8 | RO | 0-255 | 传感器R/B计算表达式,各4bit,来自于IPMI 规范,具体可以参考规范 36.3 |
| Analog | uint8 | RO | 0-1 | 传感器模拟标志,默认1,来自于IPMI 规范,具体可以参考规范 43.1 |
| NominalReading | uint8 | RO | 0-255 | 传感器名义读值,来自于IPMI 规范,具体可以参考规范 43.1 |
| NormalMaximum | uint8 | RO | 0-255 | 传感器正常最大读值,默认0,来自于IPMI 规范,具体可以参考规范 43.1 |
| NormalMinimum | uint8 | RO | 0-255 | 传感器正常最小读值,默认0,来自于IPMI 规范,具体可以参考规范 43.1 |
| MaximumReading | uint8 | RO | 0-255 | 传感器实际最大读值,来自于IPMI 规范,具体可以参考规范 43.1 |
| MinimumReading | uint8 | RO | 0-255 | 传感器实际最小读值,来自于IPMI 规范,具体可以参考规范 43.1 |
| UpperNonrecoverable | uint8 | RO | 0-255 | 传感器紧急事件上限,来自于IPMI 规范,具体可以参考规范 43.1 |
| UpperCritical | uint8 | RO | 0-255 | 传感器严重事件上限,来自于IPMI 规范,具体可以参考规范 43.1 |
| UpperNoncritical | uint8 | RO | 0-255 | 传感器一般事件上限,来自于IPMI 规范,具体可以参考规范 43.1 |
| LowerNonrecoverable | uint8 | RO | 0-255 | 传感器紧急事件下限,来自于IPMI 规范,具体可以参考规范 43.1 |
| LowerNoncritical | uint8 | RO | 0-255 | 传感器一般事件下限,来自于IPMI 规范,具体可以参考规范 43.1 |
| LowerCritical | uint8 | RO | 0-255 | 传感器严重事件下限,来自于IPMI 规范,具体可以参考规范 43.1 |
| PositiveHysteresis | uint8 | RO | 0-255 | 传感器正向迟滞量,来自于IPMI 规范,具体可以参考规范 43.1 |
| NegativeHysteresis | uint8 | RO | 0-255 | 传感器负向迟滞量,来自于IPMI 规范,具体可以参考规范 43.1 |
| Reading | uint8 | RO | 0-255 | 传感器原始读值,引用传感器的数据源(如Scanner)读值同步,需要填写一个默认值,用于数据源未更新时显示,需要注意在门限之内,防止产生SEL事件 |
| ReadingStatus | uint8 | RO | 0-255(默认0) | 传感器读值状态,默认0,引用传感器的数据源(如Scanner)读值状态同步 |
| SensorNumber | uint8 | RO | 0-255(默认255) | 传感器编号,默认255,来自于IPMI 规范,由BMC自行生成;如果需要特殊的编号,则需要单独在传感器定制化进行定制(BMC正常运行时插入的部件的传感器不支持定制) |
| OriginalReading | double | RO | NA | 传感器的原始值,当线性标志配置0x70-0x7f时,需要此属性配合Reading(固定配置170)计算传感器读数系数以提升读值精度至1w |
配置关键点
- 传感器类型
SensorType严格按照IPMI 规范中的表格配置 - 三个
Mask属性要与配置的门限匹配,若配置了某个门限,Mask相应bit需要置位 - 注意当前
Reading(也即原始值),数据源的范围不可超过255,若不满足则需要通过表达式进行一定程度的缩放,并通过传感器的表达公式进行还原
离散型传感器配置
离散型传感器,表征传感器的值是离散的,如:上下电状态、在位状态、运行状态等。
配置属性
以下属性配置原则皆参照 Section 43.2 SDR Type 02h, Compact Sensor Record(P521)
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| OwnerId | uint8 | RO | 0-255(默认32) | 传感器归属标识,默认32(归属于BMC),来自于IPMI 规范,具体可以参考规范 43.1 |
| OwnerLun | uint8 | RO | 0-255(默认0) | 传感器的Lun,默认0,来自于IPMI 规范,具体可以参考规范 43.1 |
| EntityId | uint8 | RO | 0-255 | 传感器对应的实体,来自于IPMI 规范,具体需要关联传感器对应的Entity.Id |
| EntityInstance | uint8 | RO | 0-255 | 传感器对应的实体,来自于IPMI 规范,具体需要关联传感器对应的Entity.Instance |
| Initialization | uint8 | RO | 0-255 | 传感器初始化选项,来自于IPMI 规范,具体可以参考规范 43.1 |
| Capabilities | uint8 | RO | 0-255 | 传感器支持能力,来自于IPMI 规范,具体可以参考规范 43.1 |
| SensorType | uint8 | RO | 0-255 | 传感器类型,来自于IPMI 规范,具体可以参考规范 42.2 |
| ReadingType | uint8 | RO | 0-255 | 传感器读值类型,来自于IPMI 规范,具体可以参考规范 42.1 |
| SensorIdentifier | string | RO | NA | 传感器标识 |
| SensorName | string | RO | NA | 传感器对外显示的名称 |
| AssertMask | uint16 | RO | 0-65535 | 传感器事件发生掩码,来自于IPMI 规范,具体可以参考规范 43.1 |
| DeassertMask | uint16 | RO | 0-65535 | 传感器事件恢复掩码,来自于IPMI 规范,具体可以参考规范 43.1 |
| DiscreteMask | uint16 | RO | 0-65535 | 传感器可以返回的离散值,具体参考 IPMI 规范 43.2 |
| Unit | uint8 | RO | 0-255 | 传感器的表征单位,可以表征比率,修饰,百分比,具体参考 IPMI 规范 43.2 |
| BaseUnit | uint8 | RO | 0-255 | 传感器基准单位,来自于IPMI 规范,具体可以参考规范 43.17 |
| ModifierUnit | uint8 | RO | 0-255 | 传感器单位描述符,默认0,来自于IPMI 规范,具体可以参考规范 43.1 |
| DiscreteType | uint8 | RO | 0-1 | 传感器离散类型,0:普通离散,1:数字离散,默认值为0,具体参考 IPMI 规范 42.1 |
| RecordSharing | uint16 | RO | 0-65535 | 传感器的共享标识,多个传感器可以共享同一个SDR数据,具体参考 IPMI 规范 43.2 |
| PositiveHysteresis | uint8 | RO | 0-255 | 传感器正向迟滞量,来自于IPMI 规范,具体可以参考规范 43.1 |
| NegativeHysteresis | uint8 | RO | 0-255 | 传感器负向迟滞量,来自于IPMI 规范,具体可以参考规范 43.1 |
| Reading | uint16 | RO | 0-65535 | 传感器原始读值,引用传感器的数据源(如Scanner)读值同步,需要填写一个默认值,用于数据源未更新时显示,需要注意在门限之内,防止产生SEL事件 |
| SensorNumber | uint8 | RO | 0-255(默认255) | 传感器编号,默认255,来自于IPMI 规范,由BMC自行生成;如果需要特殊的编号,则需要单独在传感器定制化进行定制(BMC正常运行时插入的部件的传感器不支持定制) |
配置关键点
- 传感器类型
SensorType严格按照IPMI 规范中的表格配置 - 离散传感器的读值类型
ReadingType分为两种:02h~0Ch、6Fh,需要根据离散事件的配置场景相应配置该属性 - 离散传感器的配置与挂载的离散事件相关,注意三个
Mask的配置需要与离散事件配置匹配
离散事件配置
离散事件,是针对离散传感器需要承载和触发的事件源,每个离散传感器最多可以监听15个离散事件。
配置属性
| 属性名称 | 属性类型 | 读写 | 取值范围 | 属性说明 |
|---|---|---|---|---|
| Property | uint32 | RO | 0-4294967295 | 离散事件监听的属性,如果监听类型是组合侦听则代表 IPMI SEL产生使用的数据和方向;共4字节,从高到低分别表示'event_dir, event_data3, event_data2, event_data1',数据含义参照本对象对应属性的解释 |
| ListenType | uint8 | RO | 0-1 | 离散事件监听类型:1 - 独立侦听,IPMI SEL的数据和方向来自于本对象属性;0 - 组合侦听,IPMI SEL的数据和方向均来自于Property属性 |
| EventData1 | uint8 | RO | 0-255 | 离散事件产生的数据1,当监听类型是独立侦听时使用,同时用来表征同一类型的离散传感器不同的离散状态方向,具体可以参考IPMI 规范 42.2;其中低4bit表示事件的偏移 |
| EventData2 | uint8 | RO | 0-255(默认255) | 离散事件产生的数据2,当监听类型是独立侦听时使用;若无应用需求,配置为默认值255 |
| EventData3 | uint8 | RO | 0-255(默认255) | 离散事件产生的数据3,当监听类型是独立侦听时使用;若无应用需求,配置为默认值255 |
| EventDir | uint8 | RO | 0-255 | 离散事件产生的方向:0 - 恢复;其他 - 产生,当监听类型是独立侦听时使用 |
| SensorObject | string | RO | NA | 离散事件关联的离散传感器,当IPMI SEL产生或者恢复时体现在当前传感器的健康状态以及SEL上 |
| Conversion | uint8 | RO | 0-1 | 离散事件翻转标识,用于翻转事件方向,低4bit的值表示是否翻转,1表示翻转,0表示不翻转 |
| InvalidReadingIgnore | uint8 | RO | 0-1 | 用于防止启动阶段数据源默认值误告警,表示是否支持忽略默认值处理 |
| InvalidReading | uint8 | RO | 0-255 | 用于防止启动阶段数据源默认值误告警,表示要忽略的默认值,配合InvalidReadingIgnore使用,比如InvalidReadingIgnore配置为1,本属性配置为255,则表示当关联数据的值为255时不做任何处理 |
| Severity | uint8 | RO | 0-255 | 离散事件的事件等级,用于判断事件等级 |
配置关键点
- 监听方式无固定要求,可以根据场景任意选择。若选择组合监听,需要保证
Property属性按要求进行配置,保证各个字节的数据皆按照含义正确配置;若选择独立监听,需要保证三个EventData数据及EventDir属性按照含义正确配置。 - 离散事件实则是遵循IPMI 规范定义的,因此需要严格参照IPMI 规范中的描述和定义进行配置