【已评审】支持NTP时间同步结果发送信号,支持资源协作接口承载时间跳变信息、RTC时间同步结果

背景

需要提供NTP时间同步结果、时间跳变状态和RTC时间同步结果的原子能力,以支持伙伴实现对这些属性的监听、同步或配置对应的传感器事件等功能。当前已有表示NTP时间同步结果的资源协作接口属性,需将其变更为发信号,另外,需要新增表示时间跳变状态和RTC时间同步结果的资源协作接口。

整体方案

  1. 变更已有的“表示BMC与NTP服务器同步的结果”的属性为发送信号;
  2. 新增资源协作接口属性承载时间跳变状态;
  3. 新增资源协作接口bmc.kepler.Managers.Rtc,在该接口下新增属性表示RTC时间同步结果

评审点

  1. 变更已有的表示“BMC与NTP服务器同步的结果”的属性为发送信号;
  2. 新增资源协作接口属性承载时间跳变状态;
  3. 新增资源协作接口bmc.kepler.Managers.Rtc,在该接口下新增属性表示RTC时间同步结果

详细描述

评审点1:变更已有的“表示BMC与NTP服务器同步的结果”的属性为发送信号

变更描述 :资源协作接口bmc.kepler.Managers.Ntp下的属性SyncResult变更为发送信号
接口链接mdb_interface/json/intf/mdb/bmc/kepler/Managers/Ntp.json-代码预览-mdb_interface:基于 D-Bus 协议的资源协作接口模型定义项目 - AtomGit | GitCode

属性评审点

变更类型 属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 变更影响
变更 SyncResult y True 变更前:false
变更后:true
表示BMC与NTP服务器同步的结果,0:成功,1:未成功(包含同步失败和未开启NTP),默认值为1 Read: ReadOnly 软件刷新 掉电持久化 变化通知变更为true,使业务可以及时获取变更后的属性值

评审点2:新增资源协作接口属性承载时间跳变状态

变更描述 :资源协作接口bmc.kepler.Managers.Time下新增属性TimeJumpstatus
接口链接mdb_interface/blob/main/json/intf/mdb/bmc/kepler/Managers/Time.json-代码预览-mdb_interface:基于 D-Bus 协议的资源协作接口模型定义项目 - AtomGit | GitCode

新增属性

属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
TimeJumpStatus b True true 表示系统时间跳变状态,true:跳变,false:非跳变,默认为false Read: ReadOnly 软件刷新,时间跳变后置为true,1s后恢复为false,告警配置建议通过变化判断是否发生时间跳变 不持久化 false

评审点3:新增资源协作接口bmc.kepler.Managers.Rtc,在该接口下新增属性表示RTC时间同步结果

接口描述 :该接口用于管理RTC时间同步相关的属性

新增属性

属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
RTCSyncResult y True true 表示RTC时间同步结果,0:成功,1:失败,255:不支持RTC同步,默认为255 Read: ReadOnly 软件刷新 不持久化 false

新增接口影响

路径 新增接口影响 CSR配置影响 持久化影响 其他影响
/bmc/kepler/Managers/:Id 对外提供RTC时间同步相关的信息 不涉及重名属性,无影响 已包含稳定主键,无兼容性问题 需实现新增属性

评审结论

通过,具体结论如下:

  1. 同意将资源协作接口bmc.kepler.Managers.Ntp下的属性SyncResult变更为发送信号。
  2. 同意在资源协作接口bmc.kepler.Managers.Time下新增属性TimeJumpstatus,用于表示系统时间跳变状态,true:跳变,false:非跳变,默认为false,签名为 b,只读,读权限为ReadOnly,属性变化时发送变更通知,不持久化。
  3. 同意新增资源协作接口bmc.kepler.Managers.Rtc,并且在该接口下新增属性RTCSyncResult表示RTC时间同步结果,0:成功,1:失败,255:不支持RTC同步,默认为255,签名为 y,只读,读权限为ReadOnly,属性变化时发送变更通知,不持久化。

遗留问题

  1. 确认新增的属性TimeJumpStatus和RTCSyncResult是否需要持久化
    结论:TimeJumpStatus和RTCSyncResult属性均不需要持久化。时间跳变只关注产生沿,不涉及误告警;同步RTCSyncResult的事件防止误告警可以通过配置Event的InvalidReading(需要忽略的无效值)和InvalidReadingIgnore(是否忽略无效值,1:开启 0 : 关闭)属性实现。

1、SyncResult 不需要 CSR配置
2、SyncResult 默认值需要配置为 255,用于非 NTP 时间同步场景
3、 评审点2 的接口链接名错误,应为 xxx/Time.json
4、考虑是否新增接口 bmc.kepler.Managers.Rtc 单独承载 rtc 同步功能,并在该接口下新增属性 RtcSyncStatus(命名区分Time接口下的 SyncStatus),0代表同步失败,1代表同步成功,255代表不支持rtc同步场景