基于ZU19EG的100G-UDP解决方案

news2024/11/20 10:36:13
  1. 概述

本文档介绍ZU19EG与Mellanox CX6 100G网卡通信解决方案。

  1. 环境配置

FPGA硬件:519-ZU19EG的4路100G光纤PCIe加上计算卡

电脑:国产国鑫主板(双PCU):Gooxi G2DA-B  CPU:Intel Xeon Silver @2.2GHz 内存:64GB 操作系统:ubuntu20.04

网卡:ConnectX6 MCX653106A-ECA_Ax

  1. FPGA解决方案

板卡fpga型号:XCZU19EG-FFVC1760-2E

开发环境:Vivado2021.2

输出:QSFP28光口输出

工程代码架构如下:

UltraScale+ 100G Ethernet Subsystem配置如下:

工程代码各模块功能:

FPGA端VIO配置:

Start:控制开始发送,结束发送。

packet_length_sel:可以选择UDP包长:0是1024字节,1是2048字节,2是4096字节,3是8192字节。

time_1us:可以配置发送间隔,以1US为单位作为间隔,默认值为1000_000,即为1s钟间隔。

FPGA端发送接收速率显示是speed信号,ila在线观测,在代码中位置:

100G UDP产生模块:

  1. UDP格式说明如下图:

下面分析一帧基于UDP的TFTP协议帧。

以太网首部

0000: 00 05 5d 67 d0 b1 00 05 5d 61 58 a8 08 00

IP首部

0000:                                           45 00

0010: 00 53 93 25 00 00 80 11 25 ec c0 a8 00 37 c0 a8

0020: 00 01

UDP首部

0020:      05 d4 00 45 00 3f ac 40

TFTP协议

0020:                               00 01 'c'':''\''q'

0030: 'w''e''r''q''.''q''w''e'00 'n''e''t''a''s''c''i'

0040: 'i'00 'b''l''k''s''i''z''e'00 '5''1''2'00 't''i'

0050: 'm''e''o''u''t'00 '1''0'00 't''s''i''z''e'00 '0'

0060: 00

以太网首部:源MAC地址是00:05:5d:61:58:a8,目的MAC地址是00:05:5d:67:d0:b1,上层协议类型0x0800表示IP。

IP首部:每一个字节0x45包含4位版本号和4位首部长度,版本号为4,即IPv4,首部长度为5,说明IP首部不带有选项字段。服务类型为0,没有使用服务。16位总长度字段(包括IP首部和IP层payload的长度)为0x0053,即83字节,加上以太网首部14字节可知整个帧长度是97字节。IP报标识是0x9325,标志字段和片偏移字段设置为0x0000,就是DF=0允许分片,MF=0此数据报没有更多分片,没有分片偏移。TTL是0x80,也就是128。上层协议0x11表示UDP协议。IP首部校验和为0x25ec,源主机IP是c0 a8 00 37(192.168.0.55),目的主机IP是c0 a8 00 01(192.168.0.1)。

UDP首部:源端口号0x05d4(1492)是客户端的端口号,目的端口号0x0045(69)是TFTP服务的well-known端口号。UDP报长度为0x003f,即63字节,包括UDP首部和UDP层payload的长度。UDP首部和UDP层payload的校验和为0xac40。

cmac 配置按照example中的配置进行配置。

  1. ConnectX6 100G网卡DPDK方案

dpdk 全称data plane development kit(数据平面转发工具),为 Intel 处理器架构下用户空间高效的数据包处理提供了库函数和驱动的支持,数据包的控制层和数据层分开,dpdk绕过linux内核协议栈将数据包的接受处理放到应用层。

DPDK拦截中断,不触发后续中断流程,并绕过协议栈,通过UIO技术将网卡收到的报文拷贝到应用层处理,报文不再经过内核协议栈。减少了中断,DPDK的包全部在用户控件使用内存池管理,内核控件与用户空间的内存交互不用进行拷贝,只做控制权转移,减少报文拷贝过程,提高报文的转发效率。

操作系统 :ubuntu20.04

网卡: Mellanox CX6 100G

DPDK:20.11

  1. 测试

Vivado VIO设置:包间隔设置30us、UDP包大小设置1024字节

当前FPGA统计发送速度:0xc77617400  十进制 53 542 482 944

PC接收数据:无丢包

提升速度测试:

速率统计:0x16B4DF3AAA  十进制:97 523 808 938

总效率为总带宽90%以上。只开启当前接收软件情况下,总体算稳定。

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

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

相关文章

React入门 - 04(从编写一个简单的 TodoList 说起)

继上一节我们已经对 React组件和 ”JSX语法“有了大概的了解,这一节我们继续在 react-demo这个工程里编写代码。这一节我们来简单实现一个 TodoList来更加了解编写组件的一些细节。 1、在编辑器中打开 react-demo这个工程 2、打开 index.js文件,将组件 …

Mysql判断一个表中的数据是否在另一个表存在

方式一: 判断A表中有多少条数据在B表中【存在】,并且显示这些数据–EXISTS语句 select A.ID, A.NAME from 表A where EXISTS(select * from 表B where A.IDB.ID) 判断A表中有多少条数据在B表中【不存在】,并且显示这些数据–NOT EXISTS语句 select …

Zookeeper系列(一)集群搭建(非容器)

系列文章 Zookeeper系列(一)集群搭建(非容器) 目录 前言 下载 搭建 Data目录 Conf目录 集群复制和修改 启动 配置示例 测试 总结 前言 Zookeeper是一个开源的分布式协调服务,其设计目标是将那些复杂的且容易出错的分…

flex布局(3)

九、骰子 *{margin:0;padding: 0;box-sizing: border-box; } .flex{display: flex;flex-flow: row wrap;justify-content: space-between;align-items: center;align-content: space-between;padding:20px; } .touzi{width: 120px;height: 120px;background-color: aliceblue;…

Rabbitmq 消息可靠性保证

1、简介 消息的可靠性投递就是要保证消息投递过程中每一个环节都要成功,本文详细介绍两个环节的消息可靠性传递方式:1)、消息传递到交换机的 confirm 模式;2)、消息传递到队列的 Return 模式。 消息从 producer 到 ex…

智能化输电线路定位技术:提升电网运行效率的未来发展方向

随着科技的不断发展,电力行业也在逐步引入智能化技术,以提高输电线路的运行效率和安全性。在这篇文章中,恒峰智慧科技将探讨一种新的输电线路定位技术——分布式行波测量技术,它如何帮助我们实现这一目标。 一、分布式故障定位及隐…

STM32-创建工程模板

STM32 工程模板没有统一的格式,可以参考 ST 官方的示例模板或者根据自己的开发经验和使用习惯总结。 Project Template 文档以库函数工程模板为例,HAL 库工程模板对应参考即可。 Official Project Template ST 发布的标准外设库 (STM32 Standard Per…

docker搭建部署mysql并挂载指定目录

Docker是一种轻量级、可移植的容器化平台,可以简化应用程序的部署和管理。在本文中,我们将探讨如何使用Docker来搭建和部署MySQL数据库,并将数据和配置文件挂载到外部目录,以实现数据持久化和方便的配置管理。 1: 安装Docker 首…

git撤销提交到本地的commit

有些时候,当我们提交代码到本地后,突然发现因为某些原因需要撤销提交本地的代码。 就比如我,因为代码写错了分支,已经提交到本地了,而我需要取消,并且还要把代码搞得另外的分支上。 提交前: …

MIB 变更周期

MIB 始终以 80 ms 的周期在 BCH 上传输并在 80 ms 内重复,并且它包括从小区获取 SIB1 所需的参数;如果 SSB 的周期大于 80 ms,则 MIB 的发送周期与 SSB 的周期相同。 在UE初始搜索时,SSB在半帧内的周期是20ms;所以对于…

Embedded-Project项目介绍

Embedded-Project项目介绍 Server后端项目后端启动连接数据库启动时可能遇到的问题架构介绍 web前端项目前端启动启动时可能遇到的问题架构介绍 前后端分离开发流程 项目地址: https://github.com/Catxiaobai/Embedded-Project Server后端项目 系统后端项目&#…

锂电池制造设备中分布式IO模块优势

在“碳达峰、碳中和”目标推动下,新能源汽车当下发展势头正盛,而纯电动车的核心部件则是:锂电池。动力型锂电池作为新能源汽车核心零部件,其发展与新能源汽车行业息息相关,迎来广阔的市场空间。 为何采用I/O模块&#…

网络安全B模块(笔记详解)- 漏洞扫描与利用

漏洞扫描与利用 1.通过Kali对服务器场景server2003以半开放式不进行ping的扫描方式并配合a,要求扫描信息输出格式为xml文件格式,从生成扫描结果获取局域网(例如172.16.101.0/24)中存活靶机,以xml格式向指定文件输出信息(使用工具Nmap,使用必须要使用的参数),并将该操…

信息系统安全——基于 AFL 的模糊测试

实验 3 基于 AFL 的模糊测试 3.1 实验名称 《基于 AFL 的模糊测试》 3.2 实验目 1 、熟悉模糊测试方法 2 、熟悉模糊测试工具 AFL 的使用 3.3 实验步骤及内容 1 、 安装 AFL 2 、 任意选择一个有源代码的样本 这里采用教材上一个包含栈溢出漏洞的样本。 3 、 结合源代码分析用 …

Yolov5双目测距-双目相机计数及测距教程(含代码)

Yolov5双目测距是一种基于深度学习模型的双目相机计数及测距方法,它可以用于在不同场景下进行物体检测、识别和测距。 以下是 Yolov5双目测距的主要特点和步骤: 1. 双目相机: Yolov5双目测距需要使用一对双目相机来获取场景中的图像数据。…

vercel部署twikoo后评论收不到通知邮件问题解决方法

📌 前言:本文主要是总结一下在vercel部署twikoo后收不到评论邮件通知问题的解决方法,本人在各种查资料无果后最终去twioo的git官方项目的issue中找到某位大佬给出的原因以及解决方案,故做此记录,希望对遇到此问题的同学…

74应急响应-winlinux分析后门勒索病毒攻击

#操作系统(windows,linux)应急响应: 1.常见危害:暴力破解,漏洞利用,流量攻击,木马控制(Webshell,PC 木马等),病毒感染(挖矿,蠕虫,勒索等)。 2.常见分析:计算机账户&…

Navicat 16 for MySQL:打造高效数据库开发管理工具

随着数据的快速增长和复杂性的提升,数据库成为了现代应用开发中不可或缺的一部分。而在MySQL数据库领域,Navicat 16 for MySQL作为一款强大的数据库开发管理工具,正受到越来越多开发者的青睐。 Navicat 16 for MySQL拥有丰富的功能和直观的界…

D55XT80-ASEMI配电箱整流桥D55XT80

编辑:ll D55XT80-ASEMI配电箱整流桥D55XT80 型号:D55XT80 品牌:ASEMI 封装:DXT-4 特性:插件、整流桥 平均正向整流电流(Id):55A 最大反向击穿电压(VRM&#xff09…

nginx(1.13.7)首次安装出现:【make: *** 没有规则可以创建“default”需要的目标“build” 问题】解决措施

目录 前言: 一.龙蜥(Anolis)操作系统上安装GCC 1.安装gcc 2.检验安装 二.安装出现 make: *** 没有规则可以创建“default”需要的目标“build” 问题 1.解压安装nginx 2.安装出现问题展示 3.解决措施 4.重新编译进行安装 5…