微知-RDMA中的四大M,以及Mellanox驱动中的MAD为什么叫MA的D?(managent agent、Management Datagrams)
背景
RDMA中建链除了有TCP方式,还有有CM建链。CM建链是指用带内通信进行建链。带内就是指通过RDMA链路进行建链。这里的CM是communication Management。这里的CM看似是一个简单的communication的Management,实际是RDMA中四大M的一种M。
4大M
Infiniband定义了一系列的Manager,每种Manager负责IBA设备某些方面的操作。主要包括有:
- SM: subnet Manager 就是子网管理,包括LID GID LRH GRH等
- PM:performance Manager 性能管理
- DM:Device Manager
- CM:Communication Manager
关于MA
在IB设备上,针对每种manager有对应的agnet,叫做MA(managent agent),是用来处理来自于manager的属性访问请求的。比如
- SMA:是SM的agnet,用来handle来自于sm的requests
- PMA:同理
- DMA:同理
关于MAD
当一个在设备上的MA收到来自于对应Manager的request后,首先在对应的属性上处理,然后恢复处理结果。处理结果通过响应packet来反馈。
而这个Packet每个manager用不同的packet,这些packet就叫做MAD, 也就是Management Datagrams。
其他:关于这里为何叫做Datagrams,目前估测类似UDP,它不需要回复每个pkt,而是业务层自己采用responce的方式,也就是MAD。所以MAD的本质是D,是属于Ma的D
综述
至此,可以从CM迁出了在IB网络中的多种Manager,以及Manager和Manager Agent这种机制,以及所采用的MAD这种报文方式交互。