0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设置AMD以太网IP核的Pause帧处理

XILINX开发者社区 来源:XILINX开发者社区 2023-10-18 09:15 次阅读

目前 AMD以太网 IP 核,如软核 10G/25G,40G/50G 或者硬核 CMAC,MRMAC,DCMAC 等等,都采用的是同一种 Pause 帧处理方式。

这篇文章主要介绍了用户应当如何设置以太网 IP 的相关参数,使其能够有效处理以太网的 Pause 帧。

按照 IEEE802.3 协议,一个 Pause 帧是一个最小长度,即 64bytes 长的以太网帧,目标地址(DA)为一个广播地址 01-80-C2-00-01,Type 为 8808,Opcode 为 0001(Global)或者 0101(Priority)。具体细节请参考 IEEE802.3 协议。

PFC 结构如下所示:

a45d6d10-6d00-11ee-939d-92fbcf53809c.png

AMD 以太网 IP,可以灵活的设置这些以太网 Pause 帧参数。例如通过设置如下 TX 侧的参数,包括 GPP(Global Pause Packet)的目标地址(DA),Ether Type,Opcode 等,这样 IP 会产生你所期望的任意数据包,作为你要的 Pause 帧发送出去。

a4650412-6d00-11ee-939d-92fbcf53809c.png

同样,IP 也需要在 RX 侧做相应的设置,这样才能识别出 Pause 帧并进行处理。接下来重点介绍,如何在 RX 侧设置 Pause 帧的处理。

首先,IP 遵循如下 3 个 Steps,对收到的以太网帧进行处理:

Step1,如果通过了,则该以太网帧被认为是控制包,进入 Step2,并且不再出现在用户数据侧显示;只有将 ctl_rx_forward_control 设为 1 的时候,即使是控制包,IP 仍然会将其跟其它数据包一起输出到 RX 用户侧;如果 Step1 没通过,则该以太网帧为普通 RX 数据包。

Step2,如果通过了,则该以太网帧被确认为全局 Pause 帧;如果没通过,则进入 Step3。

Step3,如果通过了,则该以太网帧被确认为 Priority Pause 帧;如果没通过,则不是 Pause 帧,为其它类型控制帧。

a479fb7e-6d00-11ee-939d-92fbcf53809c.png

也就是说,这里有四种特殊的以太网帧,分别是两种控制包 Global Control Packet(gcp),Priority Control Packet(pcp),和两种 Pause 帧 Global Pause Packet(gpp),Priority Pause Packet(ppp)。

IP 需要首先判断收到的是否是控制包(即 gcp 或 pcp),如果是,则先判断是否是 Global Pause 帧,再判断是否是 Priority Pause 帧。这几步判断,IP 都给了相应的参数,供用户设置,每一个条件,用户都可以选择是否要作检查。

文档里给出了 IP 是如何做判断的相关代码,如下:(由于某些新的 IP 文档尚未完善,如 DCMAC,如果缺失这部分内容,也是可以参考其它 IP 文档里的这一段内容)。

a48327b2-6d00-11ee-939d-92fbcf53809c.png

接下来,选取 Step2 中的两句,具体解释下,如何理解这个代码。其它部分可以类推。

a49ac322-6d00-11ee-939d-92fbcf53809c.png

先来看图中第二句,判断该以太网数据包为 Global Pause 帧(gpp),首先要满足 Step1,然后是由上图中第二句代码(assign global_pause_packet)后面的所有项“与”(&&)起来的,就是说要满足后面所有的项,分别是 DA 符合,SA 符合,Etype 符合,Opcode 符合,并且使能了该功能(即设置ctl_rx_enable_gpp=1)。

再来看第一句,Opcode 符合(assign opcode_match_gpp),是由后面两个条件“或”起来。这里要注意,为什么是或,第一个条件是该功能使能取反,也就是说,如果你设置使能不打开的话,这个条件是直接满足的;这就意味着,不打开这个使能表示代码不检测这个条件,任意数据都会被当作满足条件,所有数据包都会被认作 Pause 帧;使能打开后,才会要求后面的第二个条件符合才行,第二个条件即 RX 收到的数据包的该段数据,满足你设置的 ctl_rx_opcode_gpp,按照协议你应当将其设置为 0001。

总之,在设置完这些 Pause 帧相关参数后,就可以使用以太网 IP 的流控功能了。通过 stat_tx_pause 确认 IP 是否成功发出 Pause 帧,并通过 stat_rx_pause 确认 IP 是否能收到 Pause 帧。如果仍然无法成功接收到 Pause 帧,不要忘了将 ctl_rx_forward_control 设为 1,并在用户侧接收数据的地方,检查 IP 实际收到的数据包,并逐条对照之前的。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5076

    浏览量

    166234

原文标题:开发者分享|设置 AMD 以太网 IP 核的 Pause 帧处理

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    quartus2 调用以太网mac 往上传少了1个字节

    quartus2 调用三速以太网的mac调试百兆以太网。并且自己写了配置mac的模块,链路层,ip层,udp层和用户层。程序上板子用si
    发表于 10-27 15:45

    求助,怎样控制altera的以太网IP呢?

    本人想使用altera的以太网IPtse,发现Quartus里面并没有告诉怎样控制这个。请问大家是怎样控制这个
    发表于 01-22 14:55

    用了ddr、以太网ip,算是有高速接口设计经验了吗?

    经常看到各大招聘公司都会贴出有高速接口设计经验者优先,我想知道用了ddr、以太网ip,算是有高速接口设计经验了吗?
    发表于 07-16 16:47

    【小梅哥2017力作】详细的FPGA以太网设计教程,76页精华PDF

    IV E器件中,调用三速以太网IP(MAC),实现完整的以太网连接。或者用户使用Verilog编写的自定义用户逻辑来实现以太网连接。本教
    发表于 07-29 23:20

    以太网标准:EtherCAT的功能性

    以太网MAC外设,这是因为主器件在实时处理EtherCAT数据方面没有特定的需要。主器件只需要用准确的时基来触发启动EtherCAT数据。一个EtherCAT从器件需要特定的
    发表于 09-06 15:25

    工业以太网标准:Sercos III的功能了解

    端口接收到该时,该已得到处理并由专用工业以太网MAC硬件块传输到了第二个以太网端口。采用捷径法,可为
    发表于 09-07 14:59

    以太网和工业以太网的不同

    需要扩展和覆盖新设备。以太网是目前全球最受欢迎、使用范围最广泛的网络技术。工业以太网的工作原理图1. 工业设置中需要采用这种先进技术,以确保能够正确发送和接收特定的制造数据。以瓶子灌装厂为例,工业
    发表于 10-23 14:20

    以太网协议的模型有哪些

    ,如无效则舍弃该包;如有效则进一步判断包内的数据,转而调用 TCP、UDP、ICMP 等协议或使用户自定义的处理服务。而以太网控制芯片的功能是完成 TCP/IP 协议簇分层模型中链路层的相关工作,它
    发表于 12-26 09:45

    以太网在MPSoC中的数据通讯实现

    。网络接口模块为多核系统通讯资源接口。2.1 格式定义 图3所示为两种协议的数据格式定义。以太网IP用户接口数据以格式定义数据的输出或
    发表于 06-03 05:00

    采用DM9000A实现DSP以太网接口设计

    程序设计是对TCP/IP栈裁剪移植,主要完成对接收到的以太网数据进行解析并处理,并把要发送的数据封装成以太网数据,然后发送。3.1 DM9
    发表于 06-18 05:00

    如何选择合适的工业以太网

    、媒体访问控制器(MAC)。该MAC支持实时以太网处理,这在技术上称为“即时”或“直通”处理。因此,大多数工业
    发表于 07-18 04:45

    怎么使用以太网发送字节

    您好,我有一个PIC32以太网启动器套件,这个套件连接到一个进行人员计数的照相机上,收集的数据是以字节为单位的的形式。我想实现一个代码,在计算机上发送这些字节,并使用以太网链接(T
    发表于 03-26 09:24

    使用10G以太网MAC IP

    您好,如果我想使用10G以太网MAC IP,那么可用的10G支持板。问候维诺德库马尔
    发表于 04-02 10:08

    vivado三速以太网IP怎么用

    vivado的三速以太网IP接口太多了,完全不知道应该怎么用,哪位大佬能发我一份设计或者仿真吗?简单的就好
    发表于 04-15 12:58

    Android 9以太网功能移植以及设置IP地址

    基于Android 9实现以太网IP地址设置和功能实现
    发表于 06-20 14:42 2次下载