CN106713144A - 一种报文出口信息的读写方法及转发引擎 - Google Patents
一种报文出口信息的读写方法及转发引擎 Download PDFInfo
- Publication number
- CN106713144A CN106713144A CN201611226737.0A CN201611226737A CN106713144A CN 106713144 A CN106713144 A CN 106713144A CN 201611226737 A CN201611226737 A CN 201611226737A CN 106713144 A CN106713144 A CN 106713144A
- Authority
- CN
- China
- Prior art keywords
- message
- forwarding engine
- type
- order
- outlet information
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供一种报文出口信息的读写方法及转发引擎,涉及三层转发技术领域,以解决现有的转发引擎输出报文的出口信息效率过低的问题。该方法包括:当转发引擎接收到报文时,获取报文的报文头信息,为报文分配在转发引擎中的保序编号,并基于报文的报文头信息生成的查表关键字进行查表,查出报文的出口信息,基于报文在转发引擎中的保序编号确定的缓存地址,将报文的出口信息缓存至第一类目标存储器中。本申请应用于转发引擎。
Description
技术领域
本发明涉及三层转发技术领域,尤其涉及一种报文出口信息的读写方法及转发引擎。
背景技术
现有的路由设备通常应用其内部的转发引擎来实现报文的转发。具体的,转发引擎在转发报文时,特别是在不同网段之间进行报文转发时,需要转发引擎根据报文中报文头信息(该报文头信息中包含目的地址、源地址等),从转发引擎中存储的三层转发表中查询出与所要转发的报文对应的出口信息,使得转发引擎可以根据该出口信息转发报文。其中,上述的三层转发表为报文和与报文相匹配的出口信息的对应关系表。
转发引擎在查找对每个报文的出口信息后,会按照报文输入转发引擎的输入顺序输出,但由于转发引擎对各个报文的处理速度不同,从而导致不同的报文需要的查表时间不同。这样便导致转发引擎在需要输出某一报文的出口信息时,若转发引擎还未查找到该报文的出口信息,则需要等待查找到该报文的出口信息并输出该出口信息后,才能够执行其后报文出口信息的输出,从而导致整个转发引擎输出报文的出口信息的效率过低。例如,如图1所示,报文进入转发引擎的顺序是报文1、报文2,转发引擎还未查找到报文1的出口信息,此时,报文2的出口信息已经获取,但是,仍需等待转发引擎查找到报文1的出口信息并输出,再输出报文2的出口信息,从而使得输出报文的出口信息的效率过低。
发明内容
本发明的实施例提供一种报文出口信息的读写方法及转发引擎,以解决现有的转发引擎输出报文的出口信息效率过低的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种报文出口信息的写入方法,包括:
当接收到报文时,获取所述报文的报文头信息;其中,所述报文头信息包括报文类型标识;
为所述报文分配在所述转发引擎中的保序编号,并基于所述报文的报文头信息生成的查表关键字进行查表,查出所述报文的出口信息;
基于所述报文在所述转发引擎中的保序编号确定的缓存地址,将所述报文的出口信息缓存至第一类目标存储器中;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
第二方面,提供一种报文出口信息的读取方法,包括:
当接收到读取报文的出口信息的读取命令时,获取所述报文在所述转发引擎中的保序编号及所述报文的报文类型标识;
基于所述报文在所述转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取所述报文的出口信息;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
第三方面,提供一种转发引擎,包括:
获取模块,用于当接收到报文时,获取所述报文的报文头信息;其中,所述报文头信息包括报文类型标识;
分配模块,用于为所述报文分配在所述转发引擎中的保序编号;
查找模块,用于基于所述获取模块获取的所述报文的报文头信息生成的查表关键字进行查表,查出所述报文的出口信息;
写入模块,用于基于所述分配模块分配的所述报文在所述转发引擎中的保序编号确定的缓存地址,将所述查找模块查出的所述报文的出口信息缓存至第一类目标存储器中;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
第四方面,提供一种转发引擎,包括:
获取模块,用于当接收到读取报文的出口信息的读取命令时,获取所述报文在所述转发引擎中的保序编号及所述报文的报文类型标识;
读取模块,用于基于所述获取模块获取的所述报文在所述转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取所述报文的出口信息;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
本发明实施例提供的报文出口信息的读写方法及转发引擎,当转发引擎接收到报文时,获取报文的报文头信息,然后,为报文分配在转发引擎中的保序编号,并基于报文的报文头信息生成的查表关键字进行查表,查出报文的出口信息,最后,基于报文在转发引擎中的保序编号确定的缓存地址,将报文的出口信息缓存至目标存储器中。这样,由于目标存储器为转发引擎中报文的报文类型标识对应的存储器,使得报文在查出报文的出口信息,将报文的出口信息存储在该报文的报文类型对应的目标存储器中保序编号对应的缓存地址,这样当读取报文的出口信息时,能够基于报文类型进行出口信息的读取,从而避免一种报文类型中的某一报文的出口信息未查找到时影响其他报文类型的报文出口信息的输出,实现各个报文类型的出口信息输出时互不干扰,进一步提高了报文出口信息的输出效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种报文及报文的出口信息获取状态的对应示意图;
图2为本发明实施例提供的一种报文出口信息的写入方法的流程示意图;
图3为本发明实施例提供的一种报文保序编号的编号示意图;
图4为本发明实施例提供的另一种报文保序编号的编号示意图;
图5为本发明实施例提供的一种报文的编号与地址对应关系的示意图;
图6为本发明实施例提供的另一种报文的编号与地址对应关系的示意图;
图7为本发明实施例提供的一种报文类型与存储器对应关系的示意图;
图8为本发明实施例提供的一种报文出口信息的读取方法的流程示意图;
图9为本发明实施例提供的一种报文出口信息存储情况的分布示意图;
图10为本发明实施例提供的另一种报文出口信息存储情况的分布示意图;
图11为本发明实施例提供的一种报文出口信息存储情况被部分读取后的分布示意图;
图12为本发明实施例提供的一种转发引擎的结构示意图;
图13为本发明实施例提供的另一种转发引擎的结构示意图。
具体实施方式
下面对本申请中所涉及的部分术语进行解释,以方便读者理解:
“三层转发”,是指在数据通信网络中,利用网际协议来进行跨网段的数据通信。其中,网际协议(英文:Internet Protocol,缩写:IP,又称:互联网协议),是构成现今互联网技术的基石的协议,提供了不可靠的、无连接的数据传送服务,定义了在互联网上传输数据的具体格式。
示例性的,目前IP协议可分为IPv4(英文:Internet Protocol version 4,中文:互联网协议的第4版)协议和IPv6(英文:Internet Protocol version 6,中文:互联网协议的第6版)协议两种协议类型,其中,IPv6协议的使用是为了解决IPv4网络地址资源有限的问题而提出的。此外,MPLS协议是新一代的IP高速骨干网络交换标准,用于快速数据包交换和路由的体系,为网络数据流量提供了目标、路由地址、转发和交换的能力。并且可以管理各种不同形式通信流的机制。MPLS根据IP地址映射得到一个固定长度的标签,用该标签进行数据转发,只有在网络边缘才需要分析IP报文头,从而节约了处理时间。
“三层转发原理”,1)源主机在发起通信之前,先将自己的IP地址与目的主机的IP地址进行比较,若判断处于不同网段,则通过地址解析协议(Address ResolutionProtocol,简称ARP)请求报文获取网关的MAC(Media Access Control,介质访问控制)地址;2)网关收到源主机发来的ARP请求报文后,以一个ARP应答报文进行回应,告知源主机网关的MAC地址;3)源主机根据获取的网关的MAC地址,以源主机的IP地址作为源IP地址,目的主机的IP地址作为目的IP地址,网关MAC地址作为目的MAC地址,将需要发送给目的主机的数据报文发送给网关;4)网关在接收到源主机发送给目的主机的数据后,获知源主机与目的主机不处于同一网段,则将数据上传至三层交换引擎,进行路由查表等操作,获取目的主机的MAC地址;5)若在三层硬件转发表中没有找到目的主机的对应表项,则将报文提交CPU获取对应目的MAC地址。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。如果不加说明,本文中的“多个”是指两个或两个以上。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
需要说明的是,本发明实施例中,除非另有说明,“多个”的含义是指两个或两个以上。
本发明实施例提供的报文出口信息的读写方法的执行主体为转发引擎。上述的转发引擎实际是路由设备或者交换设备中的快速转发模块,该快速转发模块可以执行从物理端口接收不同报文类型的报文,并能够对接收的报文进行解析,获取报文头信息等操作。
例如,上述的转发引擎可以为“FPGA”(英文:Field Programmable Gate Array,中文:现场可编程门阵列),是一种集成度很高的新型高性能可编程芯片,其内部电路功能是可编程的(Programmable),可以通过硬件描述语言(Hardware Description Language,简称HDL)和专用设计工具,在其内部灵活地实现极其复杂的电路功能,适用于高速、高密度的高端数字逻辑电路设计领域,具有高度并行处理能力的逻辑结构,可以完成任何数字器件的功能,在完成一般硬件电路后,还可以利用其在线修改能力,在不改动硬件电路的情况下随时更新设计,很大程度的缩短了网络产品的更新周期和用户的停机维护时间,且还具有开发周期短、开发成本低等优点。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于上述内容,本发明的实施例提供一种报文的出口信息写入方法,应用于转发引擎,如图2所示,该方法具体包括如下步骤:
101、当接收到报文时,获取报文的报文头信息。
示例性的,报文的报文头信息通常包括:该报文的报文类型标识、源主机的IP地址、目的主机的IP地址、源主机的MAC地址、目的主机的MAC地址等。
其中,报文类型标识用于标识报文的类型,报文的类型可以包括:IPv4单播、IPv4组播、IPv6单播、IPv6组播和MPLS等。
示例性的,当转发引擎接收到一个新的报文时,会先解析该报文,获取该报文的报文头信息,还可以根据报文格式,从报文头信息中的固定位置获取报文的目的主机的MAC地址,并发往该目的主机,但是,由于转发引擎在获取报文的目的主机的MAC地址时,无法获知该报文头信息中目的主机的MAC地址是否为该报文所要发往的最终的目的MAC地址,通常需要从转发引擎中的路由表项中查找与该报文相匹配的表项,根据与该报文相匹配的表项,获取该报文头信息中的目的主机MAC地址是否为最终的目的MAC地址,若该报文头信息中的目的主机MAC地址是最终的目的MAC地址,则终止查表,将报文发往该目的主机的MAC地址,若该报文头信息中的目的主机MAC地址非最终的目的MAC地址,则继续查表,查出该报文对应的最终目的主机的MAC地址,将该报文对应的目的主机的MAC地址添加至该报文头信息中,形成新的报文头信息,基于该新的报文头信息与上述数据包进行封装,得到新的报文,并将新的报文发送至目的主机的MAC地址对应的网关。
102、为报文分配在转发引擎中的保序编号,并基于报文的报文头信息生成的查表关键字进行查表,查出报文的出口信息。
在一种示例中,当转发引擎接收到一种或多种报文类型对应的报文时,该转发引擎会按照每种报文类型的报文的输入顺序,为每种报文类型的每个报文分别分配在转发引擎中的保序编号。例如,该转发引擎可以为每种报文类型分配一组编号,以某一报文类型为例,该转发引擎会按照该报文类型对应的报文的输入顺序,依次为每个报文分配在转发引擎中的保序编号。
例如,如图3所示的报文的保序编号示意图可知,该转发引擎当前接收到9个报文,分别属于IPv4单播、IPv4组播、IPv6单播这三种报文类型。在接收到的9个报文中,IPv4单播报文类型对应的报文分别是:第一个报文、第三个报文、第七个报文和第九个报文,IPv4组播报文类型对应的报文分别是:第二个报文和第八个报文,IPv6单播报文类型对应的报文分别是:第四个报文、第五个报文和第六个报文,则这9个报文对应的编号依次为:IPv4单播编号0、IPv4组播编号0、IPv4单播编号1、IPv6单播编号0、IPv6单播编号1、IPv6单播编号2、IPv4单播编号2、IPv4组播报文1、IPv4单播编号3。基于此,可以确定后续每个报文类型的报文分配到的保序编号。
需要说明的是,上述示例仅列出三种报文类型,在实际应用中,可以针对多种报文类型采用本申请中分配保序编号的方式进行编号分配,本申请对此不做限定。
一般的,在实际应用中,为了提高路由设备转发引擎的转发查表速率,通常会在路由设备转发引擎中设置多个转发查表引擎。而为了使多个转发引擎查表引擎处理相同数目的报文,会对编号均衡。
在一种示例中,当转发引擎包含两个查表引擎(例如,查表引擎1和查表引擎2)时,假设该转发引擎接收到至少两个报文,则可以按照报文编号的奇偶性实现编号均衡。
例如,如图4所示,当转发引擎包含两个查表引擎,且接收到11个报文时,报文编号为偶数的报文进入查表引擎1,报文编号为奇数的报文进入查表引擎2,这样,便可实现引擎均衡(即两个查表引擎处理的报文数量相同)。
示例性的,转发引擎在获取到报文的报文头信息后,可以基于该报文头信息中包含的报文参数,为该报文生成对应的查表关键字。
具体的,转发引擎在基于该报文头信息中包含的报文参数为该报文生成对应的查表关键字时,会按照与该报文的报文类型相匹配的查表关键字组合格式,来为该报文生成对应的查表关键字。一般的,不同协议类型需要的查表关键字组合格式不同。
示例性的,报文类型与查表关键字组合格式间的对应关系可以参照表1中所示的对应关系。
报文类型 | 查表关键字组合格式 |
IPv4单播 | VRF+IP(SIP、DIP) |
IPv4组播 | InRIF(VRF)+SIP+DIP |
IPv6单播 | VRF+IP(SIP、DIP) |
IPv6组播 | InRIF+SIP+DIP |
MPLS | Label |
表1
在表1中,VRF(英文:Virtual Private Network Routing&Forwarding Instance)用于表示虚拟专用网络路由转发实例;SIP用于表示源主机IP地址;DIP用于表示目的主机IP地址;InRIF用于表示入接口号;Label用于表示MPLS协议报文中的标签号。
示例性的,转发引擎在获取到该报文的查表关键字后,可以根据与该报文的报文类型相匹配的查表操作类型,以及该报文所对应的查表关键字,为该报文生成对应的查表命令,则转发引擎可以根据生成的查表命令,从该转发引擎的路由转发表中查找到与该报文对应的出口信息。示例性的,报文的出口信息是报文中目的网关的MAC地址。
示例性的,不同协议类型对应的查表操作不同。
例如,参照表2所示的报文类型与查表操作间的映射关系表,可以确定IPv4单播与IPv6单播需要进行三级查表操作,即进行正向路由查表、二次路由查表以及反向路由查表的查表操作;而IPv4组播与IPv6组播需要进行两级查表操作,即进行正向路由查表、反向路由查表的查表操作;最后MPLS只需进行一级查表操作,即进行正向路由操作。
报文类型 | 查表操作 |
IPv4单播 | 正向路由查表、二次路由查表、反向路由查表 |
IPv4组播 | 正向路由查表、反向路由查表 |
IPv6单播 | 正向路由查表、二次路由查表、反向路由查表 |
IPv6组播 | 正向路由查表、反向路由查表 |
MPLS | 正向路由查表 |
表2
当然,在进行每级查表操作时,均需要生成对应的查表命令。需要说明的是,若某一级查表查找到报文对应的出口信息,则无需继续查表,也不再执行后续的查表操作。
示例性的,转发引擎可以按照各协议类型支持的不同LPM(英文:Longest PrefixMatch,中文:最长前缀匹配)算法从查表关键字中提取部分查表关键字生成第一级(正向路由查表)查表命令。其中,在部分报文查表关键字的基础上生成第一级查表命令。若还需要进行后续的第二级或第三级查表,则基于前一级查表命令返回的表项以及每个报文的部分查表关键字生成多级查表操作中每一级查表操作对应的查表命令。例如,将报文查表关键字的中间三分之一作为第一基地址,并从第一级查表命令查表返回的表项中获取第一偏移地址,基于第一基地址和第一偏移地址生成第二级查表命令,若还需继续进行查表,则第三级查表命令根据第二级查表命令返回的表项及剩余的查表关键字生成的。
103、基于报文在转发引擎中的保序编号得到的缓存地址,将报文的出口信息缓存至第一类目标存储器中。
其中,上述的第一类目标存储器为转发引擎中报文的报文类型标识对应的第一类存储器。
示例性的,转发引擎可以将报文在转发引擎中的保序编号作为报文在其报文类型标识对应的第一类存储器中的缓存地址,则可以将报文的出口信息缓存至报文在第一类目标存储器中对应的缓存地址中。
例如,如图5所示,该转发引擎中包括各个报文类型对应的RAM,若RAM1对应存储IPv4单播的报文的出口信息,RAM2对应存储IPv4组播的报文的出口信息。若IPv4单播报文的编号是0,则可以将该IPv4单播报文的出口信息存储至RAM1的地址0处。若IPv4组播报文的编号0,则将该IPv4组播报文的出口信息存储至RAM2的地址0处。若IPv4单播报文的编号4,则将该IPv4组播报文的出口信息存储至RAM2的地址4处。
在一种示例中,当某一路由设备中的转发引擎包含两个查表引擎(例如,查表引擎1和查表引擎2)时,根据各个报文类型的报文的输入顺序进行编号后,将各个报文类型的报文均匀分配给两个查表引擎,若报文编号为偶数的报文进入查表引擎1,报文编号为奇数的报文进入查表引擎2,则可以根据各个报文类型的报文的输入顺序得到的编号右移1位(即编号除2取整),得到报文在各个查表引擎中的保序编号。例如,如图6所示,若IPv4单播报文的编号是0,则可以将该IPv4单播报文的出口信息存储至RAM1的地址0处。若IPv4组播报文的编号0,则将该IPv4组播报文的出口信息存储至RAM2的地址0处。若IPv4单播报文的编号是4,则可以将该IPv4单播报文的出口信息存储至RAM1的地址2处。
需要说明的是,转发引擎在为报文生成对应的查表关键字的同时,将获取到的报文缓存在转发引擎的存储器中,并将报文在转发引擎的存储器中的缓存地址与查表关键字封装在一起,当根据关键字生成的查表命令查表获取到报文对应的出口信息后,能够从查表命令中解析出报文的缓存地址,并根据该地址从转发引擎的存储器中对应的存储空间提取该报文,并将报文和该报文对应的出口信息存储在第一类目标存储器中。
为了方便读取,对于获取到查表结果的报文可以标识其存储状态,从而根据状态标识判断一个报文的查表结果是否获取及读取。示例性的,当转发引擎中包括第一类存储器和第二类存储器,可以将第一类存储器中存储出口信息的存储状态写入第二类存储器。
基于此,该方法还包括如下步骤:
B1、基于报文在转发引擎中的保序编号确定的缓存地址,将报文的写入状态指示标识写入第二类目标存储器中。
其中,上述的第二类目标存储器为转发引擎中与报文的报文类型标识对应的第二类存储器。上述的写入状态指示标识用于标识报文的出口信息在第一类目标存储器中的存储状态。
示例性的,本发明实施例可以使用0,1来作为报文的出口信息的写入状态指示标识,0用于表示该报文的出口信息已查找到且已被读取;1用于表示该报文的出口信息已查找到且未被读取。此外,在未查找到报文对应的出口信息时,该报文的保序编号在第二类目标存储器中对应的存储空间为空。
需要说明的是,本发明实施例提供的写入状态指示标识的表示方法仅仅是一种示例,对此不做限定。
示例性的,参照图7所示的报文类型为IPv4单播和IPv4组播时,每个报文类型对应两类存储器的示意图,IPv4单播所属的报文的出口信息存储写入RAM_A1中,对应的识写入状态指示标识存储在RAM_B1中,IPv4组播所属的报文的出口信息存储在RAM_A2中,对应的写入状态指示标识存储在RAM_B2中。示例性的,当RAM_A1的地址0中写入了出口信息时,RAM_B1的地址0的写入状态指示标识为1,表示IPv4单播的报文1的查表结果1已获取。也即是,当RAM_B1的地址0的写入状态指示标识为1时,能够读取RAM_A1的地址0中写入的出口信息。
本发明实施例提供的报文出口信息的写入方法,当转发引擎接收到报文时,获取报文的报文头信息,然后,为报文分配在转发引擎中的保序编号,并基于报文的报文头信息生成的查表关键字进行查表,查出报文的出口信息,最后,基于报文在转发引擎中的保序编号确定的缓存地址,将报文的出口信息缓存至目标存储器中。这样,由于目标存储器为转发引擎中报文的报文类型标识对应的存储器,使得报文在查找到报文的出口信息,将报文的出口信息存储在该报文的报文类型对应的目标存储器中保序编号对应的缓存地址,使得读取时能够基于报文类型进行出口信息的读取,从而避免一种报文类型中的某一报文的出口信息未查找到时影响其他报文类型的报文出口信息的输出,实现各个报文类型的出口信息输出时互不干扰,进一步提高了报文出口信息的输出效率。
下面将参照上述图2所示的报文出口信息的写入方法流程图中的各步骤以及其他相关描述,对本发明实施例提供的报文出口信息的读取方法进行介绍。以下实施例中与上述实施例相关的技术术语、概念等的说明可以参照上述的实施例,这里不再赘述。
本发明的实施例提供一种报文出口信息的读取方法,应用于转发引擎,如图8所示,该方法具体包括如下步骤:
201、当接收到读取报文的出口信息的读取命令时,获取报文在转发引擎中的保序编号及报文的报文类型标识。
示例性的,当转发引擎接收到路由设备发送的读取报文的出口信息的读取命令时,转发引擎从报文的报文头信息对应的存储地址的存储空间中获取转发引擎为每种报文类型的报文分配的保序编号和报文对应的报文类型标识。
202、基于报文在转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取报文的出口信息。
其中,上述的第一类目标存储器为转发引擎中与报文的报文类型标识对应的第一类存储器。
示例性的,转发引擎在获取报文的保序编号后,可以根据报文在转发引擎中的保序编号和每个报文对应的缓存地址读取报文的出口信息。
示例性,当转发引擎接收到读取一种或多种报文类型对应的报文的出口信息的读取命令时,可以按照每种报文类型的优先级信息大小以及每种报文类型中报文的保序编号顺序,依次获取每个保序编号对应报文的出口信息。
具体地,在步骤202之后,该方法还包括如下步骤:
A1、按照每种报文类型的优先级信息大小以及每种报文类型中报文的保序编号顺序,依次读取每个保序编号对应报文的出口信息。
由于每种报文类型的优先级大小不同,转发引擎可以根据报文类型的优先级顺序以及每种报文类型中报文的保序编号,以以RR(英文:Round-Robin,中文:轮询调度)机制轮询在各个报文类型之前,依次获取每种报文类型所述的报文的保序编号对应报文的出口信息。
示例性的,为了方便读取,该方法还包括如下内容:
B1、基于报文在转发引擎中的保序编号确定的缓存地址,更换第二类目标存储器中存储的报文的写入状态指示标识。
其中,上述的第二类目标存储器为转发引擎中与报文的报文类型标识对应的第二类存储器。上述的写入状态指示标识用于标识报文的出口信息在第一类目标存储器中的存储状态。
转发引擎确定了报文的缓存地址后,还可以先根据该缓存地址确定第二类目标存储器中的写入状态指示标识,如果该写入状态指示标识指示表明该报文的出口信息已存储在相对应的缓存地址中,则再执行步骤202。
具体的,在读取报文的出口信息后,再根据该缓存地址对写入状态指示标识进行更新,表示已经读取该报文的出口信息,表示第一类目标存储器中该报文的缓存地址中的内容为空。
示例性的,若报文类型的优先级大小信息为:IPv4单播、IPv4组播、IPv6单播、IPv6组播、MPLS时,当报文的出口信息及对应的状态指示如图9所示时,以RR轮询读取出的报文的出口信息的顺序为:A、C、E、H、J、D、F、G、I。具体的读取步骤如下:
1)首先从IPv4单播开始轮询调度,此时IPv4单播优先级最高,IPv4单播的RAM_B 0地址的数据为1,可知第一个IPv4单播报文出口信息已获取,则提取相应RAM_A 0地址的A出口信息,则将RAM_B的0地址的数据更新为0,表示该地址无输出信息可用;
2)轮询调度轮到IPv4组播优先级最高,此时IPv4组播的RAM_B 0地址的数据为1,可知第一个IPv4组播0地址的报文出口信息已获取,则提取相应RAM_A 0地址的C出口信息;
3)轮询调度轮到IPv6单播优先级最高,此时IPv6单播的RAM_B 0地址为1,可知第一个IPv6单播报文出口信息已获取,则提取相应RAM_A 0地址的E出口信息;
4)轮询调度轮到IPv6组播优先级最高,此时IPv6组播的RAM_B 0地址为1,可知第一个IPv6组播报文出口信息已获取,则提取相应RAM_A 0地址的H出口信息;
5)轮询调度轮到MPLS优先级最高,此时MPLS的RAM_B 0地址为1,可知第一个MPLS报文出口信息已获取,则提取相应RAM_A 0地址的J出口信息。
6)轮询调度轮到IPv4单播优先级最高,此时IPV4单播的RAM_B 1地址为0,可知第二个IPv4单播报文出口信息已被读取,则顺延判断第二优先级的IPv4组播,此时IPv4组播的RAM_B 1地址为1,可知第二个IPv4组播报文出口信息已获取,则提取相应RAM_A 1地址的D出口信息;
7)轮询调度轮到IPv4组播优先级最高,此时IPv4组播的RAM_B 2地址为0,可知第三个IPv4组播报文出口信息已被读取,则顺延判断第二优先级的IPv6单播,此时IPv6单播的RAM_B 1地址为1,可知第二个IPv6单播报文出口信息已获取,则提取相应RAM_A 1地址的F出口信息;
8)轮询调度轮到IPv6单播优先级最高,此时IPv6单播的RAM_B 2地址为1,可知第三个IPv6单播报文出口信息已获取,则提取相应RAM_A 2地址的G出口信息;
9)轮询调度轮到IPv6组播优先级最高,此时IPv6组播的RAM_B 1地址为1,可知第二个IPv6组播报文出口信息已获取,则提取相应RAM_A 1地址的I出口信息。
当存储器中存储更多的报文的出口信息时,根据上述步骤以报文类型流的形式输出报文,可以实现同一协议类型报文的出口信息的保序提取,并保证各报文类型之间的出口信息提取操作互不干扰,从而避免由于其中一种报文类型的某一个报文的出口信息迟迟未获取,而导致已获取的其他报文类型报文的查表结果也无法输出。
在一种实例中,当某一转发引擎中包含两个查表引擎(例如,查表引擎1和查表引擎2)时,以三种报文类型(IPv4单播、IPv4组播、MPLS)为例进行说明,若报文类型的优先级大小信息为:IPv4单播、IPv4组播、MPLS,当报文的出口信息及对应的状态指示如图10所示时,以RR轮询读取出的报文的出口信息的顺序为:A、C、E、G、D、H,具体的读取步骤如下:
1)首先从IPv4单播开始轮询调度,此时IPv4单播优先级最高,从转发引擎1中的IPv4单播状态指示RAM_B的0地址的数据为1可知第一个IPv4单播报文出口信息已获取,则对RAM_A的0地址进行读取操作,提取A出口信息,并将RAM_B的0地址的数据更新为0,表示该地址无输出信息可用;
2)轮询调度轮到IPv4组播优先级最高,转发引擎1中的IPv4组播状态指示RAM_B的0地址的数据为1,可知,转发引擎1中IPv4组播0地址的报文出口信息已获取,对该0地址进行读取操作,提取C出口信息,并将RAM_B的0地址的数据置0;
3)轮询调度轮到MPLS优先级最高,引擎1中的MPLS状态指示RAM_B的0地址为空,则表明该位置MPLS出口信息未获取,此时即使转发引擎2中MPLS出口信息RAM_B的0地址指示已获取到出口信息,由于保序原则,也无法提取转发引擎2中的MPLS出口信息;在MPLS出口信息无法提取的情况下,对下一顺位的IPv4单播进行判断,由转发引擎2中的IPv4单播状态指示RAM_B可知0地址出口信息已获取,则读取RAM_A中该地址的E出口信息,同样也要将RAM_B的0地址数据置0。此时,一轮调度完成,转发引擎中个报文类型的出口信息以及对应的写入状态指示标识的状态如图11所示。
4)轮询调度又轮到IPv4单播的优先级最高,此时,由于转发引擎1和转发引擎2中0地址的出口信息都已被提取,则继续从转发引擎1的1地址开始读取,由于转发引擎1的IPv4单播的RAM_A的1地址的出口信息未查找到,无法提取转发引擎1中的IPv4单播RAM_A的1地址的出口信息,由于保序原则,也无法提取转发引擎2中的IPv4单播的出口信息,对下一顺位的IPv4组播进行判断,从转发引擎1中的IPv4组播状态指示RAM_B的1地址的数据为1可知第一个IPv4单播报文出口信息已获取,则对RAM_A的1地址进行读取操作,提取D出口信息,并将RAM_B的0地址的数据置0;
5)轮询调度到IPv4组播的优先级最高,此时,转发引擎2中的IPv4组播状态指示RAM_B的1地址的数据为1,可知,转发引擎2中IPv4组播1地址的报文出口信息已查找到,对该1地址进行读取操作,提取H出口信息,并将RAM_B的1地址的数据置0;
6)轮询调度轮到MPLS优先级最高,若引擎1中的MPLS状态指示RAM_B的0地址仍为空,则表明该位置MPLS出口信息仍未查找到,此时,对下一顺位的IPv4单播进行判断,由转发引擎1中的IPv4单播状态指示RAM_B0地址仍为空,可知1地址出口信息仍未查找到,对再下一顺位的IPv4组播进行判断,直到读取到某一报文的出口信息为止。
本发明实施例提供的报文出口信息的读取方法,当转发引擎接收到读取报文的出口信息的读取命令时,获取报文在转发引擎中的保序编号及报文的报文类型标识,然后,基于报文在转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取报文的出口信息。这样,由于目标存储器为转发引擎中报文的报文类型标识对应的存储器,使得在读取报文的出口信息时,一种报文类型的某一报文的出口信息未查找到时,可以按各报文的保序编号读取其他报文类型的报文出口信息,从而在提高报文转发速率的同时,实现各协议类型的报文的出口信息的保序输出。
本发明的实施例提供一种转发引擎,如图12所示,该转发引擎3包括:获取模块31、分配模块32、查找模块33和写入模块34,其中:
获取模块31,用于当接收到报文时,获取报文的报文头信息。
其中,报文头信息包括报文类型标识。
分配模块32,用于为报文分配在转发引擎中的保序编号。
查找模块33,用于基于获取模块31获取的报文的报文头信息生成的查表关键字进行查表,查出报文的出口信息。
写入模块34,用于基于分配模块32分配的报文在转发引擎中的保序编号确定的缓存地址,将查找模块33查出的报文的出口信息缓存至第一类目标存储器中。
其中,上述的第一类目标存储器为转发引擎中与报文的报文类型标识对应的第一类存储器。
可选的,当接收到一种或多种报文类型对应的报文时,上述的分配模块32,用于:按照每种报文类型的报文的输入顺序,为每种报文类型的每个报文分别分配在转发引擎中的保序编号。
可选的,上述的写入模块34还用于:
基于上述的分配模块32分配的报文在转发引擎中的保序编号确定的缓存地址,将报文的写入状态指示标识写入第二类目标存储器中。
其中,上述的第二类目标存储器为转发引擎中与报文的报文类型标识对应的第二类存储器。上述的写入状态指示标识用于标识报文的出口信息在第一类目标存储器中的存储状态。
本发明实施例提供的转发引擎,当转发引擎接收到报文时,获取报文的报文头信息,然后,为报文分配在转发引擎中的保序编号,并基于报文的报文头信息生成的查表关键字进行查表,查出报文的出口信息,最后,基于报文在转发引擎中的保序编号确定的缓存地址,将报文的出口信息缓存至目标存储器中。这样,由于目标存储器为转发引擎中报文的报文类型标识对应的存储器,使得报文在查找到报文的出口信息,将报文的出口信息存储在该报文的报文类型对应的目标存储器中保序编号对应的缓存地址,使得读取时能够基于报文类型进行出口信息的读取,从而使得各个报文类型的出口信息输出时互不干扰,从而避免一种报文类型中的某一报文的出口信息未查找到时影响其他报文类型的报文出口信息的输出,进一步提高了报文出口信息的输出效率。
本发明提供一种转发引擎,如图13所示,该转发引擎4包括:获取模块41和读取模块42,其中:
获取模块41,用于当接收到读取报文的出口信息的读取命令时,获取报文在转发引擎中的保序编号及报文的报文类型标识。
读取模块42,用于基于获取模块41报文在转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取报文的出口信息。
其中,上述的第一类目标存储器为转发引擎中与报文的报文类型标识对应的第一类存储器。
可选的,当接收到读取一种或多种报文类型对应的报文的出口信息的读取命令时;上述的读取模块42还用于:
按照每种报文类型的优先级信息大小以及每种报文类型中报文的保序编号顺序,依次读取每个保序编号对应报文的出口信息。
可选的,该转发引擎还包括:更换模块43,其中,
更换模块43,用于基于获取模块41获取的报文在转发引擎中的保序编号确定的缓存地址,更换第二类目标存储器中存储的所述报文的写入状态指示标识。
其中,上述的第二类目标存储器为转发引擎中与报文的报文类型标识对应的第二类存储器。上述的写入状态指示标识用于标识报文的出口信息在第一类目标存储器中的存储状态。
本发明实施例提供的转发引擎,当转发引擎接收到读取报文的出口信息的读取命令时,获取报文在转发引擎中的保序编号及报文的报文类型标识,然后,基于报文在转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取报文的出口信息。这样,由于目标存储器为转发引擎中报文的报文类型标识对应的存储器,使得在读取报文的出口信息时,一种报文类型的某一报文的出口信息未查找到时,可以按各报文的保序编号读取其他报文类型的报文出口信息,从而在提高报文转发速率的同时,实现各协议类型的报文的出口信息的保序输出。
需要说明的是,在具体实现过程中,上述如图2所示的方法流程中转发引擎所执行的各步骤均可以通过硬件形式的处理器执行存储器中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。而上述转发引擎所执行的动作所对应的程序均可以以软件形式存储于该转发引擎的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上文中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD);还可以包括上述种类的存储器的组合。
上文所提供的装置中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(central processing unit,CPU;也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种报文出口信息的写入方法,其特征在于,应用于转发引擎,所述方法包括:
当接收到报文时,获取所述报文的报文头信息;其中,所述报文头信息包括报文类型标识;
为所述报文分配在所述转发引擎中的保序编号,并基于所述报文的报文头信息生成的查表关键字进行查表,查出所述报文的出口信息;
基于所述报文在所述转发引擎中的保序编号确定的缓存地址,将所述报文的出口信息缓存至第一类目标存储器中;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
2.根据权利要求1所述的方法,其特征在于,当接收到一种或多种报文类型对应的报文时,所述为所述报文分配在所述转发引擎中的保序编号,包括:
按照每种报文类型的报文的输入顺序,为所述每种报文类型的每个报文分别分配在所述转发引擎中的保序编号。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述报文在所述转发引擎中的保序编号确定的缓存地址,将所述报文的写入状态指示标识写入第二类目标存储器中;
其中,所述第二类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第二类存储器;所述写入状态指示标识用于标识所述报文的出口信息在所述第一类目标存储器中的存储状态。
4.一种报文出口信息的读取方法,其特征在于,应用于转发引擎,包括:
当接收到读取报文的出口信息的读取命令时,获取所述报文在所述转发引擎中的保序编号及所述报文的报文类型标识;
基于所述报文在所述转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取所述报文的出口信息;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
5.根据权利要求4所述的方法,其特征在于,当接收到读取一种或多种报文类型对应的报文的出口信息的读取命令时;所述获取所述报文在所述转发引擎中的保序编号及所述报文的报文类型标识之后,还包括:
按照每种报文类型的优先级信息大小以及所述每种报文类型中报文的保序编号顺序,依次读取每个保序编号对应报文的出口信息。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述报文在所述转发引擎中的保序编号确定的缓存地址,更换第二类目标存储器中存储的所述报文的写入状态指示标识;其中,所述第二类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第二类存储器;所述写入状态指示标识用于标识所述报文的出口信息在所述第一类目标存储器中的存储状态。
7.一种转发引擎,其特征在于,所述转发引擎包括:
获取模块,用于当接收到报文时,获取所述报文的报文头信息;其中,所述报文头信息包括报文类型标识;
分配模块,用于为所述报文分配在所述转发引擎中的保序编号;
查找模块,用于基于所述获取模块获取的所述报文的报文头信息生成的查表关键字进行查表,查出所述报文的出口信息;
写入模块,用于基于所述分配模块分配的所述报文在所述转发引擎中的保序编号确定的缓存地址,将所述查找模块查出的所述报文的出口信息缓存至第一类目标存储器中;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
8.根据权利要求7所述的转发引擎,其特征在于,当接收到一种或多种报文类型对应的报文时,所述分配模块,用于:
按照每种报文类型的报文的输入顺序,为所述每种报文类型的每个报文分别分配在所述转发引擎中的保序编号。
9.根据权利要求7所述的转发引擎,其特征在于,所述写入模块还用于:
基于所述分配模块分配的所述报文在所述转发引擎中的保序编号确定的缓存地址,将所述报文的写入状态指示标识写入第二类目标存储器中;
其中,所述第二类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第二类存储器;所述写入状态指示标识用于标识所述报文的出口信息在所述第一类目标存储器中的存储状态。
10.一种转发引擎,其特征在于,包括:
获取模块,用于当接收到读取报文的出口信息的读取命令时,获取所述报文在所述转发引擎中的保序编号及所述报文的报文类型标识;
读取模块,用于基于所述获取模块获取的所述报文在所述转发引擎中的保序编号确定的缓存地址,从第一类目标存储器中,读取所述报文的出口信息;其中,所述第一类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第一类存储器。
11.根据权利要求10所述的转发引擎,其特征在于,当接收到读取一种或多种报文类型对应的报文的出口信息的读取命令时;所述读取模块还用于:
按照每种报文类型的优先级信息大小以及所述每种报文类型中报文的保序编号顺序,依次读取每个保序编号对应报文的出口信息。
12.根据权利要求10所述的转发引擎,其特征在于,所述转发引擎还包括:
更换模块,用于基于所述获取模块获取的所述报文在所述转发引擎中的保序编号确定的缓存地址,更换第二类目标存储器中存储的所述报文的写入状态指示标识;其中,所述第二类目标存储器为所述转发引擎中与所述报文的报文类型标识对应的第二类存储器;所述写入状态指示标识用于标识所述报文的出口信息在所述第一类目标存储器中的存储状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611226737.0A CN106713144B (zh) | 2016-12-27 | 2016-12-27 | 一种报文出口信息的读写方法及转发引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611226737.0A CN106713144B (zh) | 2016-12-27 | 2016-12-27 | 一种报文出口信息的读写方法及转发引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106713144A true CN106713144A (zh) | 2017-05-24 |
CN106713144B CN106713144B (zh) | 2020-01-21 |
Family
ID=58896371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611226737.0A Active CN106713144B (zh) | 2016-12-27 | 2016-12-27 | 一种报文出口信息的读写方法及转发引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106713144B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786447A (zh) * | 2017-11-09 | 2018-03-09 | 锐捷网络股份有限公司 | 一种基于fpga的报文转发方法及设备 |
CN109802900A (zh) * | 2017-11-16 | 2019-05-24 | 中兴通讯股份有限公司 | 报文缓存、读取方法、装置及计算机可读存储介质 |
CN113806245A (zh) * | 2021-10-11 | 2021-12-17 | 芯河半导体科技(无锡)有限公司 | 一种根据出口类型自动分配缓存地址的装置 |
CN114338559A (zh) * | 2021-12-15 | 2022-04-12 | 杭州迪普信息技术有限公司 | 一种报文保序的方法及装置 |
CN114731334A (zh) * | 2020-02-14 | 2022-07-08 | 华为技术有限公司 | 报文保序方法和装置 |
CN115022225A (zh) * | 2022-05-31 | 2022-09-06 | 东风电驱动系统有限公司 | 报文转发方法、装置、设备及可读存储介质 |
WO2024078011A1 (zh) * | 2022-10-11 | 2024-04-18 | 深圳市中兴微电子技术有限公司 | 并行查表装置、方法及设备、计算机可读存储介质 |
CN118316888A (zh) * | 2024-06-11 | 2024-07-09 | 贵州华芯半导体技术有限公司 | 报文保序传输方法、芯片及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996958A (zh) * | 2006-12-30 | 2007-07-11 | 华为技术有限公司 | 保证报文顺序的方法和装置 |
CN101030947A (zh) * | 2007-04-29 | 2007-09-05 | 华为技术有限公司 | 一种报文发送的方法和装置 |
WO2014201934A1 (zh) * | 2013-06-21 | 2014-12-24 | 中兴通讯股份有限公司 | 报文调度方法和装置 |
CN104618266A (zh) * | 2015-02-09 | 2015-05-13 | 浪潮集团有限公司 | 一种多端口间报文转发的方法和装置 |
CN105939308A (zh) * | 2015-07-27 | 2016-09-14 | 杭州迪普科技有限公司 | 报文的处理方法和装置 |
-
2016
- 2016-12-27 CN CN201611226737.0A patent/CN106713144B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996958A (zh) * | 2006-12-30 | 2007-07-11 | 华为技术有限公司 | 保证报文顺序的方法和装置 |
CN101030947A (zh) * | 2007-04-29 | 2007-09-05 | 华为技术有限公司 | 一种报文发送的方法和装置 |
WO2014201934A1 (zh) * | 2013-06-21 | 2014-12-24 | 中兴通讯股份有限公司 | 报文调度方法和装置 |
CN104618266A (zh) * | 2015-02-09 | 2015-05-13 | 浪潮集团有限公司 | 一种多端口间报文转发的方法和装置 |
CN105939308A (zh) * | 2015-07-27 | 2016-09-14 | 杭州迪普科技有限公司 | 报文的处理方法和装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786447B (zh) * | 2017-11-09 | 2020-06-16 | 锐捷网络股份有限公司 | 一种基于fpga的报文转发方法及设备 |
CN107786447A (zh) * | 2017-11-09 | 2018-03-09 | 锐捷网络股份有限公司 | 一种基于fpga的报文转发方法及设备 |
CN109802900A (zh) * | 2017-11-16 | 2019-05-24 | 中兴通讯股份有限公司 | 报文缓存、读取方法、装置及计算机可读存储介质 |
CN114731334A (zh) * | 2020-02-14 | 2022-07-08 | 华为技术有限公司 | 报文保序方法和装置 |
CN114731334B (zh) * | 2020-02-14 | 2023-10-20 | 华为技术有限公司 | 报文保序方法和装置 |
CN113806245B (zh) * | 2021-10-11 | 2023-11-21 | 芯河半导体科技(无锡)有限公司 | 一种根据出口类型自动分配缓存地址的装置 |
CN113806245A (zh) * | 2021-10-11 | 2021-12-17 | 芯河半导体科技(无锡)有限公司 | 一种根据出口类型自动分配缓存地址的装置 |
CN114338559A (zh) * | 2021-12-15 | 2022-04-12 | 杭州迪普信息技术有限公司 | 一种报文保序的方法及装置 |
CN114338559B (zh) * | 2021-12-15 | 2024-03-22 | 杭州迪普信息技术有限公司 | 一种报文保序的方法及装置 |
CN115022225A (zh) * | 2022-05-31 | 2022-09-06 | 东风电驱动系统有限公司 | 报文转发方法、装置、设备及可读存储介质 |
CN115022225B (zh) * | 2022-05-31 | 2023-11-10 | 东风电驱动系统有限公司 | 报文转发方法、装置、设备及可读存储介质 |
WO2024078011A1 (zh) * | 2022-10-11 | 2024-04-18 | 深圳市中兴微电子技术有限公司 | 并行查表装置、方法及设备、计算机可读存储介质 |
CN118316888A (zh) * | 2024-06-11 | 2024-07-09 | 贵州华芯半导体技术有限公司 | 报文保序传输方法、芯片及电子设备 |
CN118316888B (zh) * | 2024-06-11 | 2024-08-13 | 贵州华芯半导体技术有限公司 | 报文保序传输方法、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106713144B (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106713144A (zh) | 一种报文出口信息的读写方法及转发引擎 | |
US11729300B2 (en) | Generating programmatically defined fields of metadata for network packets | |
US20060098644A1 (en) | Translating native medium access control (MAC) addresses to hierarchical MAC addresses and their use | |
US10666564B2 (en) | Increasing entropy across routing table segments | |
CN108768866B (zh) | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 | |
US10348603B1 (en) | Adaptive forwarding tables | |
US8923298B2 (en) | Optimized trie-based address lookup | |
CN101645851B (zh) | 一种ip分片报文的重组方法和装置 | |
US10547547B1 (en) | Uniform route distribution for a forwarding table | |
CN101227407A (zh) | 基于二层隧道协议的报文发送方法及装置 | |
CN101035060A (zh) | 一种三重内容可寻址存储器报文分类的统一处理方法 | |
US7403526B1 (en) | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon | |
US9819587B1 (en) | Indirect destination determinations to forward tunneled network packets | |
US20060007917A1 (en) | Frame transfer method and edge switch | |
US20030195916A1 (en) | Network thread scheduling | |
US9906443B1 (en) | Forwarding table updates during live packet stream processing | |
CN108933756A (zh) | 一种数据包的处理方法、接入网设备及计算机可读存储介质 | |
CN107580079A (zh) | 一种报文传输方法和装置 | |
CN111988231A (zh) | 一种掩码五元组规则匹配的方法及装置 | |
US10887234B1 (en) | Programmatic selection of load balancing output amongst forwarding paths | |
CN105282055B (zh) | 识别网络分组的内部目的地的方法及其装置 | |
WO2011097859A1 (zh) | 一种实现灵活qinq的方法及装置 | |
CN114978986B (zh) | 一种数据传输方法、装置及存储介质 | |
CN1301607C (zh) | 实现支持虚拟局域网防火墙的方法 | |
US7751422B2 (en) | Group tag caching of memory contents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |