目录
IPMB内容介绍
IPMB communications protocol sepcification
IPMB协议可以实现下列目标
intellgent platform management logical devices
Network Functions and Commands
BMC IPMB LUN
Completion Codes
IPMB node to node message format
什么是IPMB?
IPMI 系统中除了有跟系统管理软件在系统接口处直接通信的BMC外,实际上整个ipmi是可以无限扩展的,这些扩展设备就全部接在了IPMB这根总线上。 intelligent platform management bus是基于I2C的总线,可以提供机箱内不同板子的标准化互联。IPMB可以用作辅助或紧急管理附加卡的标准接口。IPMB是用于BMC与外围组织管理控制器(SMC)的通信,这些外围组织管理器一般控制特定设备,其上传递的是IPMI命令。
note: 所谓的外围组织管理控制器就是指非BMC的IPMI controller, 这部分controller 在host cpu系统中统称为外围组织管理控制器(satellite management controller)SMC.
IPMI BLOCK
红框内的是通过IPMB连接的设备。这些设备跟BMC类似,也是用来进行管理芯片的,他们是对BMC的补充,从而扩展BMC的功能。
IPMB上的连接器进行区分:type-a, type-b。这两种链接器指定为IPMB提供辅助连接。
ICMB主要用来连接一个完整的主机,机器通过 ICMB进行一个桥接,然后才可以连接在IPMB上然后我们的bmc才可以对他进行访问。
问题: ipmb是一条基于I2C物理层的总线,实现主板不同总线之间的通信。为什么不能直接用I2C来进行通信? IPMB相当于在I2C协议上面增加了一层网络协议。
IPMB communications protocol sepcification
协议: 协议就是传输数据的规则。
总线:总线是一组传输通道,是由各种逻辑器件构成的传输数据的通道,一般由数据线,地址线,控制线等构成
接口:接口是一种连接标准,又常常被称为物理接口。
协议即总体框架,定义接口设备、器件及信号,总线及通道之间要满足的关系,若要实现信号的传输,所有的这些组成成员必须都具备各自满足的协议要求的必要条件
智能平台管理总线【IPMB】通信协议规范定义了用于在智能I2C设备之间传输IPMI消息的字节级别传输。也就是智能设备在IPMB上与另一个设备进行通信的方式。该协议位于100Kb i2c规范定义的比特流和硬件接口之上。协议和I2C物理接口共同构成了智能平台管理总线。
IPMB协议可以实现下列目标
1、支持分布式管理体系结构:传感器和控制器分布在各个管理模块上,他们的信息通过IPMB整合传输。
2、支持异步事件通知机制和关键事件记录机制:IPMB应用多主协议,允许控制器抢占总线发送“事件消息”到一个“事件接受”节点
3、提供一个可扩展的平台管理结构:新的管理信息资源可以很容易的加入到平台管理总线,而不会影响总线上的其他控制器。
4、多主操作:IPMB应用多主操作来支持分布式管理机制、异步事件通知机制以及平台扩展功能,这种机制支持总线上任何两个智能设备之间的通信。
5、支持非智能I2C设备:基于非智能的I2C设备,如SEEPROM/IO端口,此类设备可以直接访问,也可以作为智能控制器“owned”的设备进行管理。
6、支持out-of-band访问:IPMB是独立于系统处理器和内存总线的,这样,即使在系统故障的情况下还可以进行访问。
7、降低系统管理布线的复杂程度以及成本。
8、提供到机箱间管理的途径:支持机箱间智能平台管理总线的桥接。这是通过称为桥接点的存储转发类型设备完成的(此处为ICMB总线)。
intellgent platform management logical devices
IPM DEVICE: 智能平台管理设备,这是对消息做出相应的基本智能设备。IPMB上所有智能平台管理设备都应响应强制性的IPM设备命令
APPLICATION DEVICE: 解决一些超出标准传感器和事件功能的命令就由“application”逻辑设备处理
EVENT GENERATOR DEVICE: 事件生成器设备代表用于将事件消息传递到事件接收器设备的功能。IPMB事件生成器是指IPMB上生成事件消息的功能,BMC通常是IPMB事件接收器,但不是IPMB事件发生器。
SENSOR DEVICE: 为一个或者多个传感器提供一组用于发现,配置和访问传感器命令的设备。
message handler:代表与消息身份验证和路由的配置操作相关的功能,这些功能既可以再BMC内部,可以再BMC不同接口之间。
Request/response mechanism
IPMB使用请求/响应协议向智能设备发出请求。设备以单独的响应消息进行响应。请求消息和响应消息都是用I2C主写传输再总线上传输。即、请求消息是从作为I2C主设备的智能设备发出,并由作为I2C从设备的智能设备接受。响应的响应消息从作为I2C主设备的响应智能设备发出,并由作为i2c从设备的请求发起者接受。
请求的本质是要求将响应定向回请求者的方法。请求者通过在请求中提供其请求者的从地址(rqsa)和请求者的lun来提供此方向,提取此信息并用于响应对请求者的响应。请求和响应的网络功能具有不同的值。请求使用偶数网络函数值,响应使用响应的奇数网络函数值。因此,可以通过检查NETFN字段来区分请求和响应。
由于可能有多个请求未完成,因此必须确认是否是针对特定请求的响应。可以使用以下机制完成:
- 响应中包括响应者的从机地址(rsqa)和响应者的LUN;这将告诉请求者响应来自哪个节点
- 请求中的命令(cmd)字段包含在响应中,这使得请求者能够验证响应是否针对特定未完成的请求
- 请求中的seq字段在响应中返回,这允许请求者验证响应是针对哪个实例
Connection Header
任何智能节点都可以使用链路层寻址序列访问智能平台管理总线上的另一个节点。支持点对点和广播寻址。链路层报头根据进行访问的总线定义:本地和机箱间。
链路层和网络层这种组合称为连接头,连接头的成功传输建立了节点间的通信,从而为构成消息主题的后续字节的传输做好了准备。
下图显示了内部和外部访问的连接头:
连接头包含一个7位从地址,后跟I2C读写位。由于该协议仅适用I2C主读写传输,因此该读写位始终为0,表示写传输。该字节之后是网络功能/LUN字节和校验和字节。校验和字节允许验证连接头的完整性。
Network Functions and Commands
连接头中的网络层由一个六位字段组成,用于标识要访问的功能。剩下的两位是LUN字段,LUN字段提供节点内的进一步子寻址。网络功能用于将IPMI命令分为不同的集合。在解析层次结构中,LUN字段可被视为节点中特定的网络功能处理程序的选择器,而网络功能可被视为节点内特定命令集处理程序的选择器。(与IPMI中为同一种概念)。
BMC IPMB LUN
BMC支持多个Lun(logical unit),消息可以通过ipmb接口发送到这些LUN。这些LUN用于标识BMC中可发送消息的不同子地址。
Completion Codes
根据IPMI规范,智能IPMB节点将在所有响应消息中返回一个完成代码。完成代码表示关联消息十分成功且功能正常,如果没有,则提供指示完成条件的值。完成代码将应用于command级别。也就是说,他们是在通过消息传递接口并验证命令后对命令的解释。
完成代码值分为“通用“和”特定于命令“的范围。所有命令都可以返回常规完成代码。成功完成的命令应该返回00H。通用 和 特定于命令完成代码值的规范清参阅智能平台管理接口规范。
【table 5-2 completion codes]
IPMB node to node message format
node: IPMB里面的智能设备,互相讲话就是一个节点
丢包的三种情况:
- completion code有误 node busy
- protocal 上有checksum错误
- rqseq重复发送,会丢弃seq#重复的包
总结:
了解基本的IPMB内容,是我们理解phosphor-ipmi-ipmb模块的基础。我们将继续介绍如何在openbmc中实现IPMB的具体功能。文章来源:https://www.toymoban.com/news/detail-448121.html
文章来源地址https://www.toymoban.com/news/detail-448121.html
到了这里,关于IPMB内容简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!