开发ast2400自定义ipmi命令

定义自己的NetFnCMD

  • ipmipdk_dev包中添加两个头文件SDC_CmdsHndlr.hPDK_Cmds.h,一个文件定义NetFnCMD的编码和命令处理的函数指针并声明各个函数,一个文件定义有关自定义命令需要的各种数据结构.例子如下:
    SDC_CmdsHndlr.h

  • 这个例子中定义的NetFunction为:NETFN_SDC,编码为0x3A,在这个NetFn下定义了 4 条 OEM 指令,编码分别为 0xA0, 0xA1, 0xA2, 0xA3,这四条命令对应的处理函数为SDCSetUplinkInfo, SDCGetUplinkInfo, SDCSetStorgeInfoSDCGetStorgeInfo.
    PDK_Cmds.h

  • 这个文件中定义了各个命令的请求数据结构和响应数据结构,如果命令没有请求数据,可以不定义请求数据结构,但是各个命令一定要定义响应的数据结构,至少应有一项:完成码CompletionCode.

将自定义的命令添加到网络功能表中

  • libipmipdkcmds包中的cmdselect.c中添加如下内容:
    cmdselect.c
  • libipmipdkcmds包中的PDKCmds.c中添加如下内容:
    PDKCmds.c

实现各个命令处理函数

  • libipmipdkcmds包中添加一个文件,定义自己的命令处理函数.在各个函数体中实现自己设计的功能.
    SDC_Cmds.c

makefile文件作相应的修改:

makefile