rdma rocev2报文格式总结
格式如下:
wireshark抓包,soft-roce(基于rocev2实现的)格式如下:
其实这里看着有点奇怪,ICRC是跟在Payload头后面的,不知道为什么抓包看到的却是在BTH头后面的,还有就是看不到FCS??
其中BTH头的格式有以下字段:
BTH长度是12B。
opcode(1B):0-4bit表示操作方式,比如上面是RDMA WRITE,5-7表示qp的类型,比如上面是rc类型,根据opcode的组合,可能还会有一些额外的头部跟在BTH后面,比如上面跟了一个RETH头部。
Solicited Event(1bit):参考SE描述
MigReq(1bit):
Pad Count(2bit):数据包增加的额外长度,比如发送的包长度是3,那么为了4字节对齐,pad count的值就是1.
Header Version(4bit):该包的头部版本号?
Partition Key(2B):参考P_Key描述
Reserved(1B):预留
Destination Queue Pair(3B):目的端的qp num
Acknowledge Request:(1b)表示对端是否需要回复一个ack包
Reserved(7b):预留
Packet Sequence Number(3B):该包的序列号
在soft-roce里。对bth赋值的函数在
rxe_req.c
init_req_packet函数里,
init_req_packet -> bth_init
pad = (-payload) & 0x3;
rxe_hdr.h
static inline void bth_init(struct rxe_pkt_info *pkt, u8 opcode, int se,int mig, int pad, u16 pkey, u32 qpn, int ack_req,u32 psn)
{struct rxe_bth *bth = (struct rxe_bth *)(pkt->hdr + pkt->offset);bth->opcode = opcode;bth->flags = (pad << 4) & BTH_PAD_MASK;if (se)bth->flags |= BTH_SE_MASK;if (mig)bth->flags |= BTH_MIG_MASK;bth->pkey = cpu_to_be16(pkey);bth->qpn = cpu_to_be32(qpn & BTH_QPN_MASK);psn &= BTH_PSN_MASK;if (ack_req)psn |= BTH_ACK_MASK;bth->apsn = cpu_to_be32(psn);
}
ICRC(4B)
计算方式如下:
crc的计算可以先了解此贴:https://blog.csdn.net/qq_38158479/article/details/102859774
待完善。。
其余的一些额外扩展头部总结:
比如存在于rdma write方式中的RETH头部,格式如下:
RETH(16B):
VA(8B):表明数据包要存放的虚拟起始地址
r_key(4B):表明该虚拟地址的访问权限
dma length(4B):该包的长度
还有的像ack包的AETH,格式如下:
AETH(4B):
Syndrome(1B)
由Reserved+OpCode+Credit Count组成。
MSN(3B)
等等。。。根据BTH头部的opcode值还会有其它的额外开展头部,先不一一列举了,后续见到时再进行总结。
略。。。
参考:https://blog.csdn.net/u014114310/article/details/118074628
rdma rocev2报文格式总结相关推荐
- ARP协议的报文格式
结构ether_header定义了以太网帧首部:结构arphdr定义了其后的5个字段,其信息 用于在任何类型的介质上传送ARP请求和回答:ether_arp结构除了包含arphdr结构外, 还包含源主 ...
- tcp报文格式_面试必备TCP(一):三次握手
TCP大家都知道是什么东西,这个协议的具体报文格式如下: 标志位 URG:指示报文中有紧急数据,应尽快传送(相当于高优先级的数据). PSH:为1表示是带有push标志的数据,指示接收方在接收到该报文 ...
- 四、HTTP响应报文格式
一.响应报文格式 HTTP的响应报文的通用格式如下 主要包括状态行.首部行.空行和实体体,和请求报文的结构类似 示例 状态行 HTTP/1.1 200 OK\r\n 常见的状态码的类别如下 常用状态码 ...
- MQTT——控制报文格式
了解控制报文格式是学习MQTT中,笔者认为最为重要的一个知识点.MQTT的所有行为都离不开他.控制报文可以分为三个部分组成,分别为:固定报头.可以变报头.有效载荷部分. 注意:上面的说的报文的类型.是 ...
- RLC协议简单理解1-RLC报文格式
RLC协议简介 RLC(Radio Link Control)在无线协议架构中属于数据面协议中的一部分,数据传输从基站到终端的过程中,一共要经历UDP/SCTP-->SDAP/RRC--> ...
- webservice发送xml报文_海关总署公告2020年第120号(关于发布进出境公路运输工具货运舱单电子传输报文格式V1.1的公告)...
点击上方蓝色字体,关注我们 为切实加强公路进出境运输工具及货运舱单管理,进一步规范相关电子数据申报传输要求,根据海关总署2020年第113号公告,我署对进出境公路运输工具货运舱单电子传输报文中部分数据 ...
- DNS报文格式(RFC1035)
2.资源记录定义(RR definitions) 2.1 格式 后面分析报文的时候详细解释. 2.2 类型值(TYPE values) 类型主要用在资源 ...
- 【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )
文章目录 前言 一.HTTP 发展过程 二.HTTP/1.1 与 HTTP/2 对比 三.HTTP 报文格式 前言 目前如果在浏览器中访问 http 网站 , 浏览器会提示不安全 , 如下图 : 如果 ...
- 【计算机网络】网络层 : BGP 协议 ( BGP 协议简介 | BGP 协议信息交换 | BGP 协议报文格式 | BGP-4 常用报文 | RIP 、OSPF、BGP 协议对比 )
文章目录 一.路由选择协议分类 二.BGP 协议 简介 三.BGP 协议 信息交换过程 三.BGP 协议 报文格式 四.BGP 协议 特点 五.BGP-4 协议的 四种报文 六.RIP .OSPF.B ...
最新文章
- leangoo思维导图工具
- [LeetCode]Merge Intervals
- MSN即将退役,即时通讯开放平台成趋势
- L2-006 树的遍历
- python整理-day4
- 【算法学习】【图像增强】【Retinex】White Patch Retinex
- SNMP简单网络管理协议及开发测试工具
- 计算机鼠标游戏教学法,浅谈游戏教学法在信息技术教学中的应用论文
- Apeaksoft iOS Toolkit for Mac(iOS设备数据恢复软件)
- 鼠标悬浮图片上下颤抖的问题
- java山地车 故障,山地车骑行常见的10大问题及解决方案
- 图片放大缩小js工具
- 如何用Matlab做一个3D头像
- html5简单幻灯片图片转换,用纯CSS实现简单的相册幻灯片
- WPS画报的电脑壁纸怎么下载
- 斗地主含赖子的牌型判断算法
- HDU-5172-GTY's gay friends-线段树单点更新
- Java NIO(一)BIO vs NIO
- 2021年高压电工考试题及高压电工考试APP
- AdaBoost算法搭建信用卡精准营销模型
热门文章
- Gentle adaboost解释
- python源程序执行的方式边编译边执行_五年级Python试题
- 用 ScrapySharp 并行下载天涯图片
- 计算机专业英语主要句型及翻译技巧,浅析计算机专业英语特点及翻译技巧.doc...
- 成华区的顾连康复医院做康复治疗费用,能报销不?
- 小型健身俱乐部管理系统的设计与实现_kaic
- 第六届蓝桥杯大赛省赛C语言B组-填空题-奖券数目(Java实现)
- 串口转键盘输入程序源代码
- 合字研究——看看藏文里面一共有多少个字吧
- 将32位4通道的tif遥感图片转化为8位4通道