云计算百科
云计算领域专业知识百科平台

(转自公众hao“服务器BMC”)服务器BMC芯片功能——MCTP协议

有朋友问MCTP的事情。作为技术小白,对一些细节不了解,平时听其他人交流过,利用周末学习了一下。不对之处,请专家指出。

    MCTP(Management Component Transport Protocol,管理组件传输协议),对于做服务器BIOS、BMC开发的同学来说不陌生。它是一种管理和控制传输协议,用于设备之间的通信和控制。它定义了一套通信规范,包括设备发现、配置、监控和故障处理等。最早由PCI-SIG(Peripheral Component Interconnect Special Interest Group)提出。

MCTP协议的发展经历了多个关键阶段:

  • 2004年:随着服务器复杂度提升,IPMI 1.5暴露带宽不足的问题

  • 2008年:DMTF发布MCTP协议草案,定义基于消息的轻量级传输框架

  • 2010年:MCTP 1.0正式纳入DSP0236标准,支持I²C/SMBus传输绑定

  • 2015年:DSP0236 v1.3引入PCIe VDM传输模式,带宽提升至2.5GT/s

  • 2020年:MCTP 2.0支持多拓扑网络及TLS 1.3加密

  • 2024年:集成量子安全算法的MCTP 3.0提案通过

     简单来说,MCTP是一个与底层物理总线无关的消息传输协议,最核心的设计理念是:独立于底层物理介质——工作在类似"数据链路层"的位置,可以在不同的物理介质上传输管理消息,如PCIe、SMBus/I2C、I3C、USB等,MCTP都给上层应用提供了一套统一的通信接口。一个MCTP网络中有多个“端点”(Endpoint),每个端点有一个唯一的EID(端点ID,8位逻辑地址)作为标识。在此基础上,MCTP可以承载PLDM(平台级数据模型)、SPDM(安全协议与数据模型)、NC-SI(网络控制器边带接口)以及OEM自定义等上层管理协议。

MCTP over PCIe的功能:

    在MCTP的各种传输绑定中,MCTP over PCIe是最受关注的方案之一。通过 PCIe 的 VDM(Vendor Defined Message,厂商定义消息)传输 MCTP 数据包,兼顾高速带宽与管理通信的可靠性。MCTP消息作为Type 1 VDM的一种特殊形式传输,并被赋予唯一的VDM Code值0000b,这样区别于其他VDM。其报文结构包含:

  • PCIe头部:定义目标设备ID、源ID等路由信息
  • MCTP头部:包含版本号、序列号、消息类型等控制字段
  • 数据载荷:承载PLDM、SPDM等上层协议数据
  • CRC校验:确保数据完整性

有朋友问Bus Owner和Bus Owner Proxy:    

在 Intel 平台中,MCTP 的总线管理机制有独特设计——Bus Owner(总线所有者) 与Bus Owner Proxy(总线所有者代理),是 Intel 平台 MCTP 通信的核心逻辑。

——Bus Owner(总线所有者)

   在Intel架构中,Intel Management Engine(ME)充当Bus Owner。Bus Owner是MCTP网络中的核心管理实体,负责:

  • 端点发现:通过广播命令发现PCIe总线上的MCTP设备

  • EID分配:为每个MCTP端点分配唯一的Endpoint ID

  • 路由管理:维护MCTP网络的路由表,确保消息正确转发

  • 网络协调:管理MCTP网络的拓扑结构和通信时序

    Bus Owner是MCTP网络的"大脑",没有它,端点之间无法建立有效的通信。

——Bus Owner Proxy(总线所有者代理)

     然而,在实际的带外管理场景中,BMC需要与PCIe设备通信,但它并非直接的Bus Owner。这时就需要Bus Owner Proxy机制。

工作流程如下:

  • BMC向Intel ME发送请求,申请Bus Owner Proxy权限

  • ME授权后,BMC获得代理资格

  • BMC通过MCTP socket与主机侧的MCTP组件建立通信

  • 创建消息处理任务,实现对PCIe设备的带外管理

  •    一般这种MCTP协议处理大概在芯片硬件完成了,BMC固件负责拆包后的数据处理。

        以上个人学习,请指正。谢谢。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » (转自公众hao“服务器BMC”)服务器BMC芯片功能——MCTP协议
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!