CN105791126B - 一种三态内容可寻址存储器tcam查表方法及装置 - Google Patents
一种三态内容可寻址存储器tcam查表方法及装置 Download PDFInfo
- Publication number
- CN105791126B CN105791126B CN201410834839.5A CN201410834839A CN105791126B CN 105791126 B CN105791126 B CN 105791126B CN 201410834839 A CN201410834839 A CN 201410834839A CN 105791126 B CN105791126 B CN 105791126B
- Authority
- CN
- China
- Prior art keywords
- tcam
- external
- link
- network chip
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明公开了一种三态内容可寻址存储器TCAM查表方法及装置,其中,该方法包括:判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;当所述链路或者外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表,有效地解决了相关技术中存在的外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,从而影响外部TCAM的查表功能的问题,有效地减少了链路或外部TCAM故障对业务流量转发的影响。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种三态内容可寻址存储器TCAM查表方法及装置。
背景技术
现今网络发展速度惊人,网络流量的增长及新业务的出现,需要网络设备具有线速和灵活的处理能力。目前网络芯片包括专用集成电路(Application SpecificIntegrated Circuit,简称为ASIC)和网络处理器(Network Processor,简称为NP)两大类。网络处理器凭借其高速处理及灵活的可编程性,已成为当今网络中数据处理的有效解决方案。网络处理器中有多种不同的存储器,如静态随机存储器(Static Random AccessMemory,简称为SRAM)、三态内容寻址存储器(Ternary Content Addressable Memory,简称为TCAM)、同步动态随机存储器(Synchronous Dynamic Random Access Memory,简称为SDRAM等,这些存储器存放着各种业务表项,如端口表、MAC表、路由表等。
三态内容寻址存储器主要用于快速查找访问控制列表(Access Control List,简称为ACL)、路由等表项。TCAM的主要特点是快速并行查找,在网络处理器上的应用通常是,微码从报文抽取相关信息组成一个键值(KEY),通过NP的TCAM控制器向TCAM发送查找命令,根据结果处理报文。
TCAM通过通道即物理总线与网络芯片互联,在总线上传输数据和业务信。相对于网络芯片的内部TCAM来讲,与网络芯片通过总线互联的TCAM则通常称之为外部TCAM。网络芯片与外部TCAM之间的物理总线由多个链路(lane)组成,设备运行过程中,某些lane老化或者总线的链路质量不良,在TCAM写入业务表项时,会出现循环冗余检验(CyclicRedundancy Check,简称为CRC)或者成帧(Framing)等错误。另外外部TCAM长时间运行会出现老化等故障信息。一旦链路出现故障或外部TCAM本身出现故障,就会严重影响外部TCAM的查表功能,进而影响TCAM上承载的业务。
针对相关技术中外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,从而影响外部TCAM的查表功能的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种三态内容可寻址存储器TCAM查表方法及装置,以至少解决相关技术中存在的外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,从而影响外部TCAM的查表功能的问题。
根据本发明的一个方面,提供了一种三态内容可寻址存储器TCAM查表方法,包括:判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;在所述链路或者所述外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表。
进一步地,所述判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障包括:获取所述故障计数;判断所述故障计数是否达到预设阈值;在所述故障计数达到预设阈值的情况下,确定所述链路或者所述外部TCAM出现故障。
进一步地,所述获取所述故障计数包括:通过管理数据输入输出MDIO接口,读取所述外部TCAM中的错误统计寄存器中的所述故障计数。
进一步地,在通过所述网络芯片的内部TCAM对报文进行查表之前,所述方法还包括:将用于报文查表的TCAM条目写入所述内部TCAM。
进一步地,将用于报文查表的TCAM条目写入所述内部TCAM包括:判断所述TCAM条目对应的业务是否为关键业务,其中,所述关键业务包括与报文转发有关的业务;在所述业务是关键业务的情况下,将与所述业务对应的TCAM条目写入所述内部TCAM。
进一步地,所述网络芯片包括网络处理器NP、所述链路包括NP与CPU之间的Interlaken链路;或者所述网络芯片包括专用集成电路ASIC,所述链路包括外部总线PCI-Express。
根据本发明的另一方面,提供了一种三态内容可寻址存储器TCAM查表装置,包括:判断模块,用于判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;查表模块,用于在所述链路或者所述外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表。。
进一步地,判断模块包括:获取单元,用于获取所述故障计数;第一判断单元,用于判断所述故障计数是否达到预设阈值;确定单元,用于在所述故障计数达到预设阈值的情况下,确定所述链路或者所述外部TCAM出现故障。。
进一步地,获取单元还用于,通过管理数据输入输出MDIO接口,读取所述外部TCAM中的错误统计寄存器中的所述故障计数。
进一步地,所述三态内容可寻址存储器TCAM查表装置还包括:写入模块,用于将用于报文查表的TCAM条目写入所述内部TCAM。
进一步地,写入模块包括:第二判断单元,用于判断所述TCAM条目对应的业务是否为关键业务,其中,所述关键业务包括与报文转发有关的业务;写入单元,用于在所述业务是关键业务的情况下,将与所述业务对应的TCAM条目写入所述内部TCAM,。
通过本发明,采用判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;当所述链路或者外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表,解决了相关技术中存在的外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,从而影响外部TCAM的查表功能的问题,有效地减少了链路或外部TCAM故障对业务流量转发的影响。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种三态内容可寻址存储器TCAM查表方法的流程图;
图2是根据本发明实施例的另一种三态内容可寻址存储器TCAM查表方法的流程图;
图3是根据本发明实施例的一种三态内容可寻址存储器TCAM查表方法装置的结构框图;
图4是根据本发明实施例的另一种三态内容可寻址存储器TCAM查表方法装置的结构框图;
图5是根据本发明优选实施例的一种用于三态内容可寻址存储器TCAM查表的CPU、NP、TCAM连接关系示意图;
图6是根据本发明优选实施例的一种应用于CPU控制面写入用于报文查表的TCAM条目的三态内容可寻址存储器TCAM查表方法的的流程图;
图7是根据本发明优选实施例的一种应用于转发面的三态内容可寻址存储器TCAM查表方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种三态内容可寻址存储器TCAM查表方法,图1是根据本发明实施例的一种三态内容可寻址存储器TCAM查表方法的流程图,如图1所示,该流程可以包括如下步骤:
步骤S100,判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;
步骤S102,在所述链路或者所述外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表。
CPU通过网络芯片的TCAM适配接口访问外部TCAM,网络芯片和外部TCAM之间通过物理总线互联;另外通用NP内部也会集成有TCAM,成为内部TCAM。通常内部TCAM相比外部TCAM小很多,在目前追求大容量指标、高带宽线速转发性能情况下,常用做法是选择外部TCAM存放ACL等业务,内部TCAM通常不使用。在链路或者外部TCAM出现故障的情况下,网络芯片的CPU将通过网络芯片的内部TCAM对报文进行查表。
通过上述步骤,采用当所述链路或者外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表的方式,解决了相关技术中存在的外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,从而影响外部TCAM的查表功能的问题,有效地减少了链路或外部TCAM故障对业务流量转发的影响。
在优选的实施方式中,判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障可以包括:获取所述故障计数;判断所述故障计数是否达到预设阈值;在所述故障计数达到预设阈值的情况下,确定所述链路或者所述外部TCAM出现故障。与网络芯片互联的外部TCAM、链路偶尔出现故障,可能是比较常见的、对TCAM查表以及流量转发没有影响的瑕疵。因为TCAM查表对业务转发的重要性,也不可能也不应该过于频繁的切换内外部TCAM进行查找。只有外部TCAM与网络芯片之间的链路或网络芯片本身出现故障的次数达到一定的阈值时,即可认定链路或外部TCAM出现了真正的较大的故障,影响到了TCAM正常的查表功能,进而影响到了TCAM对业务的承载。通过本实施方式,更进一步地优化了切换内部TCAM进行查表的功能,有效地减少了链路或外部TCAM故障对TCAM查表功能以及业务转发的影响。
更进一步地,获取所述故障计数包括:通过管理数据输入输出MDIO接口,读取所述外部TCAM中的错误统计寄存器中的所述故障计数。网络芯片的CPU可以借助网络芯片的CPU接口,通过外部TCAM相应的(管理数据输入输出Management Data Input/Output)MDIO地址,读取外部TCAM中的错误状态寄存器寄存器和错误统计寄存器。链路和外部TCAM出现一次故障信息,错误状态寄存器会将相关的故障信息存储起来。相应地,错误统计寄存器会故障出现的次数进行统计。
以目前业界广泛使用的Netlogic系列TCAM为例,Netlogic TCAM芯片内有PCS层的一些错误状态和错误计数。NL11K芯片Common Status Register里可以探测到CRC等错误,RX PCS Counter寄存器里有CRC错误计数。这些寄存器可以通过带外的MDIO接口访问。通过启用软件线程,通过MDIO接口定时读取外部TCAM内部链路相关的错误状态寄存器和错误统计寄存器,借此感知网络芯片和外部TCAM间的链路状态和外部TCAM自身运行状态。借用MDIO接口的好处是MDIO信号线是带外资源,因此不占用网络芯片和外部TCAM之间的链路带宽资源。
在本实施例中还提供了一种三态内容可寻址存储器TCAM查表方法,图2是根据本发明实施例的另一种时间处理方法的流程图,如图2所示,该流程可以包括如下步骤:
步骤S200,将用于报文查表的TCAM条目写入所述内部TCAM;
TCAM的主要特点是快速并行查找,在网络处理器上的应用通常是,微码从报文抽取相关信息组成一个KEY(键值),通过NP的TCAM控制器向TCAM发送查找命令,根据结果处理报文。在通过所述网络芯片的内部TCAM对报文进行查表之前,至少还应该包括将用于报文查表的TCAM条目写入所述内部TCAM。即网络芯片的控制面CPU,将上层业务(比如ACL)下发原始业务报文的数据转换成写入到TCAM硬件的、用于报文查表的TCAM条目。
步骤S202、步骤S204分别参考图1所示步骤S100、步骤S102,在此不赘述。需要进行说明的是,在步骤202之前即在通过所述网络芯片的内部TCAM对报文进行查表之前,本实施例提供的一种三态内容可寻址存储器TCAM查表方法还包括步骤S200,即将用于报文查表的TCAM条目写入所述内部TCAM。将用于报文查表的TCAM条目写入所述内部TCAM不局限于在通过所述网络芯片的内部TCAM对报文进行查表之前,也可能包括在判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障之前;也可能包括在判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障之后,在通过所述网络芯片的内部TCAM对报文进行查表之前。网络芯片的内部TCAM存储空间通常不是很大,优选的实施方式是,在判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障之后,在通过所述网络芯片的内部TCAM对报文进行查表之前。
通过上述步骤,解决了相关技术中存在的外部TCAM与网络芯片之间的链路或外部TCAM出现故障时,影响TCAM查表功能的问题,进而达到了实现在链路或外部TCAM出现故障的情况下,快速切换至网络芯片内部TCAM进行查表的有益效果。
在优选的实施方式中,将用于报文查表的TCAM条目写入所述内部TCAM还可以包括:判断所述TCAM条目对应的业务是否为关键业务,其中,所述关键业务包括与报文转发有关的业务;在所述业务是关键业务的情况下,将与所述业务对应的TCAM条目写入所述内部TCAM。
鉴于一般的网络芯片内部TCAM存储空间较小,不可能像外部TCAM一样存储所有的用于转发业务报文查表的TCAM条目。对外部TCAM中承载的业务进行分类,对应关键性的业务,网络芯片的控制面CPU在将用于报文查表的TCAM条目写入外部TCAM后,再写入内部TCAM作为备份。关键性业务是指对转发有决定性作用的业务,比如协议保护,如果不能把地址解析协议(Address Resolution Protocol,简称为ARP)及开放式最短路径优先(OpenShortest Path First,简称为OSPF)等报文上送CPU处理,会导致协议运行失败,转发业务受到影响;非关键性业务,比如服务质量(Quality of Service,简称为Qos)、流统计、流镜像等,即使不生效不会影响转发业务。当外部TCAM与网络芯片之间的链路或外部TCAM出现故障时,快速切换至网络芯片的内部TCAM进行查表。此时工作在内部TCAM生效的备份模式,关键业务仍然正常,业务不会中断,只是Qos、流限速、流统计等非关键业务失效,并且合理地利用了内部TCAM的存储空间。
通过上述步骤,采用判断所述TCAM条目对应的业务是否为关键业务;当所述业务是关键业务的情况下,将所述TCAM条目写入所述内部TCAM的技术手段,不仅实现在链路或外部TCAM出现故障时,快速切换内部TCAM进行查表,保证了关键业务的转发不受影响,有效地合理地利用了内部TCAM的存储空间。
进一步地,当链路或外部TCAM出现故障时,由于切换到网络芯片内部TCAM工作模式,TCAM承载的关键业务依然正常工作。在获取故障信息时,可以通知运营商或用户外部TCAM或链路出现了问题,管理员可以选择性进行一些操作,例如可以时替换外部TCAM,或者维持内部TCAM工作的模式。
优选的实施方式中,所述网络芯片包括网络处理器NP、所述链路包括NP与CPU之间的Interlaken链路;或者所述网络芯片包括专用集成电路ASIC,所述链路包括外部总线PCI-Express。还包括其他网络芯片及其与外部TCAM之间的总线链路。
在本实施例中还提供了一种三态内容可寻址存储器TCAM查表装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的一种三态内容可寻址存储器TCAM查表装置的结构框图,如图3所示,该装置包括判断模块30和查表模块32,下面对该装置进行说明。
判断模块30,用于判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;查表模块32,连接至判断模块30,用于当所述链路或者外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表。
在优选的实施方式中,判断模块30还可以包括:获取单元301,用于获取所述故障计数;第一判断单元302,连接至获取单元301,用于判断所述故障计数是否达到阈值;确定单元303,连接至第一判断单元302,用于在所述计数达到阈值的情况下,确定所述链路或所述外部TCAM出现故障。
更进一步地,获取单元301还可以用于通过管理数据输入输出MDIO接口,读取所述外部TCAM中的错误统计寄存器中的所述故障计数。
通过本实施例提供的装置,采用判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;当所述链路或者外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表,有效地解决了相关技术中存在的外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,就会严重影响外部TCAM的查表功能,进而影响TCAM上承载的业务的问题,实现了在链路和外部TCAM均正常工作的情况下,通过外部TCAM进行查表;在链路或外部TCAM出现故障的情况下,快速切换至网络芯片内部TCAM进行查表,保证TCAM查表功能正常运行,有效地减少了链路或外部TCAM故障对业务流量转发的影响。
图4是根据本发明实施例的另一种三态内容可寻址存储器TCAM查表装置的结构框图,如图4所示,该装置除包括图3所示的判断模块30、查表模块32外,还包括写入模块40,下面对该装置进行说明。
写入模块40,连接至判断模块42,用于在通过所述网络芯片的内部TCAM对报文进行查表之前,将用于报文查表的TCAM条目写入所述内部TCAM;判断模块42、查表模块44分别参考图3所示的判断模块30、查表模块32,在此不赘述。
在优选的实施方式中,写入模块40还可以包括:第二判断单元401,用于判断所述TCAM条目对应的业务是否为关键业务;写入单元402,连接至第二判断单元401,用于当所述业务是关键业务的情况下,将所述TCAM条目写入所述内部TCAM。其中,所述关键业务包括与报文转发有关的业务。
更进一步地,以上提及网络芯片及其与外部TCAM之间的链路可以是NP网络处理器、所述链路是NP与CPU之间的Interlaken链路;也可以是专用集成电路ASIC,所述链路是新一代总线接口PCI-Express。当前市面流行的网络芯片及其与外部TCAM的链路不仅是NP网络处理器、Interlaken链路;专用集成电路ASIC、新一代总线接口PCI-Express,还包括其他网络芯片及其与外部TCAM之间的总线链路。
通过本实施例提供的装置,采用判断所述TCAM条目对应的业务是否为关键业务;当所述业务是关键业务的情况下,将所述TCAM条目写入所述内部TCAM的技术手段,不仅实现在链路或外部TCAM出现故障时,快速切换内部TCAM进行查表,保证了关键业务的转发不受影响,有效地合理地利用了内部TCAM的存储空间。
下面再结合具体实施例对本发明进行说明。
目前一种常用的网络处理器连接TCAM方式如图5。
CPU通过NP的TCAM适配接口访问外部TCAM,NP和TCAM之间通过Interlaken总线互联,Interlaken物理总线由多个链路(lane)组成,另外通用NP内部也会集成有TCAM。在网络设备运行过程中,网络处理器微码通过查TCAM获取转发及策略信息,比如协议保护,对于协议报文需要通过TCAM匹配挑选出来,进行提高优先级并上送处理;比如服务质量Qos,用户配置策略对某种报文进行优先级提升处理;比如流统计、流限速等,需要按照对特定报文进行计数及限速处理。设备运行过程中,某个链路(lane)老化或者链路质量不良,TCAM写表会出现循环冗余检验CRC或者Framing(成帧)等错误,另外TCAM如果长年累月运行可能出现老化等TCAM内部错误一旦出现此类错误,TCAM上承载的业务会受到影响甚至导致上述业务失效。
图5是根据本发明优选实施例的一种用于三态内容可寻址存储器TCAM查表的CPU、NP、TCAM连接关系示意图。下面结合图5对常用的三态内容可寻址存储器TCAM、中央处理器CPU、网络芯片之间的连接关系及其功能进行说明。
中央处理器CPU 50,主要负责用于完成网络芯片例如网络处理器NP及外部TCAM配置;以及将上层业务(比如ACL)下发的业务报文原始数据转换为写入TCAM硬件的、用于报文查表的TCAM条目;运行用于扫描外部TCAM中的错误状态寄存和错误统计寄存器的软件线程,用于判断外部TCAM与NP之间的链路状态和外部TCAM的运行状态是否出现故障;在链路或外部TCAM出现故障时,切换NP微码版本和的动态切换。
外部TCAM三态内容可寻址存储器52,与网络芯片54连接。外部TCAM 52中包含有用于存储链路或TCAM出现运行故障的错误状态寄存器、错误统计寄存器。
网络芯片54,与中央处理器CPU 50连接。本实施例以NP网络处理器为例子进行说明。包含:
微码引擎541,它是NP核心器件,用于运行微码,进行所有网络业务。包括路由查找等业务;组装用于报文查表的KEY键值,送入TCAM,根据返回的TCAM查表结果,执行相应的操作|。NP可以使用一套微码版本,分别用于内部TCAM和外部TCAM业务查表,也可以预置两套微码。版本A微码将查表键值送入外部TCAM进行查找,微码取外部TCAM结果执行相关业务动作;版本B微码将查表键值送入内部TCAM进行查找,微码取内部TCAM结果执行相关业务动作。通常Interlaken物理链路状态良好,运行微码版本A;当软件线程扫描到NP和外部TCAM间存在链路问题时,切换微码版本,加载版本B。
内部TCAM三态内容可寻址存储器542,用于在外部TCAM或其与网络芯片之间的链路出现故障时,写入用于报文查表的TCAM条目,及根据查表键值进行查表并反馈查表结果。
TCAM接口543,NP与TCAM的适配接口,用于NP通过Interlaken与TCAM互联。
CPU接口544,用于CPU通过CPU接口访问NP内部所有资源,包括微码引擎、TCAM适配接口以及内部TCAM。
管理数据输入输出接口MDIO 56,即通用NP和TCAM之间存在的MDIO接口,可以用于访问外部TCAM中的寄存器。
此外,外部TCAM与网络芯片之间还有物理总线即Interlaken总线,用于连接外部TCAM与网络芯片的TCAM接口,使TCAM可以与网络芯片通信。
图6是根据本发明优选实施例的一种应用于CPU控制面写入用于报文查表的TCAM条目的三态内容可寻址存储器TCAM查表方法的的流程图。如图6所示,该流程可以包括如下步骤:
步骤S600,获取外部TCAM与网络处理器NP之间的Interlaken链路运行状态信息,和/或外部TCAM自身的运行状态信息;
如图5所示,CPU可以借助NP的CPU接口,通过TCAM相应的MDIO地址,读取TCAM内部寄存器。TCAM初始化阶段都是通过MDIO接口配置TCAM内部相关寄存器。通过启用软件线程即运行在CPU的一个定时运行的任务,通过管理数据输入输出MDIO接口定时或不定时地读取外部TCAM内部链路及其外部TCAM自身相关运行状态的错误状态寄存器和错误统计寄存器,获取Interlaken链路运行状态信息,和外部TCAM自身的运行状态信息。外部TCAM中的错误状态寄存器用于存储Interlaken链路运行状态故障信息,和外部TCAM自身的运行状态故障信息。外部TCAM中的错误统计寄存器则用于存储上述错误的计数。利用MDIO接口的好处是MDIO信号线是带外资源,因此不占用NP和TCAM间的Interlaken带宽资源。
通用NP和TCAM间有MDIO接口,可以访问寄存器。对G比特以太网而言,串行通信总线称为管理数据输入输出(MDIO)。该总线由IEEE通过以太网标准IEEE802.3的若干条款加以定义。MDIO是一种简单的双线串行接口,将管理器件(如MAC控制器、微处理器)与具备管理功能的收发器(如多端口吉比特以太网收发器或10GbE XAUI收发器)相连接,从而控制收发器并从收发器收集状态信息。可收集的信息包括链接状态、传输速度与选择、断电、低功率休眠状态、TX/RX模式选择、自动协商控制、环回模式控制等。除了拥有IEEE要求的功能之外,收发器厂商还可添加更多的信息收集功能。以目前业界广泛使用的Netlogic系列TCAM为例,Netlogic TCAM芯片内有PCS层的一些错误状态和错误计数。NL11K芯片CommonStatus Register里可以探测到CRC等错误,RX PCS Counter寄存器里有CRC错误计数。这些寄存器可以通过带外的MDIO接口访问。
步骤S602,判断Interlaken链路运行状态,和/或外部TCAM自身的运行状态信息是否出现故障;
设置一个用于判断Interlaken链路运行状态,和/或外部TCAM自身的运行状态信息是否出现故障的全局故障标记。通过判断当前全局故障标记是否置位,来感知Interlaken链路、外部TCAM是否出现故障。全局故障标记有两种状态:设置1时,表示出现故障;设置为0时,表示未出现故障。
软件线程是一种运行在CPU的一个定时运行的任务。通过开启软件线程,扫描TCAM内部错误状态寄存器和错误统计寄存器。当扫描到有错误信息并且错误计数达到阈值时,设置一个全局的外部TCAM故障标记,并且通知上层及管理员。通过该全局标记,控制层和转发层会采取相应动作,进入备份状态,即激活内部TCAM工作模式。管理员得知外部TCAM出问题,可以选择采取相应动作,比如替换外部TCAM,或者维持内部TCAM工作的备份模式。
如果全局故障标记设置为0时,进入步骤S604;如果全局故障标记设置为1时,进入步骤S606。
步骤S604,将用于报文查表的TCAM条目写入外部TCAM;
CPU将上层业务(比如ACL)下发的业务报文原始数据转换为写入TCAM硬件的、用于报文查表的TCAM条目。在全局故障标记设置为0时,表示Interlaken链路、外部TCAM没有出现故障,则不需要切换至内部TCAM进行查表操作。因此将用于报文查表的TCAM条目写入外部TCAM。后续的转发业务时,微码引擎从业务报文抽取相关信息组成一个KEY(键值),通过NP的TCAM控制器向外部TCAM发送查找命令,根据反馈查找结果处理报文。
步骤S606,判断上层业务是否关键业务;
对TCAM中承载的业务进行分类,对应关键性的业务,CPU控制面在将用于报文查表的TCAM条目写入外部TCAM之后,还将其写入内部TCAM作为备份。关键性业务是指对转发有决定性作用的业务,比如协议保护,如果不能把ARP及OSPF等报文上送CPU处理,会导致协议运行失败,转发业务受到影响;非关键性业务,比如QOS、流统计、流镜像等,即使不生效不会影响转发业务。
如果上层业务是关键业务进入步骤608。
步骤S608,将用于报文查表的TCAM条目写入网络处理器NP的内部TCAM;
在全局故障标记设置为1时,表示Interlaken链路、外部TCAM出现故障。当前外部TCAM承载上层业务已经不适用外部TCAM进行报文查表。CPU将上层下发的关键业务(比如ACL)下发的业务报文原始数据转换为写入TCAM硬件的、用于报文查表的TCAM条目。而NP的内部TCAM没有出现故障,此时将用于报文查表的TCAM条目再写入内部TCAM,并将查表KEY键值,通过NP的TCAM控制器向内部TCAM发送查找命令,根据反馈的查找结果处理报文。
图7是根据本发明优选实施例的一种应用于转发面的三态内容可寻址存储器TCAM查表方法的流程图。如图7所示,该流程可以包括如下步骤:
步骤S700,判断Interlaken链路运行状态,和/或外部TCAM自身的运行状态信息是否出现故障;
步骤S700可以参考图6所示的步骤S602,在此不赘述。
如果全局故障标记设置为0时,进入步骤S702;如果全局故障标记设置为1时,进入步骤S704。
步骤S702,运行微码版本A;
当全局故障标记设置为0时,即表示Interlaken链路运行状态和外部TCAM自身的运行状态没有故障。NP的微码引擎运行版本A微码,将查表键值送入外部TCAM进行查找,微码根据查找外部TCAM反馈的查找结果执行相关业务操作。
步骤S704,运行微码版本B;
当全局故障标记设置为1时,即表示Interlaken链路运行状态,和/或外部TCAM自身的运行状态出现故障。外部TCAM已经不适用于报文查表,此时切换至NP
内部TCAM进行查表操作。利用外部TCAM节进行查表操作时常态,只有当软件扫描线程扫描到链路或TCAM出现故障错误时,设置故障全局标记,切换之内部TCAM进行查表操作。
在图6所示的步骤中,事先已经将用于报文查表的TCAM条目写入了内部TCAM进行备份,优选的是,将用于承载关键性业务、用于关键业务报文查表的TCAM条目写入了内部TCAM进行了备份。控制面执行微码动态加载,切换微码版本。微码引擎运行版本B微码,将查表键值送入内部TCAM进行查找,微码根据查找内部TCAM反馈的查找结果执行相关业务操作。
需要说明是,微码引擎中的两套微码版本A和微码版本B,可以是一套微码版本,也可以是不同的微码版本。
相对于目前NP与外部TCAM经常出现的链路故障致业务中断,本实施例提供了一种方法,通过外部TCAM的MDIO带外接口,读取TCAM内部错误状态寄存器和错误统计寄存器,借此获知NP和外部TCAM链路状态及TCAM芯片问题;CPU的控制面在写外部TCAM之后,对关键的TCAM业务,写入内部TCAM;当线程感知到故障时,切换微码版本,此时工作在内部TCAM生效的备份模式,关键业务仍然正常,业务不会中断,只是Qos、流限速、流统计等非关键业务失效。线程扫描到外部TCAM故障后,由于切换到内部TCAM工作模式,TCAM关键业务依然正常工作;另外通知用户外部TCAM出现问题,管理员可以选择性进行一些操作。
通常内部TCAM相比外部TCAM小很多,在目前追求大容量指标、高带宽线速转发性能情况下,常用做法是选择外部TCAM存放ACL等业务,内部TCAM通常不使用。与相关技术相比较,有效利用内部TCAM空间进行用于关键业务报文查表的TCAM条目进行备份,开启线程扫描外部TCAM状态,在外部TCAM或总线链路出故障时,可以通过切换微码版本可以进行工作模式切换,保证TCAM关键业务仍然正常运行。
综上所述,通过上述实施例、优选实施例和实施方式,采用当所述链路或者外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表的方式,解决了相关技术中存在的外部TCAM与网络芯片之间的链路出现故障或外部TCAM本身出现故障,从而影响外部TCAM的查表功能的问题,有效地减少了链路或外部TCAM故障对业务流量转发的影响。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种三态内容可寻址存储器TCAM查表方法,其特征在于,包括:
判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;
在所述链路或者所述外部TCAM出现故障的情况下,判断用于报文查表的TCAM条目对应的业务是否为关键业务,在所述业务是关键业务的情况下,将与所述业务对应的TCAM条目写入内部TCAM,通过所述网络芯片的内部TCAM对报文进行查表;
其中,所述关键业务包括与报文转发有关的业务。
2.根据权利要求1所述的方法,其特征在于,判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障包括:
获取所述故障计数;
判断所述故障计数是否达到预设阈值;
在所述故障计数达到预设阈值的情况下,确定所述链路或者所述外部TCAM出现故障。
3.根据权利要求2所述的方法,其特征在于,获取所述故障计数包括:
通过管理数据输入输出MDIO接口,读取所述外部TCAM中的错误统计寄存器中的所述故障计数。
4.根据权利要求1所述的方法,其特征在于,
所述网络芯片包括网络处理器NP、所述链路包括NP与CPU之间的Interlaken链路;或者
所述网络芯片包括专用集成电路ASIC,所述链路包括外部总线PCI-Express。
5.一种三态内容可寻址存储器TCAM查表装置,其特征在于,包括:
判断模块,用于判断网络芯片与所述网络芯片的外部TCAM之间链路或者外部TCAM是否出现故障;
查表模块,用于在所述链路或者所述外部TCAM出现故障的情况下,通过所述网络芯片的内部TCAM对报文进行查表;
写入模块,用于在通过所述网络芯片的内部TCAM对报文进行查表之前,将用于报文查表的TCAM条目写入所述内部TCAM;
所述写入模块包括:
第二判断单元,用于判断所述TCAM条目对应的业务是否为关键业务;
写入单元,用于在所述业务是关键业务的情况下,将与所述业务对应的TCAM条目写入所述内部TCAM;
其中,所述关键业务包括与报文转发有关的业务。
6.根据权利要求5所述的装置,其特征在于,所述判断模块包括:
获取单元,用于获取所述故障计数;
第一判断单元,用于判断所述故障计数是否达到预设阈值;
确定单元,用于在所述故障计数达到预设阈值的情况下,确定所述链路或者所述外部TCAM出现故障。
7.根据权利要求6所述的装置,其特征在于,
所述获取单元还用于,通过管理数据输入输出MDIO接口,读取所述外部TCAM中的错误统计寄存器中的所述故障计数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410834839.5A CN105791126B (zh) | 2014-12-26 | 2014-12-26 | 一种三态内容可寻址存储器tcam查表方法及装置 |
PCT/CN2015/078586 WO2016101488A1 (zh) | 2014-12-26 | 2015-05-08 | 一种三态内容可寻址存储器tcam查表方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410834839.5A CN105791126B (zh) | 2014-12-26 | 2014-12-26 | 一种三态内容可寻址存储器tcam查表方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791126A CN105791126A (zh) | 2016-07-20 |
CN105791126B true CN105791126B (zh) | 2020-04-24 |
Family
ID=56149080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410834839.5A Active CN105791126B (zh) | 2014-12-26 | 2014-12-26 | 一种三态内容可寻址存储器tcam查表方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105791126B (zh) |
WO (1) | WO2016101488A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526650B (zh) * | 2017-09-07 | 2021-07-02 | 郑州云海信息技术有限公司 | 一种tcam错误扫描与修复的方法 |
CN109656832A (zh) * | 2017-10-11 | 2019-04-19 | 深圳市中兴微电子技术有限公司 | 一种查表方法、计算机可读存储介质 |
CN108363638A (zh) * | 2018-02-06 | 2018-08-03 | 盛科网络(苏州)有限公司 | 一种芯片内tcam存储器的纠错方法及系统 |
CN111324382B (zh) | 2018-12-13 | 2023-03-03 | 华为技术有限公司 | 指令处理方法和芯片 |
CN111683014B (zh) * | 2020-05-26 | 2022-02-15 | 中国人民解放军国防科技大学 | 一种高速互连网络的路由路径追踪方法及系统 |
CN112632340B (zh) * | 2020-12-28 | 2024-04-16 | 苏州盛科通信股份有限公司 | 查表方法及装置、存储介质以及电子设备 |
CN113328948B (zh) * | 2021-06-02 | 2022-10-04 | 杭州迪普信息技术有限公司 | 资源管理方法、装置、网络设备及计算机可读存储介质 |
CN114938346B (zh) * | 2022-05-13 | 2023-06-06 | 苏州盛科通信股份有限公司 | 一种芯片和cpu协同实现业务快速切换的方法及装置 |
CN115334046B (zh) * | 2022-07-04 | 2023-09-01 | 超聚变数字技术有限公司 | 一种mac地址删除方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101128795A (zh) * | 2004-05-11 | 2008-02-20 | 米斯特科技有限公司 | 语义处理器存储服务器架构 |
US7571371B2 (en) * | 2005-08-18 | 2009-08-04 | Hewlett-Packard Development Company, L.P. | Parallel parity checking for content addressable memory and ternary content addressable memory |
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
CN103973571A (zh) * | 2013-02-05 | 2014-08-06 | 中兴通讯股份有限公司 | 网络处理器及其路由查找方法 |
CN104038416A (zh) * | 2014-06-17 | 2014-09-10 | 上海新储集成电路有限公司 | 网络处理器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003272386A (ja) * | 2002-03-20 | 2003-09-26 | Mitsubishi Electric Corp | Tcamセル、tcamセルアレイ、アドレス検索メモリおよびネットワークアドレス検索装置 |
US8327249B2 (en) * | 2009-08-20 | 2012-12-04 | Broadcom Corporation | Soft error rate protection for memories |
WO2014029084A1 (zh) * | 2012-08-22 | 2014-02-27 | 华为技术有限公司 | 数据存储方法、查找方法及装置 |
-
2014
- 2014-12-26 CN CN201410834839.5A patent/CN105791126B/zh active Active
-
2015
- 2015-05-08 WO PCT/CN2015/078586 patent/WO2016101488A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101128795A (zh) * | 2004-05-11 | 2008-02-20 | 米斯特科技有限公司 | 语义处理器存储服务器架构 |
US7571371B2 (en) * | 2005-08-18 | 2009-08-04 | Hewlett-Packard Development Company, L.P. | Parallel parity checking for content addressable memory and ternary content addressable memory |
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
CN103973571A (zh) * | 2013-02-05 | 2014-08-06 | 中兴通讯股份有限公司 | 网络处理器及其路由查找方法 |
CN104038416A (zh) * | 2014-06-17 | 2014-09-10 | 上海新储集成电路有限公司 | 网络处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN105791126A (zh) | 2016-07-20 |
WO2016101488A1 (zh) | 2016-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791126B (zh) | 一种三态内容可寻址存储器tcam查表方法及装置 | |
US10686749B2 (en) | Packet sending method and network device | |
US7933198B1 (en) | Virtual router failover dampening | |
US8117503B1 (en) | Fast port failover in a network switch | |
US8958285B2 (en) | Network disruption prevention when virtual chassis system undergoes splits and merges | |
WO2020020144A1 (zh) | 链路切换方法、链路切换设备、网络通信系统以及计算机可读存储介质 | |
CN110417569B (zh) | 一种网络链路故障处理方法和隧道端点设备 | |
US11082282B2 (en) | Method and system for sharing state between network elements | |
US20080215910A1 (en) | High-Availability Networking with Intelligent Failover | |
CN108173691B (zh) | 一种跨设备聚合的方法及装置 | |
EP3316555B1 (en) | Mac address synchronization method, device and system | |
WO2018108149A1 (zh) | 数据链路切换方法和装置以及数据链路切换设备 | |
US9942138B2 (en) | Method and device for policy based routing | |
CN108632099B (zh) | 一种链路聚合的故障检测方法及装置 | |
CN105656645A (zh) | 堆叠系统的故障处理的决策方法和装置 | |
US11711243B2 (en) | Packet processing method and gateway device | |
EP3866393A1 (en) | Data center traffic exchange method and apparatus, device and storage medium | |
CN113839862B (zh) | Mclag邻居之间同步arp信息的方法、系统、终端及存储介质 | |
CN114371912A (zh) | 数据中心的虚拟网络管理方法及数据中心系统 | |
CN106850268B (zh) | 一种线性保护倒换的实现装置及方法 | |
US20140092725A1 (en) | Method and first network node for managing an ethernet network | |
CN112104548A (zh) | 通信方法及装置 | |
CN115333991B (zh) | 跨设备链路聚合方法、装置、系统及计算机可读存储介质 | |
EP3627766B1 (en) | Method and system for switching between active bng and standby bng | |
CN114531319A (zh) | 报文发送方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |