PTN芯片主动进行丢包测量的方法及系统
技术领域
本发明涉及包交换芯片领域,具体是涉及一种PTN芯片主动进行丢包测量的方法及系统。
背景技术
在包交换芯片中,OAM(Operation Administration and Maintenance,操作、管理、维护)功能是必不可少的,在OAM功能中,LM(Loss Measurement,丢包测量)功能常用于检查链路之间的数据包丢包率。LM丢包测量功能分为按需和主动的,按需功能由CPU(Central Processing Unit,中央处理器)触发,发包间隔秒级别;主动丢包测量由CCM(Continuity Check Message,连通性检查信息)来实现数据包计数,统计间隔达到毫秒级别,而且能够实时的监控,不需要用CPU触发。在PTN(Packet Transport Network,分组传送网)设备厂商对丢包测量要求比较及时的情况下,主动丢包测量功能变得尤为重要。因此,PTN芯片主动进行丢包测量是本领域亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种PTN芯片主动进行丢包测量的方法及系统,能够主动进行丢包测量,实时上报丢包个数和丢包率,误差在1%以内。
本发明提供一种PTN芯片主动进行丢包测量的方法,包括以下步骤:
S1、在两端被测试对象DUT建立进行丢包测量的互通业务;
S2、在两端DUT分别建立对应的OAM会话,OAM会话监控互通业务,并且开启主动丢包测量LM功能;
S3、启动两端的业务发送,在两端DUT内各建立一个MEP:MEP A和MEP B,两个MEP都启动OAM主动LM;OAM会话主动LM的CCM帧中携带3个统计信息:TxFCf、RxFCb、TxFCb,MEPA节点发送主动LM报文时,TxFCf表示A结点在发送CCM时带内数据包统计个数,RxFCb表示B节点在收到A节点发来CCM报文时收到的带内数据包统计个数,TxFCb表示B节点在发送CCM到A节点时带内数据包统计个数;
S4、MEP A节点发送CCM时,在PTN芯片出口处,判断OAM会话主动LM功能是否开启,此时业务统计个数为CounterAT0,若开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计CCM帧本身,则将TxFCf替换为CounterAT0+1;若不统计CCM帧本身,则将TxFCf替换为CounterAT0;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
S5、MEP B节点接收到MEP A节点送来的CCM帧后,此时业务统计个数为CounterBT0,在PTN芯片入口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若统计CCM帧本身,则统计值Stats=CounterBT0+1;若不统计CCM帧本身,则Stats=CounterBT0,将Stats值放在PTN芯片处理私有头部信息中,送到OAM引擎Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
S6、MEP B节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在本地维护域实体LMEP表中,将PTN芯片私有头部中的Stats值存储为接收帧计数RxFcf,保存在LMEP表中;
S7、MEP B节点OAM Engine主动发包,用LMEP表中的RxFcf替换CCM帧中的RxFcb,LMEP表中的TxFcf替换CCM帧中的TxFcb,然后将CCM报文发送到PTN芯片出口处,此时业务统计个数为CounterBT1,在PTN芯片出口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计,则将TxFCf替换为CounterBT1+1;若不统计CCM帧本身,则将TxFCf替换为CounterBT1,发送出设备;从MEP B节点发送出的主动LM报文中携带TxFCf、RxFcb和TxFcb三个统计计数信息;
S8、MEP A节点接收到MEP B节点送来的主动LM帧,此时业务统计个数为CounterAT1,在PTN芯片入口,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,如果要统计CCM帧本身,则Stats=CounterAT1+1;若不统计CCM帧本身,则Stats=CounterAT1,将Stats值放在PTN芯片处理私有头部信息中,送到OAM Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
S9、MEP A节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在LMEP表中,将PTN芯片私有头部中的Stats值存储为RxFcf,保存在LMEP表中;
S10、MEP A节点和MEP B节点两端之间的主动LM功能完成,两端的LMEP表中分别存储了4个统计计数值:TxFCf、RxFCb、TxFCb和RxFcf,两端MEP实时上报丢包个数和丢包率,误差在1%以内。
在上述技术方案的基础上,步骤S10之后,还包括以下步骤:
重复步骤S4~S9,持续测试丢包测量功能。
在上述技术方案的基础上,所述MEP B节点的主动丢包测量计算公式如下:
Tc表示当前时刻,Tp表示前一时刻;
DUT A到DUT B方向丢包数量:
|TxFCfTc-TxFCfTp|-|RxFCfTc-RxFCfTp|;
DUT B到DUT A方向丢包数量:
|TxFCbTc-TxFCbTp|-|RxFCbTc-RxFCbTp|;
DUT A到DUT B方向丢包率:
((|TxFCfTc-TxFCfTp|-|RxFCfTc-RxFCfTp|)/
(|TxFCfTc-TxFCfTp|));
DUT B到DUT A方向丢包率:
((|TxFCbTc-TxFCbTp|-|RxFCbTc-RxFCbTp|)/
(|TxFCbTc-TxFCbTp|))。
在上述技术方案的基础上,步骤S3中,所述CCM帧如果不用作主动LM功能,则TxFCf、RxFCb和TxFCb保留为0。
本发明还提供一种PTN芯片主动进行丢包测量的系统,该系统包括LM互通业务建立单元、OAM会话建立单元、主动LM启动单元、LM功能测试单元,其中:
LM互通业务建立单元用于:在两端被测试对象DUT建立进行丢包测量的互通业务;
OAM会话建立单元用于:在两端DUT分别建立对应的OAM会话,OAM会话监控互通业务,并且开启主动丢包测量LM功能;
主动LM启动单元用于:启动两端的业务发送,在两端DUT内各建立一个MEP:MEP A和MEP B,两个MEP都启动OAM主动LM;OAM会话主动LM的CCM帧中携带3个统计信息:TxFCf、RxFCb、TxFCb,MEP A节点发送主动LM报文时,TxFCf表示A结点在发送CCM时带内数据包统计个数,RxFCb表示B节点在收到A节点发来CCM报文时收到的带内数据包统计个数,TxFCb表示B节点在发送CCM到A节点时带内数据包统计个数;
LM功能测试单元用于:MEP A节点发送CCM时,在PTN芯片出口处,判断OAM会话主动LM功能是否开启,此时业务统计个数为CounterAT0,若开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计CCM帧本身,则将TxFCf替换为CounterAT0+1;若不统计CCM帧本身,则将TxFCf替换为CounterAT0;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
MEP B节点接收到MEP A节点送来的CCM帧后,此时业务统计个数为CounterBT0,在PTN芯片入口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若统计CCM帧本身,则统计值Stats=CounterBT0+1;若不统计CCM帧本身,则Stats=CounterBT0,将Stats值放在PTN芯片处理私有头部信息中,送到OAM引擎Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
MEP B节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在本地维护域实体LMEP表中,将PTN芯片私有头部中的Stats值存储为接收帧计数RxFcf,保存在LMEP表中;
MEP B节点OAM Engine主动发包,用LMEP表中的RxFcf替换CCM帧中的RxFcb,LMEP表中的TxFcf替换CCM帧中的TxFcb,然后将CCM报文发送到PTN芯片出口处,此时业务统计个数为CounterBT1,在PTN芯片出口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计,则将TxFCf替换为CounterBT1+1;若不统计CCM帧本身,则将TxFCf替换为CounterBT1,发送出设备;从MEP B节点发送出的主动LM报文中携带TxFCf、RxFcb和TxFcb三个统计计数信息;
MEP A节点接收到MEP B节点送来的主动LM帧,此时业务统计个数为CounterAT1,在PTN芯片入口,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,如果要统计CCM帧本身,则Stats=CounterAT1+1;若不统计CCM帧本身,则Stats=CounterAT1,将Stats值放在PTN芯片处理私有头部信息中,送到OAM Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
MEP A节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在LMEP表中,将PTN芯片私有头部中的Stats值存储为RxFcf,保存在LMEP表中;
MEP A节点和MEP B节点两端之间的主动LM功能完成,两端的LMEP表中分别存储了4个统计计数值:TxFCf、RxFCb、TxFCb和RxFcf,两端MEP实时上报丢包个数和丢包率,误差在1%以内。
在上述技术方案的基础上,所述LM功能测试单元在MEP A节点和MEP B节点两端之间的主动LM功能完成之后,还继续工作,持续测试丢包测量功能。
在上述技术方案的基础上,所述MEP B节点的主动丢包测量计算公式如下:
Tc表示当前时刻,Tp表示前一时刻;
DUT A到DUT B方向丢包数量:
|TxFCfTc-TxFCfTp|-|RxFCfTc-RxFCfTp|;
DUT B到DUT A方向丢包数量:
|TxFCbTc-TxFCbTp|-|RxFCbTc-RxFCbTp|;
DUT A到DUT B方向丢包率:
((|TxFCfTc-TxFCfTp|-|RxFCfTc-RxFCfTp|)/
(|TxFCfTc-TxFCfTp|));
DUT B到DUT A方向丢包率:
((|TxFCbTc-TxFCbTp|-|RxFCbTc-RxFCbTp|)/
(|TxFCbTc-TxFCbTp|))。
在上述技术方案的基础上,所述CCM帧如果不用作主动LM功能,则TxFCf、RxFCb和TxFCb保留为0。
与现有技术相比,本发明的优点如下:
本发明在两个DUT之间建立互通业务,在每个DUT内部分别建立一个OAM会话,OAM会话监控互通业务、配置周期发送与接收、开启主动LM功能。本发明能够主动进行丢包测量,做到主动监控,无需人工触发,实时上报丢包个数和丢包率,误差在1%以内,并且不影响CCM监控业务的功能,节省CPU开销,而且满足协议实现要求,降低设备成本。
附图说明
图1是本发明实施例中PTN芯片进行丢包测量的结构示意图。
图2是本发明实施例中主动LM发送的处理流程图。
图3是本发明实施例中主动LM接收的处理流程图。
图4是本发明实施例中主动LM OAM Engine内部接收的处理流程图。
图5是本发明实施例中主动LM OAM Engine内部发送的处理流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例按照G.8113.1和ITU-T Y.1731规定进行主动丢包测量功能设计。本发明实施例解决的难点在于用主动的CCM来携带两端MEP的数据包统计问题,CCM的发送周期默认3.33ms,在快速收发的同时能够对数据包计数携带在CCM报文中,并且两端的MEP都要对CCM的计数做交换处理,增加了硬件设计和实现难度。
本发明实施例提供一种PTN芯片主动进行丢包测量的方法,包括以下步骤:
S1、参见图1所示,在两端被测试对象DUT建立进行丢包测量的互通业务;
S2、在两端DUT分别建立对应的OAM会话,OAM会话监控互通业务,并且开启主动丢包测量LM功能;
S3、启动两端的业务发送,在两端DUT内各建立一个MEP:MEP A和MEP B,两个MEP都启动OAM主动LM;OAM会话主动LM的CCM帧中携带3个统计信息:TxFCf、RxFCb、TxFCb,MEPA节点发送主动LM报文时,TxFCf表示A结点在发送CCM时带内数据包统计个数,RxFCb表示B节点在收到A节点发来CCM报文时收到的带内数据包统计个数,TxFCb表示B节点在发送CCM到A节点时带内数据包统计个数;CCM帧如果不用作主动LM功能,则TxFCf、RxFCb和TxFCb保留为0;
S4、参见图2所示,MEP A节点发送CCM时,在PTN芯片出口处,判断OAM会话主动LM功能是否开启,此时业务统计个数为CounterAT0,若开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计CCM帧本身,则将TxFCf替换为CounterAT0+1;若不统计CCM帧本身,则将TxFCf替换为CounterAT0;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
S5、参见图3所示,MEP B节点接收到MEP A节点送来的CCM帧后,此时业务统计个数为CounterBT0,在PTN芯片入口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若统计CCM帧本身,则统计值Stats=CounterBT0+1;若不统计CCM帧本身,则Stats=CounterBT0,将Stats值放在PTN芯片处理私有头部信息中,送到OAM Engine(OAM引擎);若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
S6、MEP B节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在LMEP(本地维护域实体)表中,将PTN芯片私有头部中的Stats值存储为RxFcf(接收帧计数),保存在LMEP表中;
S7、参见图4所示,MEP B节点OAM Engine主动发包,用LMEP表中的RxFcf替换CCM帧中的RxFcb,LMEP表中的TxFcf替换CCM帧中的TxFcb,然后将CCM报文发送到PTN芯片出口处,此时业务统计个数为CounterBT1,在PTN芯片出口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计,则将TxFCf替换为CounterBT1+1;若不统计CCM帧本身,则将TxFCf替换为CounterBT1,发送出设备;从MEP B节点发送出的主动LM报文中携带TxFCf、RxFcb和TxFcb三个统计计数信息;
S8、参见图5所示,MEP A节点接收到MEP B节点送来的主动LM帧,此时业务统计个数为CounterAT1,在PTN芯片入口,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,如果要统计CCM帧本身,则Stats=CounterAT1+1;若不统计CCM帧本身,则Stats=CounterAT1,将Stats值放在PTN芯片处理私有头部信息中,送到OAM Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
S9、MEP A节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在LMEP表中,将PTN芯片私有头部中的Stats值存储为RxFcf,保存在LMEP表中;
S10、MEP A节点和MEP B节点两端之间的主动LM功能完成,两端的LMEP表中分别存储了4个统计计数值:TxFCf、RxFCb、TxFCb和RxFcf,两端MEP实时上报丢包个数和丢包率,误差在1%以内。
S11、重复步骤S4~S9,持续测试丢包测量功能。
本发明实施例还提供一种PTN芯片主动进行丢包测量的系统,该系统包括LM互通业务建立单元、OAM会话建立单元、主动LM启动单元、LM功能测试单元,其中:
LM互通业务建立单元用于:参见图1所示,在两端DUT(Design Under Test,被测试对象)建立进行丢包测量的互通业务;
OAM会话建立单元用于:在两端DUT分别建立对应的OAM会话,OAM会话监控互通业务,并且开启主动丢包测量LM功能;
主动LM启动单元用于:启动两端的业务发送,在两端DUT内各建立一个MEP:MEP A和MEP B,两个MEP都启动OAM主动LM;OAM会话主动LM的CCM帧中携带3个统计信息:TxFCf、RxFCb、TxFCb,MEP A节点发送主动LM报文时,TxFCf表示A结点在发送CCM时带内数据包统计个数,RxFCb表示B节点在收到A节点发来CCM报文时收到的带内数据包统计个数,TxFCb表示B节点在发送CCM到A节点时带内数据包统计个数;CCM帧如果不用作主动LM功能,则TxFCf、RxFCb和TxFCb保留为0;
LM功能测试单元用于:参见图2所示,MEP A节点发送CCM时,在PTN芯片出口处,判断OAM会话主动LM功能是否开启,此时业务统计个数为CounterAT0,若开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计CCM帧本身,则将TxFCf替换为CounterAT0+1;若不统计CCM帧本身,则将TxFCf替换为CounterAT0;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
参见图3所示,MEP B节点接收到MEP A节点送来的CCM帧后,此时业务统计个数为CounterBT0,在PTN芯片入口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若统计CCM帧本身,则统计值Stats=CounterBT0+1;若不统计CCM帧本身,则Stats=CounterBT0,将Stats值放在PTN芯片处理私有头部信息中,送到OAM Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
MEP B节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在LMEP表中,将PTN芯片私有头部中的Stats值存储为RxFcf,保存在LMEP表中;
参见图4所示,MEP B节点OAM Engine主动发包,用LMEP表中的RxFcf替换CCM帧中的RxFcb,LMEP表中的TxFcf替换CCM帧中的TxFcb,然后将CCM报文发送到PTN芯片出口处,此时业务统计个数为CounterBT1,在PTN芯片出口处,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,若要统计,则将TxFCf替换为CounterBT1+1;若不统计CCM帧本身,则将TxFCf替换为CounterBT1,发送出设备;从MEP B节点发送出的主动LM报文中携带TxFCf、RxFcb和TxFcb三个统计计数信息;
参见图5所示,MEP A节点接收到MEP B节点送来的主动LM帧,此时业务统计个数为CounterAT1,在PTN芯片入口,判断OAM会话的主动LM功能是否开启,如果开启,则提取数据包的统计计数,查看数据包统计配置是否统计CCM帧本身,如果要统计CCM帧本身,则Stats=CounterAT1+1;若不统计CCM帧本身,则Stats=CounterAT1,将Stats值放在PTN芯片处理私有头部信息中,送到OAM Engine;若不开启主动LM功能,则TxFCf、RxFCb、TxFCb这三个参数全部为0;
MEP A节点OAM Engine在收到携带Stats信息的CCM报文时,将TxFCf、RxFCb和TxFCb保存在LMEP表中,将PTN芯片私有头部中的Stats值存储为RxFcf,保存在LMEP表中;
MEP A节点和MEP B节点两端之间的主动LM功能完成,两端的LMEP表中分别存储了4个统计计数值:TxFCf、RxFCb、TxFCb和RxFcf,两端MEP实时上报丢包个数和丢包率,误差在1%以内。
LM功能测试单元在MEP A节点和MEP B节点两端之间的主动LM功能完成之后,还继续工作,持续测试丢包测量功能。
MEP B节点的主动丢包测量计算公式如下:
Tc表示当前时刻,Tp表示前一时刻;
DUT A到DUT B方向丢包数量:
|TxFCfTc-TxFCfTp|-|RxFCfTc-RxFCfTp|;
DUT B到DUT A方向丢包数量:
|TxFCbTc-TxFCbTp|-|RxFCbTc-RxFCbTp|;
DUT A到DUT B方向丢包率:
((|TxFCfTc-TxFCfTp|-|RxFCfTc-RxFCfTp|)/
(|TxFCfTc-TxFCfTp|));
DUT B到DUT A方向丢包率:
((|TxFCbTc-TxFCbTp|-|RxFCbTc-RxFCbTp|)/
(|TxFCbTc-TxFCbTp|))。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。