SierraNet协议分析使用指导[RDMA]| 如何设置 NVMe QP 端口以进行正确解码

news2025/5/12 17:24:08

在解码RoCEv2数据包(包括TCP RDMA和RoCE RDMA)时,若捕获的跟踪数据无法正确解码,通常需要执行特定的解码步骤。对于RoCE RDMA跟踪数据的处理,分析器主要采用两种方式获取必要信息以实现数据包解码:

首先,分析器通过NVMe QP端口获取所需信息。这些带有RoCEv2的NVMe QP端口可在启动器与目标建立连接时被"自然"读取,分析器利用这些信息来识别QP端口,从而解码NVMe数据包。此外,在连接建立后,有时需要手动输入这些QP端口信息。

对于TCP RDMA跟踪数据的处理,唯一必要的信息是"NVMe/TCP端口",这些端口通常已预先存在于解码器中,我们将在后续详细讨论。

值得注意的是,从4.40版本开始,我们简化了NVMe解码流程,确保跟踪数据能够被解码为NVMe类型,或使分析器能够预先将跟踪数据记录为NVMe类型,而无需了解具体的NVMe QP端口信息。本文将首先介绍4.40版本新增的解码便捷性,然后阐述4.40版本之前必须执行的NVMe解码步骤。

G.1.1 从版本4.40开始设置NVMe解码

由于确保每次客户想要解码NVMe跟踪或确保解码设置正确(无论是否捕获了RoCE_V2-MAD数据包,这是我们之前加载解码表的唯一方式)的复杂性,现在可以在开始“录制”之前通过进入设置首选项软件设置解码分配页面激活NVMe解码。在该页面(图G.1)下,有一个“QP协议:”设置,其中有一个NVMe的下拉选项。设置后,新录制的跟踪或加载的旧跟踪都将被正确解码为NVMe跟踪。这处理了所有NVMe QP端口设置,因此客户无需记住任何帧目标QP端口的十六进制设置,这使得操作更加简便。

Figure G.1: Decoding Preferences

如果您已经执行了“记录”操作,并且您有一个想要解码为NVMe跟踪的RoCE跟踪(并且您尚未执行上述步骤将分析器设置为NVMe模式):1. 转到“分析”选项卡并选择解码分配。将显示一个列表,如图G.2所示。2. 您必须在QP端口协议字段中仅选择NVMe(如下所示),并选择“应用更改到首选项”选项卡。这将显示一条最终消息,说明快速查看跟踪将被保存。3. 选择“是”。该跟踪(以及所有后续的RoCE跟踪)将被解码为NVMe跟踪。从4.40版本开始,这就是让您的分析器解码NVMe所需的全部操作,无论是在记录之前还是之后。

Figure G.2: Decoding Assignments List

G.1.2 使用RoCE RDMA捕获解码跟踪 – 4.40版本之前

如果在连接到目标之前开始录制,此时会交换某些数据包,这些数据包会自动加载解码表。这使得整个过程变得更加容易,因为所有解码已经完成,如图G.3所示。

Figure G.3: Decoding Table

如您所见,NVMe数据包已被翻译并正确识别。这是因为解码表已预先填充了“NVMe/QP端口”,这些端口是翻译所有数据包所必需的。图G.4中所示的解码表在自动填充后包含了“NVMe QP端口”。解码表将在以下部分进一步讨论。

Figure G.4: Decoding Table with NVMe QP Ports

G.1.3 使用RoCE RDMA捕获未解码的跟踪记录 – 4.40版本之前

如果您刚刚记录了一个类似于图G.5中表格的跟踪记录,并且RDMA设置为RoCE,您可以采取一些步骤使该跟踪记录以解码状态显示。由于此跟踪记录是在启动器和目标之间的连接序列之后捕获的(缺少自动NVMe端口设置数据包),如果需要数据包解码,则必须手动修复解码。

Figure G.5: Example Recorded Trace

手动更改解码:

  1. 转到“分析”选项卡并点击“解码分配”。在“NVMe QP端口(十六进制)”被学习或添加之前,表格可能看起来像图G.6中的示例。

Figure G.6: Decoding Assignments Table

 

  1. 为了正确解码每个数据包,请检查(打开并使用帧检查器视图)每个数据包中“Base Transport Header”主字段下的“Destination QP”字段,如图G.7所示。

Figure G.7: Frame Inspector View

  1. 记下这个数字,然后返回到“分析”选项卡下的“解码分配”窗口。

  2. 将十六进制数348添加到“NVMe QP端口(十六进制)”字段中,如图G.8所示。

Figure G.8: Decoding Assignments Window

5.在解码器上按下“应用更改到偏好”按钮,然后点击关闭。分析器将您的更改添加到跟踪中。图G.9展示了带有更改的新跟踪示例。

Figure G.9: Example of New Trace with Changes

请注意,它仅解码了具有特定 NVMe QP 端口的部分数据包。不过,NVMe QP 端口将进行一些分组,以便您可以一次性添加大量 NVMe QP 端口。

例如,这个数据包的 NVMe 目标 QP 端口为十六进制的 348,但另一个数据包的目标 QP 端口为十六进制的 304。因此,通常最好通过添加一系列“NVMe 目标 QP 端口”来一次性翻译多个数据包。如图 G.10 所示,添加了 2FF-2000 以适应大量的 NVMe QP 端口,从而在此跟踪中翻译更多的数据包。

Figure G.10: Large Sequence of NVMe Destination QP Ports Added

6.点击解码器上的“应用更改到偏好”,然后点击“关闭”。分析器将更改添加到跟踪中。 见图G.11以查看带有更改的新跟踪示例。

Figure G.11: Example of New Trace with Changes

请注意,大多数(如果不是全部)RoCEv2数据包已转换为NVMe,分析器显示正确的解码。

G.1.4 使用TCP RDMA捕获解码跟踪 – 4.40版本之前

在使用TCP与RoCEv2时,解码过程要简单得多,因为大部分解码依赖于“NVMe/TCP端口”(见图G.12),这些端口通常是一个标准值,大多数人在连接到目标时使用4420。因此,当在TCP头下看到源端口或目标端口为4420的NVMe时,解码会自动进行。

 Figure G.12: Table Showing NVMe/TCP Ports

图G.13显示了一个RoCEv2 TCP跟踪,其目标端口和源端口均为4420,因此所有端口都被正确解码。

Figure G.13: Example Trace with Destination and Source Ports of 4420

G.1.5 退出NVMe解码模式

有几种方法可以退出NVMe解码模式,有些是偶然的,有些是故意的。

 偶然的方式通常发生在降级或解码信息因某种原因被手动覆盖时。在4.40之前的版本中,更改或删除解码器(分析解码分配页面)中的HEX数字将不允许分析器中进行NVMe解码,从而偶然或故意地移除NVMe解码。当降级到旧版本时,该版本可能不支持较新的4.40设置,或者可能完全擦除所有解码设置。

 故意退出NVMe模式的方法是在设置首选项软件设置

解码分配窗口中将4.40的NVMe设置更改为其他设置,例如“用户定义”、“iSER”或“SMB”。在4.40版本之前,必须从“分析

解码分配”窗口(解码器)中删除NVMe QP端口,这些端口对每个跟踪都很重要。NVMe解码将不再正常进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2374094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信号处理基础

一、目的 掌握信号处理的基本思想,理解采样信号的频谱特性,加强信号采样与重建的有关基本概念的理解,深入理解线性时不变系统输出与输入的关系,了解数字信号采样率转换前后信号频谱的特征。 二、内容与设计思想 1、给定序列,绘…

小刚说C语言刷题—1058 - 求出100至999范围内的所有水仙花数

1.题目描述 2.参考代码(C语言版) #include <stdio.h> int main(void) { int i; int bai,shi,ge; for( i100;i<999;i) { baii/100; shii/10%10; gei%10; if((bai*bai*bai)(shi*shi*shi)(ge*ge*ge)i) printf("%d\n",i); } return 0; } 今天内容到此结束&…

深入解析Docker:核心架构与最佳实践

文章目录 前言一、Docker 解决了什么问题&#xff1f;二、Docker 底层核心架构2.1 Docker 引擎的分层架构2.2 镜像的奥秘&#xff1a;联合文件系统&#xff08;UnionFS&#xff09;2.3 容器隔离的核心技术2.3.1 命名空间2.3.2 控制组&#xff08;Cgroups&#xff09;2.3.3 内核…

Edge浏览器PDF字体显示错误

Edge浏览器PDF字体显示错误 软件版本信息 Edge Version: 136.0.3240.50 Word Version: Microsoft Office 专业增强版2021问题描述 在Word中使用多级列表自动编号, 并使用Word软件自带的导出为PDF文件功能, 在Word中显示正常的数字, 在Edge中查看PDF将会出现渲染错误的现象,…

Python训练营打卡——DAY22(2025.5.11)

复习日 学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 泰坦尼克号——来自灾难的机器学习 数据来源&#xff1a; kaggle泰坦里克号人员生还预测 挑战 泰坦尼克号沉没是历史上最臭名昭著的海难之一。 1912年4月15日&#xff0c;在被普…

实战项目4(05)

​目录 任务场景一 【sw1配置】 任务场景二 【sw1配置】 【sw2配置】 任务场景一 按照下图完成网络拓扑搭建和配置 任务要求&#xff1a; 1、在交换机SW1的E0/0/1端口进行设置&#xff0c;实现允许最多两个电脑可以正常进行通信。 2、在交换机SW1的E0/0/2端口进行设置&…

C++学习之STL学习

在经过前面的简单的C入门语法的学习后&#xff0c;我们开始接触C最重要的组成部分之一&#xff1a;STL 目录 STL的介绍 什么是STL STL的历史 UTF-8编码原理&#xff08;了解&#xff09; UTF-8编码原理 核心编码规则 规则解析 编码步骤示例 1. 确定码点范围 2. 转换为…

3. 仓颉 CEF 库封装

文章目录 1. capi 使用说明2. Cangjie CEF2. 1实现目标 3. 实现示例 1. capi 使用说明 根据上一节 https://blog.csdn.net/qq_51355375/article/details/147880718?spm1011.2415.3001.5331 所述&#xff0c; cefcapi 是libcef 共享库导出一个 C API, 而以源代码形式分发的 li…

LabVIEW多通道并行数据存储系统

在工业自动化监测、航空航天测试、生物医学信号采集等领域&#xff0c;常常需要对多个传感器通道的数据进行同步采集&#xff0c;并根据后续分析需求以不同采样率保存特定通道组合。传统单线程数据存储方案难以满足实时性和资源利用效率的要求&#xff0c;因此设计一个高效的多…

谷歌在即将举行的I/O大会之前,意外泄露了其全新设计语言“Material 3 Expressive”的细节

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

十三、基于大模型的在线搜索平台——整合function calling流程

基于大模型的在线搜索平台——整合function calling流程 一、function calling调用总结 上篇文章已经实现了信息抓取能力&#xff0c;并封装成了函数。现在最后一步将能力转换为大模型可以调用的能力&#xff0c;实现搜索功能就可以了。这篇主要实现大模型的function calling能…

力扣70题解

记录 2025.5.8 题目: 思路&#xff1a; 1.初始化&#xff1a;p 和 q 初始化为 0&#xff0c;表示到达第 0 级和第 1 级前的方法数。r 初始化为 1&#xff0c;表示到达第 1 级台阶有 1 种方法。 2.循环迭代&#xff1a;从第 1 级到第 n 级台阶进行迭代&#xff1a; p 更新为前…

电商双11美妆数据分析

1、初步了解 2.2 缺失值处理 通过上面观察数据发现sale_count,comment_count 存在缺失值,先观察存在缺失值的行的基本情况 2.3 数据挖掘寻找新的特征 给出各个关键词的分类类别 由title新生成两列类别 对是否是男性专用进行分析并新增一列 对每个产品总销量新增销售额这一列

24、TypeScript:预言家之书——React 19 类型系统

一、预言家的本质 "TypeScript是魔法世界的预言家之书&#xff0c;用静态类型编织代码的命运轨迹&#xff01;" 霍格沃茨符文研究院的巫师挥动魔杖&#xff0c;类型注解与泛型的星轨在空中交织成防护矩阵。 ——基于《国际魔法联合会》第12号类型协议&#xff0c;Ty…

第8章-1 查询性能优化-优化数据访问

上一篇&#xff1a;《第7章-3 维护索引和表》 在前面的章节中&#xff0c;我们介绍了如何设计最优的库表结构、如何建立最好的索引&#xff0c;这些对于提高性能来说是必不可少的。但这些还不够——还需要合理地设计查询。如果查询写得很糟糕&#xff0c;即使库表结构再合理、索…

PCL点云按指定方向进行聚类(指定类的宽度)

需指定方向和类的宽度。测试代码如下&#xff1a; #include <iostream> #include <fstream> #include <vector> #include <string> #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/visualization/pcl_visu…

C#对SQLServer增删改查

1.创建数据库 2.SqlServerHelper using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks;namespace WindowsFormsApp1 {internal class SqlServerHelper{//…

模拟太阳系(C#编写的maui跨平台项目源码)

源码下载地址&#xff1a;https://download.csdn.net/download/wgxds/90789056 本资源为用C#编写的maui跨平台项目源码&#xff0c;使用Visual Studio 2022开发环境&#xff0c;基于.net8.0框架&#xff0c;生成的程序为“模拟太阳系运行”。经测试&#xff0c;生成的程序可运行…

蓝桥杯14届 数三角

问题描述 小明在二维坐标系中放置了 n 个点&#xff0c;他想在其中选出一个包含三个点的子集&#xff0c;这三个点能组成三角形。然而这样的方案太多了&#xff0c;他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形&#xff1f; 输…

HTML12:文本框和单选框

表单元素格式 属性说明type指定元素的类型。text、password、 checkbox、 radio、submit、reset、file、hidden、image 和button&#xff0c;默认为textname指定表单元素的名称value元素的初始值。type为radio时必须指定一个值size指定表单元素的初始宽度。当type为text 或pas…