IMA延迟差异检测的方法及装置转让专利

申请号 : CN201210156888.9

文献号 : CN103428039B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘金亮

申请人 : 深圳市中兴微电子技术有限公司

摘要 :

本发明公开了一种IMA延迟差异检测的方法及装置,其中,该方法包括:对ATM信元进行连续编号;根据ATM信元的ATM信元编号进行延迟差异检测。通过运用本发明,解决了相关技术中,IMA延迟差异检测的方法较为复杂,且只能处理链路数量较少的情况的问题,进而使得IMA延迟差异检测的方法简单化,即使在链路数量较多的情况下也可以进行延迟差异检测,提高了系统性能。

权利要求 :

1.一种反向复用异步传输模式IMA延迟差异检测的方法,其特征在于,包括:对异步传输模式ATM信元进行连续编号;

根据ATM信元的ATM信元编号进行延迟差异检测;

其中,根据所述ATM信元的ATM信元编号进行延迟差异检测包括:将IMA组内所有链路的ATM信元编号与所述IMA组内最大的ATM信元编号依次进行比较;

确定ATM信元编号与所述最大的ATM信元编号的差值是否超过预设第一阈值,其中,超过预设第一阈值的ATM信元为未通过延迟差异检测;其余ATM信元为通过延迟差异检测;

当所述IMA组内增加新链路时,记录所述IMA组内当前最大ATM信元编号Cmax和最小ATM信元编号Cmin;

判断所述新链路的ATM信元编号是否大于Cmax与预设第二阈值之差且小于Cmin与所述预设第二阈值之和;

如果是,则确认所述新链路通过所述延迟差异检测。

2.根据权利要求1所述的方法,其特征在于,将IMA组内所有链路的ATM信元编号与所述IMA组内最大的ATM信元编号依次进行比较之前,还包括:依次读取所述IMA组内所有链路的ATM信元编号;

对所述IMA组内的所有链路的ATM信元编号进行排序。

3.根据权利要求2所述的方法,其特征在于,对所述IMA组内的所有链路的ATM信元编号进行排序之后,还包括:确定所述IMA组内所有链路的ATM信元编号在预定范围之内。

4.根据权利要求1至3中任一项所述的方法,其特征在于,根据所述ATM信元编号进行延迟差异检测之后,还包括:对通过所述延迟差异检测的链路,当所述IMA组内至少有一条链路进入激活Active状态时,将所述IMA组的读指针修改为最小的ATM信元编号。

5.根据权利要求4所述的方法,其特征在于,将所述IMA组的读指针修改为最小的ATM信元编号之后,还包括:检测所述IMA组内所有ATM信元编号是否都大于修改后的读指针;

如果否,则继续检测,直到所有ATM信元编号都大于修改后的读指针为止。

6.根据权利要求1所述的方法,其特征在于,对所述ATM信元进行连续编号包括:根据ICP信元接收的IMA帧的IMA帧序号和ICP偏移值生成ATM信元编号。

7.一种反向复用异步传输模式IMA延迟差异检测的装置,其特征在于,包括:编号模块,用于对异步传输模式ATM信元进行连续编号;

检测模块,用于根据ATM信元的ATM信元编号进行延迟差异检测;

其中,所述检测模块包括:

比较单元,用于将IMA组内所有链路的ATM信元编号与所述IMA组内最大的ATM信元编号依次进行比较;

确定单元,用于确定ATM信元编号与所述最大的ATM信元编号的差值是否超过预设第一阈值,其中,超过预设第一阈值的ATM信元为未通过延迟差异检测;其余ATM信元为通过延迟差异检测;

记录模块,用于当所述IMA组内增加新链路时,记录所述IMA组内当前最大ATM信元编号Cmax和最小ATM信元编号Cmin;

判断模块,用于判断所述新链路的ATM信元编号是否大于Cmax与预设第二阈值之差且小于Cmin与所述预设第二阈值之和;

确认模块,用于在所述新链路的ATM信元编号大于Cmax与预设第二阈值之差且小于Cmin与所述预设第二阈值之和情况下,确认所述新链路通过所述延迟差异检测。

8.根据权利要求7所述的装置,其特征在于,还包括:修改模块,用于对通过所述延迟差异检测的链路,当所述IMA组内至少有一条链路进入激活Active状态的情况下,将所述IMA组的读指针修改为最小的ATM信元编号。

说明书 :

IMA延迟差异检测的方法及装置

技术领域

[0001] 本发明涉及通信领域,具体而言,涉及一种反向复用异步传输模式(Inverse Multiplexing for ATM,简称为IMA)延迟差异检测的方法及装置。

背景技术

[0002] 由于语音,图像,数据业务的迅速发展,使得异步传输模式(Asynchronous Transfer Mode,简称为ATM)技术被广泛使用。但在接入网部分,由于现有的大量E1/E2/E3的速率等级分别为2m,8m,34m,其跨度较大,组合使用不灵活,而当前的高速ATM应用普遍以6-12M为主,在上述情况下,IMA技术就应运而生。IMA技术可通过捆绑N(0
[0003] 现有的IMA处理芯片和相关技术资料中对于IMA协议的延迟差异检测和补偿部分的描述基本都是与协议中保持一致,只是简单的描述了协议中已经写明的原理,对于实现的部分基本没有明确的描述。而且大部分都只是提供了链路数量较少的处理能力,还有一部分是借助了软件来实现延迟差异的计算,使得实现变得复杂。
[0004] 其中,相关技术中的LLP芯片可以判断用来缓存数据的DCB(Delay Compensation Buffer)是否出现写满或者读空,并通过读满或者读空的状态来确定链路是否出现延迟超限的情况。这种方式需要利用复杂的算法生成IDCR,以达到读写速率相同的目的,但对于超过DCB容量较多的延迟差异无法正确反映。
[0005] 相关技术中,IMA延迟差异检测的方法较为复杂,且只能处理链路数量较少的情况。

发明内容

[0006] 本发明提供了一种IMA延迟差异检测的方法及装置,以至少解决相关技术中,IMA延迟差异检测的方法较为复杂,且只能处理链路数量较少的情况的问题。
[0007] 根据本发明的一个方面,提供了一种IMA延迟差异检测的方法,包括:对ATM信元进行连续编号;根据ATM信元的ATM信元编号进行延迟差异检测。
[0008] 优选地,根据所述ATM信元的ATM信元编号进行延迟差异检测包括:将IMA组内所有链路的ATM信元编号与所述IMA组内最大的ATM信元编号依次进行比较;确定ATM信元编号与所述最大的ATM信元编号的差值是否超过预设第一阈值,其中,超过预设第一阈值的ATM信元为未通过延迟差异检测;其余ATM信元为通过延迟差异检测。
[0009] 优选地,将IMA组内所有链路的ATM信元编号与所述IMA组内最大的ATM信元编号依次进行比较之前,还包括:依次读取所述IMA组内所有链路的ATM信元编号;对所述IMA组内的所有链路的ATM信元编号进行排序。
[0010] 优选地,对所述IMA组内的所有链路的ATM信元编号进行排序之后,还包括:确定所述IMA组内所有链路的ATM信元编号在预定范围之内。
[0011] 优选地,所述方法还包括:当所述IMA组内增加新链路时,记录所述IMA组内当前最大ATM信元编号Cmax和最小ATM信元编号Cmin;判断所述新链路的ATM信元编号是否大于Cmax与预设第二阈值之差且小于Cmin与所述预设第二阈值之和;如果是,则确认所述新链路通过所述延迟差异检测。
[0012] 优选地,对所述ATM信元进行连续编号包括:根据ICP信元接收的IMA帧的IMA帧序号和ICP偏移值生成ATM信元编号。
[0013] 优选地,根据所述ATM信元编号进行延迟差异检测之后,还包括:对通过所述延迟差异检测的链路,当所述IMA组内至少有一条链路进入激活Active状态时,将所述IMA组的读指针修改为最小的ATM信元编号。
[0014] 优选地,将所述IMA组的读指针修改为最小的ATM信元编号之后,还包括:检测所述IMA组内所有ATM信元编号是否都大于修改后的读指针;如果否,则继续检测,直到所有ATM信元编号都大于修改后的读指针为止。
[0015] 根据本发明的另一方面,提供了一种IMA延迟差异检测的装置,包括:编号模块,用于对ATM信元进行连续编号;检测模块,用于根据ATM信元的ATM信元编号进行延迟差异检测。
[0016] 优选地,所述检测模块包括:比较单元,用于将IMA组内所有链路的ATM信元编号与所述IMA组内最大的ATM信元编号依次进行比较;确定单元,用于确定ATM信元编号与所述最大的ATM信元编号的差值是否超过预设第一阈值,其中,超过预设第一阈值的ATM信元为未通过延迟差异检测;其余ATM信元为通过延迟差异检测。
[0017] 优选地,所述装置还包括:记录模块,用于当所述IMA组内增加新链路时,记录所述IMA组内当前最大ATM信元编号Cmax和最小ATM信元编号Cmin;判断模块,用于判断所述新链路的ATM信元编号是否大于Cmax与预设第二阈值之差且小于Cmin与所述预设第二阈值之和;确认模块,用于在所述新链路的ATM信元编号大于Cmax与预设第二阈值之差且小于Cmin与所述预设第二阈值之和情况下,确认所述新链路通过所述延迟差异检测。
[0018] 优选地,所述装置还包括:修改模块,用于对通过所述延迟差异检测的链路,当所述IMA组内至少有一条链路进入激活Active状态的情况下,将所述IMA组的读指针修改为最小的ATM信元编号。
[0019] 本发明采用了如下方法:对ATM信元进行连续编号,并根据ATM信元的ATM信元编号进行延迟差异检测。本发明通过连续的ATM信元编号进行延迟差异检测,解决了相关技术中,IMA延迟差异检测的方法较为复杂,且只能处理链路数量较少的情况的问题,进而使得IMA延迟差异检测的方法简单化,即使在链路数量较多的情况下也可以进行延迟差异检测,提高了系统性能。

附图说明

[0020] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0021] 图1是根据本发明实施例的IMA延迟差异检测的方法的流程图;
[0022] 图2是根据本发明实施例的IMA延迟差异检测的装置的结构框图一;
[0023] 图3是根据本发明实施例的IMA延迟差异检测的装置的结构框图二;
[0024] 图4是根据本发明实施例的IMA延迟差异检测的装置的结构框图三;
[0025] 图5是根据本发明实施例的IMA延迟差异检测的装置的结构框图四;
[0026] 图6是根据本发明实施例的IMA延迟差异检测的装置的结构示意图。

具体实施方式

[0027] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0028] 基于相关技术中存在IMA延迟差异检测的方法较为复杂,且只能处理链路数量较少的情况的问题,本发明提供了一种IMA延迟差异检测的方法,该方法的流程可以如图1所示,该流程包括步骤S102至步骤S104:
[0029] 步骤S102,对ATM信元进行连续编号;
[0030] 步骤S104,根据ATM信元的ATM信元编号进行延迟差异检测。
[0031] 本实施例采用了上述方法,即通过连续的ATM信元编号进行延迟差异检测,以连续编号来确定时间上的连续性,不再需要大量且复杂的算法生成信元速率来进行延迟差异检测,解决了相关技术中,IMA延迟差异检测的方法较为复杂,且只能处理链路数量较少的情况的问题,进而使得IMA延迟差异检测的方法简单化,即使在链路数量较多的情况下也可以进行延迟差异检测,提高了系统性能。上述步骤S102体现了对ATM信元进行连续编号,该步骤的目的是获得ATM信元的连续编号,所以无论通过何种方式,只要是获得了连续编号就可以,本领域技术人员可以根据实际情况执行不同的编号方式,例如,可以通过IMA帧携带的ICP信元中的相关信息进行编号。
[0032] 优选地,在实施的过程中,可以根据IMA帧序号和ICP偏移值生成ATM信元编号。在对ATM信元编号进行计算的过程中,可以根据其位宽的不同队ATM进行不同起始位置的编号。该编号的过程是在收到第一个有效的ICP信元时就进行的初始化计算,此时,计算的是第一个ATM信元编号,此后,其它非ICP信元可以在此编号基础上加一,则根据该方法生成的编号是连续的。
[0033] 在取得了连续的ATM信元编号后,执行步骤S104,该步骤可以包括如下处理过程:
[0034] (1)将IMA组内所有链路的ATM信元编号与IMA组内最大的ATM信元编号依次进行比较;
[0035] (2)确定ATM信元编号与最大的ATM信元编号的差值是否超过预设第一阈值。如果这个差值超过预设第一阈值,则确定此时的ATM信元为未通过延迟差异检测;当这个差值未超过预设第一阈值时,则确定此时ATM信元为通过延迟差异检测。
[0036] 在判断ATM信元是否通过延迟差异检测的过程中,将IMA组内所有链路的ATM信元编号与IMA组内最大的ATM信元编号依次进行比较的工作量较大,为了减小上述处理过程(1)的工作量,还可以在处理过程(1)之前增加一个排序的过程:依次读取IMA组内所有链路的ATM信元编号;对IMA组内的所有链路的ATM信元编号进行排序。在对所有链路的ATM信元编号进行排序后,则ATM信元编号就变得整齐,此时,可以将ATM信元的编号与IMA组内最大的ATM信元编号依次进行比较,如果此时还发现了与最大的ATM信元编号的差值超过预设第一阈值的ATM信元,则抛弃该信元,因为排序原因,后续的ATM信元编号与最大的ATM信元编号的差值也定会超过预设第一阈值,也无需进行后续的比较了,节省了系统资源。
[0037] 在排序的过程中,由于对32条成员链路的ATM信元编号进行排序比较困难,因此我们采用了一种折中的办法,即限制32条成员链路的值在某一个范围内时才认为是排序结果有效。基于上述思想,可以在排序之后,确定IMA组内所有链路的ATM信元编号是否在预定范围之内。如果在预定范围之内,则排序结果为有效,即可以根据该排序结果进行延迟差异检测。如果不在预定范围之内,则认为该排序结果无效。
[0038] 在上述延迟差异检测组已经建立并进入正常工作后,当IMA组内增加新链路时,操作步骤可以如下:记录IMA组内当前最大ATM信元编号Cmax和最小ATM信元编号Cmin;判断新链路的ATM信元编号是否大于Cmax与预设第二阈值之差且小于Cmin与预设第二阈值之和;如果是,则确认新链路通过延迟差异检测。
[0039] 在实施过程中,由于系统有很强的兼容性,则可以以原来已经通过延迟差异检测的链路ATM信元编号的排序结果作为基准,对于小于最大值一定值或者大于最小值一定值的链路判定为延迟差异超限,抛弃该IMA帧,并可以同时选择上报超限(LODS)告警,通知链路增加失败。其他的新增链路则认为通过检测,参与之后的链路状态跳转。
[0040] 当上述延迟差异检测有结果后,对通过延迟差异检测的链路进行延迟补偿,以将同一个IMA组内原本不对齐的IMA帧对齐后输出。当IMA组内至少有一条链路进入激活(Active)状态时,将IMA组的读指针修改为最小的ATM信元编号,此后组内所有链路的读操作都以该读指针作为基准进行。
[0041] 在对齐进行差异延迟补偿的过程中,还需检测IMA组内所有ATM信元编号是否都大于修改后的读指针。当处理某个IMA组内的所有链路时,若所有Active链路的ATM信元编号都大于此时的组读指针,则本次所有链路都能读出一个信元;否则等待,直到满足上述条件。在实施过程中,组读指针起到了恢复原来的数据的作用,保证所有的链路同一时间读出来的数据在数据源头都是同一时间发送的,在整个过程中起到了保护的作用。
[0042] 在上述补偿结束后,将所有读出的数据中的非正确数据信元的其他信元丢弃后则恢复出了原来的ATM数据流。
[0043] 下面结合优选实施例对上述实施例及优选实施方式进行说明。
[0044] 实施例一
[0045] 本实施例以一个包含32条成员链路的IMA组为例来说明实施方案。
[0046] 假设当前IMA组M值为32,即一个IMA帧包含32个ATM信元,其中有且仅有一个ICP信元,该ICP信元中包含了8bit的IMA帧序号和8bit的ICP偏移(offset),其中,ICP offset用来指定ICP在IMA帧中的位置,本实施例中该值大于等于0小于32,即可以在0至31中任一位置上。
[0047] 在上述参数确定后,在接收到一个有效的ICP信元时,就可以初始化计算一次ATM信元编号(这里取10bit为该值的位宽),计算公式为:ATM信元编号=IMA帧序号x32+ICP offset。此后其他的非ICP信元的ATM信元编号就在前一个信元的基础上加1,这样就形成了基于ICP的连续的ATM信元编号。
[0048] 在处理该IMA组时,按链路ID由0到31的次序轮询所有链路,读取各链路的ATM信元编号值进行比较,由于用对32个值(这些值还可能会出现记满翻转的情况,比如计数到1023后再加一就回到了0)进行排序比较困难,因此这里对参与比较的数值进行一下限制,只有当32个值中至少有一个值在[511-N,511+N](N的值可根据具体情况调整,10-20之间比较好)之间比较结果才认为是有效的,这样规定后,当链路之间的延迟差异不是过大时就能保证所有的链路的ATM信元编号都是比较靠近511的,不会出现加满翻转的情况。当取得有效的比较结果后就能进行延迟差异检测了。其中,该过程中选取的511为1到1023中一个较为居中的数字,当然,也可以选择506,512等。
[0049] 下面以能容忍的延迟差异最大为40ms为例,对上述检测方法进行说明。
[0050] 在延迟差异检测组建立时:若32条链路中ATM信元编号最大值和最小值之差小于等于181(折合时间约为40ms),则所有链路均通过延迟差异检测。若最大值和最小值之差大于181则所有ATM信元编号值处于[最大值-181,最大值]之间的链路通过延迟差异检测,其他的上报延迟差异LODS告警。
[0051] 组正常工作时增加链路:与组建立时不同的是,组正常工作时,不能因为新加入的链路导致已在组内的链路出现延迟差异超限出现。因此,组工作时,需要先对已正常工作的链路的ATM信元编号进行排序,这时得到的最大值最小值分别记为Cmax、Cmin,新增链路为以下几种情况的通过延迟差异检测:
[0052] 1.新增链路ATM信元编号在[Cmin,Cmax]之间的通过延迟检测。
[0053] 2.新增链路ATM信元编号小于Cmin,但是在[Cmax-181,Cmax]之间的通过延迟检测。
[0054] 3.新增链路ATM信元编号大于Cmax,但是在[Cmin,Cmin+181]之间的通过延迟检测。
[0055] 通过延迟检测后的链路依据相关条件执行链路状态跳转,延迟补偿在所有的链路状态为Active的链路之间进行。
[0056] 补偿组建立时,以当前所有链路中ATM信元编号最小(链路延迟最大)的链路为基准,初始化读指针,初始化值为Cmin-4(4作为缓冲保护)。为统一组建立时和组建立后增加链路的补偿,采用如下策略,假设当前组读指针为rd_ptr:
[0057] 1.若当前组所有Active链路的ATM信元编号都处于[rd_ptr+4,rd_ptr+200],则从系统中按链路Link ID为0-31的次序各读出一个信元。
[0058] 2.若有任何一条Active链路ATM信元编号处于[rd_ptr-177,rd_ptr+3],则当前组必须等待,直到满足1中的全部读出的条件。
[0059] 3.若有其他情况出现则表示出现了异常。
[0060] 其中,上述177与200的选取可以由固定的延迟差异计算得出,最后将从系统中读出的数据中的ICP,填充(filler)信元丢弃后就恢复出了原始的ATM数据流。
[0061] 本实施例利用SDH的时分复用特点,在现有技术的基础上,创新的生成了ATM信元编号,并通过该信元编号实现了延迟差异检测,延迟补偿和数据恢复,不仅实现了大容量的IMA协议处理,还实现了IMA数据延迟补偿与恢复,避免了复杂的补偿恢复算法。
[0062] 本发明实施例还提供了一种IMA延迟差异检测的装置,该装置的结构如图2所示,包括:编号模块10,用于对ATM信元进行连续编号;检测模块20,与编号模块10耦合,用于根据ATM信元的ATM信元编号进行延迟差异检测。
[0063] 在实施的过程中,编号模块10可以用于根据ICP信元接收的IMA帧的IMA帧序号和ICP偏移值生成异步转移模式ATM信元编号。
[0064] 其中,图3示出了包括检测模块20的内部结构的IMA延迟差异检测的装置的结构框图,该检测模块20包括:比较单元202,用于将IMA组内所有链路的ATM信元编号与IMA组内最大的ATM信元编号依次进行比较;确定单元204,与比较单元202耦合,用于确定ATM信元编号与最大的ATM信元编号的差值是否超过预设第一阈值,其中,超过预设第一阈值的ATM信元为未通过延迟差异检测;其余ATM信元为通过延迟差异检测。
[0065] 图4示出了本实施例优化后的结构框图,该装置还可以包括:记录模块30,与检测模块20耦合,用于当IMA组内增加新链路时,记录IMA组内当前最大ATM信元编号Cmax和最小ATM信元编号Cmin;判断模块40,与记录模块30耦合,用于判断新链路的ATM信元编号是否大于Cmax与预设第二阈值之差且小于Cmin与预设第二阈值之和;确认模块50,与判断模块40耦合,用于在新链路的ATM信元编号大于Cmax与预设第二阈值之差且小于Cmin与预设第二阈值之和情况下,确认新链路通过延迟差异检测。
[0066] 优选地,上述装置还包括图5中新加入的修改模块60,用于对通过延迟差异检测的链路,当IMA组内至少有一条链路进入Active状态的情况下,将IMA组的读指针修改为最小的ATM信元编号。
[0067] 在实施过程中,对于加入修改模块60后的装置,还用于检测IMA组内所有ATM信元编号是否都大于修改后的读指针;如果否,则继续检测,直到所有ATM信元编号都大于修改后的读指针为止。
[0068] 优选地,该装置还可以加入用于依次读取IMA组内所有链路的ATM信元编号的模块;用于对IMA组内的所有链路的ATM信元编号进行排序的模块;用于确定IMA组内所有链路的ATM信元编号在预定范围之内的模块。当然,除了上述使装置得以优化的模块,该装置还包括必备的接收、存储模块等。
[0069] 下面结合优选实施例对上述实施例进行说明,优选实施例中的IMA延迟差异检测的装置整体在结构上与上述装置略有不同,但能解决功能的问题,实现相同的功能,达到相同的效果。
[0070] 实施例二
[0071] 本实施例涉及同步数字体系(Synchronous Digital Hierarchy,简称为SDH)/准同步数字系列(Plesiochronous Digital Hierarchy,简称为PDH)网络的IMA应用,尤其涉及基于SDH/同步光纤网络(Synchronous Optical Network,简称为SONET)实现IMA延迟差异检测和补偿。
[0072] 图6示出了本实施例IMA延迟差异检测装置的结构示意图,其中IMA解帧(IMA deframer)模块主要是完成解帧的工作,例如E1解帧,ATM解帧,IMA解帧等,并根据IMA帧内ICP信元的IMA帧序号(IMA Frame Sequence Number)及ICP offset值生成ATM信元编号值。该模块实现了上述实施例的装置的接收、解帧及编号的功能,通过ICP信元中的第八字节IMA帧序号,第9字节ICP offset及第13字节的低2bit(M value)生成10bit的ATM信元编号用来标识每个ATM信元在数据流中的位置。
[0073] 生成该编号后,以链路编号(0-503)为高位地址,以ATM信元编号为低位地址,将信元写入数据buffer中,同时按链路编号将ATM信元编号传递到IMA恢复(IMA recovery)模块并同时传递链路所属的IMA组号及链路在IMA组内的Link ID编号。
[0074] 数据缓冲器(data buffer)主要用来按链路存储所有的数据信元。
[0075] IMA recovery模块主要完成IMA的延迟差异检测,延迟补偿和IMA数据的恢复功能。该模块实现了差异检测、差异补偿及修改指针等功能。
[0076] 下面结合至少包括上述三个模块的装置对本实施例的差异检测和延迟补偿进行说明。
[0077] 延迟差异检测原理:IMA recovery按组号及组内的Link ID存储接收到的ATM信元编号及链路的编号。然后轮询处理所有的IMA组,处理某一个IMA组时,轮询处理组内的所有成员链路。依次读取所有成员链路对应的ATM信元编号,并对组内所有链路的ATM信元编号进行排序处理。由于使用硬件对最多32条成员链路的ATM信元编号进行排序比较困难,因此我们采用了一种折中的办法,即限制32条成员链路的值在某一个范围内时才认为是排序结果有效。
[0078] 在检测组建立时,所有被配置的链路参与比较,取得有效的排序结果后,以ATM信元编号最大(延迟最小)的链路为基准,ATM信元编号小于基准链路一定值的链路判定为延迟差异超限链路,上报LODS告警,其他的链路则通过延迟检测,能进行之后的状态跳变。
[0079] 工作过程中新加入链路时,以原来已经通过延迟差异检测的链路ATM信元编号的排序结果作为基准,对于小于最大值一定值或者大于最小值一定值的链路判定为延迟差异超限,上报LODS告警,链路增加失败。其他的新增链路则认为通过检测,参与之后的链路状态跳转。
[0080] 延迟补偿原理:所谓的延迟补偿就是将同一个组内各链路原本不对齐的IMA帧对齐后输出。本实施例同样利用前面生成的ATM信元编号完成延迟补偿,当IMA deframer模块完成IMA解帧并生成ATM信元编号后,以链路号作为高位地址以ATM信元编号作为低位地址将ATM信元存入data buffer中,IMA recovery模块完成延迟差异检测后根据检测的结果和相关信息完成IMA链路状态机。
[0081] 当某个IMA组内有任何一条链路进入Active状态时,以当前组内所有Active成员中延迟最大(ATM信元编号最小)的链路为基准,初始化整个IMA组的读指针(使用ATM信元编号作为读指针),此后组内所有链路的读操作都以该读指针作为基准进行。当处理某个组内的所有链路时若所有Active成员链路的ATM信元编号都大于此时的组读指针4(保护作用)以上,则本次所有链路都能读出一个信元,否则等待,直到满足条件。将所有读出的数据中的非正确数据信元的其他信元丢弃后则恢复出了原来的ATM数据流。
[0082] 本实施例以一个包含32条成员链路的IMA组为例来说明实施方案。
[0083] 假设当前IMA组M值为32,即一个IMA帧包含32个ATM信元,其中有且仅有一个ICP信元,该ICP信元中包含了8bit的IMA帧序号和8bit的ICP offset,其中,ICP offset用来指定ICP在IMA帧中的位置,本实施例中该值大于等于0小于32,即可以在0至31中任一位置上。
[0084] 在上述参数确定后,在接收到一个有效的ICP信元时,就可以初始化计算一次ATM信元编号(这里取10bit为该值的位宽),计算公式为:ATM信元编号=IMA帧序号x32+ICP offset。此后其他的非ICP信元的ATM信元编号就在前一个信元的基础上加1,这样就形成了基于ICP的连续的ATM信元编号。
[0085] 但根据IMA协议可知,在进行补偿后,所有具有相同的ATM信元编号的信元在远端发送时是对齐的。以链路编号为高位地址,以ATM信元为低位地址将数据以ATM信元为单位写入data buffer中,同时标识信元是数据信元,ICP信元还是Filler信元。在写入data buffer的同时将写指针也就是ATM信元编号传递到IMA recovery模块,并按链路存储。
[0086] 在IMA recovery模块处理IMA组时,按链路ID由0到31的次序轮询所有链路,读取各链路的ATM信元编号值进行比较,由于用对32个值(这些值还可能会出现记满翻转的情况,比如计数到1023后再加一就回到了0)进行排序比较困难,因此这里对参与比较的数值进行一下限制,只有当32个值中至少有一个值在[511-N,511+N](N的值可根据具体情况调整,10-20之间比较好)之间比较结果才认为是有效的,这样规定后,当链路之间的延迟差异不是过大时就能保证所有的链路的ATM信元编号都是比较靠近511的,不会出现加满翻转的情况。当取得有效的比较结果后就能进行延迟差异检测了。其中,该过程中选取的511为1到1023中一个较为居中的数字,当然,也可以选择506,512等。
[0087] 本实施例通过利用现有协议的相关特点生成用于计算延迟差异的ATM信元编号,达到使用较简单的硬件来实现延迟差异检测的目的,并通过简单的硬件实现IMA数据延迟补偿与恢复,避免了复杂的补偿恢复算法。
[0088] 从以上的描述中,可以看出,本发明实现了如下技术效果:
[0089] 现在技术中大部分都使用协议中定义的IDCR来控制读的速度,同时又使用了较复杂的方式来进行延迟差异检测和补偿,使得实现非常复杂,本发明通过利用ATM信元编号,即完成了延迟差异检测,同时也借助ATM信元编号实现了读出速率的控制,完全不需要使用复杂的IDCR来控制读出速率,使实现更加简化。另外ATM信元编号的位宽和写指针的位宽可以不一致,这样在不需要扩展数据缓存大小的情况下,可以通过加大ATM信元编号的位宽来提高对延迟差异的检测范围。
[0090] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0091] 以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。