多业务信令采集板卡数据包排序方法和装置制造方法
【专利摘要】本发明提出了一种多业务信令采集板卡数据包排序方法和装置,用于正确处理多业务板卡采集机采集的数据包送往上层处理系统的顺序。多业务信令采集板卡数据包排序装置由板卡target模块和电脑主机host模块组成,板卡target模块和电脑主机host模块配合操作;板卡target模块由多个板卡链路组成,每个板卡链路包括FPGA模块和用于存包的缓冲buffer模块;电脑主机host模块由多个buffer模块组成,每个buffer模块分别与一个板卡链路相对应。
【专利说明】多业务信令采集板卡数据包排序方法和装置
【技术领域】
[0001]本发明涉及信令传输领域,特别涉及信令采集领域多业务板卡(2种业务以上)采集机采集的数据包送往上层处理系统时,正确的时序处理。
【背景技术】
[0002]在数据采集领域,随着应用业务的多样化,网元之间会采用不同的信令协议,有HDLC协议的,有ATM协议的,有IMA协议的,有TCP/IP协议的。而且数据流量不同网元间也不尽相同,有采用PCM 2M传输的,有光纤STM-1/4 155M/622M传输的,也有千兆万兆以太网传输的。针对这种多样化的链路,不同的公司用不同的板卡来采集对应的链路信令。而因数据流量的增大,关联的数据业务往往被分担到多条链路中传输,这样就需要多块采集板卡来进行关联采集,并有序送出数据包,上层分析系统才能正确无误的合成有意义的数据记录。
[0003]目前大部分采集机,一般只有3个插槽,也就是说最多可以插3块板卡。但随着业务种类的增加,流量的增大,需要采集的链路越来越多。只可插三块板卡的采集机越来越不适应市场的要求,需要大量的采集机才能满足链路采集的要求,这样就要求客户购买大量的采集机,不但采购成本高,用电量也会提高,关键在于放置采集机的机房占地也越来越大,引起客户的抱怨,同时也降低了公司产品的竞争力。
[0004]为了提高集成度,公司推出了高密度(12槽位)采集机SuperCap — E,可以插现有12块不同类型的板卡,大大提高了集成度。每类板卡处理的业务不同,CP0S622板卡处理的是STM-1/STM-4接口的HDLC协议,ThumbEl和SuperEl处理的E1接口的HDLC协议。APT3G板卡是处理ATM协议的,CP0S-1MA和CP0S-1MA+板卡是处理IMA协议的,FE板卡是处理TCP/IP协议的。每块板卡采集数据包实现的机制不同,特别是在打时间戳的方法上,都是每类板卡一种方法,而且同类板卡间需要通过物理线环回连接来实现主从同步,规避时间戳的倒序乱序问题。现在多种类别的卡插在一个采集机中,各自成一套的板卡主从同步方法已经不能适应时间戳的不倒序乱序的要求,经常造成上层系统无法合成有效的数据记录。而且板卡间由物理线环回连接来实现的主从同步,会由于连线接触不良、连接错误等原因增加故障点。
[0005]目前有单一类型板卡解决时间戳倒序乱序的方案是由硬件FPGA模块负责给从链路上收到的数据包打时间戳,如有多块板卡,选择其中一块设置成主卡,其他都设置成从卡,板卡间通过物理连接从主卡上引线环回。主卡一定周期与电脑主机同步,其他从卡统一同步主卡的晶振,确保各块卡间步调一致。该方案能很好的解决板卡上FPGA打时间戳时不会发生倒序乱序。但是从板卡FPGA的缓冲区送到主机缓冲区的时候,就有可能引入倒序乱序。因为FPGA缓冲区中的数据包在两种情况下给驱动发中断送数据。一种是在FPGA的缓冲区满的时候,缓冲区中的数据会马上送给驱动;另一种情况是由于链路上数据较少,一时无法将缓冲区填满,就有一个定时器来计时,定时器时间到,即便是FPGA缓冲区里的数据还没填满,也会将数据包送给驱动。这样两块卡即使同一时刻收到一个包,打的时间戳相同,也会由于数据量大的卡FPGA上的缓冲区先满而先将该包送走,而数据量小的数据包会滞后一段时间送走。而驱动收到包时,是有一个包向上层分析系统送一个包,这样两个包由于送给上层有一定的时间差,倒序乱序就这样引入了。
[0006]再者,现在高密度采集机中插入多块不同业务种类的板卡,不同种类的板卡FPGA同步机制不一致,不同种类的板卡无法主从同步,就不能保证所有板卡打时间戳的一致性。加上驱动收到包后,不判断各块板卡数据包时间戳的大小直接往上送,就会再一次增加数据包倒序乱序的可能性,上层就会出现无法合成有意义的数据记录的情况。
[0007]本发明就是为了解决在高集成采集机中以上两个可能引入的数据包时间戳倒序乱序的问题。
【发明内容】
[0008]本发明主要解决信令采集领域多业务板卡(2种业务以上)采集机采集的数据包送往上层处理系统时,容易造成时间戳倒序、乱序的问题。本发明方案可以解决数据包打时间戳同步需要主从板卡物理环回而引入的故障隐患,而且不同类板卡间同步机制不一致,无法保证所有不同种类的业务板卡送给上层分析系统的数据包是有序的问题。
[0009]本发明提出了一种多业务信令采集板卡数据包排序装置,用于正确处理多业务板卡采集机采集的数据包送往上层处理系统的顺序。多业务信令采集板卡数据包排序装置由板卡target模块和电脑主机host模块组成,板卡target模块和电脑主机host模块配合操作;板卡target模块由多个板卡链路组成,每个板卡链路包括FPGA模块和用于存包的缓冲buffer模块;电脑主机host模块由多个buffer模块组成,每个buffer模块分别与一个板卡链路相对应。
[0010]根据本发明的一个方面,板卡target上的buffer用于缓存接收经过FPGA打过时间戳的数据。
·[0011]根据本发明的一个方面,板卡target上的FPGA模块用于实现三个功能:一是一定周期与主机同步,获取准确时间;二是负责给收到的数据包打时间戳;三是发送定时包TimePacketο
[0012]根据本发明的一个方面,电脑主机host模块包含有:数据包缓冲区buffer模块,取包GetPackage模块,比较时间戳TimeCompare模块,发包SendPackage模块,检查是否超时 CheckTimeOut 模块。
[0013]根据本发明的一个方面,数据包缓冲区buffer模块,用于缓存接收到的数据包,缓存的大小可以根据实际需要进行设置。
[0014]根据本发明的一个方面,GetPackage模块,用于从每块板卡的buffer中取一个包,记为 PpPs,......,PN。
[0015]根据本发明的一个方面,TimeCompare模块用于比较取到的数据包时间戳TN的大小,得出时间戳最小的数据包,用数学公式表示:Tmin = Min (T1;T2,……,ΤΝ)。
[0016]根据本发明的一个方面,SendPackage模块,用于将时间戳最小对应的数据包Pmin送给上层系统合成有意义的数据记录。
[0017]根据本发明的一个方面,CheckTimeOut模块,用于检查板卡是否有包,在15ms的定时内,不但没有有效的数据包,而且也没有定时包,就判定该卡故障不再参与取包排序,直至该板卡发出数据包。
[0018]本发明还提出了一种多业务信令采集板卡数据包排序方法,用于正确处理多业务板卡采集机采集的数据包送往上层处理系统的时序,包括如下步骤:
[0019](1)主机逐个槽位判断有没有插采集板卡,插的哪种类型的板卡;
[0020](2)板卡不分主从,都设置成主卡,FPGA以一定周期与主机同步;
[0021](3) FPGA接收到链路上的数据包,给数据包打时间戳,送给板卡上的buffer ;
[0022](4) FPGA以一定周期发送定时包,一般设置为10ms,送给板卡上的buffer ;
[0023](5)板卡上的缓冲区里的数据在buffer满或者定时器时间到时,将buffer中的数据通过中断送给主机host上的buffer ;
[0024](6)GetPackage模块轮询查看每块板卡host缓冲区中的数据包,提取每个缓冲队列中的第一个数据包PN ;
[0025](7)TimeCompare模块记录每个数据包PN的时间戳,记为TN (第一块板卡数据包的时间戳记为?\,第二块板卡数据包的时间戳记为Τ2,以此类推。比较时间戳ΤΝ的大小,用数学公式表示:Tmin = Min (T1; Τ2,……,ΤΝ)。记录Tmin对应的数据Pmin。
[0026](8) SendPackage模块将时间戳最小的数据包Pmin送走,在该缓冲队列中再取一个数据包,与其他队列的数据包继续比较哪个时间戳最小。
[0027]根据本发明的一 个方面,第(4)步中,FPGA以10ms为周期发送定时包,送给板卡上的 bufferο
【专利附图】
【附图说明】
[0028]结合随后的附图,从下面的详细说明中可显而易见的得出本发明的上述及其他目的、特征及优点。在附图中:
[0029]图1示出了根据本发明实施例的结构图。
[0030]图2示出了根据本发明实施例数据包排序模块流程图。
【具体实施方式】
[0031]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0032]插有多种不同种类业务的板卡,需要有一套方法来解决时间戳倒序乱序的问题,同时规避物理线环回连接增加故障点隐患的可能。本方案已经在公司可以插12个板卡的SuperCAP 一 E上实施,效果良好。
[0033]本技术方案的结构图参见图1。
[0034]在本发明中,多业务信令采集板卡数据包排序装置由板卡target和电脑主机host组成,板卡target和电脑主机host两部分配合操作。
[0035]—、板卡target部分主要涉及FPGA和用于存包的缓冲buffer。
[0036](1)首先介绍功能相对简单的板卡上的buffer。该buffer用于缓存接收经过FPGA打过时间戳的数据,buffer的大小在板卡硬件设计时已经完成。为了提高target与host之间的传输效率,target上的数据分两种情况往host传送。一是buffer数据满了,就实时送给host的buffer,另一个是数据较少时,一时无法让buffer填满数据,就在定时器到时发送数据给host的buffer。
[0037](2)FPGA模块用于实现三个功能:一是一定周期与主机同步,获取准确时间。板卡不分主从,都设置成主卡,一定周期各自与主机同步。这样板卡间可以不用物理线环回,消除了物理连接的故障隐患。同步周期根据经验值设定,一般设定在5分钟到10分钟。周期如果过短,板卡容易因频繁与主机同步降低效率,周期如果过长,板卡自身时钟有可能偏离主机时钟过大,导致滞后或提前主机时间过长,调整的时间也会延长。二是负责给收到的数据包打时间戳;三是发送定时包TimePacket。在主机端TimeCompare模块轮询比较不同板卡host上buffer中数据包时间戳时,会遇到有的板卡由于处理效率较低,接收到数据包没有从板卡target上及时送给host的buffer而暂时没有包,等下一次轮询查看时已送出该数据包,而且该时间戳比上一次其他队列中送走的时间戳还小,这样就会有倒序。但是又不能无限期的等待下去,就引入了板卡发定时包TimePacket机制。为了这个定时包有别于从链路上接收到的普通包,定义了一个特殊的包内容,包长度为4字节,内容为0xA858AA55,可以根据它内容和长度的特殊性,该数据包不送给上层系统。板卡每隔10ms发一个这样的TimePacket。TimePacket定时包也参与排序,如果时间戳比其他队列的小,就继续等待该板卡主机buffer的数据包。如果该定时包的时间戳比其他队列的包时间戳大,就将其他最小的包送给上层。但是如果某个板卡主机buffer —直没有数据,也没有定时包,那么有一个超时判断机制,等待15ms,如果缓冲区中还没任何数据,就将该板卡认为超时,不再参与排序,比较其他有队列数据包时间戳最小的往上送,直至该板卡有包送上来。定时包可以确保每10ms比较一下所有数据,并保证有序送给上层。定时包发包周期的选取,是根据客户的要求来定的,客户对数据包的时延要求是100ms,所以每10ms—次比较引入的时延还是在要求范围内的。
[0038]二、主机host部分有数据包缓冲区buffer模块,取包GetPackage模块,比较时间戮TimeCompare模块,发包SendPackage模块,检查是否超时CheckTimeOut模块。其分别实现如下功能:
[0039](1)缓冲区buffer模块,主机给每块板卡分配一个缓存模块,用于缓存接收到的数据包,缓存的大小可以根据实际需要进行设置。接入能力大的采集板卡,缓存可以设置的大一些,接入能力小的采集板卡,缓存分配可以小一些。收到的数据包在缓存模块中形成缓冲数据包队列,等待送往上层进行数据合成分析。
[0040](2) GetPackage模块,从每块板卡的buffer中取一个包,记为P^P;^......,PN。
[0041](3) TimeCompare模块比较取到的数据包时间戳TN的大小,得出时间戳最小的数据包。用数学公式表示:Tmin = Min (T1;T2,……,ΤΝ)。
[0042](4) SendPackage模块,将时间戳Tmin最小对应的数据包Pmin送给上层系统合成有意义的数据记录。
[0043](5)CheckTime0ut模块,检查板卡是否有包,在15ms的定时内,不但没有有效的数据包,而且也没有定时包,就判定该卡故障不再参与取包排序,直至该板卡发出数据包。
[0044]附图2示出了根据本发明实施例的数据包排序流程。
[0045]根据本发明的实施例,一种多业务信令采集板卡数据包排序方法包括如下步骤:
[0046](1)主机逐个槽位判断有没有插采集板卡,插的哪种类型的板卡。[0047](2)板卡不分主从,都设置成主卡,FPGA以一定周期与主机同步。
[0048](3) FPGA接收到链路上的数据包,给数据包打时间戳,送给板卡上的buffer。
[0049](4)FPGA以一定周期发送定时包,一般设置为10ms,送给板卡上的buffer。
[0050](5)板卡上的缓冲区里的数据在buffer满或者定时器时间到时,将buffer中的数据通过中断送给主机host上的buffer。
[0051](6)GetPackage模块轮询查看每块板卡host缓冲区中的数据包,提取每个缓冲队列中的第一个数据包PN。
[0052](7)TimeCompare模块记录每个数据包PN的时间戳,记为TN (第一块板卡数据包的时间戳记为?\,第二块板卡数据包的时间戳记为Τ2,以此类推。比较时间戳ΤΝ的大小,用数学公式表示:Tmin = Min (T1; Τ2,……,ΤΝ)。记录Tmin对应的数据Pmin。
[0053](8) SendPackage模块将时间戳最小的数据包Pmin送走,在该缓冲队列中再取一个数据包,与其他队列的数据包继续比较哪个时间戳最小。这样就能保证所送的数据包时间戳是所用板卡中时间戳最小的,保证了数据包的有序性。
[0054]当插有1、2共2块板卡时,接收数据包进行排序的情况,步骤如下:
[0055](1)主机逐个槽位判断有没有插采集板卡,共检测到1、2两块板卡。
[0056](2) 1、2板卡不分主从,都设置成主卡,各自的FPGA以一定周期与主机同步。
[0057](3)1板卡的FPGA接收到链路上的数据包,在每个数据包头加上时间戳,送给板卡上的buffer-Ι,同样2板卡的数据包送给了 buf`fer-2。数据包在buffer中按收到的先后顺序排成队列,等待发给host。
[0058](4)同时1、2板卡的FPGA分别每隔一定周期,一般是10ms发送一个定时包TimePacket,送给板卡上各自的buffer,同样加入数据队列等待发给host。
[0059](5) 1、2板卡上的缓冲区里的数据在buffer满或者定时器时间到时,会将buffer中的数据通过中断送给主机host上的buffer。
[0060](6)GetPackage模块轮询查看1、2板卡host缓冲区中的数据包,分别取两个缓冲队列中的第一个数据包Pi和p2。
[0061](7)TimeCompare模块记录数据包Pi和P2的时间戳,分别记为?\和Τ2。比较时间戳^和!^的大小,用数学公式表示:Tmin = Min (?\,T2)。记录Tmin对应的数据Pmin。这里假设?\的时间戳小,那么Pmin就是Ρρ
[0062](8) SendPackage模块将时间戳最小的数据包Pi送给上层处理系统。这样送走的数据包不但是1板卡中时间戳最小的,而且也是比2板卡中的数据包时间戳都小,保证了数据包的有序性。
[0063](9)从1板卡的缓冲队列中再取一个数据包,与2板卡队列的数据包继续比较哪个时间戳最小。
[0064](10)假设1板卡上的链路没有数据,为了避免比较时间戳时一直等待1板卡上的数据,1板卡发出的定时包TimePacket就可以和2板卡上的数据包时间戳进行比较,先发送时间戳小的数据包。
[0065]极端情况有两种,一是插有板卡,但板卡出现故障,不但没有有效的数据包,而且发定时包的硬件模块也出现故障,不能发出定时包。CheckTimeOut模块可以规避无限期等待该板卡的情况。该模块设定一个8ms的定时器,各队列轮询读包,如果大于8ms该板卡buffer还没有数据包,包括定时包,就判定该卡故障不再参与取包排序,直至该板卡发出数据包。二是某一板卡的数据包一直比其他板卡的数据包时间戳小,导致其他板卡的数据在host的buffer中无法送出去,这种情况就说明板卡没有同步,同步机制出现了问题,可在同步模块进行检测并告警。
[0066]相关技术术语的名词解释:
[0067]FPGA:现场可编程门阵列 Field — Programmable Gate Array
[0068]HDLC:高级数据链路控制(High-Level Data Link Control)
[0069]ATM:异步传输模式(Asynchronous Transfer Mode)
[0070]IMA:反向复用的异步传输模式(Inverse Multiplexing for ATM)
[0071]STM:同步传输模块(Synchronous Transfer Module)
[0072]PCM:脉冲编码调变制(Pulse-code modulation)
[0073]插有多种类业务板卡的采集机,由于板卡间的差异,用以前通过物理线将同类板卡环回的方法,已经无法满足打时间戳的准确性。而且以前的机制在主机端没有对数据包进行排序送给上传系统,也容易引入倒序乱序。本发明将FPGA独立向主机同步,可以取消物理线环回,一是工程施工可以减少工作量,二是减少因物理线连接可能引入的连线不正确或松动的故障;主机端各板卡buffer中的数据逐一排序,可以保证送往上层系统的数据是有序的;FPGA的定时包机制,不但可以防止无限期等待没有数据的板卡,通过超时检查判断,可以提示硬件是否有故障。通过定时包和host上buffer中数据的排序,很好的规避了倒序乱序问题。
[0074]虽然已在具体实施方案中描述了本发明的实施方案及其各种功能组件,但是应当理解,可以用硬件、软件、固件、中间件或它们的组合来实现本发明的实施方案,并且本发明的实施方案可以用在多种系统、子系统、组件或其子组件中。本发明的每个实施例都可以与其它的实施例中的器件相互进行组合,而不是孤立的、单一的实施例,所有实施例之间都可以相互融合而形成新的实施例或者不同的解决方案。本发明虽然采用了不同的实施例来解决相应的技术问题,但是,这些不同的实施例并不是孤立的用于解决单个的技术问题,可以将这些不同的实施例组合起来共同解决需要克服的技术难题,可将不同实施例相互组合,以获得良好的性能。
[0075]以上所述,仅为本发明专利较佳的【具体实施方式】,但本发明专利的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明专利揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明专利的保护范围之内。
[0076]此外,对于本领域的普通技术人员来说可显而易见的得出其他优点和修改。因此,具有更广方面的本发明并不局限于这里所示出的并且所描述的具体说明及示例性实施例。因此,在不脱离由随后权利要求及其等价体所定义的一般发明构思的精神和范围的情况下,可对其做出各种修改。
【权利要求】
1.一种多业务信令采集板卡数据包排序装置,用于正确处理多业务板卡采集机采集的数据包送往上层处理系统的顺序,其特征在于:多业务信令采集板卡数据包排序装置由板卡target模块和电脑主机host模块组成,板卡target模块和电脑主机host模块配合操作;板卡target模块由多个板卡链路组成,每个板卡链路包括FPGA模块和用于存包的缓冲buffer模块;电脑主机host模块由多个buffer模块组成,每个buffer模块分别与一个板卡链路相对应。
2.如权利要求1所述的多业务信令采集板卡数据包排序装置,其特征在于:板卡target上的buffer用于缓存接收经过FPGA打过时间戳的数据。
3.如权利要求1所述的多业务信令采集板卡数据包排序装置,其特征在于:板卡target上的FPGA模块用于实现三个功能:一是一定周期与主机同步,获取准确时间;二是负责给收到的数据包打时间戳;三是发送定时包TimePacket。
4.如权利要求1所述的多业务信令采集板卡数据包排序装置,其特征在于:电脑主机host模块包含有:数据包缓冲区buffer模块,和数据排序模块;数据排序模块分为数据取包GetPackage模块,比较时间戳TimeCompare模块,发包SendPackage模块,检查是否超时CheckTimeOut模块。
5.如权利要求4所述的多业务信令采集板卡数据包排序装置,其特征在于:数据包缓冲区buffer模块,用于缓存接收到的数据包,缓存的大小可以根据实际需要进行设置。
6.如权利要求4所述的多业务信令采集板卡数据包排序装置,其特征在于:GetPackage模块,用于从每块板卡的buffer中取一个包,记为Pp P2,......,ΡΝ。
7.如权利要求4所述的多业务信令采集板卡数据包排序装置,其特征在于:TimeCompare模块用于比较取到的数据包时间戳ΤΝ的大小,得出时间戳最小的数据包,用数学公式表示:Tmin = Min (T1; Τ2,……,ΤΝ)。
8.如权利要求4所述的多业务信令采集板卡数据包排序装置,其特征在于:SendPackage模块,用于将时间戳Tmin最小对应的数据包Pmin送给上层系统合成有意义的数据记录。
9.如权利要求4所述的多业务信令采集板卡数据包排序装置,其特征在于:CheckTimeOut模块,用于检查板卡是否有包,在15ms的定时内,不但没有有效的数据包,而且也没有定时包,就判定该卡故障不再参与取包排序,直至该板卡发出数据包。
10.一种多业务信令采集板卡数据包排序方法,用于正确处理多业务板卡采集机采集的数据包送往上层处理系统的时序,其特征在于,包括如下步骤:(1)主机逐个槽位判断有没有插采集板卡,插的哪种类型的板卡;(2)板卡不分主从,都设置成主卡,FPGA以一定周期与主机同步;(3)FPGA接收到链路上的数据包,给数据包打时间戳,送给板卡上的buffer ;(4)FPGA以一定周期发送定时包,一般设置为10ms,送给板卡上的buffer ;(5)板卡上的缓冲区里的数据在buffer满或者定时器时间到时,将buffer中的数据通过中断送给主机host上的buffer ;(6)GetPackage模块轮询查看每块板卡host缓冲区中的数据包,提取每个缓冲队列中的第一个数据包PN ;(7)TimeCompare模块记录每个数据包PN的时间戳,记为TN,第一块板卡数据包的时间戳记为?\,第二块板卡数据包的时间戳记为Τ2,以此类推,比较时间戳ΤΝ的大小,用数学公式表示:Tmin = Min (T1; Τ2,......, 1,记录Tmxn对应的数据Pmin ;(8)SendPackage模 块将时间戳最小的数据包Pmin送走,在该缓冲队列中再取一个数据包,与其他队列的数据包继续比较哪个时间戳最小。
11.如权利要求10所述的多业务信令采集板卡数据包排序方法,其特征在于:第(4)步中,FPGA以10ms为周期发送定时包,送给板卡上的buffer。
【文档编号】H04L1/00GK103684692SQ201310693533
【公开日】2014年3月26日 申请日期:2013年12月17日 优先权日:2013年12月17日
【发明者】金旭雁 申请人:北京中创信测科技股份有限公司