一种IPMI消息传输装置、系统及计算机设备.pdf

上传人:e1 文档编号:1036004 上传时间:2018-03-27 格式:PDF 页数:17 大小:600.38KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010246368.8

申请日:

2010.08.04

公开号:

CN102346717A

公开日:

2012.02.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/38申请日:20100804|||公开

IPC分类号:

G06F13/38; G06F13/14

主分类号:

G06F13/38

申请人:

研祥智能科技股份有限公司

发明人:

陈志列; 朱学朋; 贺才望

地址:

518057 广东省深圳市南山区高新中四道31号研祥科技大厦

优先权:

专利代理机构:

深圳中一专利商标事务所 44237

代理人:

贾振勇

PDF下载: PDF下载
内容摘要

本发明适用于计算机领域,提供了一种IPMI消息传输装置、系统及计算机设备,包括:IPMB消息接收处理任务单元,用于从IPMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求消息,则将请求消息放入IPMB请求消息队列;IPMB消息接收接口,用于读取所述IPMB请求消息队列中的消息;IPMB消息发送接口,用于将校验通过的IPMI消息通过I2C总线驱动发送出去;以及IPMB消息发送并等待应答接口,用于调用所述IPMB消息发送接口发送IPMI请求消息,并获取所述IPMB消息接收处理任务单元所取得的对应的应答消息。本发明为IPMI管理网络的组建提供了连接保证。

权利要求书

1: 一种 IPMI 消息传输装置, 其特征在于, 所述装置包括 : IPMB 消息接收处理任务单元, 用于从 IPMB 总线消息缓冲队列中取得消息, 若取得的 消息为应答消息, 则进行应答消息匹配, 若取得的消息为请求消息, 则将请求消息放入 IPMB 请求消息队列 ; IPMB 消息接收接口, 用于读取所述 IPMB 请求消息队列中的消息 ; IPMB 消息发送接口, 用于将校验通过的 IPMI 消息通过 I2C 总线驱动发送出去 ; 以及 IPMB 消息发送并等待应答接口, 用于调用所述 IPMB 消息发送接口发送 IPMI 请求消息, 并获取所述 IPMB 消息接收处理任务单元所取得的对应的应答消息。
2: 如权利要求 1 所述的装置, 其特征在于, 所述 IPMB 消息接收处理任务单元包括 : 消息读取模块, 用于从所述 IPMB 总线消息缓冲队列中读取消息 ; 消息校验模块, 用于校验消息包的消息校验字 ; 消息判断模块, 用于根据消息的网络功能号判断校验通过的消息是否为请求消息, 当 所述消息为请求消息时, 将所述请求消息放入所述 IPMB 请求消息队列 ; 应答消息匹配模块, 用于当所述消息判断模块判断消息为应答消息时, 在等待应答匹 配链表中查询应答消息的应答匹配项, 将应答消息发送给所述应答匹配项中描述的邮箱。
3: 如权利要求 1 所述的装置, 其特征在于, 所述 IPMB 消息发送并等待应答接口包括 : 消息邮箱创建模块, 判断要发送的消息是否为请求消息, 是则为所述请求消息创建一 个消息邮箱 ; 应答等待模块, 用于打包一个描述有所述消息邮箱的应答匹配项, 并加入等待应答匹 配链表 ; 应答处理模块, 用于将从所述消息邮箱中接收到的应答消息拷贝进返回数据缓存中, 从等待应答匹配链表中删除所述应答匹配项。
4: 如权利要求 1 所述的装置, 其特征在于, 所述 IPMB 消息为符合 IPMI 消息包格式的联 合体。
5: 如权利要求 1 所述的装置, 其特征在于, 所述 IPMB 驱动接口之间传输的消息包中配 置有数据的长度信息。
6: 一种 IPMI 消息传输系统, 其特征在于, 所述系统包括 I2C 总线驱动和 IPMB 驱动, IPMI 2 固件应用程序调用所述 I C 总线驱动的接口进行 IPMI 消息收发, 所述 IPMB 驱动的数据收 2 发通过所述 I C 总线驱动实现 ; 所述 IPMB 驱动包括 : IPMB 消息接收处理任务单元, 用于从 IPMB 总线消息缓冲队列中取得消息, 若取得的 消息为应答消息, 则进行应答消息匹配, 若取得的消息为请求消息, 则将请求消息放入 IPMB 请求消息队列 ; IPMB 消息接收接口, 用于读取所述 IPMB 请求消息队列中的消息 ; IPMB 消息发送接口, 用于将校验通过的 IPMI 消息通过所述 I2C 总线驱动发送出去 ; 以 及 IPMB 消息发送并等待应答接口, 用于调用所述 IPMB 消息发送接口发送 IPMI 请求消息, 并获取所述 IPMB 消息接收处理任务单元所取得的对应的应答消息。
7: 如权利要求 1 所述的系统, 其特征在于, 所述 IPMB 消息接收处理任务单元包括 : 2 消息读取模块, 用于从所述 IPMB 总线消息缓冲队列中读取消息 ; 消息校验模块, 用于校验消息包的消息校验字 ; 消息判断模块, 用于根据消息的网络功能号判断校验通过的消息是否为请求消息, 当 所述消息为请求消息时, 将所述请求消息放入所述 IPMB 请求消息队列 ; 应答消息匹配模块, 用于当所述消息判断模块判断消息为应答消息时, 在等待应答匹 配链表中查询应答消息的应答匹配项, 将应答消息发送给所述应答匹配项中描述的邮箱。
8: 如权利要求 6 所述的系统, 其特征在于, 所述 IPMB 消息发送并等待应答接口包括 : 消息邮箱创建模块, 判断要发送的消息是否为请求消息, 是则为所述请求消息创建一 个消息邮箱 ; 应答等待模块, 用于打包一个描述有所述消息邮箱的应答匹配项, 并加入等待应答匹 配链表 ; 应答处理模块, 用于将从所述消息邮箱中接收到的应答消息拷贝进返回数据缓存中, 从等待应答匹配链表中删除所述应答匹配项。
9: 如权利要求 6 所述的系统, 其特征在于, 所述 I2C 总线驱动包括 : I2C 中断服务单元, 用于接收消息包, 将接收到的消息包存放到 IPMB 总线消息缓冲队 列。
10: 如权利要求 6 所述的系统, 其特征在于, 所述 IPMB 消息为符合 IPMI 消息包格式的 联合体。
11: 如权利要求 6 所述的系统, 其特征在于, 所述 IPMB 驱动接口之间传输的消息包中配 置有数据的长度信息。
12: 一种包含权利要求 6 至 11 任一权利要求的 IPMI 消息传输系统的计算机设备。

说明书


一种 IPMI 消息传输装置、 系统及计算机设备

    【技术领域】
     本发明属于计算机领域, 尤其涉及一种 IPMI 消息传输装置、 系统及计算机设备。背景技术 在智能平台管理接口 (Intelligent Platform Management Interface, IPMI) 规 范中, 支持通过增加额外的管理控制器来扩展系统的平台管理功能。这些管理控制器之间 通过智能平台管理总线 (Intelligent Platform Management Bus, IPMB) 来实现通信。 IPMB 2 2 总线是基于 I C 的串行总线, IPMB 总线上可以挂载智能和非智能的 I C 设备。
     智 能 平 台 管 理 总 线 协 议 (Intelligent Platform Management Bus Communications Protocol Specification v1.0) 定义了智能设备之间的 IPMI 消息包的字 节级传输协议, 该协议和 I2C 物理接口共同组成了 IPMB 总线。
     IPMB 总线使用请求 (request)/ 应答 (response) 的通信机制 ( 当给一个智能设备 发送一个请求消息, 该设备会返回一个应答消息 ), 请求消息和应答消息格式如图 1 所示, 其中 :
     rs Slave Addr. 表示请求目的端的 I2C 设备从地址, 用来标示这条请求消息是发 给谁的 ;
     rq Slave Addr. 表示请求发出方的 I2C 设备从地址, 用来标示这条请求消息是谁 发出的 ;
     net Fn 表示网络功能号, 在 IPMI 规范中, 通过网络功能号将命令分成不同的功能 域以便管理, 在 IPMB 协议消息中通过网络功能号的奇偶来区分是请求消息还是应答消息 ;
     rsLUN 表示应答设备逻辑分区, 用来指示该命令是由目的设备的哪个逻辑模块来 应答 ;
     rqLUN 表示请求设备逻辑分区, 用来标示该请求命令是源设备的哪个逻辑模块发 出的 ;
     rqSeq 表示请求消息序列号, 用来区分是重发消息还是新消息 ;
     cmd 表示命令号, 它和网络功能号一起唯一确定一条 IPMI 命令 ;
     data byte 表示命令数据域, 不同的命令长度不同 ;
     checksum 表示消息校验字, 使得整条消息相加和为 0。
     不管是请求消息还是应答消息, 对于 I2C 总线来说, 都是通过 “主写模式” (Master Write) 来传输的。
     在现有的智能平台管理总线协议中, 只定义了 IPMI 消息的数据格式以及接口的 一些硬件特性, 缺乏具体的实现方式。
     发明内容
     本发明实施例的目的在于提供一种 IPMI 消息传输装置, 提供了 IPMB 驱动的实现 方案, 实现了 IPMB 消息的传输。本发明实施例是这样实现的, 一种 IPMI 消息传输装置, 所述装置包括 :
     IPMB 消息接收处理任务单元, 用于从 IPMB 总线消息缓冲队列中取得消息, 若取 得的消息为应答消息, 则进行应答消息匹配, 若取得的消息为请求消息, 则将请求消息放入 IPMB 请求消息队列 ;
     IPMB 消息接收接口, 用于读取所述 IPMB 请求消息队列中的消息 ;
     IPMB 消息发送接口, 用于将校验通过的 IPMI 消息通过 I2C 总线驱动发送出去 ; 以 及
     IPMB 消息发送并等待应答接口, 用于调用所述 IPMB 消息发送接口发送 IPMI 请求 消息, 并获取所述 IPMB 消息接收处理任务单元所取得的对应的应答消息。
     本发明实施例的另一目的在于提供一种 IPMI 消息传输系统, 所述系统包括 I2C 总 2 线驱动和 IPMB 驱动, IPMI 固件应用程序调用所述 I C 总线驱动的接口进行 IPMI 消息收发, 所述 IPMB 驱动的数据收发通过所述 I2C 总线驱动实现 ;
     所述 IPMB 驱动包括 :
     IPMB 消息接收处理任务单元, 用于从 IPMB 总线消息缓冲队列中取得消息, 若取 得的消息为应答消息, 则进行应答消息匹配, 若取得的消息为请求消息, 则将请求消息放入 IPMB 请求消息队列 ;
     IPMB 消息接收接口, 用于读取所述 IPMB 请求消息队列中的消息 ;
     IPMB 消息发送接口, 用于将校验通过的 IPMI 消息通过所述 I2C 总线驱动发送出 去; 以及
     IPMB 消息发送并等待应答接口, 用于调用所述 IPMB 消息发送接口发送 IPMI 请求 消息, 并获取所述 IPMB 消息接收处理任务单元所取得的对应的应答消息。
     本发明实施例的另一目的在于提供一种包含上述 IPMI 消息传输系统的计算机设 备。
     本发明实施例提供了 IPMB 总线驱动的具体结构和流程, 实现了 IPMI 消息的传输, 从而实现了智能平台管理总线协议, 为 IPMI 智能平台管理网络的组建提供了连接保证。 附图说明
     图 1 是现有技术提供的 IPMI 请求消息和应答消息的格式图 ;
     图 2 是本发明实施例提供的 IPMB 总线连接模型示意图 ;
     图 3 是本发明实施例提供的 IPMI 消息传输系统的结构图 ;
     图 4 是本发明实施例提供的 IPMB 消息接收处理任务单元的结构图 ;
     图 5 是本发明实施例提供的 IPMB 消息发送并等待应答接口的结构图 ;
     图 6 是本发明实施例提供的 IPMB 驱动和 I2C 总线驱动以及 IPMI 固件应用程序之 间的关系示意图 ;
     图 7 是本发明实施例提供的 IPMB 驱动中各个接口函数以及内部的 IPMB 消息处理 任务之间相互协作的层次关系, 及其之间的数据流向图 ;
     图 8 是本发明实施例提供的 I2C 总线中断处理函数的实现流程图 ;
     图 9 是本发明实施例提供的 IPMB 消息接收处理任务函数的实现流程图 ;
     图 10 是本发明实施例提供的 IPMB 总线接口发送消息并等待应答消息的接口函数的实现流程图。 具体实施方式
     为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
     本发明实施例提供了 IPMI 智能设备通过 IPMB 总线发送、 接收消息所需要的程序 接口、 驱动架构、 数据结构以及实现的程序流程, 实现了 IPMI 消息的传输。
     在 IPMI 规范中所定义的 IPMB 总线上可以挂载智能和非智能的 I2C 设备, 图2示 出了一个简单的 IPMB 总线连接模型, 其中 :
     基 板 管 理 控 制 器 (Baseboard Management Controller, BMC) 和 管 理 控 制 器 (Management Controller) 是智能设备, FRU SEEPROM( 存储现场可替换单元信息的具有串 行接口的电可擦除可变成只读存储器 ) 为非智能设备, 通过 IPMB 总线连接器 (Connector) 2 将 I C 总线延伸至机架内其他的远端管理载板 (Remote Management Card) 上, 远端的 IPMI 设备则有可能是智能设备, 也有可能是非智能设备。此外, IPMB 总线还可以通过连接器连 接平台内各个外插卡上的平台管理设备, 组建分布于整个平台的智能平台管理网络。 对于非智能设备, 如外插模块上用于存放现场可替换单元 (Field-Replaceable Unit, FRU) 数据的电可擦除可编程只读存储器 (Electrically Erasable Programmable Read-Only Memory, EEPROM)、 温度传感器等, 只需要使用 I2C 总线驱动加上特定的设备驱动 即可使用。
     智能设备主要是指具有自主处理能力的设备, 如 Micro TCA 架构中的模块管理控 制器 (Module Management Controller, MMC), 双方两个智能设备都需要发送和接收 IPMI 消 息, 因此在总线连接的两边都需要实现 IPMB 总线接收、 发送 IPMI 消息的接口驱动。
     图 3 示出了本发明实施例提供的 IPMI 消息传输系统的结构, 为便于说明, 仅示出 了与本发明实施例相关的部分。
     该 IPMI 消息传输系统可以广泛应用于支持 IPMI 相关规范的计算机设备。
     IPMI 固件应用程序 1 调用 IPMB 驱动 2 的接口进行 IPMI 消息的收发, IPMB 驱动 2 2 的数据的收发通过 I C 总线驱动 3 实现。
     I2C 中断服务单元 31 接收消息包, 将接收到的消息包存放在 IPMB 总线消息缓冲队 列。
     IPMB 消息接收处理任务单元 21 从 IPMB 总线消息缓冲队列中取得消息, 若取得的 消息为应答消息, 则进行应答消息匹配, 若取得的消息为请求消息, 则将请求消息放进 IPMB 请求消息队列。
     IPMB 消息接收接口 22 读取 IPMB 请求消息队列中的消息。
     IPMB 消息发送并等待应答接口 23 调用 IPMB 消息发送接口 24 发送 IPMI 请求消 息, 并从 IPMB 消息接收处理任务单元 21 获取对应的应答消息。IPMB 消息发送接口 24 将校 验通过的 IPMI 消息通过 I2C 总线驱动 3 的 I2C 写单元 (I2C write)32 发送出去。
     IPMI 固件应用程序 1 通过 IPMB 消息接收接口 22 从 IPMB 请求消息队列中每次读 取一条 IPMI 请求消息进行处理, 通过 IPMB 消息发送接口 24 将得到的应答消息发送出去。
     另外, IPMI 固件应用程序通过 IPMB 消息发送并等待应答接口 23 发送一条 IPMI 请 求消息, 并可获得对应的应答消息。
     图 4 示出了本发明实施例提供的 IPMB 消息接收处理任务单元的结构, 为了便于说 明, 仅示出了与本发明实施例相关的部分。
     消息读取模块 211 从 IPMB 总线消息缓冲队列中读取消息。
     消息校验模块 212 校验消息包的消息校验字 checksum。
     消息判断模块 213 根据消息的网络功能号 (net Fn) 判断校验通过的消息是否为 请求消息, 当为请求消息时, 将其放入 IPMB 请求消息队列。
     应答消息匹配模块 214 当消息判断模块 213 判断消息为应答消息时, 在等待应答 匹配链表中查询应答消息的应答匹配项, 将应答消息发送给应答匹配项中描述的邮箱。
     图 5 示出了本发明实施例提供的 IPMB 消息发送并等待应答接口的结构, 为了便于 说明, 仅示出了与本发明实施例相关的部分。
     消息邮箱创建模块 231 判断要发送的消息是否为请求消息, 是则为请求消息创建 一个消息邮箱。
     应答等待模块 232 打包一个描述有该消息邮箱的应答匹配项, 并加入等待应答匹 配链表。 应答处理模块 233 将从消息邮箱中接收到的应答消息拷贝进返回数据缓存中, 从 等待应答匹配链表中删除该应答匹配项。
     在本发明实施例中, 上述 IPMB 驱动接口可以通过函数实现, 具体包括 :
     IPMB 总线接口打开函数 IpmbIntfOpen() ;
     IPMB 总线接口关闭函数 IpmbIntfClosed() ;
     IPMB 总线接口接收函数 IpmbIntfRecv() ;
     IPMB 总线接口发送函数 IpmbIntfSend() ;
     IPMB 总线接口发送消息并等待应答消息的接口函数 IpmbIntfSendRecv() ;
     IPMB 总线初始化函数 IpmbInit()。
     图 6 示出了 IPMB 驱动和 I2C 总线驱动以及 IPMI 固件应用程序之间的关系, 其中 虚线内的部分是嵌入式操作系统所使用的文件系统, 如 Linux 操作系统, 对于 uCOSII 等不 使用文件系统的操作系统, 应用程序直接调用 IPMB 驱动的接口, IPMB 驱动的数据的收发最 2 终通过 I C 总线驱动来实现。
     IPMI 固件应用程序通过 IpmbIntfRecv() 接口读取一条 IPMI 请求消息进行处 理, 通过 IpmbIntfSend() 接口将得到的应答消息发送出去 ; 另外, IPMI 固件应用程序通过 IpmbIntfSendRecv() 接口发送一条 IPMI 请求消息, 并可获得对应的应答消息。
     智 能 平 台 管 理 总 线 协 议 (Intelligent Platform Management Bus Communications Protocol Specification v1.0) 定义了智能设备之间的 IPMI 消息包的格 式, 如图 1 所示。
     本发明实施例针对该数据格式配置了一个联合体 (IPMI_MESSAGE) 来描述 IPMB 消 息, 示例如下 :
     typedef union
     {
     struct { INT8U INT8U INT8U INT8U INT8U INT8U INT8U INT8U INT8U }Req ; struct { INT8UrsSA ; rsLUN:2 ; NetFn:6 ; Checksum1 ; rqSA ; rqLUN:2 ; rqSeq:6 ; Cmd ; Data[1] ;rqSA ;INT8U rqLUN:2 ;
     INT8U NetFn:6 ;
     INT8U Checksum1 ;
     INT8U rsSA ;
     INT8U rsLUN:2 ;
     INT8U rqSeq:6 ;
     INT8U Cmd ;
     INT8U CCode ;
     INT8U Data[1] ;
     }Rsp ;
     }IPMI_MESSAGE ;
     对于 request 和 response 数据中的数据域 (data bytes), 定义一个字节的数组。 在使用的过程中配置一个 IPMI_MESSAGE 类型的指针指向接收的消息包。
     由于实际的数据长度比本发明实施例中配置的数据长度要长, 所以可以使用大于 0 的下标来读取 Data[]。由于 IPMB 总线协议定义的数据长度不固定 ( 最长 2 个字节 ), 而 2 I C 总线在接收一段消息包时能够获取到数据的长度, 所以本发明实施例将 IPMB 驱动各个 模块之间传递的消息包格式配置成如下的形式, 这样通过给出数据长度, 方便后续程序实 现:
     typedef struct
     {
     INT8U Len ;
     INT8U Data[2] ; //IPMI Message
     }MSG_Q_MSG ;
     图 7 示出了 IPMB 驱动中各个接口函数以及内部的 IPMB 消息处理任务之间相互协作的层次关系, 及其之间的数据流向, 其中, 单箭头表示输入数据流, 宽箭头表示输出数据 2 流, 图中的 I C 总线驱动部分运行在主从模式, I2cInterruptServicer() 为 I2C 总线中断服 务函数, IpmbintfTask() 为 IPMB 消息接收处理任务函数。
     IPMI 固件应用程序调用 IpmbIntfSendRecv() 函数向外发送一条请求消息, 该函 2 数调用 IpmbIntfSend() 函数将请求消息通过 I C 总线驱动发送出去, 并建立一个应答匹配 项挂入等待应答匹配链表中, 其数据结构示例如下 :
     typedef struct
     {
     LIST_ENTRY Link ;
     INT8U rsSA ;
     INT8U rsLUN:2 ;
     INT8U NetFn:6 ;
     INT8U rqLUN:2 ;
     INT8U rqSeq:6 ;
     INT8U Cmd ;
     INT8U Timeout ;
     OS_EVENT *MBox ;
     }MMC_RSP_MATCH_ENTRY ;
     I2C 总线中断服务函数 I2cInterruptServicer() 接收到一个消息包后 (I2C 以起始 信号来判断一个消息包的开始, 以结束信号来判断一个消息包的结束 ), 将其存放在 IPMB 总线消息缓冲队列内。
     具体实现流程如图 8 所示, 详述如下 :
     在步骤 S801 中, 关闭中断 ;
     在步骤 S802 中, 接收数据 ;
     在步骤 S803 中, 判断数据是否到结束条件, 是则执行步骤 S804, 否则返回执行步 骤 S802 ;
     在步骤 S804 中, 将消息包存放在 IPMB 总线消息缓冲队列内 ;
     在步骤 S805 中, 开启中断。
     IPMB 消息接收处理任务函数 IpmbIntfTask() 从 IPMB 总线消息缓冲队列中取 得消息包, 根据消息的网络功能号 (net Fn) 的奇偶来分辨是请求消息还是应答消息, 如果是奇数, 进行应答消息匹配, 如果有匹配的请求消息正在等待 ( 即有任务正在调用 IpmbIntfSendRecv() 发出请求消息等待应答 ), 则将该应答消息发送给对应的邮箱, 这样 发送请求消息的任务就可以通过 IpmbIntfSendRecv() 函数返回对应的应答消息 ; 如果是 偶数则将该请求消息放进 IPMB 请求消息队列。
     具体实现流程如图 9 所示, 详述如下 :
     在步骤 S901 中, 从 IPMB 总线消息缓冲队列中读取一条消息 ;
     在步骤 S902 中, 判断 IPMB 总线消息缓冲队列是否为空, 是则返回执行步骤 S901, 否则执行步骤 S903 ;
     在步骤 S903 中, 校验消息包的消息校验字 checksum ;在 步 骤 S904 中, 判 断 校 验 是 否 通 过, 是 则 执 行 步 骤 S904, 否则返回执行步骤S901 ; 在步骤 S905 中, 判断消息是否为请求消息 Request, 是则执行步骤 S906, 否则执行 步骤 S907 ;
     在步骤 S906 中, 将请求消息放到 IPMB 请求消息队列 ;
     在步骤 S907 中, 在等待应答匹配链表中查询匹配项 ;
     在步骤 S908 中, 判断是否找到匹配项, 是则执行步骤 S909, 否则返回执行步骤 S901。
     在步骤 S909 中, 将应答消息发送给匹配项中描述的邮箱。
     IPMI 应用层通过 IpmbIntfRecv() 函数读取消息, IPMI 应用层进行请求消息处理 之后, 产生应答消息, 直接调用 IpmbIntfSend() 函数发送出去。
     IPMI 应用层通过 IpmbIntfSendRecv() 函数发送一条请求消息, 并获取对应的应 答消息。
     IpmbIntfSendRecv() 函数先要判断要发送消息是否为一个请求消息, 如果是, 则 为其创建一个消息邮箱, 并根据上述数据结构打包一个匹配项挂入等待应答匹配链表中, 调用 IpmbIntfSend() 函数将消息发送出去, 完成后等待邮箱接收返回消息, 应答消息会从 该邮箱中获得, 之后便删除此邮箱和等待应答匹配链表中刚加进去的节点, 返回应答消息。
     具体实现流程如图 10 所示, 详述如下 : 在步骤 S1001 中, 判断要发送的消息是否为请求消息 ; 在步骤 S1002 中, 为请求消息创建一个消息邮箱 ; 在步骤 S1003 中, 打包一个应答匹配项, 并加入等待应答匹配链表 ; 在步骤 S1004 中, 调用 IpmbIntfSend() 函数发送请求消息 ; 在步骤 S1005 中, 设置超时时间, 等待邮箱返回 ; 在步骤 S1006 中, 判断邮箱返回是否正确, 是则执行步骤 S1007, 否则执行步骤S1008 ; 在步骤 S1007 中, 将接收到的应答消息拷贝进返回数据缓存中 ;
     在步骤 S1008 中, 从等待应答匹配链表中删除应答匹配项。
     IpmbIntfRevc() 主要实现请求消息队列的读取, IpmbIntfSend() 则是将校验通 2 过的消息包通过 I2cWrite() 发送出去, I C 总线驱动不属于 IPMB 总线协议定义的范围, 不 再赘述。
     本发明实施例提供了 IPMB 总线驱动的具体结构和流程, 实现了 IPMI 消息的传输, 从而实现了智能平台管理总线协议, 为 IPMI 智能平台管理网络的组建提供了连接保证。
     以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。
    

一种IPMI消息传输装置、系统及计算机设备.pdf_第1页
第1页 / 共17页
一种IPMI消息传输装置、系统及计算机设备.pdf_第2页
第2页 / 共17页
一种IPMI消息传输装置、系统及计算机设备.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《一种IPMI消息传输装置、系统及计算机设备.pdf》由会员分享,可在线阅读,更多相关《一种IPMI消息传输装置、系统及计算机设备.pdf(17页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102346717A43申请公布日20120208CN102346717ACN102346717A21申请号201010246368822申请日20100804G06F13/38200601G06F13/1420060171申请人研祥智能科技股份有限公司地址518057广东省深圳市南山区高新中四道31号研祥科技大厦72发明人陈志列朱学朋贺才望74专利代理机构深圳中一专利商标事务所44237代理人贾振勇54发明名称一种IPMI消息传输装置、系统及计算机设备57摘要本发明适用于计算机领域,提供了一种IPMI消息传输装置、系统及计算机设备,包括IPMB消息接收处理任务单元,用于从I。

2、PMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求消息,则将请求消息放入IPMB请求消息队列;IPMB消息接收接口,用于读取所述IPMB请求消息队列中的消息;IPMB消息发送接口,用于将校验通过的IPMI消息通过I2C总线驱动发送出去;以及IPMB消息发送并等待应答接口,用于调用所述IPMB消息发送接口发送IPMI请求消息,并获取所述IPMB消息接收处理任务单元所取得的对应的应答消息。本发明为IPMI管理网络的组建提供了连接保证。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图7页CN102346737A1。

3、/2页21一种IPMI消息传输装置,其特征在于,所述装置包括IPMB消息接收处理任务单元,用于从IPMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求消息,则将请求消息放入IPMB请求消息队列;IPMB消息接收接口,用于读取所述IPMB请求消息队列中的消息;IPMB消息发送接口,用于将校验通过的IPMI消息通过I2C总线驱动发送出去;以及IPMB消息发送并等待应答接口,用于调用所述IPMB消息发送接口发送IPMI请求消息,并获取所述IPMB消息接收处理任务单元所取得的对应的应答消息。2如权利要求1所述的装置,其特征在于,所述IPMB消息接收处理任务单。

4、元包括消息读取模块,用于从所述IPMB总线消息缓冲队列中读取消息;消息校验模块,用于校验消息包的消息校验字;消息判断模块,用于根据消息的网络功能号判断校验通过的消息是否为请求消息,当所述消息为请求消息时,将所述请求消息放入所述IPMB请求消息队列;应答消息匹配模块,用于当所述消息判断模块判断消息为应答消息时,在等待应答匹配链表中查询应答消息的应答匹配项,将应答消息发送给所述应答匹配项中描述的邮箱。3如权利要求1所述的装置,其特征在于,所述IPMB消息发送并等待应答接口包括消息邮箱创建模块,判断要发送的消息是否为请求消息,是则为所述请求消息创建一个消息邮箱;应答等待模块,用于打包一个描述有所述消。

5、息邮箱的应答匹配项,并加入等待应答匹配链表;应答处理模块,用于将从所述消息邮箱中接收到的应答消息拷贝进返回数据缓存中,从等待应答匹配链表中删除所述应答匹配项。4如权利要求1所述的装置,其特征在于,所述IPMB消息为符合IPMI消息包格式的联合体。5如权利要求1所述的装置,其特征在于,所述IPMB驱动接口之间传输的消息包中配置有数据的长度信息。6一种IPMI消息传输系统,其特征在于,所述系统包括I2C总线驱动和IPMB驱动,IPMI固件应用程序调用所述I2C总线驱动的接口进行IPMI消息收发,所述IPMB驱动的数据收发通过所述I2C总线驱动实现;所述IPMB驱动包括IPMB消息接收处理任务单元,。

6、用于从IPMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求消息,则将请求消息放入IPMB请求消息队列;IPMB消息接收接口,用于读取所述IPMB请求消息队列中的消息;IPMB消息发送接口,用于将校验通过的IPMI消息通过所述I2C总线驱动发送出去;以及IPMB消息发送并等待应答接口,用于调用所述IPMB消息发送接口发送IPMI请求消息,并获取所述IPMB消息接收处理任务单元所取得的对应的应答消息。7如权利要求1所述的系统,其特征在于,所述IPMB消息接收处理任务单元包括权利要求书CN102346717ACN102346737A2/2页3消息读取模块。

7、,用于从所述IPMB总线消息缓冲队列中读取消息;消息校验模块,用于校验消息包的消息校验字;消息判断模块,用于根据消息的网络功能号判断校验通过的消息是否为请求消息,当所述消息为请求消息时,将所述请求消息放入所述IPMB请求消息队列;应答消息匹配模块,用于当所述消息判断模块判断消息为应答消息时,在等待应答匹配链表中查询应答消息的应答匹配项,将应答消息发送给所述应答匹配项中描述的邮箱。8如权利要求6所述的系统,其特征在于,所述IPMB消息发送并等待应答接口包括消息邮箱创建模块,判断要发送的消息是否为请求消息,是则为所述请求消息创建一个消息邮箱;应答等待模块,用于打包一个描述有所述消息邮箱的应答匹配项。

8、,并加入等待应答匹配链表;应答处理模块,用于将从所述消息邮箱中接收到的应答消息拷贝进返回数据缓存中,从等待应答匹配链表中删除所述应答匹配项。9如权利要求6所述的系统,其特征在于,所述I2C总线驱动包括I2C中断服务单元,用于接收消息包,将接收到的消息包存放到IPMB总线消息缓冲队列。10如权利要求6所述的系统,其特征在于,所述IPMB消息为符合IPMI消息包格式的联合体。11如权利要求6所述的系统,其特征在于,所述IPMB驱动接口之间传输的消息包中配置有数据的长度信息。12一种包含权利要求6至11任一权利要求的IPMI消息传输系统的计算机设备。权利要求书CN102346717ACN102346。

9、737A1/7页4一种IPMI消息传输装置、系统及计算机设备技术领域0001本发明属于计算机领域,尤其涉及一种IPMI消息传输装置、系统及计算机设备。背景技术0002在智能平台管理接口INTELLIGENTPLATFORMMANAGEMENTINTERFACE,IPMI规范中,支持通过增加额外的管理控制器来扩展系统的平台管理功能。这些管理控制器之间通过智能平台管理总线INTELLIGENTPLATFORMMANAGEMENTBUS,IPMB来实现通信。IPMB总线是基于I2C的串行总线,IPMB总线上可以挂载智能和非智能的I2C设备。0003智能平台管理总线协议INTELLIGENTPLATF。

10、ORMMANAGEMENTBUSCOMMUNICATIONSPROTOCOLSPECIFICATIONV10定义了智能设备之间的IPMI消息包的字节级传输协议,该协议和I2C物理接口共同组成了IPMB总线。0004IPMB总线使用请求REQUEST/应答RESPONSE的通信机制当给一个智能设备发送一个请求消息,该设备会返回一个应答消息,请求消息和应答消息格式如图1所示,其中0005RSSLAVEADDR表示请求目的端的I2C设备从地址,用来标示这条请求消息是发给谁的;0006RQSLAVEADDR表示请求发出方的I2C设备从地址,用来标示这条请求消息是谁发出的;0007NETFN表示网络功能。

11、号,在IPMI规范中,通过网络功能号将命令分成不同的功能域以便管理,在IPMB协议消息中通过网络功能号的奇偶来区分是请求消息还是应答消息;0008RSLUN表示应答设备逻辑分区,用来指示该命令是由目的设备的哪个逻辑模块来应答;0009RQLUN表示请求设备逻辑分区,用来标示该请求命令是源设备的哪个逻辑模块发出的;0010RQSEQ表示请求消息序列号,用来区分是重发消息还是新消息;0011CMD表示命令号,它和网络功能号一起唯一确定一条IPMI命令;0012DATABYTE表示命令数据域,不同的命令长度不同;0013CHECKSUM表示消息校验字,使得整条消息相加和为0。0014不管是请求消息还。

12、是应答消息,对于I2C总线来说,都是通过“主写模式”MASTERWRITE来传输的。0015在现有的智能平台管理总线协议中,只定义了IPMI消息的数据格式以及接口的一些硬件特性,缺乏具体的实现方式。发明内容0016本发明实施例的目的在于提供一种IPMI消息传输装置,提供了IPMB驱动的实现方案,实现了IPMB消息的传输。说明书CN102346717ACN102346737A2/7页50017本发明实施例是这样实现的,一种IPMI消息传输装置,所述装置包括0018IPMB消息接收处理任务单元,用于从IPMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求。

13、消息,则将请求消息放入IPMB请求消息队列;0019IPMB消息接收接口,用于读取所述IPMB请求消息队列中的消息;0020IPMB消息发送接口,用于将校验通过的IPMI消息通过I2C总线驱动发送出去;以及0021IPMB消息发送并等待应答接口,用于调用所述IPMB消息发送接口发送IPMI请求消息,并获取所述IPMB消息接收处理任务单元所取得的对应的应答消息。0022本发明实施例的另一目的在于提供一种IPMI消息传输系统,所述系统包括I2C总线驱动和IPMB驱动,IPMI固件应用程序调用所述I2C总线驱动的接口进行IPMI消息收发,所述IPMB驱动的数据收发通过所述I2C总线驱动实现;0023。

14、所述IPMB驱动包括0024IPMB消息接收处理任务单元,用于从IPMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求消息,则将请求消息放入IPMB请求消息队列;0025IPMB消息接收接口,用于读取所述IPMB请求消息队列中的消息;0026IPMB消息发送接口,用于将校验通过的IPMI消息通过所述I2C总线驱动发送出去;以及0027IPMB消息发送并等待应答接口,用于调用所述IPMB消息发送接口发送IPMI请求消息,并获取所述IPMB消息接收处理任务单元所取得的对应的应答消息。0028本发明实施例的另一目的在于提供一种包含上述IPMI消息传输系统的。

15、计算机设备。0029本发明实施例提供了IPMB总线驱动的具体结构和流程,实现了IPMI消息的传输,从而实现了智能平台管理总线协议,为IPMI智能平台管理网络的组建提供了连接保证。附图说明0030图1是现有技术提供的IPMI请求消息和应答消息的格式图;0031图2是本发明实施例提供的IPMB总线连接模型示意图;0032图3是本发明实施例提供的IPMI消息传输系统的结构图;0033图4是本发明实施例提供的IPMB消息接收处理任务单元的结构图;0034图5是本发明实施例提供的IPMB消息发送并等待应答接口的结构图;0035图6是本发明实施例提供的IPMB驱动和I2C总线驱动以及IPMI固件应用程序之。

16、间的关系示意图;0036图7是本发明实施例提供的IPMB驱动中各个接口函数以及内部的IPMB消息处理任务之间相互协作的层次关系,及其之间的数据流向图;0037图8是本发明实施例提供的I2C总线中断处理函数的实现流程图;0038图9是本发明实施例提供的IPMB消息接收处理任务函数的实现流程图;0039图10是本发明实施例提供的IPMB总线接口发送消息并等待应答消息的接口函数说明书CN102346717ACN102346737A3/7页6的实现流程图。具体实施方式0040为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施。

17、例仅仅用以解释本发明,并不用于限定本发明。0041本发明实施例提供了IPMI智能设备通过IPMB总线发送、接收消息所需要的程序接口、驱动架构、数据结构以及实现的程序流程,实现了IPMI消息的传输。0042在IPMI规范中所定义的IPMB总线上可以挂载智能和非智能的I2C设备,图2示出了一个简单的IPMB总线连接模型,其中0043基板管理控制器BASEBOARDMANAGEMENTCONTROLLER,BMC和管理控制器MANAGEMENTCONTROLLER是智能设备,FRUSEEPROM存储现场可替换单元信息的具有串行接口的电可擦除可变成只读存储器为非智能设备,通过IPMB总线连接器CONN。

18、ECTOR将I2C总线延伸至机架内其他的远端管理载板REMOTEMANAGEMENTCARD上,远端的IPMI设备则有可能是智能设备,也有可能是非智能设备。此外,IPMB总线还可以通过连接器连接平台内各个外插卡上的平台管理设备,组建分布于整个平台的智能平台管理网络。0044对于非智能设备,如外插模块上用于存放现场可替换单元FIELDREPLACEABLEUNIT,FRU数据的电可擦除可编程只读存储器ELECTRICALLYERASABLEPROGRAMMABLEREADONLYMEMORY,EEPROM、温度传感器等,只需要使用I2C总线驱动加上特定的设备驱动即可使用。0045智能设备主要是指。

19、具有自主处理能力的设备,如MICROTCA架构中的模块管理控制器MODULEMANAGEMENTCONTROLLER,MMC,双方两个智能设备都需要发送和接收IPMI消息,因此在总线连接的两边都需要实现IPMB总线接收、发送IPMI消息的接口驱动。0046图3示出了本发明实施例提供的IPMI消息传输系统的结构,为便于说明,仅示出了与本发明实施例相关的部分。0047该IPMI消息传输系统可以广泛应用于支持IPMI相关规范的计算机设备。0048IPMI固件应用程序1调用IPMB驱动2的接口进行IPMI消息的收发,IPMB驱动2的数据的收发通过I2C总线驱动3实现。0049I2C中断服务单元31接收。

20、消息包,将接收到的消息包存放在IPMB总线消息缓冲队列。0050IPMB消息接收处理任务单元21从IPMB总线消息缓冲队列中取得消息,若取得的消息为应答消息,则进行应答消息匹配,若取得的消息为请求消息,则将请求消息放进IPMB请求消息队列。0051IPMB消息接收接口22读取IPMB请求消息队列中的消息。0052IPMB消息发送并等待应答接口23调用IPMB消息发送接口24发送IPMI请求消息,并从IPMB消息接收处理任务单元21获取对应的应答消息。IPMB消息发送接口24将校验通过的IPMI消息通过I2C总线驱动3的I2C写单元I2CWRITE32发送出去。0053IPMI固件应用程序1通过。

21、IPMB消息接收接口22从IPMB请求消息队列中每次读取一条IPMI请求消息进行处理,通过IPMB消息发送接口24将得到的应答消息发送出去。说明书CN102346717ACN102346737A4/7页70054另外,IPMI固件应用程序通过IPMB消息发送并等待应答接口23发送一条IPMI请求消息,并可获得对应的应答消息。0055图4示出了本发明实施例提供的IPMB消息接收处理任务单元的结构,为了便于说明,仅示出了与本发明实施例相关的部分。0056消息读取模块211从IPMB总线消息缓冲队列中读取消息。0057消息校验模块212校验消息包的消息校验字CHECKSUM。0058消息判断模块21。

22、3根据消息的网络功能号NETFN判断校验通过的消息是否为请求消息,当为请求消息时,将其放入IPMB请求消息队列。0059应答消息匹配模块214当消息判断模块213判断消息为应答消息时,在等待应答匹配链表中查询应答消息的应答匹配项,将应答消息发送给应答匹配项中描述的邮箱。0060图5示出了本发明实施例提供的IPMB消息发送并等待应答接口的结构,为了便于说明,仅示出了与本发明实施例相关的部分。0061消息邮箱创建模块231判断要发送的消息是否为请求消息,是则为请求消息创建一个消息邮箱。0062应答等待模块232打包一个描述有该消息邮箱的应答匹配项,并加入等待应答匹配链表。0063应答处理模块233。

23、将从消息邮箱中接收到的应答消息拷贝进返回数据缓存中,从等待应答匹配链表中删除该应答匹配项。0064在本发明实施例中,上述IPMB驱动接口可以通过函数实现,具体包括0065IPMB总线接口打开函数IPMBINTFOPEN;0066IPMB总线接口关闭函数IPMBINTFCLOSED;0067IPMB总线接口接收函数IPMBINTFRECV;0068IPMB总线接口发送函数IPMBINTFSEND;0069IPMB总线接口发送消息并等待应答消息的接口函数IPMBINTFSENDRECV;0070IPMB总线初始化函数IPMBINIT。0071图6示出了IPMB驱动和I2C总线驱动以及IPMI固件应。

24、用程序之间的关系,其中虚线内的部分是嵌入式操作系统所使用的文件系统,如LINUX操作系统,对于UCOSII等不使用文件系统的操作系统,应用程序直接调用IPMB驱动的接口,IPMB驱动的数据的收发最终通过I2C总线驱动来实现。0072IPMI固件应用程序通过IPMBINTFRECV接口读取一条IPMI请求消息进行处理,通过IPMBINTFSEND接口将得到的应答消息发送出去;另外,IPMI固件应用程序通过IPMBINTFSENDRECV接口发送一条IPMI请求消息,并可获得对应的应答消息。0073智能平台管理总线协议INTELLIGENTPLATFORMMANAGEMENTBUSCOMMUNIC。

25、ATIONSPROTOCOLSPECIFICATIONV10定义了智能设备之间的IPMI消息包的格式,如图1所示。0074本发明实施例针对该数据格式配置了一个联合体IPMI_MESSAGE来描述IPMB消息,示例如下0075TYPEDEFUNION0076说明书CN102346717ACN102346737A5/7页80077STRUCT00780079INT8URSSA;0080INT8URSLUN2;0081INT8UNETFN6;0082INT8UCHECKSUM1;0083INT8URQSA;0084INT8URQLUN2;0085INT8URQSEQ6;0086INT8UCMD;00。

26、87INT8UDATA1;0088REQ;0089STRUCT00900091INT8URQSA;0092INT8URQLUN2;0093INT8UNETFN6;0094INT8UCHECKSUM1;0095INT8URSSA;0096INT8URSLUN2;0097INT8URQSEQ6;0098INT8UCMD;0099INT8UCCODE;0100INT8UDATA1;0101RSP;0102IPMI_MESSAGE;0103对于REQUEST和RESPONSE数据中的数据域DATABYTES,定义一个字节的数组。在使用的过程中配置一个IPMI_MESSAGE类型的指针指向接收的消息包。。

27、0104由于实际的数据长度比本发明实施例中配置的数据长度要长,所以可以使用大于0的下标来读取DATA。由于IPMB总线协议定义的数据长度不固定最长2个字节,而I2C总线在接收一段消息包时能够获取到数据的长度,所以本发明实施例将IPMB驱动各个模块之间传递的消息包格式配置成如下的形式,这样通过给出数据长度,方便后续程序实现0105TYPEDEFSTRUCT01060107INT8ULEN;0108INT8UDATA2;/IPMIMESSAGE0109MSG_Q_MSG;0110图7示出了IPMB驱动中各个接口函数以及内部的IPMB消息处理任务之间相互协说明书CN102346717ACN10234。

28、6737A6/7页9作的层次关系,及其之间的数据流向,其中,单箭头表示输入数据流,宽箭头表示输出数据流,图中的I2C总线驱动部分运行在主从模式,I2CINTERRUPTSERVICER为I2C总线中断服务函数,IPMBINTFTASK为IPMB消息接收处理任务函数。0111IPMI固件应用程序调用IPMBINTFSENDRECV函数向外发送一条请求消息,该函数调用IPMBINTFSEND函数将请求消息通过I2C总线驱动发送出去,并建立一个应答匹配项挂入等待应答匹配链表中,其数据结构示例如下0112TYPEDEFSTRUCT01130114LIST_ENTRYLINK;0115INT8URSSA。

29、;0116INT8URSLUN2;0117INT8UNETFN6;0118INT8URQLUN2;0119INT8URQSEQ6;0120INT8UCMD;0121INT8UTIMEOUT;0122OS_EVENTMBOX;0123MMC_RSP_MATCH_ENTRY;0124I2C总线中断服务函数I2CINTERRUPTSERVICER接收到一个消息包后I2C以起始信号来判断一个消息包的开始,以结束信号来判断一个消息包的结束,将其存放在IPMB总线消息缓冲队列内。0125具体实现流程如图8所示,详述如下0126在步骤S801中,关闭中断;0127在步骤S802中,接收数据;0128在步骤S。

30、803中,判断数据是否到结束条件,是则执行步骤S804,否则返回执行步骤S802;0129在步骤S804中,将消息包存放在IPMB总线消息缓冲队列内;0130在步骤S805中,开启中断。0131IPMB消息接收处理任务函数IPMBINTFTASK从IPMB总线消息缓冲队列中取得消息包,根据消息的网络功能号NETFN的奇偶来分辨是请求消息还是应答消息,如果是奇数,进行应答消息匹配,如果有匹配的请求消息正在等待即有任务正在调用IPMBINTFSENDRECV发出请求消息等待应答,则将该应答消息发送给对应的邮箱,这样发送请求消息的任务就可以通过IPMBINTFSENDRECV函数返回对应的应答消息;。

31、如果是偶数则将该请求消息放进IPMB请求消息队列。0132具体实现流程如图9所示,详述如下0133在步骤S901中,从IPMB总线消息缓冲队列中读取一条消息;0134在步骤S902中,判断IPMB总线消息缓冲队列是否为空,是则返回执行步骤S901,否则执行步骤S903;0135在步骤S903中,校验消息包的消息校验字CHECKSUM;说明书CN102346717ACN102346737A7/7页100136在步骤S904中,判断校验是否通过,是则执行步骤S904,否则返回执行步骤S901;0137在步骤S905中,判断消息是否为请求消息REQUEST,是则执行步骤S906,否则执行步骤S907。

32、;0138在步骤S906中,将请求消息放到IPMB请求消息队列;0139在步骤S907中,在等待应答匹配链表中查询匹配项;0140在步骤S908中,判断是否找到匹配项,是则执行步骤S909,否则返回执行步骤S901。0141在步骤S909中,将应答消息发送给匹配项中描述的邮箱。0142IPMI应用层通过IPMBINTFRECV函数读取消息,IPMI应用层进行请求消息处理之后,产生应答消息,直接调用IPMBINTFSEND函数发送出去。0143IPMI应用层通过IPMBINTFSENDRECV函数发送一条请求消息,并获取对应的应答消息。0144IPMBINTFSENDRECV函数先要判断要发送消。

33、息是否为一个请求消息,如果是,则为其创建一个消息邮箱,并根据上述数据结构打包一个匹配项挂入等待应答匹配链表中,调用IPMBINTFSEND函数将消息发送出去,完成后等待邮箱接收返回消息,应答消息会从该邮箱中获得,之后便删除此邮箱和等待应答匹配链表中刚加进去的节点,返回应答消息。0145具体实现流程如图10所示,详述如下0146在步骤S1001中,判断要发送的消息是否为请求消息;0147在步骤S1002中,为请求消息创建一个消息邮箱;0148在步骤S1003中,打包一个应答匹配项,并加入等待应答匹配链表;0149在步骤S1004中,调用IPMBINTFSEND函数发送请求消息;0150在步骤S1。

34、005中,设置超时时间,等待邮箱返回;0151在步骤S1006中,判断邮箱返回是否正确,是则执行步骤S1007,否则执行步骤S1008;0152在步骤S1007中,将接收到的应答消息拷贝进返回数据缓存中;0153在步骤S1008中,从等待应答匹配链表中删除应答匹配项。0154IPMBINTFREVC主要实现请求消息队列的读取,IPMBINTFSEND则是将校验通过的消息包通过I2CWRITE发送出去,I2C总线驱动不属于IPMB总线协议定义的范围,不再赘述。0155本发明实施例提供了IPMB总线驱动的具体结构和流程,实现了IPMI消息的传输,从而实现了智能平台管理总线协议,为IPMI智能平台管。

35、理网络的组建提供了连接保证。0156以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。说明书CN102346717ACN102346737A1/7页11图1图2说明书附图CN102346717ACN102346737A2/7页12图3说明书附图CN102346717ACN102346737A3/7页13图4图5图6说明书附图CN102346717ACN102346737A4/7页14图7说明书附图CN102346717ACN102346737A5/7页15图8说明书附图CN102346717ACN102346737A6/7页16图9说明书附图CN102346717ACN102346737A7/7页17图10说明书附图CN102346717A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1