万兆以太网MAC设计(13)主机与FPGA之间进行PING

server/2024/9/23 7:34:08/

文章目录

  • 前言:
  • 一、ICMP校验和计算
  • 二、上板效果
    • 1、终端命令行
    • 1、wireshark捕捉

前言:

在上班尝试进行PING操作的时候,发现一直是请求超时的情况,结果排查发现是首部校验和没有计算的问题。在UDP层,我们不进行校验和是不会影响数据正常收发的,但是在ICMP层不可以,FPGA没有进行校验和主机是无法正常进行PING板卡的。

一、ICMP校验和计算

ICMP校验和计算与IP层一样,只不过IP层只校验首部,但ICMP需要将数据一起进行校验。校验步骤:

  1. 将数据按照16bit组成一组,以此进行求和
  2. 如果结果超出16位,需要将高16位与低16位进行相加
  3. 对低16位进行取反,即可得到最终校验结果
always@(posedge i_clk,posedge i_rst)
beginif(i_rst)r_hd_checksum <= 'd0;else if(i_trigger)r_hd_checksum <= 16'h0000 + 16'h0000 + i_Identifier + i_Sequence+ 16'h6162 + 16'h6364 + 16'h6566 + 16'h6768+ 16'h696a + 16'h6b6c + 16'h6d6e + 16'h6f70+ 16'h7172 + 16'h7374 + 16'h7576 + 16'h7761+ 16'h6263 + 16'h6465 + 16'h6667 + 16'h6869;else if(ri_trigger)r_hd_checksum <= r_hd_checksum[31:16] + r_hd_checksum[15:0];else r_hd_checksum <= r_hd_checksum;
end
rm_axis_ip_data <= {16'h0000,(~r_hd_checksum[15:0]),ri_Identifier,ri_Sequence};

二、上板效果

修改完校验和计算后PING结果一切正常。

1、终端命令行

在这里插入图片描述

1、wireshark捕捉

在这里插入图片描述


http://www.ppmy.cn/server/34180.html

相关文章

1、架构-服务架构演进史

架构演进史 1. 原始分布式时代 这个阶段发生在20世纪70年代末到80年代初&#xff0c;当时的计算机科学从以大型机为主转向以微型机为主。在这个时期&#xff0c;由于单台计算机的处理能力有限&#xff0c;计算机科学家开始尝试使用多台计算机共同协作来支撑更大的软件系统。这…

安卓手机APP开发__用媒体会话服务进行后台播放

安卓手机APP开发__媒体开发部分__用媒体会话服务进行后台播放 目录 概述 使用一个媒体会话服务 实现服务的生命周期 提供对媒体会话的读取 在配置文件中声明服务 概述 当APP不在前台时&#xff0c;经常希望能够播放媒体。例如&#xff0c;一个音乐播放器 在用户锁屏或者…

CMakeLists.txt语法规则:提供信息的变量说明一

一. 简介 前面几篇文章学习了 CMakeLists.txt语法中 部分常用命令。 接下来学习CMakeLists.txt语法中部分常用变量&#xff0c;变量也是 cmake 中的一个重头戏&#xff0c;cmake 提供了很多内置变量。每一个变量都有它自己的含义&#xff0c;可以通过如下链接地址查询到所有…

工作问题记录React(持续更新中)

一、backdrop-filter:blur(20px); 毛玻璃效果&#xff0c;在安卓机上有兼容问题&#xff0c;添加兼容前缀也无效&#xff1b; 解决方案&#xff1a;让设计师调整渐变&#xff0c;不要使用该属性! 复制代码 background: radial-gradient(33% 33% at 100% 5%, #e9e5e5 0%, rgba…

[Spring Cloud] (6)gateway整体加解密

文章目录 简述整体效果后端增加配置nacos增加配置GlobalConfig 添加请求整体解密拦截器DecryptionFilter添加响应整体解密拦截器EncryptionFilter 前端请求拦截器添加整体加密逻辑请求头中添加sessionId 响应拦截器添加整体解密逻辑 简述 本文网关gateway&#xff0c;微服务&a…

编译链接过程

编译链接过程 预编译阶段 删除所有的“#define”&#xff0c;并且展开所有的宏定义; 处理所有的条件预编译指令&#xff0c;“#if”、“#ifdef”、“#endif”等; 处理“#include”预编译指令&#xff0c;将被包含的文件插入到该预编译指令的位置; 删除所有的注释; 添加行号和文…

如何面对并发下的bug

整理总结自蒋炎岩老师的b站课程&#xff0c;https://jyywiki.cn/OS/2022/index.html 并发bug与应对 应对bug的方法 在代码里边增加很多检查(加断言) #include "thread.h"unsigned long balance 100;void Alipay_withdraw(int amt) {if (balance > amt) {usleep(…

上位机图像处理和嵌入式模块部署(树莓派4b和mcu的分工与配合)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 树莓派4b从广义上来说&#xff0c;它本身就是一个mini小电脑。我们需要什么软件&#xff0c;就可以apt install去下载即可。这和之前嵌入式linux开…