一种校验100GE数据包FCS值的方法与流程

文档序号:26101909发布日期:2021-07-30 18:13阅读:239来源:国知局
一种校验100GE数据包FCS值的方法与流程

本发明涉及100ge解析处理技术领域,尤其涉及一种校验100ge数据包fcs值的方法,主要用于100ge数据包的fcs校验。



背景技术:

在对100ge进行解析处理时,需要完成对从100ge中解析出的数据包进行fcs值的校验,来达到校验当前数据包是否有比特错误,从而决定是否舍弃当前包。由于100ge的速率非常高,单个时钟周期的数据位宽很大,例如,在312.5mhz的时钟频率下数据位宽为512bit,而100ge是基于字节的包协议,即数据包的最小颗粒度为byte,这样在每包的最后一个数据可能会有字节余数,对于512bit的数据位宽,余数可能从0到63,0表示没有余数。为了对100ge的数据包进行实时的fcs值校验,则需要实时的将数据包的fcs值提取出来,并在本地对原始数据包除fcs值外的其余所有字节进行实时计算。通常的处理方法是,在数据包尾处将所有可能的余数字节进行crc的计算,然后在所有crc的计算结果中根据实际的余数信息进行选择。这种实现方式是最直接的,但弊端也是显而易见的,由于对所有可能的余数字节都要进行crc的计算,这将消耗大量的逻辑资源,这在一些逻辑资源紧张的设计中是无法接受的。另外的方法是通过软件的方式实现,即先将数据包进行缓存,然后再以byte为颗粒度进行fcs计算处理,这样的处理方式因为没有字节余数的问题,而且数据位宽只有一个字节,所以处理也是最简单的,但不能满足实时处理的要求。



技术实现要素:

鉴于上述技术存在的问题,本发明提供一种校验100ge数据包fcs值的方法。本发明的目的就是要解决上述技术中存在的消耗逻辑资源多、要求实时处理的问题。

本发明采取的技术方案是:一种校验100ge数据包fcs值的方法,该方法基于fpga的硬件平台上实现,步骤如下:

(1)首先将原始数据包尾的fcs值去掉,以得到不带fcs值的数据包,与此同时将原始数据包的fcs值提取出来以供后续校验使用;

(2)接下来将去掉fcs值的数据包缓存到pkg_fifo,并在包尾处统计字节余数,将统计的字节余数信息缓存到rem_fifo;然后,根据字节余数信息,将数据包从pkg_fifo读取出来进行包头补0处理,补0的字节数与统计的字节余数相等,目的是将数据包处理成在包尾处没有字节余数的整包;之后,对经处理的包头补0的数据整包进行fcs值计算;

(3)最后将(2)中fcs的计算结果与(1)中提取的原始fcs值进行比较,以完成对原始数据包的校验。

本发明所产生的有益效果是:极大的减少了逻辑资源,例如,如果按照背景技术中的方法实现fcs校验,在xilinxvu095的fpga上实现该功能,lut资源消耗超过3万个,而采用本发明提供的方法lut资源仅消耗1千个;此外,本发明提供的方法区别于软件实现的方式,可以对100ge流量的数据包进行实时的fcs校验处理,总之本发明提供的方法在100ge解析处理技术领域有广泛的应用价值。

附图说明

图1为本发明校验100ge数据包fcs值的方法示意图。

具体实施方式

以下结合附图对本发明做进一步说明;

图1为本发明校验100ge数据包fcs值的方法示意图,首先将原始数据包尾的fcs值去掉,以得到不带fcs值的数据包,与此同时将原始数据包的fcs值提取出来以供后续校验使用。接下来将去掉fcs值的数据包缓存到pkg_fifo,并在包尾处统计字节余数,将统计的字节余数信息缓存到rem_fifo;然后,根据字节余数信息,将数据包从pkg_fifo读取出来进行包头补0处理,补0的字节数与统计的字节余数相等,目的是将数据包处理成在包尾处没有字节余数的整包;之后,对经处理的包头补0的数据整包进行fcs值计算。最后将包头补0计算得到的fcs值与提取得到的原始fcs值进行比较,以完成对原始数据包的校验。

从上述校验fcs值的方法可以看出,本发明的主要思想是,通过在去掉fcs值的数据包头补0,来达到经补0处理后的数据包在包尾处没有字节余数,从而在包尾进行crc计算时无需计算各种余数字节的情况,对于512bit的数据位宽来说,只需要完成单个时钟周期512bit的crc并行计算即可。这较通常的将各种余数字节进行crc计算的方法消耗的逻辑资源要小的多,对于512bit的数据位宽,通常的实现方法要考虑64种可能的crc计算结果并进行选择,而本发明提出的方法只需考虑1种crc计算即可。另外,与软件实现方法对比,由于本发明是基于fpga的硬件实现方式,在数据包流过的同时完成了fcs计算,故满足实时处理的要求。通过本发明提供的方法,可很好的解决校验100ge数据包fcs值消耗逻辑资源多、需要实时处理的问题,为100ge解析处理技术提供有益参考。



技术特征:

1.一种校验100ge数据包fcs值的方法,该方法基于fpga的硬件平台上实现,其特征在于,步骤如下:

(1)首先将原始数据包尾的fcs值去掉,以得到不带fcs值的数据包,与此同时将原始数据包的fcs值提取出来以供后续校验使用;

(2)接下来将去掉fcs值的数据包缓存到pkg_fifo,并在包尾处统计字节余数,将统计的字节余数信息缓存到rem_fifo;然后,根据字节余数信息,将数据包从pkg_fifo读取出来进行包头补0处理,补0的字节数与统计的字节余数相等,目的是将数据包处理成在包尾处没有字节余数的整包;之后,对经处理的包头补0的数据整包进行fcs值计算;

(3)最后将(2)中fcs的计算结果与(1)中提取的原始fcs值进行比较,以完成对原始数据包的校验。


技术总结
本发明公开了一种校验100GE数据包FCS值的方法。该方法通过在数据包头补0,将数据包处理成在包尾没有余数字节的整包,从而避免数据包尾有余数带来的FCS值计算复杂的问题。首先,将原始数据包的FCS值去掉,以得到待处理的没有FCS值的数据包,与此同时将原始数据包的FCS值提取出来供后续校验使用;其次,对去掉FCS值的数据包通过包头补0的方法实现FCS值的计算;最后,将计算得到的FCS值以及从原始数据包中提取的FCS值进行比较,以完成对原始数据包的校验。采用本发明提供的方法可很好的解决在校验100GE数据包FCS值时消耗逻辑资源多以及需要实时校验处理的问题,为100GE解析处理技术提供有益参考。

技术研发人员:王东锋;陈晖;王连岳
受保护的技术使用者:天津光电通信技术有限公司
技术研发日:2021.05.10
技术公布日:2021.07.30
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1