实现数据平面可靠通信的方法和板卡
技术领域
本发明涉及网络通信领域,尤其涉及路由交换设备数据平面可靠通信的技术。
背景技术
目前主流路由交换设备的系统架构一般都分成数据平面、控制平面和监控平面三个子系统。其中,数据平面由交换矩阵和业务线卡的交换芯片单元组成,负责整个系统的业务数据处理和转发;和其它平面相比,数据平面占用系统资源最多,对整个设备的性能起决定性作用。数据平面主要有两种设计实现方案:第一种是将交换矩阵和主控板设计为一体,如图1所示,数据平面由主控板上的交换矩阵单元和各个业务线卡的交换芯片单元组成;主控板包括主控单元和交换矩阵单元,融合控制、协议处理、板间交换为一体。第二种方案是将控制平面和数据平面分离,即交换网板和主控板是独立的,交换矩阵由单独的交换网板提供,如图2所示。无论数据平面是采用方案1或者方案2设计,在都可采用博通(Broadcom)公司的芯片来实现,交换矩阵和交换单元之间通过HiGig协议进行通信,即交换矩阵单元和业务线卡的交换芯片单元通过HiGig端口互联,提供板间数据转发通道。所以交换矩阵单元和业务线卡的交换芯片单元之间的HiGig端口是否正常工作,是影响数据平面工作质量的决定性因素。一般交换网板和每个业务线卡之间有多个HiGig端口连接,流量均衡分担,如果某个HiGig端口出现异常而不能快速、准确检测并处理,将导跨卡转发出现严重丢包,即使数据流量不大,也会有大量丢包,导致客户业务中断,引起重大损失。
发明内容
本发明的主要目的是提供一种实现数据平面可靠通信的方法,通过及时发现数据平面HiGig端口的连通性问题,避免因为数据丢失引起系统异常,从而避免给客户造成严重损失。
本发明提供的实现数据平面可靠通信的方法,所述的数据平面支持HigGig协议,其特征在于,交换网板的控制CPU单元和业务线卡的控制CPU单元之间,按一定的周期通过HiGig端口互发探测报文,依次对所有HiGig端口的连通性进行检测;如果发现异常,立即将该HiGig端口的数据流切换到其它正常工作的HiGig端口,当检测到该HiGig端口恢复正常时,重新分配数据流给该HiGig端口。
进一步的,本发明实现的数据平面可靠通信方法,包括如下步骤:
a、在交换网板和每个业务线卡上启用HiGig连通性检测任务,并为交换网板和业务线卡的每一个HiGig端口设置报文检测计数器;
b、所述HiGig连通性检测任务按一定的周期向每一个HiGig端口发送探测报文,并且每个HiGig端口接收探测报文的回应报文,并在该HiGig端口的报文检测计数器中对发送的探测报文和接收的回应报文进行计数;
c、当HiGig连通性检测任务检测到某个HiGig端口的报文检测计数器达到设定的阈值时,设定该HiGig端口为非转发状态,并将该HiGig端口上的数据流量切换到其它正常的HiGig端口。
进一步的,步骤b所述的HiGig端口的报文检测计数器中对发送的探测报文和接收的回应报文进行计数的步骤如下:
b1、HiGig端口每发送一个探测报文,对其报文检测计数器执行加1操作;
b2、HiGig端口每接收到一个探测报文的回应报文,对其报文检测计数器执行减1操作。
进一步的,检测任务在向HiGig端口发送探测报文时,对本HiGig端口的报文检测计数器进行判断,如果报文检测计数器的值大于设定的阈值,设定本HiGig端口为非转发状态,通知系统将本HiGig端口数据流量切换到其它正常工作的HiGig端口。
具体的,所述的交换网板为带有交换矩阵单元的主控板。
具体的,所述探测报文和回应报文为HiGig2协议报文。
本发明的另一目的是,一种实现数据平面可靠通信的板卡,包括交换芯片单元和控制CPU单元,其特征在于,所述控制CPU单元中运行有用于对HiGig端口进行检测的HiGig连通性检测任务,所述HiGig连通性检测任务中设置有与交换芯片单元的HiGig端口一一对应的报文检测计数器;所述HiGig连通性检测任务用于收发探测报文以及探测报文的回应报文;所述的报文计数器用于对发送的探测报文和接收的回应报文进行计数。
具体的,所述的HiGig端口的报文检测计数器,在本HiGig端口每发送一个探测报文执行加1操作,每接收到一个探测报文的回应报文执行减1操作。
本发明的有益效果是,通过在数据平面内收发探测报文的方式进行检测,只有当HiGig端口能够正确收发探测报文时才分配使用,避免向存在问题的HiGig通道转发数据,从而保证了数据平面通信的可靠性。
附图说明
图1是现有数据平面和控制平面一体设计的交换设备结构框图。
图2是现有数据平面和控制平面分离交换设备结构框图。
图3是本发明的实现数据平面可靠通信的流程图。
图4是本发明实现数据平面可靠通信的板卡示意图。
图5是本发明实施例的检测报文格式示意图。
具体实施方式
本发明通过在数据平面内收发探测报文的方式进行检测,只有当HiGig端口能够正确收发探测报文,该HiGig端口才实际可用。本发明提供实现数据平面可靠通信的方法,所述的数据平面支持HigGig协议,交换网板的控制CPU单元和业务线卡的控制CPU单元之间,按一定的周期通过HiGig端口互发探测报文,依次对所有HiGig端口的连通性进行检测;如果发现异常,立即将该HiGig端口的数据流切换到其它正常工作的HiGig端口,当检测到该HiGig端口恢复正常时,重新分配数据流量分配给该端口。
图3是本发明实现数据平面可靠通信方法的流程图,包括如下步骤:
步骤101,在交换网板和每个业务线卡上启用HiGig连通性检测任务,并为交换网板和业务线卡的每一个HiGig端口设置报文检测计数器;
该步骤中,每个交换网板和每个业务线卡上的HiGig连通性检测任务负责探测报文的收发,具体可分为探测报文发送任务和探测报文接收任务;每个板卡(包括交换网板和业务线卡,交换网板在交换矩阵和主控板设计为一体时指主控板)上的探测报文发送任务负责周期性向每一个HiGig端口发送探测报文;接收任务负责对接收的探测报文和回应报文进行处理。探测报文和回应报文采用HiGig协议格式。
步骤102,业务线卡和交换网板的HiGig连通性检测任务分别按一定的周期向其每一个HiGig端口发送探测报文,而且每个HiGig端口接收探测报文的回应报文,并在该HiGig端口的报文检测计数器中对发送的探测报文和接收的回应报文进行计数;
该步骤中,每个板卡可以设定发送探测报文的周期,该发送周期可以通过对定时器进行配置来设定。探测报文发送任务向每个HiGig端口发送探测报文时,要在该HiGig端口的报文检测计数器中执行加1操作;探测报文接收任务在每个HiGig端口接收到探测报文的回应报文时,要在该HiGig端口的报文检测计数器中执行减1操作。
步骤103,当检测任务检测到某个HiGig端口的报文检测计数器达到设定的阈值时,确定该HiGig端口为错误状态,同时将该HiGig端口上的数据流量切换到其它正常的HiGig端口。
该步骤中,可以设定控制检测报文发送任务在向HiGig端口发送探测报文时,对本HiGig端口的报文检测计数器进行判断,如果报文检测计数器的值大于设定的阈值,判断本HiGig端口为非转发状态,通知系统将本HiGig端口数据流量切换到其它正常工作的HiGig端口。如果HiGig通道正常,那么HiGig端口发出的每个探测报文都能收到回应报文,如果不能及时收到回应报文,则本HiGig端口的报文检测计数器会一直累计,系统可以设定一个阈值,当报文检测计数器达到这个阈值时,表明本HiGig端口存在物理链路信号不稳定和对端状态不匹配等问题,将端口设为非转发,通知系统将本HiGig端口数据流量切换到其它正常工作的HiGig端口。
如图4所示,本发明的一种实现数据平面可靠通信的板卡,包括交换芯片单元和控制CPU单元,其特征在于,所述控制CPU单元中运行有用于对HiGig端口进行检测的HiGig连通性检测任务,所述HiGig连通性检测任务中设置有与交换芯片单元的HiGig端口一一对应的报文检测计数器;所述HiGig连通性检测任务用于收发探测报文以及探测报文的回应报文;所述的报文计数器用于对发送的探测报文和接收的回应报文进行计数。
实施例
在每个板卡上把HiGig端口的工作状态定义为四种:空闲、就绪、转发和错误。只有当HiGig端口处于转发状态,才加入聚合组或分配面板端口进行使用,其它情况,HiGig端口都不可用,初始化时HiGig端口处于空闲状态。检测到HiGig端口物理链路UP(中断通知)并且对端板卡就绪,HiGig端口状态从空闲状态切换到就绪状态。在业务线卡和交换网板上启用HiGig连通性检测任务,对处于就绪和转发状态的HiGig端口通过收发探测报文进行HiGig连通性检测:检测成功,如果HiGig处于就绪状态,将切换到转发状态;检测失败,如果HiGig处于转发状态,将切换到就绪状态状态,如果HiGig处于就绪状态,则保持不变。
本实施例中,检测报文的格式如图5,其中,以太头部中:
目的MAC:为目的板卡控制CPU单元的MAC地址;
源MAC:本端板卡控制CPU单元的MAC地址;
0x9999:以太头部的类型字段值,作为业务线卡和交换网板的控制CPU单元识别探测报文的标志。
另外,数据部分的信息格式定义如下表1,且每个字段的内容取自HiGig2协议的头部的相应字段:
源Mod ID |
源端口 |
目的Mod ID |
目的Port |
HiGig端口 |
表1
源Mod ID:为本板卡的Mod ID(模块号);
源端口:本板卡交换单元上连接到控制CPU单元的端口;
目的Mod ID:为目的板卡的Mod ID(模块号);
目的端口:目的板卡交换单元上连接到控制CPU单元的端口;
HiGig端口:是本板卡被检测HiGig端口号。
板卡上的HiGig连通性检测任务将检测报文以HiGig2格式发出,发出前在HiGig2头部填写源板卡和目的板卡的Mod ID和端口信息,而且数据部分带有源和目的的MOD ID和端口信息。业务线卡、交换网板的连通性检测任务收到类型为0x9999的报文,检查源Mod ID为本板卡的Mod ID,则是回应报文。如果目的Mod ID为本板卡的Mod ID,则用源Mod ID作目的Mod ID,目的Mod ID作源Mod ID生成HiGig2头部,交换源、目的MAC,保持报文内容不变从收到的HiGig发回去。如果源Mod ID、目的Mod ID都不是本板卡芯片的Mod ID,则丢弃这个报文。