*openUBMC 支持标准ipmi命令 Get POH Counter*

[TOC]

# 1.功能分析
## 1.1 功能背景

出于系统维护判断需要，需要了解通电时长，评估老化程度

## 1.2 功能描述

在系统上电之后记录通电时长，并支持通过支持标准ipmi命令 Get POH Counter 去获取累计通电时长

## 1.3 功能场景

1.系统上电之后，记录通电时长，下电之后停止记录。

## 1.4 功能列表
| 需求类型 | 需求编号 | 需求标题 |需求描述|
| ------- | ------- | -------- | -------- |
| SR | SR20251021702144 | 支持Get POH Counter | 支持Get POH Counter


# 2.功能设计
## 2.1 总体方案分析

### 2.1.1 方案详细设计
#### 2.1.1.1 方案概述

配置CSR对象POH，其中SystemId属性是持久化文件的主键，POHEnable是使能记录通电时长，系统上电后，每隔MinutesPerCount 分钟给计数器Counter增加1。

#### 2.1.1.2 开发视图


#### 2.1.1.3 运行视图


### 2.1.2 内部依赖分析

不涉及

### 2.1.3 外部依赖分析

不涉及

### 2.1.4 北向接口分析

新增标准ipmi命令

### 2.1.5 兼容性分析

不涉及

### 2.1.6 定制化接口分析
不涉及

### 2.1.7 导入导出分析
不涉及导入导出配置变更

### 2.1.8 传感器分析
不涉及新增传感器

### 2.1.9 精准告警事件分析
不涉及

### 2.1.10 系统锁定分析
不涉及

### 2.1.11 用例场景分析
| 用例编号 | 描述 | 预置条件 | 测试步骤 | 用例预期 |
| ------- | ------- | ------- | ------- | ------- |
| Case1 | 系统未上电，查看poh | BMC上下电功能正常 | 每隔几分钟查询poh值，看是否变化 | poh值不变 |
| Case2 | 系统上电，查询poh | BMC上下电功能正常 | 上电之后每隔几分钟查询poh值，看是否正常记录时间，误差在2分钟以内 | 正常记录上电时长，误差在两分钟以内 |
| Case3 | 查询poh | BMC上下电功能正常,旧机型 | ipmi查询poh | 返回错误，无法获取poh，因为旧机型目前未配置csr对象 |
| Case4 | bmc重启，然后查询poh | BMC上下电功能正常 |  bmc重启，ipmi查询poh | poh值正常记录，值未重置 |


## 2.2 非功能质量属性设计
### 2.2.1 扩展性分析

不涉及
### 2.2.2 重用性分析
不涉及

### 2.2.3 可测试性分析
使用ipmi命令查询

### 2.2.4 资料分析
不涉及

### 2.2.5 资源使用分析
不涉及

### 2.2.6 可靠性分析(含SFMEA)

添加数据校验，确保数据持久化正常

### 2.2.7 安全性分析

| 安全合规项 | 是否涉及 | 现有的防护措施 |
| --- | --- | --- |
| 访问控制（通道、文件权限、用户权限、查询权限、配置权限、接口权限） | 否 | 不涉及 |
| 敏感数据 | 否 | 不涉及敏感数据处理 |
| 日志（操作日志、维护日志、安全日志、运行日志） | 是 | 1. 记录写入成功日志<br> |
| 文档 | 否 | 不涉及文档安全 |
| 加密及算法 | 否 | 不涉及加密算法 |
| 新增关键资源（密钥、证书、关键配置）备份、恢复 | 否 | 不涉及密钥证书管理 |
| 新增对外接口入参校验 | 否 | 不涉及新增对外接口 |
| 新增开源及三方软件引入 | 否 | 不涉及新的开源软件引入 |

# 3.功能实现

## 3.1 功能实现设计

配置CSR对象POH，其中SystemId属性是持久化文件的主键，POHEnable是使能记录通电时长，系统上电后，每隔MinutesPerCount 分钟给计数器Counter增加1。

## 3.2 功能详细设计



## 3.3 开发者测试

### 3.3.1 单元测试
| 用例编号 | 描述 | 预置条件 | 测试步骤 | 用例预期 |
| ------- | ------- | ------- | ------- | ------- |
| Case1 | 系统未上电，查看poh | BMC上下电功能正常 | 每隔几分钟查询poh值，看是否变化 | poh值不变 |
| Case2 | 系统上电，查询poh | BMC上下电功能正常 | 上电之后每隔几分钟查询poh值，看是否正常记录时间，误差在2分钟以内 | 正常记录上电时长，误差在两分钟以内 |
| Case3 | 查询poh | BMC上下电功能正常,旧机型 | ipmi查询poh | 返回错误，无法获取poh，因为旧机型目前未配置csr对象 |
| Case4 | bmc重启，然后查询poh | BMC上下电功能正常 |  bmc重启，ipmi查询poh | poh值正常记录，值未重置 |
### 3.3.2 集成测试
