LCAS动态无损切换数据带宽的解映射方法技术领域:
本发明涉及一种LCAS动态无损切换数据带宽的解映射方法。
背景技术:
在SDH传输业务中,LCAS(Link Capacity Adjustment Scheme,链路容量调
整方案)主要功能是利用SDH开销字节自定义控制帧结构,以带内方式控制所
承载的数据业务带宽解映射所需要的VC(Virtual Capacity,虚容器)的个数,
并支持动态无损的带宽(即虚容器个数)切换。这里,对LCAS技术作以简单介
绍。LCAS最初又称为VBA(Variable Bandwidth Allocation,可变带宽分配)技
术。可以看出,LCAS技术具有带宽灵活和动态调整等特点,当用户带宽发生变
化时,可以调整VCG(Virtual Concatenation Group,虚容组)中的Member(成
员)个数,这一调整不会对用户的正常业务产生中断。此外,LCAS技术还提供
一种容错机制:当虚容组中的某成员失效,不会使整个虚容组失效,而是自动地
将失效的成员从虚容组中剔除,剩下的正常成员继续传输业务;当失效的成员恢
复后,系统自动将该失效成员加入虚容组。一般来说,LCAS技术对VCG调整
有两个原因,分别为,链路状态发生变化:当LCAS检测到网络上出现某Member
失效时,自动减小VCG的容量;如果检测到失效的Member修复后,则自动地
增加VCG的容量。这种容量调整对对每个Member来说,都是可行的。带宽配
置发生变化:LCAS的源端和目的端之间的控制机制,可根据实际开展的业务带
宽需求调整VCG的容量,具体地根据业务流量和带宽来调整所用到的VCG容
量。另外,VCG还有标识字段GID(Group Identification bit,组标识),其用来
标识VCG,同一个VCG的所有成员GID相同。
LCAS中考虑了多种可能的控制过程。为方便理解,下面仅以VCG中处于
序列中间的某一VC失效时的LCAS控制过程来阐述其工作原理。VCG中某VC
(设为成员I)失效:
a.VCG链路末端节点首先检测出故障并向首端发送成员失效消息
(MST=FAIL),指出失效成员(成员i);
b.首端节点将成员i的控制字段CTRL置为“不可用(DNU)”,发往末端
节点;
c.末端节点开始仅采用正常的VC重组VCG,即将失效的VC从VCG中暂
时删除;
失效VC恢复后:
d.首端节点亦将失效的VC从VCG中暂时删除,仅采用正常的VC发送数
据;
e.VCG链路末端节点首先检测出失效的VC恢复,向首端发送“成员恢复
消息(MST=OK)”;
f.首端将该成员的控制字段CTRL置为“正常(NORM)”,发往末端节点。
虽然LCAS技术承载多数据业务时提高了传输系统的带宽利用率,但其在对
VCG输出字节(解映射过程)时为单字节填入,即其单次解映射字节为单字节,
在带宽变动时,容易造成从SDH帧中解间插的VC静荷数据的错乱,从而影响
数据传输的质量,造成部分数据丢失。
发明内容:
针对现有的LCAS切换数据带宽的解映射方法所存在的问题和不足,本发明
的目的是提供一种可动态调整带宽且没有数据损失的LCAS动态无损切换数据
带宽的解映射方法。
本发明是这样实现的:一种LCAS动态无损切换数据带宽的解映射方法,其
中的虚容组包含有16个成员,每个成员由16个虚容器串行连接而成,并建立主
解映射表和备用解映射表,所述解映射表以以下方式对数据进行解映射:
若虚容组的有效成员个数n小于4,则对所述虚容组进行4次输出操作作为
一个解映射周期;
若虚容组的有效成员个数n大于等于4而小于等于16,则对所述虚容组进
行16次输出操作作为一个解映射周期,其中,前n次为实操作,后16-n次为空
操作。
进一步地,该方法还包括:若数据带宽有变动,根据新带宽值对备用解映射
表进行配置,配置完成后,等待主解映射表中配置有效成员的虚容器中输出完上
一LCAS复帧的数据后马上将备用解映射表切换为主解映射表,原主解映射表自
动变为备用解映射表。
进一步地,所述输出操作为每次填入最多4个字节,最少为0字节。
进一步地,所述空操作为不输出字节的操作。
进一步地,所述数据带宽调整后,虚容组以新配置的主解映射表的0地址作
为起始地址。
进一步地,所述带宽变动配置备用解映射表为指定备用解映射表的有效成员
的数量。
进一步地,所述虚容组中组成各成员的虚容器均相同。
进一步地,所述虚容器组各成员的虚容器可以为VC-3、VC-4、VC-12或
VC-11中的任意一种。
本发明通过设置VCG,采用16个Member,每个Member又由16个相同的
VC串行连接,在本发明采用多字节映射,大大提高了数据带宽。由于LCAS的
复帧由16个单帧组成,本发明通过设置主解映射表,数据按主解映射表的映射
关系进行数据输出,在带宽调整后,首先配置备用解映射表,其提供带宽调整后
的数据输出关系,待配置结束并等待VCG中配置有效的VC中输出完上一LCAS
复帧的数据后马上将备用解映射表切换为主解映射表,之后到达的数据流将以新
的带宽从VCG中新配置有效的VC内输出。也即本发明仅在VCG的有效Member
所有字节输出时才对VCG进行调整,也即只在LCAS复帧的边界处切换。这保
证了整个数据的有序性,数据不会错乱。
附图说明:
下面结合附图,对本发明作出详细描述。
图1为本发明多字节解映射过程示意图;
图2为本发明的FPGA内部结构示意图。
具体实施方式:
本发明的虚容组(VCG)包含有16个成员(Member),每个成员由16个虚
容器(VC)串行连接而成,对数据解映射的方式如下:
若虚容组的有效成员个数n小于4,则对所述虚容组进行4次输出操作作为
一个解映射周期;
若虚容组的有效成员个数n大于等于4而小于等于16,则对所述虚容组进
行16次输出操作作为一个解映射周期,其中,前n次为实操作,后16-n次为空
操作。若数据带宽有变动,仅在虚容组中的所有有效成员所有字节输出时调整有
效成员个数,即调整在复帧的边界进行。
本发明的单次解映射可同时输出多个字节,最小0字节,最大为4字节;数
据带宽每次调整后,虚容组均以0地址作为起始地址。这里,虚容组中组成各成
员的虚容器均相同,其可以为任意种类,包括有VC-3、VC-4、VC-12和VC-11。
本发明可通过FPGA平台得以实现,FPGA包括有数据流模块、主解映射表、
备用解映射表、LCAS协议解析模块和VCG。其中数据流模块将VCG中配置有
效的VC内的数据字节按照解映射表提供的抽取关系取出,并整理成4字节宽的
数据流;解映射表提供的抽取关系由LCAS协议解析模块配置,为了方便调整,
设计了主备两张解映射表,主用解映射表提供当前带宽对应的数据抽取关系,备
用解映射表提供带宽调整后的数据抽取关系。当LCAS协议解析模块解析到数据
带宽将要发生变化后,会根据新的带宽值对备用解映射表进行配置,配置结束并
等待VCG中配置有效的VC中抽取完上一LCAS复帧的数据后马上将备用解映
射表切换为主用解映射表,之后将从VCG中新带宽配置有效的VC内抽取数据。
在本本发明中每个虚容器组预留了16个成员的带宽,为了解映射表配置的简化,
对虚容器组的成员的有效性作了以下定义:每个有效的组成员必须是在LCAS
协议协商后确定在该VCG中使用的VC虚容器,且每个组成员在VCG中排列
顺序必须以其在LCAS协议中被分配的SQ(顺序号)排列,对于出现DNU(Don’t
Use)状态的组成员需要自动剔除,并由下一个SQ对应的VC虚容器填补。这
样,解映射表就有16张。
本发明为多字节虚容器解映射:在目前的系统内由于时钟频率的限制,为了
提供更高带宽的数据流量,往往采用扩展数据位宽的方式,但数据位宽的增加使
得传统的以单个字节为单位的解映射方式无法满足带宽的要求,因此本发明采用
解映射表的方式设计了适用于m(m=0、1、2、3、4)字节的解映射方法。如
图1所示,为单次解映射4字节的情况,虚容器VC_4、VC_5、VC_6和VC_0
中的字节A1、A2、A3、A4按照解映射表的配置分别同时解映射到数据流模块
中,直到VC_0至VC_6所有的虚容器的所有字节均输出。本发明的解映射表是
指用于将多个VC虚容器的净荷字节取出到多字节位宽的数据流中所需的对应
关系的表项。为了提高解映射带宽,每次可同时填入m(m=0、1、2、3、4)
个字节,具体个数与已配置的VC个数有关。由于LCAS协议要求无损动态调整
业务的数据带宽,即动态调整有效的VC的个数,而每张解映射表仅表示一种数
据带宽的对应关系,因此在动态调整数据带宽时需要在不同配置的解映射表之间
切换。
本发明目前支持每种数据带宽的配置中有效的VC个数为j(j=0、1、
2、....16),每单次解映射的结果都是从某个VC虚容器中取出一个字节,在多
字节虚容器解映射的情况下,每次可能从多个VC虚容器中同时各取出入一字
节。但由于解映射表控制输出的字节数每次最大为4,在有效VC虚容器个数为
非4的整数倍的情况下,每单次解映射结果可能导致当前数据带宽下所使用的各
个有效VC虚容器的剩余的字节数不等,即VC虚容器的边界在每单次解映射结
束可能未对齐。在数据带宽不变的情况下,上述VC虚容器边界未对齐的状况并
不影响输出多字节的数据流,但在带宽调整的时候,如果输出的字节使映射表的
边界未对齐,如果切换解映射表可能会导致一部分数据错乱和丢失,从而导致输
出的多字节数据流的字节顺序错乱。本设计为了支持动态无损的调整数据业务的
带宽,由LCAS控制切换解映射表的时机。首先必须满足解映射表循环一周输出
的字节数应该能使每个VC虚容器剩余的字节容量相等,由于解映射表输出字节
数最大为4,有效VC虚容器的个数又在0到16之间不定,因此若每循环一周
从每个有效VC虚容器仅取出4个字节,就可在16次操作后最多从16个有效的
VC虚容器各取出4字节,假如配置的有效VC虚容器个数为n(4<=n<=16),则
在n次操作后即可从n个VC虚容器取出4字节,剩余(16-n)个单次解映射的
操作不取出字节;0<n<4时仅需要4次取出操作。这样以16为循环周期,每循
环一周可使每个有效的VC虚容器取出相同的字节数。其次,以4字节的倍数作
为解映射一周后的VC虚容器剩余的字节容量值,就要求Member的容量必须为
4字节的整数倍,这样在SDH的单独应用VC-3、VC-4均无法满足,但由于LCAS
复帧由16个单帧组成这一条件,只要在LCAS复帧的边界处切换,即不会造成
数据的错乱和丢失。因此,每个Member采用16个VC串行连接,其容量即可
满足上述条件,并可支持任何字节在复帧边界解映射切换。
由于动态调整数据带宽需要在不同的解映射表之间切换,为了方便表项内容
的读取,在每次切换时要求都以0地址作为起始。本发明中的数据流位宽为32bit
即4字节,每次可接收的字节数可能为0、1、2、3、4中任意一个,若要每次表
项起始位置的输出字节数具有周期性,即解映射关系可循环由表项配置的话,表
项循环一周输出的字节数必须是4的整数倍,再结合LCAS复帧由16个单帧组
成这一条件,每个Member由16个VC串行连接。
如图2所示,本发明以FPGA作为验证平台即可实现,FPGA由数据流模块
D、主解映射表M、备用解映射表M`、LCAS协议解析模块L、VC虚容器组
VCG等模块构成。其中数据流模块D将VCG中配置有效的VC内的数据字节按
照解映射表M提供的抽取关系取出,并整理成4字节宽的数据流;解映射表M
提供的抽取关系由LCAS协议解析模块配置,为了方便调整,设计了主备两张解
映射表,主用解映射表M提供当前带宽对应的数据抽取关系,备用解映射表M`
提供带宽调整后的数据抽取关系。当LCAS协议解析模块L解析到数据带宽将
要发生变化后,会根据新的带宽值对备用解映射表M`进行配置,配置结束并等
待VCG中配置有效的VC中抽取完上一LCAS复帧的数据后马上将备用解映射
表M`切换为主用解映射表M,之后数据流模块D将从VCG中新带宽配置有效
的VC内抽取数据。