一种在源端实现LCAS协议无损切换的方法 技术领域:
本发明术属于网络通信技术领域,具体涉及在SDH/SONET传输业务中用FPGA(现场可编程门阵列)或是ASIC(用户定制芯片)实现LCAS协议(Link CapacityAdjustment Scheme,链路带宽调整方案)数据无损切换时,在源端(SOURCE)发送LCAS控制帧的一种方法。
背景技术:
目前,在实现LCAS协议源端设计中主要解决的问题是LCAS控制帧与数据帧的确定时延关系。目前,多采用映射表项的方式实现由数据帧到STM-N定义的虚容器的转发。并且根据LCAS协议,每一LCAS控制帧对应下16帧数据。这就造成了控制设备修改LCAS控制帧和映射表项需要时间上的先后关系。
由于上述的原因,对主控设备修改表项提出了很高的要求。在目前实际设计中,多通过额外高层用户自定义协议修改LCAS协议来弥补上述问题。这样成倍的加大了设计的复杂性,耗费大量的软硬件资源。
发明内容:
本发明的目的是提供一种在源端实现LCAS协议无损切换的方法,不需要额外地高层用户自定义协议就可以实现LCAS协议的数据无损切换。
本发明的技术方案如下:
一种在源端实现LCAS协议无损切换的方法,LCAS控制帧和映射表项都采用主用页面和备用页面的工作模式,主用页面供工作模块读取,备用页面供控制设备进行修改。控制设备主动修改LCAS控制帧,然后在LCAS控制帧边界处把LCAS控制帧的备用页面切换为主用页面,原主用页面切换为备用页面;设备在LCAS控制帧边界处把备用页面切换为主用页面,把更新的LCAS控制帧发送出去;控制设备通过LCAS协议与远端交互,决定如何修改数据映射表项,同时设备(即源端)解析实际发送的LCAS控制帧,自行判断映射表是否变更,然后在下16帧调整后的数据到来时把映射表项备用页面切换成主用页面。
进一步,上述的在源端实现LCAS协议无损切换的方法,主备页面的切换具体采用的方法是:主控模块配置好备用表项内容后,修改表项高位地址并由高位地址锁存模块锁存高位地址,在LCAS复帧的帧边界处备用页面切换成主用页面,主用页面根据高位地址锁存模块送来的高位地址读出表项的内容供工作模块使用。即:通过最高地址位来区分主用页面和备用页面,表项的配置(即备用页面的使用)通过主控模块控制最高地址位,完成对此时备用表项的配置;表项的读出(即工作页面的使用),根据表项高位地址锁存模块送来的高位地址,读出表的内容供工作模块使用。
本发明的优点和技术效果:
映射表项变更这个“结果”是由LCAS控制帧变更这个“原因”造成的。本发明的方法,采用先修改映射表项,然后修改LCAS控制帧,之后通过设备自行解析实际发送的LCAS控制帧,再选择使用修改后的映射表项这种工作模式。这种设计在物理上保证了修改LCAS控制帧和映射表项时间上的先后关系,避免了对修改映射表项和LCAS控制帧的时延要求;并且没有对控制设备提出实时性的要求,简单可行。
附图说明:
图1为本发明的方法中主备页面切换工作流程示意图;
图2为本发明一具体实施例的流程图;
图3为图2所示实施例中源端(SOURCE)添加MEMBER的流程图;
图4为图2所示实施例中源端(SOURCE)删减MEMBER的流程图;
图5为图2所示实施例中源端(SOURCE)处理DNU的流程图;
图6为图2所示实施例中宿端(SINK)删减MEMBER的流程图;
图7为图2所示实施例中宿端(SINK)添加MEMBER的流程图;
图8为图2所示实施例中宿端(SINK)处理DNU的流程图;
图9为图2所示实施例中宿端(SINK)物理通道重构功能示意图。
具体实施方式:
如图1所示,是本发明的在源端实现LCAS协议无损切换的方法中主备页面切换的工作流程示意图。具体包括以下几个方面:
1.主备用表项采用一个双端口ram来实现,一个端口只读,用于读表项,另一个端口只写,用于表项的配置,通过最高地址位来区分主备页面。
2.表项的配置(即ram的写入)通过主控模块控制最高地址位,完成对此时备用表项的配置。与以往多数的设计不同,这里对备用表项的配置完全可以不考虑与实时数据帧的配合,也不必考虑配置的时机,主控模块可以随意地配置。
3.表项的读出(即工作页面的使用),根据表项高位地址锁存模块送来的高位地址,读出表的内容供工作模块使用。
4.高位地址的锁存,完成了主备页面的切换,同时完成表项内容与实时数据帧的同步,它是本设计中最关键的部分。主控模块配置好备用表项内容后,修改表项高位地址,此时并不完成主备切换,由高位地址锁存模块等待切换机会的到来,再做切换。
5.切换机会的产生严格保证在LCAS复帧(16帧)的帧边界处,从而保证表项内容与实时数据帧的配合。
图2示出了本发明一具体实施例的工作流程图。在本实施例中,不仅包括了在源端实现LCAS协议无损切换的方法,还给出了在宿端实现LCAS协议无损切换的方法。图中:
SOURCE端(源端),工作流程如下:
1.控制设备通过修改高位地址选择映射表项;
2.控制设备通过修改高位地址选择与映射表项对应的LCAS控制帧;
3.在调整机会(MFI1=0000)处把备用LCAS控制帧改为主用;
4.设备发送主用页面的LCAS控制帧;
5.设备解析实际发送的LCAS控制帧,提供映射表项的选择信息;
6.映射表项在调整机会(MFI1=0000)处把备用页面改为主用页面;
通过以上操作在帧构成模块把数据报文映射成SDH帧;
SINK端(宿端),分两种情况:
一、做添加MEMBER(逻辑通道中的最小虚容器单位)操作时,工作流程如下:
1’、解析LCAS控制帧;
2’、提交控制设备LCAS解析信息;
3’、控制设备修改逻辑通道←→虚容器备用映射表,然后修改表项高位地址,设备在切换机会(MFI1=0000)时切换到备用页面(控制设备通知源端添加成功);
4’、设备自行解析LCAS控制帧,当本虚容器通道没有数据时,通知重构模块本通道无效;当本虚容器有数据时,通知重构模块本通道有效,同时把重构信息提交给重构模块;
5’、重构模块根据每个虚容器的重构信息构造物理映射信息,选择映射表;
6’、映射表在实际数据构成变更处把备用页面改为主用页面。
二、当删减MEMBER或DNU(虚级联逻辑通道中临时不使用的虚容器)操作时,工作流程如下:
A’、解析LCAS控制帧,当本虚容器通道没有数据时,通知重构模块本通道无效;
B’、重构模块根据每个虚容器的重构信息构造物理映射信息,选择映射表;
C’、通知控制设备某逻辑通道的某个虚容器被删减或是处于DNU状态;
通过以上操作在帧构成模块SDH帧转换成数据报文;
其中,映射表项工作在重构后的物理通道映射关系而不是工作在逻辑通道的逻辑映射关系。如图9所示为物理通道重构功能示意图。譬如,某逻辑通道由1、2、3(DNU)和4构成,经过重构,由实际使用的1、2和4构造成物理通道1’、2’和3’。这样只需要等于MEMBER数量的映射表而不是等于2^MEMBER数量的映射表,有效降低了映射表项的数量,为设备自行确定映射表奠定了基础。
图3至图8示出了LCAS处理模块与控制设备的交互控制流程。
图3至图5示出了源端与控制设备的交互流程,图中的“修改步骤A”指:
修改UPMAPPER映射表
→修改LCAS控制字
→修改VCG←→VC_NUM表
→修改VCG←→VC_NUM表高位地址
→修改LCAS控制帧高位地址
如图3所示,为SO添加MEMBER流程,图中:
STEP1:由控制模块下发添加命令;
STEP2:修改LCAS控制帧的备用页面,修改映射表备用页面,修改LCAS控制帧高位地址;
STEP3、STEP4、STEP5、STEP6:根据远端的反馈确定添加命令是否被远端确认;
STEP6:重新构造数据帧结构;
STEP7:查询远端ACK是否翻转,确定是否可以发送下一命令。
如图4所示,为SO删减MEMBER流程,图中:
STEP1:由控制模块下发删减命令;
STEP2:修改LCAS控制帧的备用页面,修改映射表备用页面,修改LCAS控制帧高位地址,重新构造数据帧结构;
STEP3、STEP4、STEP5:根据远端的反馈确定删减命令是否被远端确认;
STEP6:查询远端ACK是否翻转,确定是否可以发送下一命令。
如图5所示,为SO处理DNU的流程,图中:
STEP1、STEP2:解析远端的LCAS控制帧确认有DNU产生;
STEP3:修改LCAS控制帧的备用页面,修改映射表备用页面,修改LCAS控制帧高位地址,重新构造数据帧结构;
STEP4:解析远端的LCAS控制帧确认有DNU恢复产生;
STEP6:修改LCAS控制帧的备用页面,修改映射表备用页面,修改LCAS控制帧高位地址,重新构造数据帧结构。
图6至图8示出了SK端与控制设备的交互流程。图中“修改步骤B”指:
修改参考MST→修改VCG←→VC_NUM表
如图6所示,为SK删减MEMBER的流程,图中:
STEP1:解析远端的LCAS控制帧确定有删减命令,逻辑自行重构数据帧;
STEP2:通知管理模块修改数据库,管理模块通过LCAS通知远端命令被接收;
STEP3:管理模块发ACK命令通知远端可以接收下一命令。
如图7所示,为SK添加MEMBER的流程,图中:
STEP1:解析远端的LCAS控制帧确定有添加命令,逻辑自行重构数据帧;
STEP2:通知管理模块修改数据库,管理模块修改映射表项;
STEP3:管理模块通过LCAS通知远端命令被接收;
STEP4:接收重构的数据;
STEP5:管理模块发ACK命令通知远端可以接收下一命令。
如图8所示,为SK处理DNU流程,图中:
STEP1:解析远端的LCAS控制帧确定有DNU,逻辑自行重构数据帧;
STEP2:通知管理模块修改数据库,管理模块修改映射表项;
STEP3:解析远端的LCAS控制帧确定有DNU恢复,逻辑自行重构数据帧;
STEP4:通知管理模块修改数据库,管理模块修改映射表项。