Open
feat: 增加有界异步 PLDM GetDateTime 业务适配模块 #12
liuxingsenAdd on 13 days ago
feat: 增加有界异步 PLDM GetDateTime 业务适配模块 #12
Open
liuxingsenAdd on 13 days ago
liuxingsenCollaborators
13 days ago

当前PR是否有AI参与:

[ ] 否

[x] 是
__1. AI Agent 平台: OpenAI Codex
__2. AI 模型: gpt-6-astra(实现、测试与复核)
__3. Prompt上下文 : 用户授权接手 SP888-MCTP 联调所需的 BMC 实现,基于设计实现 GetDateTime,并将超过行数限制的候选拆为独立可测模块;新增文件版权归属已由用户明确确认为 Huawei。

PR功能描述 / 为什么需要这个合入:

为 PLDM GetDateTime 提供有界异步业务适配器,避免逐属性远程读取、固定时间对象路径和迟到回调造成错误应答。本 PR 提供模块及隔离测试,生产收包入口和默认关闭的取时接线由PR !13提供,两者组合后显式启用。

修改方案:

动态发现唯一 Time 对象,发现保留共享内存快路径、远程回退使用剩余预算;属性快照使用单次有期限 RPC 获取时间和同步状态,校验日历/时区并编码 UTC BCD。20ms 业务预算先于50ms命令期限,单调时钟校正提前唤醒与迟到成功;最多16个未返回IPC。无效时间返回0x8A,服务缺失/错误/超预算返回NOT_READY。另补齐两处既有discovery单测遗漏的ep_name参数。版本1.130.17、一个提交、715新增行。

验证方案:

隔离命令注册接口,覆盖动态对象路径、单次RPC、日历/时区、无效时间、服务错误、一次完成和过载。重新构建当前分支协议核心及Lua绑定,运行完整单测。

测试建议:

集成 responder 后回归命令位图、真实取时、服务退出/恢复、多网卡并发和端点代次;真实未授时切换尚未执行。本模块单测不替代完整传输入口验收。

自验证报告:

  • 当前修订f72e47f16050完整120/120通过,pre-commit全部通过。
  • 新增“小数秒+数值时区偏移”组合:正偏移跨年、负偏移跨年、正偏移回到闰日,逐字节校验UTC BCD输出。原编码实现无需调整,本修订只扩充测试。
  • 业务模块此前已随43f21765fb4e候选在43000正常、真实服务停止、恢复各44请求通过;本次仅测试变化,不宣称新增实机验证。真实未授时路径仍待验收。

该PR关联的issue

fixes #12

希望检视人员了解:

本任务是需求编号10的业务模块子任务,不自动关闭完整需求。传输令牌、Base与能力发布继续独立提交;本PR没有提前启用尚未集成的命令,也不宣告完整架构已交付。保留原许可,新增两文件的Huawei版权依据已确认。

版本与顺序:!11=1.130.16 → !12=1.130.17 → !13=1.130.18 → !14=1.130.19;每个PR一个提交,版本固定,后续修复沿用。本次7f39fa3d9709仅协调发布元数据,完整120/120及pre-commit已重跑通过;按用户要求全部暂不合入。

likedislike
Merge blocked
LliuxingsenCollaborators
13 days ago Created pull request, commit 67608bd6
LliuxingsenCollaborators
13 days ago Associated issue: [需求]: 支持响应 GetDateTime 命令,[任务] 增加有界异步 PLDM GetDateTime 业务适配模块
openUBMC-robotopenUBMC-robotCollaborators
13 days ago Added label: sig/sig-component-drivers
openUBMC-robot
openUBMC-robotCollaborators
13 days ago Comments:

欢迎来到 openUBMC 社区

Hey @xiaoxinglxs , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 说明文档 或 论坛 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。您可以自助配置此仓库的 PR 合并规则,更多详情,请参阅机器人自助配置使用手册。

联系指引

有疑问可以联系 SIG: sig-component-drivers ,
维护者是: @dongyushan, @net_swift_wangchen, @sam_h1973, @u012924942, @weixin_37569011, @xiaoxinglxs ,
优秀贡献者是: @hzy1010, @leessential .

likedislike
openUBMC-robotopenUBMC-robotCollaborators
13 days ago Added label: ai-co-authored
104 messages are collapsed here。 See more
Oopenubmc-ci-botCollaborators
13 days ago Added label: limit_1k_suc
openubmc-ci-botCollaborators
13 days ago Comments:

人工检视报告

感谢 @xiaoxinglxs 的贡献!本轮对齐到最新提交流 f72e47f,UTC/闰年/跨月跨年回退/BCD 编码/20ms 预算/16 个未返回 IPC 配额/迟到抑制等核心算法经逐一推演与测试断言核对一致,未发现会导致错误时间或双重应答的正确性缺陷。整体质量良好。

📋 检视概览

项目 详情
评级 良好
严重问题 0
警告 0
建议 0(本轮新增)

已确认修复的问题 ✅

对照本轮代码,此前多轮 AI/检视机器人提出的问题均已收敛确认:

  • 对象发现无超时:GetSubObjects 已改为带剩余预算的 bus:timeout_call(pldm_time.lua:155-166),远程回退受预算保护 ✅
  • RFC3339 小写 t/z:M.encode 已用 [Tt] 与 Z/z 大小写不敏感处理,test_lowercase_rfc3339_separators 覆盖 ✅
  • 业务预算到期后 busy 槽位语义:改为「保留仍运行的 IPC 槽位,防止突破 16 上限」,test_expired_tokens_do_not_release_still_running_ipc 覆盖 ✅
  • 失败原因不可观测:diagnostic()(L133-143)在各失败分支带请求号/原因/阶段/剩余预算输出 DEBUG 日志,不泄露远端错误正文 ✅
  • 小数秒 + 数值时区偏移组合:'2026-01-01T00:00:00.125+08:00' 用例补充(test_pldm_time.lua:503)✅
  • discovery 单测缺 ep_name:test_discovery.lua 两处调用已补首位参数,与生产调用 object.name 顺序(mctp_mdb_mgmt.lua:469-476)一致 ✅
  • 版本/元数据一致性:CHANGELOG 与 mds/service.json 均为 1.130.17,无遗漏硬编码 ✅

仍需关注的问题(后续验收事项)

无新增行内阻断项。上一轮已提出、当前仍未处理的 bus.bus 嵌套依赖 说明(快照读取走 bus.bus:timeout_call,要求显式 nil 校验/契约注释以避免接线时静默退化为 ipc_error)仍在待确认列表,建议在接入 !13 生产接线前落实。

最终结论

本业务模块核心正确性与有界性经多轮推演与测试验证可信,质量良好。按需求约束全部暂不合入,等待与 !13 传输收包入口联合验收。建议后续在真实未授时切换路径上补充集成验证。

likedislike
Oopenubmc-ci-botCollaborators
13 days ago Removed label: ci-running
openubmc-ci-botCollaborators
13 days ago Comments:
任务名称结果
pre-commit检查✅ SUCCESS
PR描述检查✅ SUCCESS
防投毒检查✅ SUCCESS
开源合规检查✅ SUCCESS
编译构建✅ SUCCESS
UT测试✅ SUCCESS
IT测试✅ SUCCESS
代码覆盖率✅ SUCCESS
修改行数检查✅ SUCCESS
头文件检查✅ SUCCESS
AI Review✅ SUCCESS
likedislike
Oopenubmc-ci-botCollaborators
13 days ago Added label: ci-successful