littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于C语言的PLDM消息编解码库

项目简介

本项目是一个基于C语言的开源库,用于处理PLDM(Platform Management Protocol Daemon)消息的编码和解码。具有轻量级、动态内存分配少、字节序安全等特点,不依赖OpenBMC特定环境,可被其他项目使用。同时,项目提供了对PLDM库进行测试的相关功能,能模拟PLDM协议中各种功能的请求和响应,并对编解码过程进行测试。

项目的主要特性和功能

库功能

  1. 消息编解码:为不同PLDM命令提供请求编码、响应解码、请求解码和响应编码的API。
  2. 头信息处理:提供对PLDM消息头进行打包和解包的API。
  3. ABI管理:将库暴露的ABI分为稳定、测试和废弃三类,方便开发者使用和维护。
  4. OEM支持:通过特定目录结构和配置,支持OEM或供应商特定的功能和语义信息。
  5. Requester API:提供与底层传输层交互的API,用于发送和接收PLDM消息。

测试功能

  1. BIOS表操作测试:测试BIOS表的创建、编码、解码、迭代和查找功能。
  2. 固件更新测试:测试PLDM固件更新协议中命令和响应的编码和解码。
  3. FRU记录测试:测试获取和设置FRU记录表请求和响应的编码和解码。
  4. PDR和实体关联树测试:测试PDR和实体关联树的添加、删除和查找记录功能。
  5. 平台管理测试:测试PLDM协议中特定功能的实现,如事件消息处理等。
  6. 实用工具测试:测试PLDM工具库中的实用功能,如CRC校验等。

安装使用步骤

库的构建与测试

  1. 准备工具:确保已安装mesonninja,或者引入OpenBMC ARM/x86 SDK。
  2. 构建库:在项目根目录下执行以下命令: sh meson setup builddir && ninja -C builddir
  3. 运行单元测试:执行以下命令运行测试: sh meson setup builddir && meson test -C builddir

测试项目的使用

  1. 安装依赖:根据项目需要,安装相关的依赖库和工具,如gtest测试框架。
  2. 编译测试:使用适当的构建工具(如CMake)编译测试代码。
  3. 运行测试:运行测试,验证PLDM库的功能正确性。

注意:由于测试代码涉及具体的PLDM协议实现,可能需要相应的硬件或模拟环境来执行测试。在没有实际硬件的情况下,可以通过模拟PLDM消息和响应来进行测试。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】