CN108737278A - 一种查表方法及装置 - Google Patents

一种查表方法及装置 Download PDF

Info

Publication number
CN108737278A
CN108737278A CN201710273440.8A CN201710273440A CN108737278A CN 108737278 A CN108737278 A CN 108737278A CN 201710273440 A CN201710273440 A CN 201710273440A CN 108737278 A CN108737278 A CN 108737278A
Authority
CN
China
Prior art keywords
message
list item
field
tcam
request message
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.)
Pending
Application number
CN201710273440.8A
Other languages
English (en)
Inventor
毕杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201710273440.8A priority Critical patent/CN108737278A/zh
Priority to PCT/CN2018/084119 priority patent/WO2018192587A1/zh
Publication of CN108737278A publication Critical patent/CN108737278A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Abstract

本发明公开了一种查表方法及装置,所述方法包括:接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息;根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;将所述表项标识转换为存储模块中对应的物理地址;依据所述物理地址,在存储模块中查询用户数据信息。

Description

一种查表方法及装置
技术领域
本发明涉及数据通信领域,尤其涉及一种基于三态内容可寻址存储器(TCAM,Ternary Content Addressable Memory)的查表方法及装置。
背景技术
TCAM是一种专用的三态内容可寻址存储器,通过TCAM可以进行大量的并行搜索。利用TCAM对关键字进行搜索时,TCAM中所有的表项会同时与关键字进行匹配,得到的搜索结果就是匹配项的物理地址。在进行条目匹配时,条目的每个比特(bit)可以是0、1、X三种状态,如果是X则表示该bit不参与比较且默认结果为成功,否则关键字将和条目的内容进行比较,如果匹配成功则返回成功,如果匹配失败则返回失败。TCAM的快速匹配特性被广泛用于路由表的路由查找以及访问控制列表(ACL,Access Control List)的规则匹配。
路由器、交换机等数据通信设备使用TCAM进行报文转发时,需要通过网络处理器(NP,Network Processor)/专用集成电路(ASIC,Application Specific IntegratedCircuits)芯片、TCAM芯片以及外部随机存取存储器(External RAM,External Random-Access Memory)模块来实现,然而,目前的实现过程对NP/ASIC芯片以及TCAM芯片的性能要求都比较高,这对于产品的电源功耗、以及散热能力有着非常高的要求,而且给产品带来了巨大的成本压力。
发明内容
为解决上述技术问题,本发明实施例提供了一种查表方法及装置。
本发明实施例提供的查表方法,包括:
接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息;
根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;
接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;将所述表项标识转换为存储模块中对应的物理地址;
依据所述物理地址,在存储模块中查询用户数据信息。
本发明实施例中,所述报文包括报文控制字段和报文数据字段;其中,
所述报文控制字段包括以下至少之一:操作类型字段、报文起始字段、报文结束字段、芯片ID字段、用户自定义字段;
所述报文数据字段包括以下至少之一:表项关键字字段、用户数据信息字段、表项查询状态字段。
本发明实施例中,所述方法还包括:
接收到报文时,对所述报文的报文控制字段进行解析;
如果解析出所述报文控制字段中的操作类型字段为表项查找操作,则确定接收到的报文为表项查询请求报文。
本发明实施例中,所述对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息,包括:
对所述报文的报文控制字段中的芯片ID字段进行解析,得到TCAM芯片的ID信息。
本发明实施例中,所述方法还包括:
接收由NP模块下发的表项查询请求报文,其中,所述NP模块下发的表项查询请求报文的数量为一个以上,所述一个以上表项查询请求报文对应一个报文组,所述报文组中的各个表项查询请求报文所携带的关键字组成待查询的关键字。
本发明实施例中,所述TCAM芯片发送的表项查找结果还携有TCAM芯片的ID以及关键字信息;
如果所述表项查找结果携带的TCAM芯片的ID以及关键字信息,与所述表项查询请求报文中解析出来的TCAM芯片的ID以及关键字信息一致,则将所述表项查找结果中携带的表项标识转换为存储模块中对应的物理地址。
本发明实施例中,所述方法还包括:
将所述用户数据信息以及相应的关键字封装成查询响应报文;
将所述查询响应报文发送给NP模块。
本发明实施例中,如果所述TCAM芯片发送的表项查找结果表明不存在与所述表项查询请求报文相应的表项时,所述方法还包括:
接收到写表项请求报文时,对所述写表项请求报文进行解析,确定所述写表项请求报文的类型;
如果所述写表项请求报文为写关键字请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到TCAM芯片的ID信息和关键字信息、表项标识信息;依据所述TCAM芯片的ID信息,将所解析得到的关键字信息写入相应的TCAM芯片;
如果所述写表项请求报文为写用户数据请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到存储器控制模块的ID信息和用户数据信息、物理地址信息;通过所述存储器控制模块依据所述物理地址信息在存储模块中写入所述用户数据信息。
本发明实施例中,所述方法还包括:
将所述关键字信息对应的表项标识与所述用户数据信息对应的物理地址,按照对应关系进行存储。
本发明实施例提供的查表装置,包括:
解析单元,用于接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息;
发送单元,用于根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;
接收单元,用于接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;
地址转换单元,用于将所述表项标识转换为存储模块中对应的物理地址;
存储器控制单元,用于依据所述物理地址,在存储模块中查询用户数据信息。
本发明实施例中,所述报文包括报文控制字段和报文数据字段;其中,
所述报文控制字段包括以下至少之一:操作类型字段、报文起始字段、报文结束字段、芯片ID字段、用户自定义字段;
所述报文数据字段包括以下至少之一:表项关键字字段、用户数据信息字段、表项查询状态字段。
本发明实施例中,所述解析单元,还用于接收到报文时,对所述报文的报文控制字段进行解析;如果解析出所述报文控制字段中的操作类型字段为表项查找操作,则确定接收到的报文为表项查询请求报文。
本发明实施例中,所述解析单元,还用于对所述报文的报文控制字段中的芯片ID字段进行解析,得到TCAM芯片的ID信息。
本发明实施例中,所述解析单元,还用于接收由NP模块下发的表项查询请求报文,其中,所述NP模块下发的表项查询请求报文的数量为一个以上,所述一个以上表项查询请求报文对应一个报文组,所述报文组中的各个表项查询请求报文所携带的关键字组成待查询的关键字。
本发明实施例中,所述TCAM芯片发送的表项查找结果还携有TCAM芯片的ID以及关键字信息;
如果所述表项查找结果携带的TCAM芯片的ID以及关键字信息,与所述表项查询请求报文中解析出来的TCAM芯片的ID以及关键字信息一致,则所述地址转换单元将所述表项查找结果中携带的表项标识转换为存储模块中对应的物理地址。
本发明实施例中,所述装置还包括:
封装单元,用于将所述用户数据信息以及相应的关键字封装成查询响应报文;将所述查询响应报文发送给NP模块。
本发明实施例中,所述解析单元,还用于接收到写表项请求报文时,对所述写表项请求报文进行解析,确定所述写表项请求报文的类型;如果所述写表项请求报文为写关键字请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到TCAM芯片的ID信息和关键字信息、表项标识信息;
所述发送单元,还用于依据所述TCAM芯片的ID信息,将所解析得到的关键字信息写入相应的TCAM芯片;
所述解析单元,还用于如果所述写表项请求报文为写用户数据请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到存储器控制模块的ID信息和用户数据信息、物理地址信息;
所述存储器控制单元,还用于依据所述物理地址信息在存储模块中写入所述用户数据信息。
本发明实施例中,所述地址转换单元,还用于将所述关键字信息对应的表项标识与所述用户数据信息对应的物理地址,按照对应关系进行存储。
本发明实施例的技术方案中,接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息;根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;将所述表项标识转换为存储模块中对应的物理地址;依据所述物理地址,在存储模块中查询用户数据信息。可以利用较低数据位宽的TCAM芯片通过组合的方式实现查找表项关键字,在保证查找性能的前提下降低了TCAM的功耗和硬件成本。此外,本发明实施例通过集成地址转换模块(实现TCAM地址和外部RAM的物理地址的转换)以及扩展/集成存储器控制模块,可以在NP模块下发表项查询请求报文后直接返回用户数据信息(如出端口、链路层物理地址等),从而实现了报文头信息的快速查找,也减轻了NP模块的报文处理负担,对于NP模块的降功耗设计具有很大帮助。
附图说明
图1为基于TCAM的路由器/交换机设备实现查表的架构图;
图2为本发明实施例实现查表的架构图;
图3为本发明实施例的查表方法的流程示意图;
图4为本发明实施例的表项查询流程示意图;
图5为本发明实施例的表项下发流程示意图;
图6为本发明实施例的查表装置的结构组成示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
路由器、交换机等数据通信设备使用TCAM进行报文转发的查表操作,图1为基于TCAM的路由器/交换机设备实现查表的架构图,如图1所示,电路逻辑构成主要包括:NP/ASIC芯片,TCAM芯片以及External RAM模块。NP/ASIC芯片通过端口(如port1、port2)接收到入向报文后会根据报文头信息进行TCAM表项查找,如果查找到匹配的表项,则TCAM会返回该表项所在的地址信息(该地址信息有较高优先级)。之后,NP/ASIC芯片会根据表项所在的地址信息去External RAM模块查询对应的用户数据信息(如报文的出端口信息等),NP/ASIC芯片获得完整的用户数据信息后,根据该用户数据信息将数据报文重新封装,再通过网络端口将报文转发出去。
通过上述查表转发过程可以看出,设备对NP/ASIC芯片以及TCAM芯片的性能要求都比较高。对于TCAM芯片来说,通过端口接收到报文的报文头信息往往存在较大位宽,如互联网协议版本6(IPV6,Internet Protocol Version 6)中的报文源IP地址(SIP,SourceIP)和目的IP地址(DIP,Destination IP)的数据位宽各为128bit,而在特定ACL查找模式下表项位宽将超过500bit,因此,使用单片TCAM芯片时需要该芯片能够支持较大的数据位宽。同时,由于用户数的不断增多,对于表项的容量要求也随之增加,这也要求TCAM有着更大的存储容量。而大位宽、高容量的TCAM往往功耗非常高,对于产品的电源功耗、以及散热能力有着非常高的要求;另外大位宽、高容量的TCAM往往价格昂贵,也给产品带来了巨大的成本压力。
对于NP/ASIC芯片来说,每次报文转发都需要先查找TCAM芯片,获得最高优先级地址后将该地址转换成对应External RAM相应条目的地址,再根据外部RAM相应条目的地址读取相应条目的内容,因此,在报文高速转发过程中需要NP/ASIC芯片具有高速查找及报文处理能力,而具有高速处理能力的NP/ASIC芯片功耗一般都非常大,而且价格非常昂贵。
基于此,本发明实施例提出了一种查表方法及装置,可以利用低数据位宽的TCAM芯片组实现数据报文的快速查找操作,进一步,还可以实现NP/ASIC芯片下发查找指令后直接返回需要的用户数据信息,从而实现报文头信息的快速查找。
图2为本发明实施例实现查表的架构图,本发明实施例的架构主要包括以下模块:
NP模块,NP模块是指NP/ASIC芯片,NP模块支持外挂的TCAM控制模块的表项查找操作,在一实施方式中,NP模块和外挂的TCAM控制模块之间通过高速总线接口连接。
TCAM控制模块,TCAM控制模块包括:数据包解析(Packet Parsing)模块、TCAM发送(TCAM Transmit)模块、TCAM接收(TCAM Receive)模块、地址转换(Index Transfer)模块,此外,还可以包括存储器控制(Memory Controller)模块。TCAM控制模块与TCAM芯片组连接,实际应用中,TCAM控制模块可以与TCAM芯片组设计成一个整体模块。
TCAM芯片组,TCAM芯片组包含了多片相同类型的TCAM芯片,其中,TCAM芯片的选取可以依据报文所要查找的最长表项关键字以及所选取的TCAM芯片位宽、芯片成本和芯片功耗确定,在保证查表性能要求的前提下寻求成本和功耗最低的TCAM芯片组。
External RAM模块,External RAM模块保存了用户的用户数据信息,该用户数据信息和TCAM芯片组中的表项内容为一一对应的关系。
在如图2所示的架构中,TCAM控制模块为核心模块,TCAM控制模块可以接收NP模块发来的表项查询请求报文,并根据该表项查询请求报文分别在TCAM芯片组以及ExternalRAM模块中进行表项查找操作,查找完成后直接返回报文转发所需要的用户数据信息。在TCAM控制模块中,主要包括Packet parsing模块、Index transfer模块、TCAM Transmit模块和TCAM Receive模块,TCAM控制模块的工作原理包括以下两种方式:
方式一、NP模块进行表项查找操作:
Packet Parsing模块通过NP模块的高速总线接口接收到表项查询请求报文,通过解析表项查询请求报文中的报文控制字段,识别其中的操作类型字段为表项查找操作,同时识别其中的TCAM芯片ID字段,并将该表项查询请求报文通过TCAM Transmit模块依据TCAM芯片ID字段转发给对应的TCAM芯片进行表项查找操作。上述方案中,高速总线接口传输的报文(如所述表项查询请求报文)包括报文控制字段和报文数据字段两部分,其中,报文数据字段携带表项关键字、用户数据信息及表项查询状态标志等;报文控制字段包含如下具体的字段:
1、操作类型字段,表示报文的操作类型,如表项查询请求报文对应的操作类型字段为表项查找操作,写表项请求报文对应的操作类型字段为写表项操作、读表项请求报文对应的操作类型字段为读表项操作、表项删除请求报文对应的操作类型字段为表项删除操作等。
2、报文起始(SOP,Start Of Packet)字段和报文结束(EOP,End Of Packet)字段,用以构成并区分一次完整的报文。
3、TCAM芯片ID字段,用于区分TCAM芯片组中不同的TCAM芯片。
4、用户自定义字段,具体定义的内容与TCAM芯片支持的报文格式相关。
由于单个TCAM芯片数据位宽有限,NP模块在下发表项查询请求报文时需要将长数据位宽的关键字按TCAM芯片数量拆分成满足TCAM芯片支持位宽的短位宽关键字,再将短位宽关键字分别封装成表项查询请求报文并交错传输至Packet Parsing模块,由PacketParsing模块解析后再发送给TCAM Transmit模块。
本发明以下实施例以TCAM芯片组包含两个TCAM芯片为例进行解释说明,当NP模块需要查询的长位宽关键字为key0并且key0可以按TCAM芯片的位宽拆分为短关键字key1、key2,即key0={key1,key2},则NP模块分别将key1、key2封装至带有不同TCAM芯片ID字段的两个表项查询请求报文的报文数据字段中,并依次发送给Packet Parsing模块。为了标识带有key1、key2的两个表项查询请求报文属于一次查找命令的报文组合,可以利用表项查询请求报文的报文控制字段中的SOP字段和EOP字段加以区分,具体地,构成key0的报文组前两个报文的报文控制字段中的SOP=1、EOP=0,表示报文组发送开始;构成key0的报文组最后两个报文的报文控制字段中的SOP=0、EOP=1,表示报文组结束。报文组的格式如表1所示,其中,ctrl wd表示报文控制字段,data wd表示报文数据字段:
表1
如表1所示,阴影部分代表key1所在的表项查询请求报文,灰色部分代表key2所在的表项查询请求报文。Packet Parsing模块识别并接收到一个完整的报文组后提取其中的TCAM芯片ID字段和对应的关键字信息(key1、key2)并记录下来,随后将报文组通过内部接口发送给TCAM Transmit模块,TCAM Transmit模块根据TCAM芯片ID将表项查询请求报文分别发送至相应的TCAM芯片。
当各TCAM芯片完成表项查找操作后,将查询响应报文返回给TCAM控制模块的TCAMReceive模块,这里,查询响应报文中包含查询结果表项(记录有用户数据信息)所在的index={index1,index2},还包含表项查询请求报文对应的TCAM芯片ID以及关键字信息key1、key2。TCAM Receive模块将所有TCAM芯片的查询响应报文通过内部接口返回给Packet Parsing模块,Packet Parsing模块首先将查询响应报文中的关键字信息key1、key2与之前记录的表项查询请求报文中的key值进行对比,确定相同后再将index={index1,index2}信息发送给Index Transfer模块进行地址翻译。
Index Transfer模块具有地址翻译功能,主要将查询结果表项所在的具有最高优先级地址(即index)翻译成External RAM的物理地址,并返回给Packet Parsing模块。如果TCAM芯片返回的index无对应的物理地址,则Index Transfer模块返回值为null,表明NP模块之前并未建立过该表项,查找失败。如返回值非null,Packet Parsing模块根据该返回值,确认存在有效的物理地址后将含有该物理地址的读请求发送给Memory Controller模块。Memory Controller模块可以集成在TCAM控制模块内部也可以集成在NP模块内部。当Memory Controller模块集成在NP模块内部时,Packet Parsing模块将key值对应的Index和External RAM的物理地址封装成NP模块识别的查询响应报文,并通过高速总线接口返回给NP模块,之后由NP模块读取External RAM中该物理地址所对应的用户数据信息。
作为另一种实现方式,TCAM控制模块可以直接集成Memory Controller模块(如图2所示),此种情形下,Memory Controller模块可以按配置通过TCAM控制模块的内部总线接收Packet Parsing模块或者Index Transfer模块返回的物理地址,并读取External RAM中该物理地址所对应的用户数据信息,一般,Memory Controller模块被配置为突发(burst)读写模式,burst读写长度由表项对应的用户数据信息长度确定。
Memory Controller模块在读取External RAM中的相应的用户数据信息后,返回给Packet Parsing模块,Packet Parsing模块将用户数据信息、对应的key值重新封装成NP模块识别的查询响应报文,并通过高速总线接口返回给NP模块,其中,用户数据信息以及对应的key值填充进查询响应报文中的报文数据字段,报文数据字段的具体格式可以由用户自定义。至此,NP模块完成一次表项查找过程。
方式二、NP模块进行写表项操作:
NP模块写表项之前会先通过查询表项判断当前表项内容是否已经存在,如已存在则取消写表项操作。只有当TCAM控制模块未查询到该表项时NP模块才会进行写表项操作。NP模块写表项需要向TCAM控制模块同时提供写表项的关键字(key值)信息和对应的物理地址信息,同时根据需要对于TCAM控制模块集成Memory Controller模块时,还需要通过Memory Controller模块向External RAM模块写入用户数据信息。Key值保存在TCAM芯片组中,同时NP模块运行的软件会记录上一次写表项的位置,即index值,并将index和对应的物理地址以表格对应关系写入Index Transfer模块中。这里仍以两片TCAM芯片构成的TCAM芯片组为例,描述写表项操作的原理如下:
NP模块写表项之前会先通过查询表项判断当前表项内容是否已经存在,查询表项的过程仍按方式一的方式进行,当TCAM控制模块未查询到表项key0信息时,返回的查询响应报文中的数据字段中无效位会置1表示不存在该表项,只有当TCAM芯片组中各TCAM芯片都没有命中的情况下Packet Parsing模块将返回给NP模块的查询响应报文中的无效位置1,NP模块据此判断表项不存在,之后进行写表项操作。
NP模块写表项时会先后依次下发写关键字请求报文和写用户数据请求报文。Packet Parsing模块通过NP模块的高速总线接口接收到写表项请求报文,通过解析接收到的写表项请求报文中的opcode字段值,确定该写表项请求报文是写关键字请求报文还是写用户数据请求报文。对于关键字为key0={key1,key2}的写关键字请求报文,其报文控制字段包含了TCAM芯片的ID,报文数据字段包含关键字信息和对应的Index。Packet Parsing模块根据TCAM芯片的ID将关键字信息通过TCAM Transmit模块写入对应的TCAM芯片,之后TCAM Receive模块会返回写表项响应报文给Packet Parsing模块表明是否成功写入。
对于写用户数据请求报文,其报文控制字段包含了Memory Controller模块的ID,指向了Memory Controller模块,其报文数据字段包含了用户数据信息和对应的物理地址。对于TCAM控制模块集成了Memory Controller模块时,Packet Parsing模块根据该地址通过Memory Controller模块将用户数据信息写入External RAM中,随后通知PacketParsing模块写入完成。Packet Parsing模块将key值对应的index和用户数据对应的物理地址以一一对应的关系写入Index Transfer模块中,这种对应关系一般以表格形式保存在Index Transfer模块中。Index Transfer模块写入完成后,通过内部接口通知PacketParsing模块触发写表项响应报文给NP模块。
当一次完整的写关键字请求报文和写用户数据请求报文都完成后,NP模块完成了表项下发过程。
图3为本发明实施例的查表方法的流程示意图,如图3所示,所述查表方法包括以下步骤:
步骤301:接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息。
本发明实施例中,所述报文包括报文控制字段和报文数据字段;其中,
所述报文控制字段包括以下至少之一:操作类型字段、报文起始字段、报文结束字段、芯片ID字段、用户自定义字段;
所述报文数据字段包括以下至少之一:表项关键字字段、用户数据信息字段、表项查询状态字段。
本发明实施例中,接收到报文时,对所述报文的报文控制字段进行解析;
如果解析出所述报文控制字段中的操作类型字段为表项查找操作,则确定接收到的报文为表项查询请求报文。
本发明实施例中,对所述报文的报文控制字段中的芯片ID字段进行解析,得到TCAM芯片的ID信息。
本发明实施例中,接收由NP模块下发的表项查询请求报文,其中,所述NP模块下发的表项查询请求报文的数量为一个以上,所述一个以上表项查询请求报文对应一个报文组,所述报文组中的各个表项查询请求报文所携带的关键字组成待查询的关键字。
步骤302:根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作。
步骤303:接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;将所述表项标识转换为存储模块中对应的物理地址。
本发明实施例中,所述TCAM芯片发送的表项查找结果还携有TCAM芯片的ID以及关键字信息;
如果所述表项查找结果携带的TCAM芯片的ID以及关键字信息,与所述表项查询请求报文中解析出来的TCAM芯片的ID以及关键字信息一致,则将所述表项查找结果中携带的表项标识转换为存储模块中对应的物理地址。
步骤304:依据所述物理地址,在存储模块中查询用户数据信息。
本发明实施例中,所述方法还包括:将所述用户数据信息以及相应的关键字封装成查询响应报文;将所述查询响应报文发送给NP模块。
上述方案中,如果所述TCAM芯片发送的表项查找结果表明不存在与所述表项查询请求报文相应的表项时,所述方法还包括:
接收到写表项请求报文时,对所述写表项请求报文进行解析,确定所述写表项请求报文的类型;
如果所述写表项请求报文为写关键字请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到TCAM芯片的ID信息和关键字信息、表项标识信息;依据所述TCAM芯片的ID信息,将所解析得到的关键字信息写入相应的TCAM芯片;
如果所述写表项请求报文为写用户数据请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到存储器控制模块的ID信息和用户数据信息、物理地址信息;通过所述存储器控制模块依据所述物理地址信息在存储模块中写入所述用户数据信息。
本发明实施例中,所述方法还包括:
将所述关键字信息对应的表项标识与所述用户数据信息对应的物理地址,按照对应关系进行存储。
下面结合具体示例对本发明实施例的技术方案再做进一步详细描述。为描述方便,下面仍以TCAM芯片组包含两个TCAM芯片为例进行说明,实际使用的TCAM芯片数由NP模块所需的表项关键字位宽以及TCAM芯片位宽确定。
在以下实施例中,高速总线接口可以采用Interlaken Look-Aside接口,Interlaken Look-Aside接口被广泛应用于网络设备中,如搜索引擎、策略引擎、报文计数引擎以及流量调度器与主业务包处理器之间的业务报文交互接口。Interlaken Look-Aside接口采用Interlaken Look-Aside协议,这里,Interlaken Look-Aside协议(简称ILKA-LA)是Interlaken联盟为网络设备的主业务处理器和报文协处理单元之间的报文交互开发的一套协议标准,该协议通过对Interlaken协议的简化(如简化了逻辑通道,流控特性等)特别适用于事件触发型的快速短包交互过程。本发明实施例中的TCAM芯片支持基于ILKA-LA接口的表项查询操作。作为一种可选的实施方式,以Interlaken Look-Aside接口(简称ILKN-LA接口)作为NP模块与TCAM控制模块之间的高速总线接口。ILKA-LA接口进行交互的控制和数据报文采用66bit编码方式,其中,报文控制字段字段,可以采用表2所示的格式定义,其中,Bit Pos表示bit的位置,Field表示字段。
表2
如表2所示,其中:
opcode[5:0]字段为操作类型字段。
芯片ID[1:0]字段为TCAM芯片ID字段,后级TCAM Transmit模块可以根据TCAM芯片ID将报文转发给对应的TCAM芯片,Packet Parsing模块和TCAM Receive模块也可以根据TCAM芯片ID识别从TCAM接口上接收到的ILKN-LA报文来自哪个TCAM芯片。
ILA字段和ILKA-LA接口协议层相关,为协议标准定义。
user defined字段为用户自定义字段,具体定义的内容和TCAM芯片支持的指令格式相关,如Netlogic的NL11K系列TCAM芯片,user defined字段定义如下:
user defined0 bit[55:42]对应TCAM内部的context addr[13:0];
user defined1 bit[38:33]对应TCAM内部的LTR addr[5:0]。
由于使用的单个TCAM芯片数据位宽有限,NP芯片在下发表项查询请求报文时需要将长数据位宽的关键字按TCAM芯片数量拆分成满足TCAM芯片支持位宽的短位宽关键字,再将短位宽关键字分别封装成表项查询请求报文并交错传输至Packet Parsing模块,由Packet Parsing模块解析后再发送给TCAM Transmit模块。作为一种实现方式,TCAM控制模块直接集成Memory Controller模块。
图4为本发明实施例的表项查询流程示意图,如图4所示,所述流程包括以下步骤:
步骤401:NP模块需要进行表项查询操作时,按表3的格式下发表项查询请求报文,该表现查询请求报文为一报文组,报文组中包含了查询的表项关键字key0={key1,key2}。
表3
步骤402:Packet Parsing模块通过ILKN-LA接口接收到一个完整的报文组并进行解析操作。
步骤403:Packet Parsing模块根据报文控制字段中的opcode[5:0]字段判断是否为表项查询请求报文,是时执行步骤405,否时执行步骤404。
步骤404:判断非表项查询请求报文后按opcode[5:0]字段对应的操作流程处理。例如:判断为写表项操作,则按写表项操作的流程处理。
步骤405:Packet Parsing模块从表项查询请求报文中提取关键字信息key1、key2及各key对应的芯片ID等控制字段信息后发送给TCAM Transmit模块,由该模块根据芯片ID将对应的ILKN-LA报文转发到对应的TCAM芯片上进行表项查询。
步骤406:当TCAM芯片组内的各TCAM芯片完成表项查找后将查询响应报文返回给TCAM Receive模块,查询响应报文包含各TCAM芯片命中表项所在的index={index1,index2}以及各index有效指示位{valid1,valid2},其中index1为key1所在表项对应的index,index2为key2所在表项对应的index……。查询响应报文还包含TCAM芯片对应的芯片ID以及查找关键字信息key1、key2。
步骤407:TCAM Receive模块根据响应报文中的valid字段判断查询结果是否有效,如无效则执行步骤408;如有效则执行步骤409。
步骤408:TCAM Receive模块通过内部接口指示Packet Parsing模块查询未命中,之后执行步骤410。
步骤410:Packet Parsing模块通过ILKN-LA接口发送查询未命中的响应报文给NP模块。
步骤409:TCAM Receive模块将TCAM芯片组的查询结果通过内部接口返回给Packet Parsing模块。
步骤411:Packet Parsing模块将查询响应报文中的关键字信息key1、key2与之前记录的查询请求报文中的key值进行对比,确定相同后执行步骤413,否则执行步骤412。
步骤412:判断查询请求的key值与TCAM返回查询的key值不对应,说明查询过程中出现错误,Packet Parsing模块将查询错误状态通告给NP模块,由NP模块运行的软件对该错误进行后续处理,如确定是否重新对key0下发表项查询操作。
步骤413:Packet Parsing模块将index={index1,index2}信息发送给IndexTransfer模块进行地址翻译。
步骤414:Index Transfer模块通过内部查找表结果确定Packet Parsing返回的Index有无对应的物理地址,没有的话执行步骤415,存在的话执行步骤416。
步骤415:Packet Parsing模块发送查询响应报文给NP芯片,报文中的用户数据字段被指示为无效。
步骤416:Index Transfer模块返回Index对应的物理地址,Packet Parsing模块将该物理地址的读请求发送给Memory Controller模块,Memory Controller模块按配置读取External RAM模块中该物理地址所对应的用户数据信息,一般采用burst读写方式。
步骤417:Memory Controller模块在读取External RAM中的相应用户数据信息后返回给Packet Parsing模块,Packet Parsing模块将用户数据信息、对应的key值重新封装成ILKN-LA查询应答报文,并通过ILKN-LA接口返回给NP模块,至此NP模块完成一次表项查找过程。
图5为本发明实施例的表项下发流程示意图,如图5所示,所述流程包括以下步骤:
步骤501:当NP模块需要进行表项下发操作时,需要先判断TCAM芯片组中是否已存在该关键字对应的表项,因此需要进行表项查询操作,查询完成后进入502。
步骤502:NP模块判断查询结果是否为空,如已命中则说明表项已存在无需下发,因此执行步骤503取消本次表项下发操作,否则执行步骤504。
步骤503:表项已存在,取消本次表项下发操作。
步骤504:NP模块通过ILKN-LA接口下发写表项请求报文,该写表项请求报文为一报文组,报文组格式如表4所示:
表4
步骤505:Packet Parsing模块解析收到的写表项请求报文。
步骤506:判断写表项请求报文是写关键字请求报文还是写用户数据请求报文,如为写关键字请求报文则执行步骤513,否则执行步骤507。
步骤507:当Packet Parsing模块解析出是写用户数据请求报文时继续执行步骤509,否则被判断为其它操作请求,执行步骤508。
步骤508:按其他操作请求对应的流程进行处理。
步骤509:对于写用户数据请求报文,其芯片ID指向了Memory Controller模块,Packet Parsing模块将需要写的用户数据信息和RAM的物理地址一起发送给MemoryController模块,由该模块将用户数据信息写入External RAM中的物理地址位置,随后执行步骤510。
步骤510:Memory Controller模块判断External RAM是否写入成功,如成功写入则执行步骤512,即通过内部状态指示信号反馈给Packet Parsing模块写入成功状态,否则执行步骤511指示写入异常错误。
步骤511:指示写入异常错误。
步骤512:通过内部状态指示信号反馈给Packet Parsing模块写入成功状态。
步骤513:Packet Parsing模块从写表项请求报文中提取关键字信息key1、key2及各key计划在TCAM芯片中写入的index位置信息,对应的芯片ID等控制字段信息一起发送给TCAM Transmit模块,由该模块执行步骤514进行表项写入过程。
步骤514:TCAM Transmit模块进行表项写入过程。
步骤515:表项成功写入后Packet Parsing模块通过TCAM Receive模块收到写表项响应报文,并判断表项是否写入成功,如写入成功则执行步骤517,否则执行步骤516。
步骤516:Packet Parsing模块通过ILKN-LA接口反馈写表项异常响应报文,由NP模块运行的软件确定后续处理过程,如是否重写该表项等。
步骤517:当表项关键字和用户数据信息都写入成功后,Packet Parsing模块将key对应的index和用户数据对应的物理地址以一一对应关系写入Index Transfer模块中,这种对应关系一般以表格形式保存在Index Transfer模块中。
步骤518:Index Transfer模块写入完成后通过内部接口通知Packet Parsing模块触发写表项响应报文给NP模块,至此NP模块完成了表项下发过程。
图6为本发明实施例的查表装置的结构组成示意图,如图6所示,所述装置包括:
解析单元61,用于接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息;
发送单元62,用于根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;
接收单元63,用于接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;
地址转换单元64,用于将所述表项标识转换为存储模块中对应的物理地址;
存储器控制单元65,用于依据所述物理地址,在存储模块中查询用户数据信息。
本发明实施例中,所述报文包括报文控制字段和报文数据字段;其中,
所述报文控制字段包括以下至少之一:操作类型字段、报文起始字段、报文结束字段、芯片ID字段、用户自定义字段;
所述报文数据字段包括以下至少之一:表项关键字字段、用户数据信息字段、表项查询状态字段。
本发明实施例中,所述解析单元61,还用于接收到报文时,对所述报文的报文控制字段进行解析;如果解析出所述报文控制字段中的操作类型字段为表项查找操作,则确定接收到的报文为表项查询请求报文。
本发明实施例中,所述解析单元61,还用于对所述报文的报文控制字段中的芯片ID字段进行解析,得到TCAM芯片的ID信息。
本发明实施例中,所述解析单元61,还用于接收由NP模块下发的表项查询请求报文,其中,所述NP模块下发的表项查询请求报文的数量为一个以上,所述一个以上表项查询请求报文对应一个报文组,所述报文组中的各个表项查询请求报文所携带的关键字组成待查询的关键字。
本发明实施例中,所述TCAM芯片发送的表项查找结果还携有TCAM芯片的ID以及关键字信息;
如果所述表项查找结果携带的TCAM芯片的ID以及关键字信息,与所述表项查询请求报文中解析出来的TCAM芯片的ID以及关键字信息一致,则所述地址转换单元64将所述表项查找结果中携带的表项标识转换为存储模块中对应的物理地址。
本发明实施例中,所述装置还包括:
封装单元66,用于将所述用户数据信息以及相应的关键字封装成查询响应报文;将所述查询响应报文发送给NP模块。
本发明实施例中,所述解析单元61,还用于接收到写表项请求报文时,对所述写表项请求报文进行解析,确定所述写表项请求报文的类型;如果所述写表项请求报文为写关键字请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到TCAM芯片的ID信息和关键字信息、表项标识信息;
所述发送单元62,还用于依据所述TCAM芯片的ID信息,将所解析得到的关键字信息写入相应的TCAM芯片;
所述解析单元61,还用于如果所述写表项请求报文为写用户数据请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到存储器控制模块的ID信息和用户数据信息、物理地址信息;
所述存储器控制单元65,还用于依据所述物理地址信息在存储模块中写入所述用户数据信息。
本发明实施例中,所述地址转换单元64,还用于将所述关键字信息对应的表项标识与所述用户数据信息对应的物理地址,按照对应关系进行存储。
本领域技术人员应当理解,图6所示的查表装置中的各单元的实现功能可参照前述查表方法的相关描述而理解。图6所示的查表装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
参照图2,图6所示的查表装置可以通过TCAM控制模块来实现,其中,解析单元61和封装单元66集成在Packet Parsing模块中,发送单元62集成在TCAM Transmit模块中,接收单元63集成在TCAM Receive模块中,地址转换单元64集成在Index Transfer模块中,存储器控制单元65集成在Memory Controller模块中。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (18)

1.一种查表方法,其特征在于,所述方法包括:
接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到三态内容可寻址存储器TCAM芯片的ID信息;
根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;
接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;将所述表项标识转换为存储模块中对应的物理地址;
依据所述物理地址,在存储模块中查询用户数据信息。
2.根据权利要求1所述的查表方法,其特征在于,所述报文包括报文控制字段和报文数据字段;其中,
所述报文控制字段包括以下至少之一:操作类型字段、报文起始字段、报文结束字段、芯片ID字段、用户自定义字段;
所述报文数据字段包括以下至少之一:表项关键字字段、用户数据信息字段、表项查询状态字段。
3.根据权利要求2所述的查表方法,其特征在于,所述方法还包括:
接收到报文时,对所述报文的报文控制字段进行解析;
如果解析出所述报文控制字段中的操作类型字段为表项查找操作,则确定接收到的报文为表项查询请求报文。
4.根据权利要求2所述的查表方法,其特征在于,所述对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息,包括:
对所述报文的报文控制字段中的芯片ID字段进行解析,得到TCAM芯片的ID信息。
5.根据权利要求1所述的查表方法,其特征在于,所述方法还包括:
接收由NP模块下发的表项查询请求报文,其中,所述NP模块下发的表项查询请求报文的数量为一个以上,所述一个以上表项查询请求报文对应一个报文组,所述报文组中的各个表项查询请求报文所携带的关键字组成待查询的关键字。
6.根据权利要求1所述的查表方法,其特征在于,所述TCAM芯片发送的表项查找结果还携有TCAM芯片的ID以及关键字信息;
如果所述表项查找结果携带的TCAM芯片的ID以及关键字信息,与所述表项查询请求报文中解析出来的TCAM芯片的ID以及关键字信息一致,则将所述表项查找结果中携带的表项标识转换为存储模块中对应的物理地址。
7.根据权利要求1所述的查表方法,其特征在于,所述方法还包括:
将所述用户数据信息以及相应的关键字封装成查询响应报文;
将所述查询响应报文发送给NP模块。
8.根据权利要求1所述的查表方法,其特征在于,如果所述TCAM芯片发送的表项查找结果表明不存在与所述表项查询请求报文相应的表项时,所述方法还包括:
接收到写表项请求报文时,对所述写表项请求报文进行解析,确定所述写表项请求报文的类型;
如果所述写表项请求报文为写关键字请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到TCAM芯片的ID信息和关键字信息、表项标识信息;依据所述TCAM芯片的ID信息,将所解析得到的关键字信息写入相应的TCAM芯片;
如果所述写表项请求报文为写用户数据请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到存储器控制模块的ID信息和用户数据信息、物理地址信息;通过所述存储器控制模块依据所述物理地址信息在存储模块中写入所述用户数据信息。
9.根据权利要求8所述的查表方法,其特征在于,所述方法还包括:
将所述关键字信息对应的表项标识与所述用户数据信息对应的物理地址,按照对应关系进行存储。
10.一种查表装置,其特征在于,所述装置包括:
解析单元,用于接收到报文并确定出所述报文为表项查询请求报文时,对所述表项查询请求报文进行解析,得到TCAM芯片的ID信息;
发送单元,用于根据所述TCAM芯片的ID信息,将所述表项查询请求报文发送给相应的TCAM芯片进行表项查找操作;
接收单元,用于接收所述TCAM芯片发送的表项查找结果,所述表项查找结果携有表项标识;
地址转换单元,用于将所述表项标识转换为存储模块中对应的物理地址;
存储器控制单元,用于依据所述物理地址,在存储模块中查询用户数据信息。
11.根据权利要求10所述的查表装置,其特征在于,所述报文包括报文控制字段和报文数据字段;其中,
所述报文控制字段包括以下至少之一:操作类型字段、报文起始字段、报文结束字段、芯片ID字段、用户自定义字段;
所述报文数据字段包括以下至少之一:表项关键字字段、用户数据信息字段、表项查询状态字段。
12.根据权利要求11所述的查表装置,其特征在于,所述解析单元,还用于接收到报文时,对所述报文的报文控制字段进行解析;如果解析出所述报文控制字段中的操作类型字段为表项查找操作,则确定接收到的报文为表项查询请求报文。
13.根据权利要求11所述的查表装置,其特征在于,所述解析单元,还用于对所述报文的报文控制字段中的芯片ID字段进行解析,得到TCAM芯片的ID信息。
14.根据权利要求10所述的查表装置,其特征在于,所述解析单元,还用于接收由NP模块下发的表项查询请求报文,其中,所述NP模块下发的表项查询请求报文的数量为一个以上,所述一个以上表项查询请求报文对应一个报文组,所述报文组中的各个表项查询请求报文所携带的关键字组成待查询的关键字。
15.根据权利要求10所述的查表装置,其特征在于,所述TCAM芯片发送的表项查找结果还携有TCAM芯片的ID以及关键字信息;
如果所述表项查找结果携带的TCAM芯片的ID以及关键字信息,与所述表项查询请求报文中解析出来的TCAM芯片的ID以及关键字信息一致,则所述地址转换单元将所述表项查找结果中携带的表项标识转换为存储模块中对应的物理地址。
16.根据权利要求10所述的查表装置,其特征在于,所述装置还包括:
封装单元,用于将所述用户数据信息以及相应的关键字封装成查询响应报文;将所述查询响应报文发送给NP模块。
17.根据权利要求10所述的查表装置,其特征在于,所述解析单元,还用于接收到写表项请求报文时,对所述写表项请求报文进行解析,确定所述写表项请求报文的类型;如果所述写表项请求报文为写关键字请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到TCAM芯片的ID信息和关键字信息、表项标识信息;
所述发送单元,还用于依据所述TCAM芯片的ID信息,将所解析得到的关键字信息写入相应的TCAM芯片;
所述解析单元,还用于如果所述写表项请求报文为写用户数据请求报文,则对所述写关键字请求报文的报文控制字段和报文数据字段进行解析,得到存储器控制模块的ID信息和用户数据信息、物理地址信息;
所述存储器控制单元,还用于依据所述物理地址信息在存储模块中写入所述用户数据信息。
18.根据权利要求17所述的查表装置,其特征在于,所述地址转换单元,还用于将所述关键字信息对应的表项标识与所述用户数据信息对应的物理地址,按照对应关系进行存储。
CN201710273440.8A 2017-04-21 2017-04-21 一种查表方法及装置 Pending CN108737278A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710273440.8A CN108737278A (zh) 2017-04-21 2017-04-21 一种查表方法及装置
PCT/CN2018/084119 WO2018192587A1 (zh) 2017-04-21 2018-04-23 一种查表方法及装置、计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710273440.8A CN108737278A (zh) 2017-04-21 2017-04-21 一种查表方法及装置

Publications (1)

Publication Number Publication Date
CN108737278A true CN108737278A (zh) 2018-11-02

Family

ID=63856219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710273440.8A Pending CN108737278A (zh) 2017-04-21 2017-04-21 一种查表方法及装置

Country Status (2)

Country Link
CN (1) CN108737278A (zh)
WO (1) WO2018192587A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657456A (zh) * 2018-12-12 2019-04-19 盛科网络(苏州)有限公司 Tcam验证方法及系统
CN109688148A (zh) * 2018-12-29 2019-04-26 苏州睿安芯微电子有限公司 一种基于软件配置的自定转发协议安全网络的系统及方法
CN111324382A (zh) * 2018-12-13 2020-06-23 华为技术有限公司 指令处理方法和芯片
CN112632340A (zh) * 2020-12-28 2021-04-09 盛科网络(苏州)有限公司 查表方法及装置、存储介质以及电子设备
CN114844832A (zh) * 2022-03-22 2022-08-02 阿里云计算有限公司 硬件转发表项配置方法、设备、介质及产品

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992579B (zh) * 2021-09-23 2023-03-31 新华三信息安全技术有限公司 一种路由表项存储方法、查找方法及装置
CN115225591B (zh) * 2022-07-15 2023-12-26 井芯微电子技术(天津)有限公司 一种处理交换芯片控制报文的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834802B (zh) * 2010-05-26 2012-08-08 华为技术有限公司 转发数据包的方法及装置
US9590922B2 (en) * 2011-05-12 2017-03-07 Microsoft Technology Licensing, Llc Programmable and high performance switch for data center networks
CN102402611B (zh) * 2011-12-12 2013-07-24 盛科网络(苏州)有限公司 一种用tcam实现关键字快速查找并读表的方法
CN103475584B (zh) * 2012-06-07 2017-08-01 南京中兴软件有限责任公司 三态内容寻址存储器(tcam)查询方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657456A (zh) * 2018-12-12 2019-04-19 盛科网络(苏州)有限公司 Tcam验证方法及系统
CN109657456B (zh) * 2018-12-12 2022-02-08 苏州盛科通信股份有限公司 Tcam验证方法及系统
CN111324382A (zh) * 2018-12-13 2020-06-23 华为技术有限公司 指令处理方法和芯片
US11442735B2 (en) 2018-12-13 2022-09-13 Huawei Technologies Co., Ltd. Search instruction to access a TCAM and memory to return a program counter value from the TCAM
CN111324382B (zh) * 2018-12-13 2023-03-03 华为技术有限公司 指令处理方法和芯片
CN109688148A (zh) * 2018-12-29 2019-04-26 苏州睿安芯微电子有限公司 一种基于软件配置的自定转发协议安全网络的系统及方法
CN112632340A (zh) * 2020-12-28 2021-04-09 盛科网络(苏州)有限公司 查表方法及装置、存储介质以及电子设备
CN112632340B (zh) * 2020-12-28 2024-04-16 苏州盛科通信股份有限公司 查表方法及装置、存储介质以及电子设备
CN114844832A (zh) * 2022-03-22 2022-08-02 阿里云计算有限公司 硬件转发表项配置方法、设备、介质及产品

Also Published As

Publication number Publication date
WO2018192587A1 (zh) 2018-10-25

Similar Documents

Publication Publication Date Title
CN108737278A (zh) 一种查表方法及装置
JP3645734B2 (ja) ネットワーク中継装置及びネットワーク中継方法
CN109587065B (zh) 转发报文的方法、装置、交换机、设备及存储介质
US5978378A (en) Method and apparatus for VLAN support
US6683885B1 (en) Network relaying apparatus and network relaying method
CN101247308B (zh) 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法
JP2001251351A (ja) パケット交換機における入力パケット処理方式
US7567561B2 (en) Packet communication node apparatus with extension modules
JP5594171B2 (ja) 通信処理装置、アドレス学習プログラムおよびアドレス学習方法
US20180287942A1 (en) Forwarding Data Packets
WO2019185051A1 (zh) 一种基于集成流表转发报文的方法及装置
CN109743414B (zh) 利用冗余连接提高地址翻译可用性的方法及计算机可读存储介质
CN106713144A (zh) 一种报文出口信息的读写方法及转发引擎
CN111937360A (zh) 最长前缀匹配
JP2000244574A (ja) ネットワーク中継装置及びネットワーク中継方法
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN102014065A (zh) 报文包头的解析方法、包头解析预处理装置和网络处理器
CN107749826A (zh) 一种数据包转发方法及系统
CN103560968A (zh) 交换机硬件主机路由表更新方法、装置和交换机
CN105122744B (zh) 通过按需路径更新的msdc扩展
JP7044223B2 (ja) サービス処理方法およびネットワークデバイス
JP2000244573A (ja) ネットワーク中継装置及びネットワーク中継方法
US7990972B2 (en) Network communication device and a packet routing method
JP3837670B2 (ja) データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法
JP3645733B2 (ja) ネットワーク中継装置及びネットワーク中継方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181102