运行、管理和维护OAM报文处理方法及装置与流程

文档序号:12067826阅读:604来源:国知局
本发明涉及通信领域,具体而言,涉及一种运行、管理和维护OAM报文处理方法及装置。
背景技术
::先阐述几个概念:集中式架构:当管理面,控制面和转发面集中在主控板一块单板完成的架构称之为集中式架构。如图1所示。分布式架构:管理面和控制面在主控单板完成,转发面由单独的线卡经过交换线卡完成包交换,并到下行线卡完成报文封装转发的架构称为分布式架构,如图2所示。分布式网络侧队列调度管理架构:在分布式系统架构中,转发面报文在下行线卡完成封装后再进行队列调度管理的系统称之为分布式网络侧调度管理架构,如图3所示。分布式交换侧队列调度管理架构:在分布式架构中,转发面报文在上行线卡进入交换前入队,并由下行线卡队列调度管理器进行调度转发的架构称之为分布式交换侧队列调度管理架构,如图4所示。分布式交换侧队列调度架构下传输协议运行、管理和维护(TransferProcotolOperationAdministrationandMaintenance,简称为TPOAM)报文归宿线卡:在分布式交换侧队列调度管理架构中,TPOAM报文可以由工作路径所在线卡产生和终结,也可以由保护路径所在线卡产生和终结。当指定其中一块线卡负责OAM产生和终结时,该线卡被称为OAM的归宿线卡,如图5所示。分布式交换侧队列调度架构下TPOAM报文归宿线卡上存在OAM报文突发问题,如图6所示:当T(t)时刻从多个端口收到OAM报文在归宿线卡终结时,则线卡上送TPOAM生成器的OAM速率瞬间达到N*端口速率。若要求线卡负责报文上送的器件的上送速率以及TPOAM生成器端口速率与之匹配,则它们的端口速率将达到上T甚至几十个T(其中,1T=1000Gbps),目前芯片肯定无法满足。这就要求OAM在上送前必须有足够的缓存M来存储这些报文,其中,缓存M的计算公式如下:M=N×Speed×△t–S×△t(1)其中,△t为接收OAM持续时间,N为线卡接收OAM报文的端口数,S为线卡上送速率。上述△t的计算公式如下:△t=(OAM报文长度L+交换头H)×3×快速OAM实例数M/线卡数O×8bit/byte/S(2)其中,O为发送侧OAM平均分配在O块线卡上。由于在10ms内信息交换模式(MessageExchangePattern,简称为MEP)间未检测到快速OAM报文就会触发保护倒换,因此,仅需要计算10ms内OAM占用缓存大小。按照3.3ms快速OAM报文,则10ms将产生3个OAM报文。将△t代入上述公式(1)得到:M=(N×Speed–S)×3×(OAM报文长度L+交换头H)×(快速OAM实例数M/线卡数O)×8bit/byte/S(3)展开公式(3)式得到:M={(N×Speed–S)×3×(OAM报文长度L+交换头H)×8bit/byte/(S×线卡数O)}×(快速OAM实例数M)(4)对于指定机架和线卡,{(N×Speed–S)×3×(OAM报文长度L+交换头H)×8bit/byte/(S×线卡数O)}是个常数K。因此,对于指定机架和线卡上的M简化为:M=K×快速OAM实例数M(5)通过上述公式(5)可知,缓存M与本线卡OAM实例数成正相关,OAM实例数越多,缓存M越大。缓存M将达到10Mbytes甚至几十Mbytes。由于归宿线卡场景存在,因此,极端情况下,线卡∑M=线卡数N*M。若按照32线卡计算,则需要开销缓存将达到几百MBytes甚至几个GBytes空间。由上可以看出,OAM队列开销计算复杂并且每线卡OAM队列缓存开销较大。针对相关技术中线卡OAM队列缓存开销较大的问题,目前尚未提出有效的解决方案。技术实现要素:本发明提供了一种运行、管理和维护OAM报文处理方法及装置,以至少解决相关技术中线卡OAM队列缓存开销较大的问题。根据本发明的一个方面,提供了一种运行、管理和维护OAM报文处理方法,包括:从网络侧获取OAM报文;判断OAM报文是否为非归宿线卡OAM;以及在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。进一步地,判断OAM报文是否为非归宿线卡OAM包括:获取OAM报文的标识符;以及根据标识符判断OAM报文是否为非归宿线卡OAM。进一步地,从网络侧获取OAM报文之前,方法还包括:给网元中每个线卡分配队列编号,其中,同一个线卡的队列编号相同,不同线卡的队列编号不同,在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网包括:根据队列编号将OAM报文送入OAM报文的归宿线卡对应的队列中;将队列编号写入交换头;以及将OAM报文发送给交换网。进一步地,将OAM报文发送给交换网之后,方法还包括:从交换侧获取OAM报文;以及根据交换头携带的队列编号将OAM报文重新送入OAM报文的归宿线卡对应的队列中。进一步地,在判断出OAM报文为归宿线卡OAM时,方法还包括:设置OAM报文的归宿线卡对应的队列的缓存大小为预设值,其中,预设值为根据OAM报文的归宿线卡的最大OAM报文数计算得到的缓存值。根据本发明的另一方面,提供了一种运行、管理和维护OAM报文处理装置,包括:第一获取模块,用于从网络侧获取OAM报文;判断模块,用于判断OAM报文是否为非归宿线卡OAM;以及第一发送模块,用于在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。进一步地,判断模块包括:获取单元,用于获取OAM报文的标识符;以及判断单元,用于根据标识符判断OAM报文是否为非归宿线卡OAM。进一步地,该装置还包括:分配模块,用于给网元中每个线卡分配队列编号,其中,同一个线卡的队列编号相同,不同线卡的队列编号不同,第一发送模块包括:第一发送单元,用于根据队列编号将OAM报文送入OAM报文的归宿线卡对应的队列中;写单元,用于将队列编号写入交换头;以及第二发送单元,用于将OAM报文发送给交换网。进一步地,该装置还包括:第二获取模块,用于从交换侧获取OAM报文;以及第二发送模块,用于根据交换头携带的队列编号将OAM报文重新送入OAM报文的归宿线卡对应的队列中。进一步地,在判断出OAM报文为归宿线卡OAM时,该装置还包括:设置模块,用于设置OAM报文的归宿线卡对应的队列的缓存大小为预设值,其中,预设值为根据OAM报文的归宿线卡的最大OAM报文数计算得到的缓存值。通过本发明,采用从网络侧获取OAM报文;判断OAM报文是否为非归宿线卡OAM;以及在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网,解决了相关技术中线卡OAM队列缓存开销较大的问题,进而达到了减低线卡OAM队列缓存开销的效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据相关技术的集中式架构的示意图;图2是根据相关技术的分布式架构的示意图;图3是根据相关技术的分布式网络侧调度管理架构的示意图;图4是根据相关技术的分布式交换侧调度管理架构的示意图;图5是根据相关技术的分布式交换侧调度管理TPOAM归宿板示意图;图6是根据相关技术的分布式交换侧调度管理TPOAM流量突发示意图;图7是根据本发明实施例的运行、管理和维护OAM报文处理方法的流程图;图8是根据本发明实施例的非归宿线卡OAM报文上送给FPGA示意图;图9是根据现有技术的非归宿线卡OAM报文上送给FPGA示意图;图10是根据本发明实施例的基于线卡槽位静态队列编号示意图;图11是根据本发明实施例的运行、管理和维护OAM报文处理装置的结构框图;图12是根据本发明实施例的普通线性PW保护场景的示意图;图13是根据本发明实施例的12KDNIPW保护场景的示意图;图14是根据本发明实施例的普通线性PW保护OAM汇聚场景的示意图;图15是根据本发明实施例的12KDNIPW保护OAM汇聚场景的示意图;图16是根据本发明实施例的OAM传输示意图;图17是根据本发明实施例的FPGA发出OAM报文格式示意图;图18是根据本发明实施例的OAM报文由NP送给交换网报文格式示意图;图19是根据本发明实施例的OAM报文由NP送给SA报文格式示意图;图20是根据本发明实施例的OAM报文由NP发给的FPGA报文格式示意图;图21是根据本发明实施例的进入LSP/PW快速OAM处理流程示意图;图22是根据本发明实施例的单播出流点模块处理流程示意图;以及图23是根据本发明实施例的EgressMPLS-TPLSP/PWOAM报文上送处理流程示意图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。在本实施例中提供了一种运行、管理和维护OAM报文处理方法,图7是根据本发明实施例的运行、管理和维护OAM报文处理方法的流程图,如图7所示,该流程包括如下步骤:步骤S102,从网络侧获取OAM报文。步骤S104,判断OAM报文是否为非归宿线卡OAM。非归宿线卡OAM是指该OAM报文的归宿线卡不是生成该OAM报文的线卡,而是其他线卡。归宿线卡OAM是指该OAM报文的归宿线卡即生成该OAM报文的线卡,即OAM报文的归宿线卡是本线卡。具体地,可以为OAM报文增加归宿线卡是否为本线卡标记。可选地,判断OAM报文是否为非归宿线卡OAM包括:获取OAM报文的标识符;以及根据标识符判断OAM报文是否为非归宿线卡OAM。标识符用于标记OAM报文的归宿线卡是否为本线卡。例如,当标识符取值为1,则表示OAM报文的归宿线卡为本线卡,即OAM报文为归宿线卡OAM,当标识符取值为0,则表示OAM报文的归宿线卡是其他线卡,即OAM报文为非归宿线卡OAM。步骤S106,在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。本发明实施例在判断出OAM报文为非归宿线卡OAM时,为了降低线卡队列的缓存开销,将OAM报文发送给交换网,经由交换网交换后重新发送给归宿线卡。具体地,图8是根据本发明实施例的非归宿线卡OAM报文上送给FPGA示意图。如8所示,跨板OAM报文经过交换网后到达网络处理器(NetworkProcesser,简称为NP),NP对于归宿线卡不是本线卡的OAM报文回送到交换网,交换网再送给NP,NP再将该OAM报文发送给现场可编程门阵列(FieldProgrammableGateArray,简称为FPGA)。图9是根据现有技术的非归宿线卡OAM报文上送给FPGA示意图,如图9所示,非归宿线卡OAM报文到归宿线卡后直接上送FPGA。由上可以看出,相比于现有技术中,本发明实施例明显减少了线卡队列的缓存开销。本发明实施例通过从网络侧获取OAM报文;判断OAM报文是否为非归宿线卡OAM;以及在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。 解决了相关技术中线卡OAM队列缓存开销较大的问题,进而达到了减低线卡OAM队列缓存开销的效果。根据本发明的一个方面,提供了一种运行、管理和维护OAM报文处理方法,包括:从网络侧获取OAM报文;判断OAM报文是否为非归宿线卡OAM;以及在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。优选地,为了便于快速将OAM报文放入至对其对应的归宿线卡的队列中,从网络侧获取OAM报文之前,该方法还包括:给网元中每个线卡分配队列编号,其中,同一个线卡的队列编号相同,不同线卡的队列编号不同。本发明实施例通过预先给网元中的每个线卡分配队列编号,具体地,可以根据每个线卡的槽位号为其队列分配编号。图10是根据本发明实施例的基于线卡槽位静态队列编号示意图。如图10所示,线卡A、线卡B和线卡C上为每线卡分配的队列资源号均为x、y和z,即形成队列映射关系为x-->线卡A,y-->线卡B,z-->线卡C。从图10可以看出,同一线卡在不同队列均对应于同一个队列资源号(即编号),不同线卡的队列资源号不同。本发明实施例在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网包括:根据队列编号将OAM报文送入OAM报文的归宿线卡对应的队列中;将队列编号写入交换头;以及将OAM报文发送给交换网。由于预先给每个线卡队列分配了编号,从而可以根据队列编号将OAM报文送入OAM报文的归宿线卡对应的队列中,并且将队列编号写到交换头中,以便于后续可以根据队列编号将OAM报文送入其归宿线卡对应的队列中。可选地,将OAM报文发送给交换网之后,该方法还包括:从交换侧获取OAM报文;以及根据交换头携带的队列编号将OAM报文重新送入OAM报文的归宿线卡对应的队列中。本发明实施例中,由于上下行线卡为本线卡分配的队列编号相同,保证了本线卡不管是从交换侧还是从网络侧接收的OAM报文都进入一个队列。优选地,在判断出OAM报文为归宿线卡OAM时,方法还包括:设置OAM报文的归宿线卡对应的队列的缓存大小为预设值,其中,预设值为根据OAM报文的归宿线卡的最大OAM报文数计算得到的缓存值。在判断出OAM报文为归宿线卡OAM,本发明实施例将归宿线卡OAM经交换网调度管理后直接上送,因此,需要为该归宿线卡OAM的队列分配较大的缓存。具体地,可以预先根据当前系统可配置每个线卡最大OAM报文条目数来计算队列缓存最大值M(即预设值),在判断出OAM报文为归宿线卡OAM时,将OAM报文的归宿线卡对应的队列设置为M。由上可知,本发明实施例通过将非归宿线卡OAM报文到归宿线卡绕回交换网再送上送,而归宿线卡OAM报文经交换网调度管理后直接上送,从而使得非归宿线卡OAM报文仅需占用默认队列缓存,只有归宿线卡OAM报文需要占用一个较大队列缓存,降低了每线卡OAM报文队列缓存开销,从而解决了OAM队列开销计算复杂以及每线卡OAM报文队列缓存开销较大的问题。根据本发明的又一实施例,为保证每线卡仅设置本线卡终结OAM的一个队列占用较大缓存,其他跨线卡OAM占用默认队列缓存,本发明实施例的运行、管理和维护OAM报文处理方法包括如下步骤:步骤1:根据线卡槽位编号分配每线卡队列,如图10所示。线卡A、线卡B和线卡C上为每线卡分配的队列资源号都为x、y和z,即形成队列映射关系为x-->线卡A,y-->线卡B,z-->线卡C。步骤2:根据当前系统可配置每线卡最大OAM报文条目数计算理论队列缓存最大值M。步骤3:每线卡初始化队列默认大小,当队列映射关系为本线卡时设置OAM队列大小为M。步骤4:从网络侧收到OAM后,上行线卡按照OAM归宿线卡槽位入队。当归宿线卡不是自身时在交换头上携带上队列编号,以便下行线卡从交换网提取到OAM报文后可以送入为本线卡分配的静态队列,从而保证了每线卡仅设置本线卡终结OAM的一个队列占用较大缓存,其他跨线卡OAM占用默认队列缓存。具体地,在上行线卡,先分配队列编号,然后配置每个队列缓存。当收到OAM报文后经入队管理模块处理入队,若OAM报文的归宿线卡是自身(即该OAM报文为归宿线卡OAM报文),则OAM报文经交换网调度管理后直接提取上送;若OAM报文的归宿线卡是其他线卡(即该OAM报文为非归宿线卡OAM报文),则按照A分配的队列编号把报文送入对应队列,并把队列编号编写到交换头。OAM报文经过交换后,下行线卡从交换侧提取的OAM报文后以交换头携带的队列编号重新入队,后继过程再次重复入队过程和提取上送过程。本发明实施例中由于上下行线卡为本线卡分配的队列编号相同,保证了本线卡不管是从交换侧还是从网络侧接收的OAM报文都进入一个队列,从而保证了每线卡仅设置本线卡终结OAM的一个队列占用较大缓存,其他跨线卡OAM占用默认队列缓存。本发明实施例的OAM报文处理方法,与现有技术相比,降低了系统复杂度,节省了交换存储空间。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多 情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。在本实施例中还提供了一种运行、管理和维护OAM报文处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图11是根据本发明实施例的运行、管理和维护OAM报文处理装置的结构框图,如图11所示,该装置包括:第一获取模块10,判断模块20和第一发送模块30。第一获取模块10,用于从网络侧获取OAM报文。判断模块20,用于判断OAM报文是否为非归宿线卡OAM。非归宿线卡OAM是指该OAM报文的归宿线卡不是生成该OAM报文的线卡,而是其他线卡。归宿线卡OAM是指该OAM报文的归宿线卡即生成该OAM报文的线卡,即OAM报文的归宿线卡是本线卡。可选地,判断模块20包括:获取单元,用于获取OAM报文的标识符;以及判断单元,用于根据标识符判断OAM报文是否为非归宿线卡OAM。标识符用于标记OAM报文的归宿线卡是否为本线卡。例如,当标识符取值为1,则表示OAM报文的归宿线卡为本线卡,即OAM报文为归宿线卡OAM,当标识符取值为0,则表示OAM报文的归宿线卡是其他线卡,即OAM报文为非归宿线卡OAM。第一发送模块30,用于在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。本发明实施例在判断出OAM报文为非归宿线卡OAM时,为了降低线卡队列的缓存开销,将OAM报文发送给交换网,经由交换网交换后在重新发送给归宿线卡。本发明实施例通过第一获取模块10从网络侧获取OAM报文;判断模块20判断OAM报文是否为非归宿线卡OAM;以及第一发送模块30在判断出OAM报文为非归宿线卡OAM时,将OAM报文发送给交换网。解决了相关技术中线卡OAM队列缓存开销较大的问题,进而达到了减低线卡OAM队列缓存开销的效果。可选地,该装置还包括:分配模块,用于给网元中每个线卡分配队列编号,其中,同一个线卡的队列编号相同,不同线卡的队列编号不同,第一发送模块包括:第一发送单元,用于根据队列编号将OAM报文送入OAM报文的归宿线卡对应的队列中;写单元,用于将队列编号写入交换头;以及第二发送单元,用于将OAM报文发送给交换网。可选地,该装置还包括:第二获取模块,用于从交换侧获取OAM报文;以及第二发送模块,用于根据交换头携带的队列编号将OAM报文重新送入OAM报文的归宿线卡对应的队列中。可选地,在判断出OAM报文为归宿线卡OAM时,该装置还包括:设置模块,用于设置OAM报文的归宿线卡对应的队列的缓存大小为预设值,其中,预设值为根据OAM报文的归宿线卡的最大OAM报文数计算得到的缓存值。根据本发明的又一实施例,为保证每线卡仅设置本线卡终结OAM的一个队列占用较大缓存,其他跨线卡OAM占用默认队列缓存,本发明实施例运行、管理和维护OAM报文处理装置包括以下模块:队列编号预分配模块A,队列大小配置模块B,入队管理模块C,OAM报文提取模块D,E模块,F模块和G模块,其中,E模块用于使得全网元中每线卡上预分配的OAM报文队列编号相同,F模块用于使得上行线卡按照A分配的队列编号入队,并把队列编号编写到交换头,G模块用于使得下行线卡从交换侧提取的OAM报文后以交换头携带的队列编号入队。具体地,在上行线卡,先根据队列编号预分配模块A分配队列编号,然后由队列大小配置模块B来配置每队列缓存。当收到OAM报文后经入队管理模块C处理入队,若OAM报文的归宿线卡是自身(即该OAM报文为归宿线卡OAM报文),则OAM报文经交换网调度管理后由OAM报文提取模块D提取上送;若OAM报文的归宿线卡是其他线卡(即该OAM报文为非归宿线卡OAM报文),则由F模块处理。具体地,F模块按照A分配的队列编号把报文送入对应队列,并把队列编号编写到交换头。OAM报文经过交换后,到下行线卡由G模块负责处理,具体地,下行线卡从交换侧提取的OAM报文后以交换头携带的队列编号重新入队,后继过程再次重复C模块和D模块进行处理。本发明实施例中由于上下行线卡在E模块为本线卡分配的队列编号相同,保证了本线卡不管是从交换侧还是从网络侧接收的OAM报文都进入一个队列,从而保证了每线卡仅设置本线卡终结OAM的一个队列占用较大缓存,其他跨线卡OAM占用默认队列缓存。以下对本发明实施例的几个应用场景进行说明。场景1普通线性伪线(PseudoWire,简称为PW)保护环境(点对点),如图12所示。12K普通线性PW保护组,工作OAM和保护OAM分别配置在4块单板上面。联通性检测(ContinuityCheck,简称为CC)的发送报文周期为10ms,自动保护倒换(AutoProtectSwitch,简称为APS)报文发送规则是:有变化的时候每个OAMID立即发送3个APS报文,没变化时5s定时每个OAMID发送3个APS报文。场景2双节点连接伪线(DualNodeInterconnectionPseudoWire,简称为DNIPW)环境(点对点),如图13所示。同样配置12KDNIPW保护组。主备节点之间的通讯报文也存在突发情况,比普通的线性保护突发量更大。CC报文发送报文周期为10ms。主节点需要把PW告警和STM(ETH)端口告警送到备节点,备节点需要把PW保护组决策和MSP保护组决策/本点ETH端口告警送到主节点。主备节点互传信息采用APS报文的格式,只是opcode不一样,我们称之为仿APS报文。报文的发送形式也和APS报文一样,有变化时每个OAMID立即发送3个报文,没变化时5s定时每个OAMID发送3个APS报文。场景3普通线性PW环境(OAM汇聚),如图14所示。配置普通线性PW保护组8K,网元1的工作OAM分别配置在2块线卡上,每块线卡配置4K,保护OAM同样配置。CC发送周期为10ms,网元2工作8KOAM配置在1块线卡上,保护8KOAM也同样配置在一块线卡上。APS报文发送规则是:有变化的时候每个OAMID立即发送3个APS报文,没变化时5s定时每个OAMID发送3个APS报文。场景4DNIPW环境(OAM汇聚),如图15所示。和场景2一样DNIPW发送8KOAM分别配置在两块线卡,接收部分8K…OAM配置在一块线卡上。以下对OAM传送流程进行说明:OAM报文由FPGA产生和终结,传输过程中经过NP和交换网。如图16取4个点说明OAM报文长度在传输过程中的变化情况。1号点,OAM报文由FPGA发出OAM报文(取报文长度最长)格式如图17,其中,TC表示转发等级,LSPLabel表示隧道标签,PWLabel表示伪线标签,ChannelType表示通道类型,ITMH表示入向TM头,NPH表示NP头。发送CC的报文长度为:12byte(NPH)+12byte(label)+75byte(PDU)+4byte(FCS)=103byte发送的APS报文长度:12byte(NPH)+12byte(label)+9byte(PDU)+4byte(FCS)=64byte(补填充字节)对于场景1:CC报文的流量=103×100×8000×8=659200000bit/sAPS报文的流量=64×3×8000×8=12288000bit/s两者之和=671488000bit/s,大约691Mbps。对于场景2:CC报文的流量=103×100×8000×8=659200000bit/sAPS报文的流量=64×3×2×8000×8=24576000bit/s两者之和=683776000bit/s,大约683Mbps。2号点OAM报文由NP发出的报文格式如图18所示,其中,DA表示目的MAC,SA表示源MAC,TC表示转发等级,LSPLabel表示隧道标签,PWLabel表示伪线标签,ChannelType表示通道类型。发送CC的报文长度为:18byte(MAC+VLAN+TYPE)+12byte(label)+75byte(PDU)+4byte(FCS)=109byte;发送的APS报文长度:18byte(MAC+VLAN+TYPE)+12byte(label)+9byte(PDU)+4byte(FCS)=64byte(补填充字节)。对于场景1:CC报文的流量=109×100×8000×8=697600000bit/sAPS报文的流量=64×3×8000×8=12288000bit/s两者之和=709888000bit/,大约710Mbps。对于场景2:CC报文的流量=109×100×8000×8=697600000bit/sAPS报文的流量=64×3×2×8000×8=24576000bit/s两者之和=722176000bit/s,大约722Mbps。3号点NP送给交换芯片SA的报文格式如图19所示,其中,DA表示目的MAC,SA表示源MAC,TC表示转发等级,LSPLabel表示隧道标签,PWLabel表示伪线标签,ChannelType表示通道类型。发送CC的报文长度为:4byte(ITMH)+16byte(NPH)+20byte(NFH)+18byte(MAC+VLAN+TYPE)+12byte(label)+75byte(PDU)+4byte(FCS)=149byte发送的APS报文长度:4byte(ITMH)+16byte(NPH)+20byte(NFH)+18byte(MAC+VLAN+TYPE)+12byte(label)+9byte(PDU)+4byte(FCS)=106byte(含填充字节)对于场景1:CC报文的流量=149×100×8000×8=953600000bit/sAPS报文的流量=106×3×8000×8=16896000bit/s两者之和=973952000bit/s,大约974Mbps。对于场景2:CC报文的流量=149×100×8000×8=953600000bit/sAPS报文的流量=106×3×2×8000×8=33792000bit/s两者之和=994304000bit/s,大约994Mbps。4号点NP发给的FPGA的报文格式如图20所示。通过对比可以看出,FPGA接收跟FPGA发送相比,接收比发送多了8个字节。如果要确保这个端口不丢包,那么FPGA发送侧的带宽不能超过1GE×(103/111)=928Mbps。以下对OAM突发情况进行说明:如前所述的流量值都是在假设OAM均匀发送的情况下计算的。但实际上FPGA实现的情况是8K的CC报文和APS报文都是在短时间内以满带宽的速率发送的,最糟糕的情况是8KCC报文和8K的APS报文同时需要发送。对于场景1和场景2,由于FPGA的收端口和发端口的带宽基本相等都是1GE,所以不存在突发情况。对于场景3,极端情况是线卡3和线卡4的CC报文和APS同时发送,那么线卡6会在同一时间段分别由不同的端口收到2GE的报文,并且汇聚到SA40,再送到NP,由NP送给FPGA。在这段时间内入口报文是2个GE,出口是1GE,那么SA40需要把这段时间报文缓存起来。缓存大小M=2×1024000000×T–1×1024000000×T(T为OAM报文持续发包时间)对于CC报文:T=((109+8+12)×4000×8)/1024000000=0.00403125s其中,109为报文长度,8为前导码,12为帧间隙。缓存大小M=2×1024000000×T–1×1024000000×T=1024000000×0.00403125=4128000bit=0.49Mbytes。以上是2个端口汇聚的情况,理论上最大会有32个端口汇聚的情况。那么由上面的计算方式,可以推出一个通用的公式:假设8KOAM平均分配在N块板上,再在接收端由一块单板的N个端口汇聚,T=((报文长度+8+12)×(8000/N)×8)/1024000000将上述T代入缓存大小得到:M=N×1024000000×T–1×1024000000×T=(N-1)×1024000000×((报文长度+8+12)×(8000/N)×8)/1024000000=((N-1)/N)×(报文长度+8+12)×8000/(1024×1024)Mbytes其中,CC报文的长度是109字节,APS报文长度是64字节,需要连续发3个包。分别代入上面公式,算出来的总和是:2.9MByte。对于场景4:CC报文发送量一样,APS报文发送量是场景3的两倍。同样根据公式算出两者总和是:4.8MBytes。以下对存储进行说明:交换芯片SA一共有1024个块(block),每个block默认大小为1024个字节。小于1024字节包占用一个block。NP送给交换芯片SA的OAM包长129字节,实际占用1024个字节大小,使用率=129/1024=12.6%,也就是说,实际开销比理论放大近8倍。以下对队列分配进行说明:每线卡根据机架图中的槽位号预留队列,为每槽位线卡预留的OAM队列编号等于槽位号。以下对非归宿线卡OAM绕回进行说明:恶劣的实现方式如图9所示。跨板的OAM经过交换网后到达NP,NP直接转给FPGA。这种场景下,要防止突发情况,缓存需要设置线卡1上。那么线卡1需要设置的缓存大小为:4.8MByte×8×32=1228.8Mbyte(8为SA实际存储时需要花费大约8倍的空间,32为槽位数)。为了节省缓存,可以将流程改成如图8所示。跨板OAM经过交换网后到达NP,NP对于归属板在本板的OAM回送到交换网,交换网再送给NP,NP再送给FPGA。这样的话处理流程跟OAM归属板在本板的一样,每块线卡需要的缓存大小为:4.8MByte×8=38.4Mbyte。为支持绕回方案,NP的MPLS标签表项增加OAM报文归属线卡是否为本线卡标记No_local_card_end:0,归属线卡是本线卡;1,归属线卡不是本线卡。单播NPH增加LSP/PW快速OAM报文非本线卡终结标识。No_local_card_end(缩写为N_C_E):0,归属线卡是本线卡;1,归属线卡不是本线卡。flow_id:查询queue_maptable获取。图21是根据本发明实施例的IngessLSP/PW快速OAM处理流程示意图,如图21所示,进入(Ingress)LSP/PW快速OAM处理流程包括如下步骤:步骤S202:No_local_card_end=1?上述No_local_card_end为单板终结标识,其中,当本单板终结时(即No_local_card_end=1)时执行步骤S206,否则执行步骤S204。步骤S204:NFH.U_CPU.F_S=1;NPH.U_CPU.N_C_E=0。上述NFH.U_CPU.F_S为上送逻辑快速OAM通道标识,NPH.U_CPU.N_C_E为归宿线卡是否为本卡标识,其中,上送逻辑快速OAM通道为真(即NFH.U_CPU.F_S=1)且归宿线卡不是本板(即NPH.U_CPU.N_C_E=0)时,执行步骤S208。步骤S206:NFH.U_CPU.F_S=1;NPH.U_CPU.N_C_E=1。步骤S208:接原来处理流程,发送到单播出流点模块。图22是根据本发明实施例的单播出流点模块处理流程示意图,如图22所示,单播出流点模块处理流程包括如下步骤:步骤S302:查询out_fptable。上述out_fptable用于表示出流点表。步骤S304:Out_fp.type=CPU流点?上述步骤S304即判断出流点是否为上送CPU。步骤S306:查询fwd_ctrltable。上述fwd_ctrltable用于表示转发控制表。步骤S308:查询queue_maptable,获取flow_id。上述步骤S308即查队列映射表,获取流队列编号,其中,queue_maptable表示队列映射表,flow_id表示流队列编号。步骤S310:其他单播出流点类型处理流程。步骤S312:NFH.U_CPU.F_S=1且NPH.U_CPU.N_C_E=1?上送逻辑快速OAM通道为真(即NFH.U_CPU.F_S=1)且归宿线卡是本板(即NPH.U_CPU.N_C_E=1)时,执行步骤S314,否则执行步骤S316。步骤S314:NFH.U_CPU.flow_id=queue_map.flow_id。上述步骤S314即表示上送逻辑的队列号等于队列映射表查询得到的队列号。步骤S316:CPU单播出流点其他处理流程。图23是根据本发明实施例的进入MPLS-TPLSP/PWOAM报文上送处理流程示意图,如图23所示,进入(Egress)MPLS-TPLSP/PWOAM报文上送处理流程包括如下步骤:Egress入口处理。步骤S402:NPH.main_type=CPU(2)?上述步骤S402即判断NPH头类型是否为CPU,其中,当NPH头类型为CPU时,执行步骤S406,否则执行步骤S404。步骤S404:其他流程处理。步骤S406:NFH.U_CPU.F_S=1且NPH.U_CPU.N_C_E=1?上送逻辑快速OAM通道为真(即NFH.U_CPU.F_S=1)且归宿线卡是本板(即NPH.U_CPU.N_C_E=1)时,执行骤S410,否则执行步骤S408。步骤S408:正常上送流程处理。步骤S410:NPH.U_CPU.N_C_E=0。步骤S410即表示归宿线卡不是本板。步骤S412:从NPH.U_CPU获取flow_id,封装ITMH,把LSP/PW快速OAM报文再次发往SA处理。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述实施例方法步骤的程序代码:可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、 磁碟或者光盘等各种可以存储程序代码的介质。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1