CN114490490A - 转发表项的处理方法和装置 - Google Patents
转发表项的处理方法和装置 Download PDFInfo
- Publication number
- CN114490490A CN114490490A CN202011271278.4A CN202011271278A CN114490490A CN 114490490 A CN114490490 A CN 114490490A CN 202011271278 A CN202011271278 A CN 202011271278A CN 114490490 A CN114490490 A CN 114490490A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- message
- entry
- table entry
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 title claims abstract description 65
- 238000004590 computer program Methods 0.000 claims description 6
- 108090000248 Deleted entry Proteins 0.000 claims description 3
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- 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/02—Topology update or discovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- 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/54—Organization of routing tables
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种转发表项的处理方法和装置。该转发表项的处理方法包括:通过第一数据通道接收表项操作报文;解析表项操作报文,以获得转发表项操作信息;根据转发表项操作信息对内存执行目标操作,目标操作包括增加表项、删除表项或者修改表项。本申请通过数据通道接收携带转发表项操作信息的表项操作报文,该而不需要CPU生成并下发转发表项的操作信息,既减轻CPU的负荷,又使得转发表项的处理避免了CPU性能的影响,由于无需CPU参与转发表项的生成和下发,因此转发表项的处理也不再通过CPU与内存之间的总线(例如PCI‑E总线),而是通过转发芯片和内存之间的高速总线,大大提高了转发表项的处理效率。
Description
技术领域
本申请涉及通信技术,尤其涉及一种转发表项的处理方法和装置。
背景技术
数据中心的流量入口和内部分发等场景下,使用了大量的硬件转发设备,例如,传统交换机、白盒交换机、可编程交换机、网络转发设备等,这些转发设备均需要基于转发表项实现转发面的数据转发。而转发表项通常由控制面生成并下发,这需要转发设备上的中央处理器(central processing unit,CPU)参与计算和配置下发,经过串行计算机扩展总线标准(peripheral component interconnect express,PCI-E)总线存入转发面的内存,然后转发面读取内存中的转发表项进行报文转发。
随着越来越多的业务和企业上云,云数据中心的规模越来越庞大,流量也日益增大,因此对转发表项存入内存的速度更为敏感,尤其是在业务恢复初期,海量转发表项要在瞬间创建并存入内存中才能打通业务。一方面对CPU造成了极大的负担,而CPU的性能也影响了转发表项的处理效率,另一方面PCI-E总线的处理能力也影响了转发表项的处理效率。
发明内容
本申请提供一种转发表项的处理方法和装置,通过数据通道接收携带转发表项操作信息的表项操作报文,该而不需要CPU生成并下发转发表项的操作信息,既减轻CPU的负荷,又使得转发表项的处理避免了CPU性能的影响,由于无需CPU参与转发表项的生成和下发,因此转发表项的处理也不再通过CPU与内存之间的总线(例如PCI-E总线),而是通过转发芯片和内存之间的高速总线,大大提高了转发表项的处理效率。
第一方面,本申请提供一种转发表项的处理方法,包括:通过第一数据通道接收表项操作报文,所述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个数据通道;解析所述表项操作报文,以获得转发表项操作信息;根据所述转发表项操作信息对内存执行目标操作,所述目标操作包括增加表项、删除表项或者修改表项。
上述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个或多个数据通道。转发芯片和多个转发端口之间通过高速总线形成转发设备内部的数据通道,因此第一数据通道可以是指前述所有数据通道中的任意一个,转发芯片可以对所有数据通道中的任意一个数据通道上接收的报文进行处理;或者,第一数据通道可以是指前述所有数据通道中的部分数据通道(可以预先指定,该部分数据通道除了可以收发数据报文外,还可以收发本申请中涉及到的表项操作报文)中的任意一个,转发芯片可以对预先设定的多个数据通道中的任意一个数据通道上接收的报文进行处理。
转发设备上对应于第一数据通道的转发端口接收待处理的报文,然后将该报文通过第一数据通道传输至转发芯片,转发芯片对该报文进行以下步骤处理。换言之,转发设备上的任意一个转发端口均可以接收报文,然后各个转发端口将报文通过对应的数据通道传输至转发芯片,本申请中转发芯片可以对来自所有数据通道或者预先设定的数据通道的报文进行以下步骤处理。需要说明的是,本申请中对于报文的来源不做具体限定,例如,该报文可以是转发设备的高层生成的,也可以是由第三方设备生成的。上述报文可以是一般的数据报文,也可以是携带了转发表项操作信息的表项操作报文,因此转发芯片先判断收到的报文是否是表项操作报文,若不是表项操作报文,则按照一般的数据报文进行转发处理;若是表项操作报文,则进行以下步骤处理。可选的,转发芯片可以解析报文中的预先设定的字段,然后根据该字段的值判断报文是否为表项操作报文。
转发表项操作信息包括操作码,该操作码用于指示对内存执行目标操作,目标操作包括增加表项、删除表项或者修改表项。当操作码的值对应于增加表项时,向内存增加转发表项。即转发芯片根据转发表项操作信息,生成新的转发表项,并将该转发表项写入内存中。当操作码的值对应于删除表项时,从内存中删除转发表项。即转发芯片根据转发表项操作信息,从内存中找到对应的转发表项并删除。当操作码的值对应于修改表项时,对内存中的转发表项进行修改。即转发芯片根据转发表项操作信息,从内存中找到对应的转发表项,然后修改指定字段的值。
转发芯片可以通过与内存之间的高速总线实现上述操作,该高速总线例如可以是SerDes,其性能可达400万/秒,远优于通过PCI-E总线对内存操作方式近100倍。
本申请中通过数据通道接收包含转发表项操作信息的表项操作报文,由转发芯片基于该表项操作报文、通过与内存之间的高速总线对内存执行与转发表项关联的操作,一方面可以将CPU从生成并下发转发表项的工作中脱离出来,既减轻CPU的负荷,又使得转发表项的处理避免了CPU性能的影响,另一方面转发表项的处理不再通过CPU与内存之间的总线(例如PCI-E总线),而是通过转发芯片和内存之间的高速总线,大大提高了转发表项的处理效率。
在一种可能的实现方式中,所述解析所述表项操作报文,以获得转发表项操作信息之前,还包括:对所述表项操作报文进行身份认证和/或完整性认证。即根据所述表项操作报文的格式或长度进行所述身份认证;和/或,根据所述表项操作报文中的预先设定的校验字段进行所述完整性认证。
可选的,根据表项操作报文的格式或长度进行身份认证。表项操作报文的格式和长度是有其独特的设计的,因此转发芯片在确定收到的报文是表项操作报文时,可以根据收到的报文的格式和长度再判断该报文是否符合表项操作报文的格式和长度,以完成对报文的安全认证。
可选的,根据表项操作报文中的预先设定的校验字段进行完整性认证。报文的发送端可以对报文中的几个字段进行与或处理,然后将处理的结果存入指定的字段中,转发芯片可以对上述几个字段用同样的方法进行与或处理,然后将处理的结果与指定的字段中的值进行比较,如果一致则认证通过,如果不一致则认证不通过。
在一种可能的实现方式中,所述解析所述表项操作报文,以获得转发表项操作信息之前,还包括:根据所述表项操作报文中的目的地址确定解析所述表项操作报文,所述目的地址包括互联网协议地址IP地址或者媒体存取控制MAC地址。
目的地址可以是报文中携带的目的互联网协议(internet protocol,IP)地址,也可以是报文中携带的目的媒体存取控制(media access control,MAC)地址,该目的地址均指示了该报文的目的地,因此转发芯片可以根据该目的地址判断报文是否是发送给本地的,或者是该报文是否是需要经过本地转发的。如果转发芯片确定报文是发送给本地,或者是经本地转发的,则进行以下步骤的操作,如果转发芯片确定报文不是发送给本地,或者不是经本地转发的,则丢弃或转发该报文。这样可以减少转发芯片需要解析的报文数量,提高报文的处理效率。
第二方面,本申请提供一种转发表项的处理装置,包括:接收模块,用于通过第一数据通道接收表项操作报文,所述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个数据通道;处理模块,用于解析所述表项操作报文,以获得转发表项操作信息;根据所述转发表项操作信息对内存执行目标操作,所述目标操作包括增加表项、删除表项或者修改表项。
在一种可能的实现方式中,所述表项操作报文包括预先设定的字段,所述字段的值为设定标识。
在一种可能的实现方式中,所述处理模块,还用于对所述表项操作报文进行身份认证和/或完整性认证。
在一种可能的实现方式中,所述处理模块,具体用于根据所述表项操作报文的格式或长度进行所述身份认证;和/或,根据所述表项操作报文中的预先设定的校验字段进行所述完整性认证。
在一种可能的实现方式中,所述转发表项操作信息包括操作码,所述操作码用于指示所述目标操作。
在一种可能的实现方式中,所述处理模块,具体用于当所述操作码的值对应于所述增加表项时,向所述内存增加所述转发表项;或者,当所述操作码的值对应于所述删除表项时,从所述内存中删除所述转发表项;或者,当所述操作码的值对应于所述修改表项时,对所述内存中的所述转发表项进行修改。
在一种可能的实现方式中,所述处理模块,还用于根据所述表项操作报文中的目的地址确定解析所述表项操作报文,所述目的地址包括互联网协议地址IP地址或者媒体存取控制MAC地址。
在一种可能的实现方式中,所述处理模块,具体用于当根据所述目的地址确定所述表项操作报文是发送给本地的报文时,确定解析所述表项操作报文。
第三方面,本申请提供一种转发设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一方面中任一项所述的方法。
第五方面,本申请提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行上述第一方面中任一项所述的方法。
附图说明
图1为本申请转发设备的一个示例性的结构图;
图2为本申请转发表项的处理方法的过程200的一个示例性的流程图;
图3a为本申请表项操作报文的一个示例性的格式图;
图3b为本申请表项操作报文的一个示例性的格式图;
图3c为本申请表项操作报文的一个示例性的格式图;
图3d为本申请表项操作报文的一个示例性的格式图;
图4为本申请转发表项的处理方法的过程400的一个示例性的流程图;
图5为本申请转发芯片处理报文的一个示例性的流程框图;
图6为本申请转发表项的处理装置的一个示例性的结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
图1为本申请转发设备的一个示例性的结构图,如图1所示,转发设备例如可以是云网关、路由器、具备特定功能的硬件转发设备等。该转发设备包括CPU、内存和转发芯片,其中,转发芯片例如可以采用网络处理器(networking processor,NP)芯片、现场可编程门阵列(field programmable gate array,FPGA)芯片、独立于协议的分组处理器编程(programming protocol-independent packet processors,P4)等;内存例如可以采用RAM。
CPU通常执行转发设备的控制面代码,内存和转发芯片共同完成转发面的处理。CPU分别与内存、转发芯片通过PCI-E总线(用细线表示)连接。内存和转发芯片通过高速总线(例如,SerDes)(用粗线表示)连接。另外,转发芯片通过高速总线分别与多个转发端口连接。由此,转发芯片和多个转发端口之间通过高速总线形成转发设备内部的数据通道。需要说明的是,上述PCI-E总线也可以采用以太口等其他总线替换替换,本申请对此不作具体限定。
本申请中转发芯片负责数据报文的高速转发,内存负责存储转发表项。除此以外,转发芯片还负责表项操作报文的识别、认证及解析,并且转发芯片根据表项操作报文的内容控制内存操作。具体可参见下文描述。
图2为本申请转发表项的处理方法的过程200的一个示例性的流程图,如图2所示,过程200可由转发设备执行,具体的可以由转发设备中的转发芯片或转发芯片内部的逻辑部件执行,本申请中可以是转发芯片的片上系统(system on chip,SOC),SOC可以是转发芯片的处理器单元,也可以现场可编程逻辑门阵列(field programmable gate array,FPGA)、单片机等具备一定计算能力的逻辑部件。过程200描述为一系列的步骤或操作,应当理解的是,过程200可以以各种顺序执行和/或同时发生,不限于图2所示的执行顺序。假设具有多个数据报文的数据流正在使用转发设备,执行包括如下步骤的过程200来实现转发表项的处理,例如,增加表项、删除表项或者修改表项。
步骤201、通过第一数据通道接收表项操作报文。
上述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个或多个数据通道。即如图1对应的实施例所述,转发芯片和多个转发端口之间通过高速总线形成转发设备内部的数据通道,因此第一数据通道可以是指前述所有数据通道中的任意一个,转发芯片可以对所有数据通道中的任意一个数据通道上接收的报文进行处理;或者,第一数据通道可以是指前述所有数据通道中的部分数据通道(可以预先指定,该部分数据通道除了可以收发数据报文外,还可以收发本申请中涉及到的表项操作报文)中的任意一个,转发芯片可以对预先设定的多个数据通道中的任意一个数据通道上接收的报文进行处理。
转发设备上对应于第一数据通道的转发端口接收待处理的报文,然后将该报文通过第一数据通道传输至转发芯片,转发芯片对该报文进行以下步骤处理。换言之,转发设备上的任意一个转发端口均可以接收报文,然后各个转发端口将报文通过对应的数据通道传输至转发芯片,本申请中转发芯片可以对来自所有数据通道或者预先设定的数据通道的报文进行以下步骤处理。需要说明的是,本申请中对于报文的来源不做具体限定,例如,该报文可以是转发设备的高层生成的,也可以是由第三方设备生成的。
通常情况下,通过数据通道接收的报文可以是一般的数据报文,也可以是携带了转发表项操作信息的表项操作报文,因此转发芯片先判断收到的报文是否是表项操作报文,若不是表项操作报文,则按照一般的数据报文进行转发处理;若是表项操作报文,则进行以下步骤处理。
转发芯片可以解析报文中的预先设定的字段,然后根据该字段的值判断报文是否为表项操作报文。例如,图3a为本申请表项操作报文的一个示例性的格式图,如图3a所示,除了符合协议规定的地址字段、内外端口或标签等字段外,表项操作报文中包括虚拟扩展局域网(virtual extensible local area network,VXLAN)字段,转发芯片收到报文后,解析VXLAN字段,如果该字段的值不是特定标识字段(例如0x5a)表示该报文不是表项操作报文,如果该字段的值为特定标识字段(例如0x5a)表示该报文是表项操作报文。
步骤202、解析表项操作报文,以获得转发表项操作信息。
本申请中表项操作是指对硬件转发表进行操作的行为,包括增加、删除、修改、查询等,表项操作报文是指携带表项操作信息的报文,其英文对应为routing table entry。转发表项操作信息包括操作码,该操作码用于指示对内存所执行的目标操作,目标操作包括增加表项、删除表项或者修改表项。例如,如图3a所示,表项操作报文中还包括Data字段,该字段可以用于承载转发表项操作信息。在一种可能的实现方式中,转发表项操作信息可以包括以下内容:
(1)表标识(用于对转发表进行标识)、操作码(包括增加表项(add)、删除表项(del)或者修改表项(modify))。可选的,当表项操作报文中携带多个转发表项的内容时,还可以包括表项个数。
(2)针对每个转发表项,包括:表项索引(用于对转发表项进行标识)、匹配字段(可以是要匹配的任意字段,例如可以采用类型长度值(type length value,TLV)三元组描述,也可以采用报文的长度、偏移、值来描述)以及动作字段(可以是增加表项(add)、删除表项(del)或修改表项(modify)等。例如,可以采用动作(add/del/modify)+TLV描述,也可以采用动作(add/del/modify)+报文的长度、偏移、编辑值来描述)。
(3)表项老化、统计等相关信息。可选的,表项老化和统计信息可以添加在每个表项里。
步骤203、根据转发表项操作信息对内存执行目标操作,该目标操作包括增加表项、删除表项或者修改表项。
可选的,当操作码的值对应于增加表项时,向内存增加转发表项。即转发芯片根据转发表项操作信息,生成新的转发表项,并将该转发表项写入内存中。例如,图3b为本申请表项操作报文的一个示例性的格式图,如图3b所示,Data字段中的操作码为1,表示增加表项(add),在内存中增加两个转发表项,其索引分别是10和6。
可选的,当操作码的值对应于删除表项时,从内存中删除转发表项。即转发芯片根据转发表项操作信息,从内存中找到对应的转发表项并删除。例如,图3c为本申请表项操作报文的一个示例性的格式图,如图3c所示,Data字段中的操作码为2,表示删除表项(del),从内存中查询到表项索引为10的转发表项并删除。
可选的,当操作码的值对应于修改表项时,对内存中的转发表项进行修改。即转发芯片根据转发表项操作信息,从内存中找到对应的转发表项,然后修改指定字段的值。例如,图3d为本申请表项操作报文的一个示例性的格式图,如图3d所示,Data字段中的操作码为3,表示修改表项(modify),从内存中查询到表项索引为10的转发表项,并按照匹配字段和动作字段对该转发表项进行修改。
转发芯片可以通过与内存之间的高速总线实现上述操作,该高速总线例如可以是SerDes,表项操作报文从数据通道接收后,直接在SOC上进行处理,完成表项下发完整操作。无需再经过PCI-E总线及CPU的参与和处理,每秒安装表项条目数性能可以提高两个数量级。
本申请中通过数据通道接收包含转发表项操作信息的表项操作报文,由转发芯片基于该表项操作报文、通过与内存之间的高速总线对内存执行与转发表项关联的操作,一方面可以将CPU从生成并下发转发表项的工作中脱离出来,既减轻CPU的负荷,又使得转发表项的处理避免了CPU性能的影响,另一方面转发表项的处理不再通过CPU与内存之间的总线(例如PCI-E总线),而是通过转发芯片和内存之间的高速总线,大大提高了转发表项的处理效率。
图4为本申请转发表项的处理方法的过程400的一个示例性的流程图,如图4所示,过程400可由转发设备执行,具体的可以由转发设备中的转发芯片执行。过程400描述为一系列的步骤或操作,应当理解的是,过程400可以以各种顺序执行和/或同时发生,不限于图4所示的执行顺序。假设具有多个数据报文的数据流正在使用转发设备,执行包括如下步骤的过程400来实现转发表项的处理,例如,增加表项、删除表项或者修改表项。
步骤401、通过第一数据通道接收待处理的报文。
步骤401可以参照图2所示实施例中的步骤201,此处不再赘述。
步骤402、根据报文中的目的地址判断是否解析报文。
目的地址可以是报文中携带的目的互联网协议(internet protocol,IP)地址,也可以是报文中携带的目的媒体存取控制(media access control,MAC)地址,该目的地址均指示了该报文的目的地,因此转发芯片可以根据该目的地址判断报文是否是发送给本地的,或者是该报文是否是需要经过本地转发的。如果转发芯片确定报文是发送给本地,或者是经本地转发的,则进行以下步骤的操作,如果转发芯片确定报文不是发送给本地,或者不是经本地转发的,则丢弃或转发该报文。这样可以减少转发芯片需要解析的报文数量,提高报文的处理效率。
若确定要解析该报文,则跳转至步骤403,若确定不解析该报文,则跳转至步骤409。
步骤403、判断报文是否为表项操作报文。
步骤403可以参照图2所示实施例中的步骤202,此处不再赘述。
若确定报文是表项操作报文,则跳转至步骤404,若确定报文不是表项操作报文,则跳转至步骤407。
步骤404、对表项操作报文进行认证。
在一种可能的实现方式中,根据表项操作报文的格式或长度进行身份认证。如图3a所示,表项操作报文的格式和长度是有其独特的设计的,因此转发芯片在确定收到的报文是表项操作报文时,可以根据收到的报文的格式和长度再判断该报文是否符合表项操作报文的格式和长度,以完成对报文的安全认证。
在一种可能的实现方式中,根据表项操作报文中的预先设定的校验字段进行完整性认证。报文的发送端可以对报文中的几个字段进行与或处理,然后将处理的结果存入指定的字段中,转发芯片可以对上述几个字段用同样的方法进行与或处理,然后将处理的结果与指定的字段中的值进行比较,如果一致则认证通过,如果不一致则认证不通过。
若对表项操作报文认证通过,则跳转至步骤405,若对表项操作报文认证没有通过,则跳转至步骤409。
步骤405、解析表项操作报文获得转发表项操作信息。
步骤405可以参照图2所示实施例中的步骤203,此处不再赘述。
步骤406、根据转发表项操作信息对内存执行操作。
步骤405可以参照图2所示实施例中的步骤204,此处不再赘述。
步骤407、根据数据报文特征查询内存获得转发表项。
转发芯片可以根据任意指定的条件对内存中存储的信息进行查询以获得转发表项,例如用户数据报协议(user datagram protocol,UDP)端口号,或者VXLAN vni等信息。
步骤408、根据转发表项对数据报文进行转发处理或者按照报文的业务需求对报文进行处理。
步骤409、丢弃或转发报文。
本申请中通过数据通道接收包含转发表项操作信息的表项操作报文,由转发芯片基于该表项操作报文、通过与内存之间的高速总线对内存执行与转发表项关联的操作,一方面可以将CPU从生成并下发转发表项的工作中脱离出来,既减轻CPU的负荷,又使得转发表项的处理避免了CPU性能的影响,另一方面转发表项的处理不再通过CPU与内存之间的总线(例如PCI-E总线),而是通过转发芯片和内存之间的高速总线,大大提高了转发表项的处理效率。
图5为本申请转发芯片处理报文的一个示例性的流程框图,如图5所示,在图1的基础上,转发芯片包括初判模块、认证模块和解析模块,其中,初判模块用于对从任意一个数据通道上接收的报文进行判断,确定该报文是否为表项操作报文。若该报文是表项操作报文,则转向认证模块执行;若该报文不是表项操作报文,则按照从内存查询到的对应的转发表项将报文通过数据通道转发至对应的出端口。初判模块可以运行于可编程硬件器件,例如NP芯片、FPGA等,其实现方式包括但不限于微码。认证模块用于对被判定为是表项操作报文的报文进行认证,该认证方法可以参照图4所示实施例的步骤404。若认证通过,则转向解析模块执行;若认证不通过,则丢弃或转发该报文。解析模块用于对认证通过的报文进行解析,得到转发表项操作信息,以获得对内存所执行的与转发表项关联的操作,并对内存执行该操作。
图6为本申请转发表项的处理装置的一个示例性的结构图,如图6所示,本实施例的装置可以是图1所示的转发设备,尤其是转发设备中的转发芯片。该装置包括:接收模块601和处理模块602,其中,
接收模块601,用于通过第一数据通道接收待处理的表项操作报文,所述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个数据通道;处理模块602,用于解析所述表项操作报文,以获得转发表项操作信息;根据所述转发表项操作信息对内存执行目标操作,所述目标操作包括增加表项、删除表项或者修改表项。
在一种可能的实现方式中,所述表项操作报文包括预先设定的字段,所述字段的值为设定标识。
在一种可能的实现方式中,所述处理模块,还用于对所述表项操作报文进行身份认证和/或完整性认证。
在一种可能的实现方式中,所述处理模块602,具体用于根据所述表项操作报文的格式或长度进行所述身份认证;和/或,根据所述表项操作报文中的预先设定的校验字段进行所述完整性认证。
在一种可能的实现方式中,所述转发表项操作信息包括操作码,所述操作码用于指示所述目标操作。
在一种可能的实现方式中,所述处理模块602,具体用于当所述操作码的值对应于所述增加表项时,向所述内存增加所述转发表项;或者,当所述操作码的值对应于所述删除表项时,从所述内存中删除所述转发表项;或者,当所述操作码的值对应于所述修改表项时,对所述内存中的所述转发表项进行修改。
在一种可能的实现方式中,所述处理模块602,还用于根据所述表项操作报文中的目的地址确定是否解析所述表项操作报文,所述目的地址包括互联网协议地址IP地址或者媒体存取控制MAC地址;当确定解析所述报文时,判断所述报文是否为所述表项操作报文。
在一种可能的实现方式中,所述处理模块602,具体用于当根据所述目的地址确定所述表项操作报文是发送给本地的报文时,确定解析所述表项操作报文。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种转发表项的处理方法,其特征在于,包括:
通过第一数据通道接收表项操作报文,所述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个数据通道;
解析所述表项操作报文,以获得转发表项操作信息;
根据所述转发表项操作信息对内存执行目标操作,所述目标操作包括增加表项、删除表项或者修改表项。
2.根据权利要求1所述的方法,其特征在于,所述表项操作报文包括预先设定的字段,所述字段的值为设定标识。
3.根据权利要求1或2所述的方法,其特征在于,所述解析所述表项操作报文,以获得转发表项操作信息之前,还包括:
对所述表项操作报文进行身份认证和/或完整性认证。
4.根据权利要求3所述的方法,其特征在于,所述对所述表项操作报文进行身份认证和/或完整性认证,包括:
根据所述表项操作报文的格式或长度进行所述身份认证;和/或,
根据所述表项操作报文中的预先设定的校验字段进行所述完整性认证。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述转发表项操作信息包括操作码,所述操作码用于指示所述目标操作。
6.根据权利要求5所述的方法,其特征在于,所述根据所述转发表项操作信息对内存执行目标操作,包括:
当所述操作码的值对应于所述增加表项时,向所述内存增加所述转发表项;或者,
当所述操作码的值对应于所述删除表项时,从所述内存中删除所述转发表项;或者,
当所述操作码的值对应于所述修改表项时,对所述内存中的所述转发表项进行修改。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述解析所述表项操作报文,以获得转发表项操作信息之前,还包括:
根据所述表项操作报文中的目的地址确定解析所述表项操作报文,所述目的地址包括互联网协议地址IP地址或者媒体存取控制MAC地址。
8.根据权利要求7所述的方法,其特征在于,所述根据所述表项操作报文中的目的地址确定解析所述报文,包括:
当根据所述目的地址确定所述表项操作报文是发送给本地的报文时,确定解析所述表项操作报文。
9.一种转发表项的处理装置,其特征在于,包括:
接收模块,用于通过第一数据通道接收表项操作报文,所述第一数据通道为所有数据通道或者预先设定的多个数据通道中的任意一个数据通道;
处理模块,用于解析所述表项操作报文,以获得转发表项操作信息;根据所述转发表项操作信息对内存执行目标操作,所述目标操作包括增加表项、删除表项或者修改表项。
10.根据权利要求9所述的装置,其特征在于,所述表项操作报文包括预先设定的字段,所述字段的值为设定标识。
11.根据权利要求9或10所述的装置,其特征在于,所述处理模块,还用于对所述表项操作报文进行身份认证和/或完整性认证。
12.根据权利要求11所述的装置,其特征在于,所述处理模块,具体用于根据所述表项操作报文的格式或长度进行所述身份认证;和/或,根据所述表项操作报文中的预先设定的校验字段进行所述完整性认证。
13.根据权利要求9-12中任一项所述的装置,其特征在于,所述转发表项操作信息包括操作码,所述操作码用于指示所述目标操作。
14.根据权利要求13所述的装置,其特征在于,所述处理模块,具体用于当所述操作码的值对应于所述增加表项时,向所述内存增加所述转发表项;或者,当所述操作码的值对应于所述删除表项时,从所述内存中删除所述转发表项;或者,当所述操作码的值对应于所述修改表项时,对所述内存中的所述转发表项进行修改。
15.根据权利要求9-14中任一项所述的装置,其特征在于,所述处理模块,还用于根据所述表项操作报文中的目的地址确定解析所述表项操作报文,所述目的地址包括互联网协议地址IP地址或者媒体存取控制MAC地址。
16.根据权利要求15所述的装置,其特征在于,所述处理模块,具体用于当根据所述目的地址确定所述表项操作报文是发送给本地的报文时,确定解析所述表项操作报文。
17.一种转发设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行权利要求1-8中任一项所述的方法。
19.一种计算机程序,其特征在于,当所述计算机程序被计算机执行时,用于执行权利要求1-8中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011271278.4A CN114490490A (zh) | 2020-11-13 | 2020-11-13 | 转发表项的处理方法和装置 |
PCT/CN2021/128779 WO2022100511A1 (zh) | 2020-11-13 | 2021-11-04 | 转发表项的处理方法和装置 |
EP21891037.0A EP4231165A4 (en) | 2020-11-13 | 2021-11-04 | METHOD AND DEVICE FOR PROCESSING A FORWARDING INPUT |
US18/316,383 US20230336457A1 (en) | 2020-11-13 | 2023-05-12 | Method and apparatus for processing forwarding entry |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011271278.4A CN114490490A (zh) | 2020-11-13 | 2020-11-13 | 转发表项的处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490490A true CN114490490A (zh) | 2022-05-13 |
Family
ID=81490709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011271278.4A Pending CN114490490A (zh) | 2020-11-13 | 2020-11-13 | 转发表项的处理方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230336457A1 (zh) |
EP (1) | EP4231165A4 (zh) |
CN (1) | CN114490490A (zh) |
WO (1) | WO2022100511A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117255055A (zh) * | 2023-11-15 | 2023-12-19 | 新华三技术有限公司 | 报文转发方法、装置及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628653B1 (en) * | 1998-06-04 | 2003-09-30 | Nortel Networks Limited | Programmable packet switching device |
CN102255804B (zh) * | 2011-07-06 | 2014-07-02 | 北京星网锐捷网络技术有限公司 | 报文处理方法、装置及网络设备 |
US9407541B2 (en) * | 2014-04-24 | 2016-08-02 | International Business Machines Corporation | Propagating a flow policy by control packet in a software defined network (SDN) based network |
US20160285735A1 (en) * | 2015-03-23 | 2016-09-29 | Brocade Communications Systems, Inc. | Techniques for efficiently programming forwarding rules in a network system |
CN105656786B (zh) * | 2016-01-22 | 2019-04-12 | 中国人民解放军国防科学技术大学 | 一种基于快、慢表的路由器查表方法 |
CN109525495B (zh) * | 2018-12-24 | 2022-03-11 | 广东浪潮大数据研究有限公司 | 一种数据处理装置、方法和fpga板卡 |
CN111224964A (zh) * | 2019-12-30 | 2020-06-02 | 北京三快在线科技有限公司 | 访问控制方法及设备 |
-
2020
- 2020-11-13 CN CN202011271278.4A patent/CN114490490A/zh active Pending
-
2021
- 2021-11-04 WO PCT/CN2021/128779 patent/WO2022100511A1/zh unknown
- 2021-11-04 EP EP21891037.0A patent/EP4231165A4/en active Pending
-
2023
- 2023-05-12 US US18/316,383 patent/US20230336457A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117255055A (zh) * | 2023-11-15 | 2023-12-19 | 新华三技术有限公司 | 报文转发方法、装置及电子设备 |
CN117255055B (zh) * | 2023-11-15 | 2024-02-23 | 新华三技术有限公司 | 报文转发方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4231165A4 (en) | 2024-04-03 |
WO2022100511A1 (zh) | 2022-05-19 |
EP4231165A1 (en) | 2023-08-23 |
US20230336457A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9800482B2 (en) | Signature-based latency extraction systems and related methods for network packet communications | |
US8867395B2 (en) | Accelerating data packet parsing | |
US9369435B2 (en) | Method for providing authoritative application-based routing and an improved application firewall | |
US11924099B2 (en) | Method for forwarding packet in hybrid network, device, and system | |
CN112953949B (zh) | 一种网络报文的报文头处理方法、装置、设备及存储介质 | |
Li et al. | Improving SDN scalability with protocol-oblivious source routing: A system-level study | |
Fiessler et al. | Hypafilter+: Enhanced hybrid packet filtering using hardware assisted classification and header space analysis | |
CN114172854A (zh) | 报文镜像、镜像配置方法、虚拟交换机及镜像配置装置 | |
US20150256459A1 (en) | Packet processing method and apparatus | |
CN110691139B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
CN114363432A (zh) | 获取报文头信息、生成报文的方法、设备及存储介质 | |
CN108737239B (zh) | 一种报文转发方法及装置 | |
CN114490490A (zh) | 转发表项的处理方法和装置 | |
CN109672594B (zh) | IPoE报文处理方法、装置及宽带远程接入服务器 | |
CN115733840A (zh) | 发送报文的方法、发送报文的控制方法及装置 | |
JP5961745B2 (ja) | 通信装置またはパケット転送方法 | |
JP2016523062A (ja) | 入力パラメータを生成するための方法および装置 | |
CN109150707B (zh) | 路由路径分析方法及设备 | |
WO2022252634A1 (zh) | 数据流传输方法、装置、计算机设备及存储介质 | |
CN115842876A (zh) | 处理报文的方法、系统、设备和存储介质 | |
CN109905325B (zh) | 一种流量引导方法及流量识别设备 | |
CN103973554A (zh) | 路由方法、系统及相关设备 | |
US20210092103A1 (en) | In-line encryption of network data | |
CN113347090B (zh) | 报文处理方法、转发设备以及报文处理系统 | |
JP2018117336A (ja) | ネットワーク特性検証 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |