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

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

3天内不再提示

TTE和TSN业务的保障方式及分析问题

FPGA之家 来源:陈年丽 2019-07-19 10:07 次阅读

第一次看到以太网物理地址格式时,感觉很平淡。像看到IPV4和IPV6报文的标头部分一样没有感觉。但真正去理解以太网物理地址某些比特含义时,是在几年前的一次吹牛中体会到的。这次吹牛,差点毁掉了一直以来信誉良好的好名声。

事情起源

在本文章中,曾经提到过,TSN(Time Sensitive Networking,TSN)和TTE(Time-Triggered Ethernet)的起源及应用领域,在那篇文章中,还提到了可以尝试着把TTE看作是密闭空间内使用的TSN的说法。事实上,这种说法是非常不准确的。二者虽然都对业务进行了是否实时性的区分,但实现时却采用了截然不同的两种方法。

TTE和TSN实时业务的保障方式

1、保障业务的实时性采用的是调度表的方式,对TT业务的收发严格按照调度表执行;详见上一篇公众号文章:一个人,一个想法,一家公司和即将被改变的全世界网络

2、TSN中对业务实时性保障的方式不是通过调度表的方式,而是提供资源预留,即流预留协议(SRP)。TSN中的流预留协议(SRP)包括广播、注册和解注册三步。在流的整个传输路径上采用协商机制,提前保留出流量传输所需要的带宽,如果交换端口带宽允许,则建立连接,否则连接失败。 同时SRP协议规定将75%的带宽分配给实时流量,25%的带宽分配给尽力传BE流量,所以TSN为低优先级流量的发送提供了机会,某种程度上可以缓解低优先级流量“饥饿”现象。(关于TSN的带宽预留机制可以参见IEEE 802.1Qat和Qcc标准)。

而本文所说的事情就与TSN中的资源预留协议的实现相关。准确的说是与车载时间敏感网络中的IEEE802.1Qat协议相关,即多流注册协议(Multiple Stream Registration Protocol,MSRP)。

任务要求

当时接到的任务是,通过XILINX的通用Zedboard开发平台(本公众号所有案例均在此平台上实现),实现两种数据帧的捕获操作。

捕获过程是指:数据帧通过网口进入FPGA,然后由FPGA通过字段匹配出需要提交给CPU的某种类型的数据帧,然后将该数据帧通过中断的方式提交给CPU进行分析。

需要捕获交给CPU的帧类型有两种:1、MSRP报文:目的MAC为01-80-C2-00-00-0E,以太网类型为0x22EA;2、MVRP报文:目的MAC为01-80-C2-00-00-21,以太网类型为0x88F5;

要求:搭建一个演示平台,通过CPU可以配置FPGA内部用来识别捕获帧特征的寄存器,数据帧的类型和目的MAC地址可任意配置,然后将上述两种FPGA内部产生的数据帧通过捕获通道交给CPU。

看到了上述任务要求后感觉很简单,这种事情做过的太多了。从HINOC项目到各种定制的星载交换系统,都有类似的需求。于是在被人问需要多久做好时,毫不犹豫的爽快的说道:很简单,明天就给你!

出现问题

接到任务是下午,吃过晚饭后就找了两个学生开干。Zedboard板子以及操作系统环境甚至连FPGA的代码基本都是现成的,需要做的只是少许修改,首先要实现通过操作系统去配置FPGA上相应的寄存器内容(MAC地址寄存器),但就在Linux操作系统尝试着通过TCP/IP协议栈配置FPGA的MAC地址时就出现了问题,一般的MAC地址都能很容易的配置成功,但就是前面需要捕获给CPU的MAC,也就是MSRP报文和MVRP报文都不能配置成功。

经过反复的尝试,发现MAC地址第一个字节最低位为1的MAC地址都无法正确配置。每次都返回set mac fail。

但在设置第一个字节最低位为0的地址时,都能够设置成功。

调试中遇到问题是家常便饭,对于第一次遇见这样奇怪的问题,一下子激起了大家的好奇心。决定一定要弄明白是怎么回事。

分析及查找问题

1、分析问题

通过Linux命令行配置目的MAC地址失败,原因肯定在该数据的通路上。这个配置数据经过命令行输入后,会依次经过TCP/IP协议栈、驱动,然后再由AXI总线写入FPGA内部自定义的MAC寄存器。如果出现问题,那么肯定是这个通路没有走通。那到底是哪一步没有走通呢?

2、查看FPGA内部寄存器是否被正确写入

为了定位问题,我们先从FPGA内部Verilog代码描述的专门接收操作系统配置下来的目的MAC寄存器查起。为了定位,我们把该寄存器及相关的写操作及寄存器内容都作为ChipScope的监测信号。在命令行输入配置信息后,看写该寄存器的写使能信号是否被触发,结果发现在写命令输入之后,写使能信号没有被触发,该寄存器值仍然是复位值。也就是说,MAC地址没有写入FPGA内部的相应寄存器中,甚至连写该寄存器的动作都没有。

3、看驱动是否接收到命令行给出的配置数据

从操作系统Linux命令行给出来的配置MAC指令,经过操作系统处理之后,最后肯定要写到驱动上,由驱动执行写FPGA内部寄存器的动作才能把数据写入FPGA内部寄存器。这里的驱动,属于我们自己写的SNMP网管软件的一部分,SNMP网管功能主要包括驱动和应用程序两个部分,这里的应用程序大家可以简单的理解为就是刚才的命令行输入的配置目的MAC地址的指令。而驱动则包括字符型驱动和网络设备驱动两部分。字符型驱动一般用来与应用程序进行交互。而网络设备驱动,主要是插入捕获功能等,本文开始提到的捕获MSRP报文及MVRP报文就是通过网络设备驱动执行的。

于是,修改C代码,在字符驱动相关函数中加入打印信息,命令行配置目的MAC地址后,该驱动函数未被调用。也就是说,配置信息连驱动层面都没有到,下一步就猜测:有可能配置的目的MAC地址被TCP/IP协议栈给过滤掉了。

定位问题

经过上述分析和查找定位,基本上定位在配置的目的MAC地址可能被TCP/IP协议栈给过滤掉了。这个时候我们才想起来,会不会是我们给出的目的MAC地址不合法啊?为什么总是第一个字节最低位为1的目的MAC地址会被TCP/IP协议栈过滤掉(文中开头提到的MVRP和MSRP报文MAC地址的第一个字节最低位都为1)呢?

我们先来看一下MAC地址的定义及每一个bit的含义吧。

MAC地址含义

1、MAC地址是48bit二进制的地址,前24位为供应商代码,后24为序列号;2、单播地址:第一字节最低位为0,如00-e0-fc-00-00-06;3、多播地址:第一字节最低位为1,如01-e0-fc-00-00-06;4、广播地址:48位全1,如ff-ff-ff-ff-ff-ff。

通过上面的描述,基本确认了问题,也就是说TCP/IP协议栈会把第一个字节最低位为1的MAC地址,也就是多播地址,自动的给过滤掉。会把配置多播地址为某个板子的MAC地址的Linux指令定义为无效指令。

找到并定位到问题以后,已经晚上12点了。。。原本以为半小时就能搞定的问题,竟然花了四个小时才定位到问题。

解决问题

既然TCP/IP协议栈会把这类MAC地址过滤掉,那么我们不走TCP/IP协议栈不就可以了吗?

好在之前做过的项目中预留了可以旁路掉TCP/IP协议栈的通路,直接将配置数据交给驱动,写进FPGA相应的寄存器中。

这样,捕获给CPU的触发条件,也就是MAC地址就顺利的配到FPGA内部了。好在,捕获通道很顺利,很容易的就把目的地址为任意MAC地址的以太网帧都顺利的交给CPU了。(因为当时未保留MVRP和MSRP报文捕获成功的截图,随便找了一张上课演示的图片)

等一切都搞定的时候,已经到了凌晨一点多了。

哦,对了。本文中需要将Zedboard开发板设置为从SD卡启动模式,板子上的跳帽位置如下:

同时,在这种模式下,不加载操作系统的纯FPGA代码上板调试是不受影响的。

结论

1、无论任何时候,都不要随便的说大话。要保持低调且谦虚谨慎的态度去面对任何一次科学实验;

2、MAC地址中第一个字节的最低位为1表示该地址是组播地址,是不能通过操作系统经过TCP/IP协议栈配置给FGPA板子的。这是文中的结论,求大佬们给出更专业的解释。

3、本文是日常项目调试中出现的众多问题中非常普通的一个,希望大家也能够养成问题记录的好习惯,引用一位跟我同名同姓老乡的话来说就是:日有寸进,得寸进尺,日积月累,必有所成!

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

    关注

    1602

    文章

    21320

    浏览量

    593155
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117712
收藏 人收藏

    评论

    相关推荐

    艾体宝干货 | TSN抓包工具解密:为什么选择使用 ProfiShark 进行数据包捕获?

    时间敏感网络(TSN)技术正在成为工业控制和实时通信领域的关键技术,而ProfiShark作为一款高性能的数据包捕获工具,提供了在TSN网络环境中进行网络流量分析和故障排查的解决方案。本文将重点介绍
    的头像 发表于 04-25 17:41 87次阅读
    艾体宝干货 | <b class='flag-5'>TSN</b>抓包工具解密:为什么选择使用 ProfiShark 进行数据包捕获?

    TSN(时间敏感网络)--CBS调度规则#TSN #时间敏感网络

    TSN
    北汇信息POLELINK
    发布于 :2024年04月24日 18:19:05

    TSN时间敏感网络QoS数据流传输中干扰的三种模式#TSN #时间敏感网络

    数据流TSN
    北汇信息POLELINK
    发布于 :2024年04月24日 12:29:11

    TSN的基本知识详解(上)

    TSN的目标是为工业自动化、智能交通、机器人控制等领域提供高性能、可靠性和实时性的通信。
    的头像 发表于 04-17 14:09 112次阅读
    <b class='flag-5'>TSN</b>的基本知识详解(上)

    基于TSN的融合网络优势分析

    基于TSN的以太网能够开发和使用更智能的机器,提供更多的运营数据。增加新的数据采集功能将带来更多竞争优势。
    发表于 12-02 11:14 154次阅读
    基于<b class='flag-5'>TSN</b>的融合网络优势<b class='flag-5'>分析</b>

    TSN网络示例应用笔记

    作者:Volker E. Goller 简介 通过时间敏感网络(TSN)评估套件,客户可将几乎任何现有以太网设备连接到 TSN 网络。这种网络的最简单情况是纯线形拓扑,由多个此类 TSN 评估套件组成。
    发表于 11-27 17:09 0次下载
    <b class='flag-5'>TSN</b>网络示例应用笔记

    TSN网络示例

    电子发烧友网站提供《TSN网络示例.pdf》资料免费下载
    发表于 11-24 10:04 0次下载
    <b class='flag-5'>TSN</b>网络示例

    AS-2020 TSN CoreSolution直接拿下

    而设计。TSN是一种网络技术,它可以提供精确的时间同步和低延迟,从而保障音视频、传感器、控制器和其他时间敏感的以太网数据的传输。相较于AS-2011版本中的单时钟
    的头像 发表于 09-21 08:27 306次阅读
    AS-2020 <b class='flag-5'>TSN</b> CoreSolution直接拿下

    TSN技术和TSN工业交换机在煤矿行业的应用现状、技术挑战和发展前景

    智慧矿山的概念提出后,煤矿行业对TSN技术的需求更加迫切。智慧矿山利用先进信息技术实现全自动、可视化、实时监控和智能管理,需要高可靠、高稳定的通信网络支持,而TSN技术正是这样一种理想的通信技术
    的头像 发表于 09-14 15:58 711次阅读
    <b class='flag-5'>TSN</b>技术和<b class='flag-5'>TSN</b>工业交换机在煤矿行业的应用现状、技术挑战和发展前景

    TSN技术-实现业务传输最小延迟的革新

    时间敏感网络(Time-Sensitive Networking,TSN)是国际IEEE 802.1工作组所孕育的一组协议标准。其革新性在于,在传统的非确定性以太网技术的基础上,实现了业务传输的极致
    的头像 发表于 08-26 11:12 845次阅读
    <b class='flag-5'>TSN</b>技术-实现<b class='flag-5'>业务</b>传输最小延迟的革新

    M6442核心板TSN初体验

    TSN是目前国际产业界正在积极推动的全新工业通信技术,为下一代网络技术的核心。ZLG致远电子敢为人先,准确把握新一轮科技革命的历史机遇,在TSN领域积极布局,推出了TSN系列核心板产品M64xx-T
    的头像 发表于 08-23 15:17 441次阅读
    M6442核心板<b class='flag-5'>TSN</b>初体验

    自动化中的TSN:我们现在处在什么阶段?

    近来,任何从事工业通信的人都会面对时间敏感型网络(TSN)的话题。TSN必将到来;这只是个时间和方式问题。然而,即使到今天,人们对它在工业通信领域的优势并不是很清楚。
    的头像 发表于 06-14 17:08 703次阅读
    自动化中的<b class='flag-5'>TSN</b>:我们现在处在什么阶段?

    5月17日直播预告|TSN Coresolution工具链介绍

    本次直播将会为大家介绍车载网络测试的系统方法-TSN Coresolution。TSN Coresolution由网络硬件接口&仿真工具TSNBox,数据记录&分析工具
    的头像 发表于 05-15 17:39 319次阅读
    5月17日直播预告|<b class='flag-5'>TSN</b> Coresolution工具链介绍

    如何做好TSN落地前的最后一步:TSN组网测试

    随着TSN技术的具体实施在不同行业和应用中被广泛提出和研究,不少技术领先的企业也开始着手布局TSN。但作为一种新兴的网络技术,TSN网络构建与测试需要一定的准备工作和特定的设备。
    的头像 发表于 04-28 15:39 671次阅读
    如何做好<b class='flag-5'>TSN</b>落地前的最后一步:<b class='flag-5'>TSN</b>组网测试