延时测量中提高时间戳精度的方法及系统
技术领域
本发明涉及帧时延计算领域,具体涉及一种延时测量中提高时间戳精度的方法及系统。
背景技术
包交换芯片一般包括以太网接口模块和包处理模块,具体架构可参见图1所示。包交换芯片具有完善的OAM(Operation Administration and Maintenance,运营、管理、维护)机制,其存在多种针对不同应用场景的OAM,其中包括以太网业务OAM。以太网业务OAM中可以配置Down MEP(Maintenance association End Point,维护端点)和Up MEP,Up MEP是接收来自别的端口的OAM包并终结在本端口。根据802.1ag的定义,在一个bridge里面,如果一个MEP从Lan(Local Area Network,局域网)侧发送和接收它对应的MA(MaintenanceAssociation,维护关联)的CFM(Connectivity Fault Management,连通性故障管理)报文,那么这个MEP就是Down MEP;如果一个MEP从Bridge Relay侧发送和接收它对应的MA的CFM报文,那么这个MEP就是UP MEP。
目前包交换芯片中终结在Up MEP的OAM包并不是在某个端口处理,而是集中送到OAM硬件处理模块或者CPU(Central Processing Unit,中央处理器)进行处理。目前的架构中上述这种情况是需要环回的,因为到了目的端口之后会再次修改目的端口。环回是在包处理模块内部环回,不需要经过以太网接口,即在包处理模块中处理两次。
以太网业务OAM中双向延时测试功能可以测试双向延时,即本端MEP通过发送测量请求信息DMM(Delay Measurement Message,延时测量消息)到对端MEP,对端MEP回复DMR(Delay Measurement Reply,延时测量回复),本端MEP根据接收的DMR中携带的时间戳值来计算延时的。DMM PDU和DMR PDU的内容见图2和图3。Y.1731协议中定义的双向丢包测量的计算方法如下:
帧时延=(RxTimeb–TxTimeStampf)–(TxTimeStampb–RxTimeStampf)。
包交换芯片中Up MEP的延时测量示意图见图4所示:本端MEPA发送延时测量请求信息DMM并携带入以太网接口模块时以太网接口模块中的时间戳信息TxTimeStampf(缩写为TxTSf);对端MEP B接收到DMM信息时携带出以太网接口模块时以太网接口模块中的时间戳信息RxTimeStampf(缩写为RxTSf)并上送到CPU,CPU回复DMR信息,DMR发送时会携带入以太网接口模块时的以太网接口模块中的时间戳信息TxTimeStampb(缩写为TxTSb)。本端MEPA接收到DMR信息时携带出以太网接口模块时以太网接口模块中的时间戳信息RxTimeStampb(缩写为RxTSb)。DMM PDU接收时,TxTSf是携带DMM PDU中的,RxTSf是携带在MH(Mercury Head,Mercury芯片头部)头中的。DMR发送时,会将TxTSf、RxTSf、TxTSb携带在DMR PDU中。DMR接收时,TxTSf、RxTSf、TxTSb是携带DMRPDU中的,而RxTSb是携带在MH头中的。
DMM和DMR接收时因为在包处理模块中环回了一次(在包处理模块中两次处理的时间相同),所以接收时MH头中所携带的时间戳值是不准确的。如果按照Y.1731协议中的计算方法计算延时会存在偏差,不能精确的计算在包处理中需要环回处理的情况下的帧延时大小。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种延时测量中提高时间戳精度的方法,其在包处理模块需要环回处理的情况下,仍能精确计算帧时延。
为达到以上目的,本发明采取的技术方案是:
一种延时测量中提高时间戳精度的方法,该方法包括以下步骤:
UP MEP接收协议数据单元PDU时,计算UP MEP的包处理模块单次处理时间,将UPMEP芯片头部携带的时间戳值减去UP MEP的包处理模块单次处理时间,作为调整后的时间戳值。
在上述技术方案的基础上,所述UP MEP包括对端UP MEP和本端UP MEP,对端UPMEP接收本端UP MEP发送的延时测量信息数据包DMM PDU,计算对端UP MEP的包处理模块单次处理时间T3,对端UP MEP将对端芯片头部MH1携带的时间戳值RxTSf减去T3,作为调整后的时间戳值,携带在发送的延时测量回复数据包DMR PDU中。
在上述技术方案的基础上,所述方法还包括以下步骤:
本端UP MEP接收DMR PDU,计算本端UP MEP的包处理模块单次处理时间T6,本端UPMEP将本端芯片头部MH2携带的时间戳值RxTSb减去T6,作为调整后的时间戳值。
在上述技术方案的基础上,计算T3的具体步骤包括:
在对端UP MEP的入以太网接口方向,记录对端以太网接口模块中的时间戳值RxTxfIn;
在对端UP MEP的出以太网接口方向,记录对端以太网接口模块中的时间戳值RxTSf;
根据RxTxfIn、RxTSf、入对端以太网接口模块处理时间T1和出对端以太网接口模块处理时间T2,计算T3。
在上述技术方案的基础上,根据RxTxfIn、RxTSf、T1和T2,计算T3的具体过程为:
T1=(DMM PDU帧长+前导码+帧间隔)*8/接口流量;
T2=(DMM PDU帧长+MH1长度+前导码+帧间隔)*8/接口流量;
根据RxTSf=RxTxfIn+T1+T2+2T3,计算T3。
在上述技术方案的基础上,该方法还包括以下步骤:将对端以太网接口模块中的时间戳值RxTxfIn存入DMM PDU中。
在上述技术方案的基础上,计算T6的具体步骤包括:
在本端UP MEP的入以太网接口方向,记录本端以太网接口模块中的时间戳值RxTxbIn;
在本端UP MEP的出以太网接口方向,记录本端以太网接口模块中的时间戳值RxTSb;
根据RxTxbIn、RxTSb、入本端以太网接口模块处理时间T4和出本端以太网接口模块处理时间T5,计算T6。
在上述技术方案的基础上,所述根据RxTxbIn、RxTSb、T4和T5,计算T6,具体过程为:
T4=(DMR PDU帧长+前导码+帧间隔)*8/接口流量;
T5=(DMR PDU帧长+MH2长度+前导码+帧间隔)*8/接口流量;
根据RxTSb=RxTxbIn+T4+T5+2T6,计算T6。
在上述技术方案的基础上,该方法还包括以下步骤:将本端以太网接口模块中的时间戳值RxTxbIn存入DMR PDU中。
与此同时,本发明的另一个目的在于提供一种延时测量中提高时间戳精度的系统,其在包处理模块需要环回处理的情况下,仍能精确计算帧时延。
为达到以上目的,本发明采取的技术方案是:
一种延时测量中提高时间戳精度的系统,所述系统包括UP MEP和计算模块,
所述UP MEP接收PDU时,所述计算模块计算UP MEP的包处理模块单次处理时间,将所述UP MEP芯片头部携带的时间戳值减去UP MEP的包处理模块单次处理时间,作为调整后的时间戳值。
在上述技术方案的基础上,所述UP MEP包括对端UP MEP和本端UP MEP,所述对端UP MEP用于接收本端UP MEP发送的延时测量信息数据包DMM PDU,所述计算模块用于计算对端UP MEP的包处理模块单次处理时间T3,对端UP MEP将对端芯片头部MH1携带的时间戳值RxTSf减去T3,作为调整后的时间戳值,携带在发送的延时测量回复数据包DMR PDU中。
在上述技术方案的基础上,所述本端UP MEP用于接收DMR PDU,所述计算模块用于计算本端UP MEP的包处理模块单次处理时间T6,本端UP MEP将本端芯片头部MH2携带的时间戳值RxTSb减去T6,作为调整后的时间戳值。
在上述技术方案的基础上,所述计算模块计算T3的具体过程为:
在对端UP MEP的入以太网接口方向,记录对端以太网接口模块中的时间戳值RxTxfIn;
在对端UP MEP的出以太网接口方向,记录对端以太网接口模块中的时间戳值RxTSf;
根据RxTxfIn、RxTSf、入对端以太网接口模块处理时间T1和出对端以太网接口模块处理时间T2,计算T3。
在上述技术方案的基础上,所述计算模块根据RxTxfIn、RxTSf、T1和T2,计算T3的具体过程为:
T1=(DMM PDU帧长+前导码+帧间隔)*8/接口流量;
T2=(DMM PDU帧长+MH1长度+前导码+帧间隔)*8/接口流量;
根据RxTSf=RxTxfIn+T1+T2+2T3,计算T3。
在上述技术方案的基础上,所述对端UP MEP将对端以太网接口模块中的时间戳值RxTxfIn存入DMM PDU中。
在上述技术方案的基础上,所述计算模块计算T6的具体过程为:
在本端UP MEP的入以太网接口方向,记录本端以太网接口模块中的时间戳值RxTxbIn;
在本端UP MEP的出以太网接口方向,记录本端以太网接口模块中的时间戳值RxTSb;
根据RxTxbIn、RxTSb、入本端以太网接口模块处理时间T4和出本端以太网接口模块处理时间T5,计算T6。
在上述技术方案的基础上,所述计算模块根据RxTxbIn、RxTSb、T4和T5,计算T6的具体过程为:
T4=(DMR PDU帧长+前导码+帧间隔)*8/接口流量;
T5=(DMR PDU帧长+MH2长度+前导码+帧间隔)*8/接口流量;
根据RxTSb=RxTxbIn+T4+T5+2T6,计算T6。
在上述技术方案的基础上,所述本端UP MEP将本端以太网接口模块中的时间戳值RxTxbIn存入DMR PDU中。
与现有技术相比,本发明的优点在于:
本发明的延时测量中提高时间戳精度的方法,当对端UP MEP接收DMM PDU时,在环回之前将对端以太网接口模块中的时间戳值RxTxfIn存入DMM PDU的第四个时间戳值位置,然后便可计算对端UP MEP的包处理模块单次处理时间T3,进而可以对MH1中携带的时间戳值RxTSf进行调整,同时,本端UP MEP接收DMR PDU时,在本端UP MEP的入以太网接口方向,在环回之前将本端以太网接口模块中的时间戳值RxTxbIn存入DMR PDU的第四个时间戳值位置,然后便可计算本端UP MEP的包处理模块单次处理时间T6,进而可以对MH2中携带的时间戳值RxTSb进行调整,然后利用调整后的时间戳值便可以精确的计算帧时延。
附图说明
图1为现有技术中包交换芯片实现框图;
图2为现有技术中DMM PDU的示意图;
图3为现有技术中DMR PDU的示意图;
图4为现有技术中延时测量的实体图;
图5为本发明实施例中延时测量中提高时间戳精度的方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
实施例1:
本发明实施例提供一种延时测量中提高时间戳精度的方法,该方法包括以下步骤:
UP MEP接收协议数据单元PDU时,计算UP MEP的包处理模块单次处理时间,将UPMEP芯片头部携带的时间戳值减去UP MEP的包处理模块单次处理时间,作为调整后的时间戳值。
具体的,参见图5所示:
S1.所述UP MEP包括对端UP MEP和本端UP MEP,对端UP MEP接收本端UP MEP发送的延时测量信息数据包DMM PDU,计算对端UP MEP的包处理模块单次处理时间T3,对端UPMEP将对端芯片头部MH1携带的时间戳值RxTSf减去T3作为调整后的时间戳值携带在发送的延时测量回复数据包DMR PDU中;
S2.本端UP MEP接收DMR PDU,计算本端UP MEP的包处理模块单次处理时间T6,本端UP MEP将本端芯片头部MH2携带的时间戳值RxTSb减去T6作为调整后的时间戳值。
由于发生了环回,相当于在包处理模块中处理了两次,从而对端芯片头部MH1携带的时间戳值RxTSf和本端芯片头部MH2携带的时间戳值RxTSb是不准确的。本实施例中,通过计算对端UP MEP的包处理模块单次处理时间T3以及本端UP MEP的包处理模块单次处理时间T6,然后各自减去一次对应的包处理模块单次处理的时间,即可消除环回所带来的影响,提高了时间戳精度,进而能够准确的计算帧时延。
实施例2:
作为一个较好的可选方式,在实施例1的基础上:计算对端UP MEP的包处理模块单次处理时间T3的具体步骤包括:
在对端UP MEP的入以太网接口方向,记录对端以太网接口模块中的时间戳值RxTxfIn;
在对端UP MEP的出以太网接口方向,记录对端以太网接口模块中的时间戳值RxTSf;
根据RxTxfIn、RxTSf、对端入以太网接口模块处理时间T1和对端出以太网接口模块处理时间T2计算对端UP MEP的包处理模块单次处理时间T3。
实施例3:
作为一个较好的可选方式,在实施例2的基础上,将对端以太网接口模块中的时间戳值RxTxfIn存入DMM PDU中。具体的,本实施例将对端以太网接口模块中的时间戳值RxTxfIn存入DMM PDU的第四个时间戳值位置。
参见图2所示,DMM PDU一共包括四个用来存放时间戳值的位置,由于DMM PDU发送时其第四个时间戳值位置处于空闲状态,故本实施例中将RxTxfIn存入DMM PDU的第四个时间戳值位置,来为后续计算对端UP MEP的包处理模块单次处理时间T3做准备。
实施例4:
作为一个较好的可选方式,在实施例2的基础上:所述根据RxTxfIn、RxTSf、对端入以太网接口模块处理时间T1和对端出以太网接口模块处理时间T2,计算对端UP MEP的包处理模块单次处理时间T3,具体过程为:
对端入以太网接口模块处理时间T1=(DMM PDU帧长+前导码+帧间隔)*8/接口流量;
对端出以太网接口模块处理时间T2=(DMM PDU帧长+MH1长度+前导码+帧间隔)*8/接口流量。
进一步地,根据RxTSf=RxTxfIn+T1+T2+2T3,计算对端UP MEP的包处理模块单次处理时间T3。
优选的,本实施例中,DMM PDU帧长为64字节、MH1长度为16字节、前导码为8字节、帧间隔为16字节,入以太网接口和出以太网接口的流量均为1G,将上述具体数据带入计算,可得T1为626ns,T2为745ns。
实施例5:
参见图5所示,本发明实施例提供一种延时测量中提高时间戳精度的方法,该方法包括以下步骤:
S1.对端UP MEP接收本端UP MEP发送的延时测量信息数据包DMM PDU,计算对端UPMEP的包处理模块单次处理时间T3,对端UP MEP将对端芯片头部MH1携带的时间戳值RxTSf减去T3作为调整后的时间戳值携带在发送的延时测量回复数据包DMR PDU中;
S2.本端UP MEP接收DMR PDU,计算本端UP MEP的包处理模块单次处理时间T6,本端UP MEP将本端芯片头部MH2携带的时间戳值RxTSb减去T6作为调整后的时间戳值。
进一步地,计算本端UP MEP的包处理模块单次处理时间T6的具体步骤包括:
在本端UP MEP的入以太网接口方向,记录本端以太网接口模块中的时间戳值RxTxbIn;
在本端UP MEP的出以太网接口方向,记录本端以太网接口模块中的时间戳值RxTSb;
根据RxTxbIn、RxTSb、本端入以太网接口模块处理时间T4和本端出以太网接口模块处理时间T5计算本端UP MEP的包处理模块单次处理时间T6。
进一步地,所述根据RxTxbIn、RxTSb、本端入以太网接口模块处理时间T4和本端出以太网接口模块处理时间T5,计算本端UP MEP的包处理模块单次处理时间T6,具体过程为:
本端入以太网接口模块处理时间T4=(DMR PDU帧长+前导码+帧间隔)*8/接口流量;
本端出以太网接口模块处理时间T5=(DMR PDU帧长+MH2长度+前导码+帧间隔)*8/接口流量。
根据RxTSb=RxTxbIn+T4+T5+2T6,计算本端UP MEP的包处理模块单次处理时间T6。
本实施例中,DMR PDU帧长为64字节、MH2长度为16字节、前导码为8字节、帧间隔为16字节,入以太网接口和出以太网接口的流量均为1G,将上述具体数据带入计算,可得T4为626ns,T5为745ns。
实施例6:
作为一个较好的可选方式,在实施例5的基础上:将本端以太网接口模块中的时间戳值RxTxbIn存入DMR PDU中。具体的,本实施例将本端以太网接口模块中的时间戳值RxTxbIn存入DMR PDU的第四个时间戳值位置。
参见图1至图3所示,本端UP MEP和对端UP MEP均包括如图1所示的一个流程,图1中虚线标识为DMM PDU/DMR PDU接收方向的走向图,图中从X端口接收,本应来到Z端口,但是因为在包处理模块中环回了一次,故在Z端口确定要上送CPU后从Z端口环回到Y端口后上送CPU,下面对整个流程做如下介绍:
(1)本端UP MEP的CPU发送DMM PDU后,经过本端UP MEP的入以太网接口模块时,会携带一个时间戳TxTSf,放在DMM PDU的第一个时间戳值位置。
(2)对端UP MEP接收到DMM PDU,包处理之后,在出以太网接口方向,会携带一个时间戳值RxTSf,携带在MH1中被送到对端UP MEP的CPU。
(3)对端UP MEP的CPU接收到DMM PDU时回复DMR PDU,会将DMM PDU中的时间戳值TxTSf放在DMR PDU的第一个时间戳值位置,将DMM PDU包中MH1中的时间戳值放在DMR PDU的第二个时间戳值位置。当该包入以太网接口时会携带一个发送时间戳值TxTSb,放在第三个时间戳值位置。
(4)本端UP MEP收到DMR PDU时,包处理之后出以太网接口时会携带一个时间戳值RxTSb,携带在MH2中被送到CPU。
基于上述流程,本发明对RxTSf和RxTSb进行调整,即利用RxTSf-T3代替RxTSf、RxTSb-T6代替RxTSb,再结合本端UP MEP发送的DMM PDU所携带的时间戳值TxTSf和对端UPMEP发送的DMR PDU所携带的时间戳值TxTSb,带入公式:
帧时延=(RxTSb–TxTSf)–(TxTSb–RxTSf),即可精确计算帧时延。
实施例7:
本发明实施例提供一种延时测量中提高时间戳精度的系统,该系统包括UP MEP和计算模块。
所述UP MEP接收PDU时,所述计算模块计算UP MEP的包处理模块单次处理时间,将所述UP MEP芯片头部携带的时间戳值减去UP MEP的包处理模块单次处理时间,作为调整后的时间戳值。
具体的,所述UP MEP包括对端UP MEP和本端UP MEP,所述对端UP MEP用于接收本端UP MEP发送的延时测量信息数据包DMM PDU,所述计算模块用于计算对端UP MEP的包处理模块单次处理时间T3,对端UP MEP将对端芯片头部MH1携带的时间戳值RxTSf减去T3,作为调整后的时间戳值,携带在发送的延时测量回复数据包DMR PDU中。
所述本端UP MEP用于接收DMR PDU,所述计算模块用于计算本端UP MEP的包处理模块单次处理时间T6,本端UP MEP将本端芯片头部MH2携带的时间戳值RxTSb减去T6,作为调整后的时间戳值。
进一步地,所述计算模块计算对端UP MEP的包处理模块单次处理时间T3的具体过程为:
在对端UP MEP的入以太网接口方向,记录对端以太网接口模块中的时间戳值RxTxfIn;
在对端UP MEP的出以太网接口方向,记录对端以太网接口模块中的时间戳值RxTSf;
根据RxTxfIn、RxTSf、对端入以太网接口模块处理时间T1和对端出以太网接口模块处理时间T2,计算对端UP MEP的包处理模块单次处理时间T3。
进一步地,所述计算模块根据RxTxfIn、RxTSf、对端入以太网接口模块处理时间T1和对端出以太网接口模块处理时间T2,计算对端UP MEP的包处理模块单次处理时间T3,具体过程为:
对端入以太网接口模块处理时间T1=(DMM PDU帧长+前导码+帧间隔)*8/接口流量;
对端出以太网接口模块处理时间T2=(DMM PDU帧长+MH1长度+前导码+帧间隔)*8/接口流量;
根据RxTSf=RxTxfIn+T1+T2+2T3,计算对端UP MEP的包处理模块单次处理时间T3。
进一步地,所述对端UP MEP将对端以太网接口模块中的时间戳值RxTxfIn存入DMMPDU中。
进一步地,所述计算模块计算本端UP MEP的包处理模块单次处理时间T6的具体过程为:
在本端UP MEP的入以太网接口方向,记录本端以太网接口模块中的时间戳值RxTxbIn;
在本端UP MEP的出以太网接口方向,记录本端以太网接口模块中的时间戳值RxTSb;
根据RxTxbIn、RxTSb、本端入以太网接口模块处理时间T4和本端出以太网接口模块处理时间T5,计算本端UP MEP的包处理模块单次处理时间T6。
进一步地,所述计算模块根据RxTxbIn、RxTSb、本端入以太网接口模块处理时间T4和本端出以太网接口模块处理时间T5,计算本端UP MEP的包处理模块单次处理时间T6,具体过程为:
本端入以太网接口模块处理时间T4=(DMR PDU帧长+前导码+帧间隔)*8/接口流量;
本端出以太网接口模块处理时间T5=(DMR PDU帧长+MH2长度+前导码+帧间隔)*8/接口流量;
根据RxTSb=RxTxbIn+T4+T5+2T6,计算本端UP MEP的包处理模块单次处理时间T6。
进一步地,所述本端UP MEP将本端以太网接口模块中的时间戳值RxTxbIn存入DMRPDU中。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。