CN107453999A - 一种网络设备和网络报文转发方法 - Google Patents
一种网络设备和网络报文转发方法 Download PDFInfo
- Publication number
- CN107453999A CN107453999A CN201610382934.5A CN201610382934A CN107453999A CN 107453999 A CN107453999 A CN 107453999A CN 201610382934 A CN201610382934 A CN 201610382934A CN 107453999 A CN107453999 A CN 107453999A
- Authority
- CN
- China
- Prior art keywords
- pci
- buffer
- logic device
- network message
- sent
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种网络设备和网络报文转发方法,其中,网络设备包括SOC CPU和网络接口板,SOC CPU包括第一逻辑装置和PCI‑E RC,网络接口板包括第二逻辑装置和PCI‑E Endpoint,PCI‑E RC通过PCI‑E总线与PCI‑E Endpoint相连;第二逻辑装置以第一逻辑装置的临时接收Buffer的地址为目的地址,将网络报文封装成PCI‑E写事务,并通过PCI‑E Endpoint发送至PCI‑E RC,PCI‑E RC解析出网络报文并发送至临时接收Buffer,第一逻辑装置将网络报文存储至目标接收Buffer。本实施例能够提高网络报文转发时PCI‑E总线的利用率。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种网络设备和网络报文转发方法。
背景技术
通常,网络设备,例如路由器或防火墙,都是以通信SOC(System-on-a-Chip,片上系统)CPU(Central Processing Unit,中央处理器)为核心,通过I/O(输入/输出)数据总线外接不同的网络接口板。网络设备内部最常见的I/O数据总线是PCI-E(PeripheralComponent Interconnect Express,高速外设部件互连标准)总线。
这种基于PCI-E总线的网络设备架构可以参考图1,其中包括SOC CPU、网络接口板和系统内存。该SOC CPU包括CPU CORE、PCI-E RC(Root Complex,根复用器)和系统内存控制器,这三者通过SOC CPU的片内高速总线实现互联,系统内容控制器与系统内存相连。网络接口板包括PCI-E Endpoint(端点)、网络接口模块和物理网络接口。其中,PCI-EEndpoint通过PCI-E总线与PCI-E RC相连。
现有技术中,网络接口板在从网络设备外部接收到网络报文时,需要通过PCI-E总线不断地向PCI-E RC发送PCI-E Memory(内存)读事务,从系统内存中预取接收BD(BufferDescriptor,缓冲寄存器描述符),确定空闲的接收BD,并将网络报文封装在PCI-E Memory写事务中发送至PCI-E RC,以使PCI-E RC将网络报文发送至空闲的接收BD对应的接收Buffer(缓冲寄存器)中。但是,在上述过程中,为了将网络报文发送至空闲的接收BD对应的接收Buffer中,网络接口板需要通过PCI-E总线发送大量的PCI-E Memory读事务预取接收BD,这就导致PCI-E总线的利用率较低。
网络接口板在向网络设备外部发送网络报文时,需要通过PCI-E总线不断地向PCI-E RC发送PCI-E Memory读事务,从系统内存中预取发送BD,确定非空闲的发送BD,并通过PCI-E总线向PCI-E RC发送PCI-E Memory读事务,读取非空闲的发送BD对应的发送Buffer中的网络报文,并将网络报文发送至网络设备外部。同样,在上述过程中,为了从非空闲的发送BD对应的发送Buffer中读取网络报文,网络接口板需要通过PCI-E总线发送大量的PCI-E Memory读事务预取发送BD,这也导致PCI-E总线的利用率较低。
发明内容
本发明实施例的目的在于提供了一种网络设备和网络报文转发方法,能够提高网络报文转发时PCI-E总线的利用率。
为了达到上述目的,本发明公开了一种网络设备,包括:SOC CPU和网络接口板;
其中,所述SOC CPU包括:CPU CORE,通过SOC CPU片内高速总线与所述CPU CORE相连的第一逻辑装置,以及与所述第一逻辑装置连接的PCI-E RC;所述网络接口板包括:网络接口功能子模块、第二逻辑装置和PCI-E Endpoint,所述第二逻辑装置分别与所述网络接口功能子模块和所述PCI-E Endpoint连接;所述PCI-E RC通过PCI-E总线与所述PCI-EEndpoint相连;
所述第二逻辑装置接收所述网络接口功能子模块发送的网络报文,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-EEndpoint发送至所述PCI-E RC,所述PCI-E RC解析出网络报文,并发送至所述临时接收Buffer,所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收Buffer;
所述第一逻辑装置接收所述CPU CORE发送的网络报文,以第二逻辑装置中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-E RC发送至所述PCI-E Endpoint,所述PCI-E Endpoint解析出网络报文,并发送至所述临时发送Buffer,所述第二逻辑装置将所述临时发送Buffer中的网络报文发送至所述网络接口功能子模块。
为了达到上述目的,本发明公开了一种网络报文转发方法,应用于上述网络设备,所述方法包括:
所述第二逻辑装置接收所述网络接口功能子模块发送的网络报文,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-EEndpoint发送至所述PCI-E RC,所述PCI-E RC解析出网络报文,并发送至所述临时接收Buffer,所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收Buffer;
所述第一逻辑装置接收所述CPU CORE发送的网络报文,以第二逻辑装置中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-E RC发送至所述PCI-E Endpoint,所述PCI-E Endpoint解析出网络报文,并发送至所述临时发送Buffer,所述第二逻辑装置将所述临时发送Buffer中的网络报文发送至所述网络接口功能子模块。
由上述技术方案可见,在本发明实施例中,网络设备的SOC CPU中包括CPU CORE、第一逻辑装置和PCI-E RC,网络接口板包括网络接口功能子模块、第二逻辑装置和PCI-EEndpoint,PCI-E RC通过PCI-E总线与PCI-E Endpoint相连。网络设备从外部接收网络报文的过程包括:第二逻辑装置接收到网络报文后,以第一逻辑装置中的临时接收Buffer的地址为目的地址,将网络报文封装成PCI-E写事务并通过PCI-E Endpoint发送至PCI-E RC,PCI-E RC解析出网络报文,并将网络报文发送至临时接收Buffer,第一逻辑装置将临时接收Buffer中的网络报文存储至目标接收Buffer。网络设备向外部发送网络报文的过程包括:第一逻辑装置接收到网络报文后,以第二逻辑装置中的临时发送Buffer的地址为目的地址,将网络报文封装成PCI-E写事务,并通过PCI-E RC发送至PCI-E Endpoint,PCI-EEndpoint解析出网络报文并发送至临时发送Buffer,通过第二逻辑装置将网络报文发送至网络接口功能子模块。与现有技术相比,本发明实施例不需要通过PCI-E总线发送预取接收BD和发送BD等额外的PCI-E读写事务,因此能够提高网络报文转发时PCI-E总线的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中基于PCI-E总线的网络设备的一种结构示意图;
图2为本发明实施例提供的网络设备的一种结构示意图;
图3为本发明实施例提供的网络设备的另一种结构示意图;
图4为本发明实施例提供的网络设备中的第一逻辑装置的一种结构示意图;
图5为本发明实施例提供的网络设备中的第二逻辑装置的一种结构示意图;
图6为本发明实施例提供的网络报文转发方法的一种流程示意图;
图7为本发明实施例提供的网络报文转发方法的另一种流程示意图;
图8为本发明实施例提供的网络报文转发方法的又一种流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为现有技术中基于PCI-E总线的网络设备的一种结构示意图。下面结合图1,对现有技术中网络设备从外部接收网络报文的处理流程进行说明:
步骤1:网络接口模块通过PCI-E总线发起PCI-E Memory读事务,从系统内存中预取接收BD(Buffer descriptor,缓冲寄存器描述符,包括接收Buffer的状态和地址等,为存放接收的网络报文做准备)状态。
步骤2:PCI-E RC响应预取接收BD的PCI-E Memory读事务,从系统内存中获取接收BD,并通过PCI-E总线传送给源网络接口板上的网络接口模块。
步骤3:源网络接口板上的网络接口模块从网络设备外部接收到网络报文,根据接收BD的状态,在接收BD的状态为空闲的情况下,发起PCI-E Memory写事务,该写事务的有效载荷为网络报文,目的地址为空闲的接收BD对应的接收Buffer的地址。
步骤4:源网络接口板上的网络接口模块再发起PCI-E Memory写事务,更新接收BD状态为非空闲,同时更新接收数据长度。
步骤5:源网络接口板上的网络接口模块发送PCI-E中断消息给PCI-E RC,通知CPUCORE,网络接口模块有中断产生。
步骤6:CPU CORE通过PCI-E RC发起PCI-E Memory读事务,读取源网络接口板的网络接口模块的中断状态寄存器,确认是网络报文接收中断。
步骤7:CPU CORE处理系统内存中接收Buffer中的网络报文后,会更新对应的接收BD的状态,设置该接收BD的状态为空闲。
下面结合图1,对现有技术中网络设备向外部发送网络报文的处理流程进行说明:
步骤1:CPU CORE查询系统内存中的发送BD(包括发送Buffer的状态和地址等信息,为存放即将发送的网络报文做准备)的状态,把网络报文存储至系统内存中空闲的发送BD对应的发送Buffer中,并更新该发送BD的状态为非空闲。
步骤2:CPU CORE通过PCI-E RC发起PCI-E Memory写事务,写事务的目的地址是目的网络接口板的网络接口模块的发送门铃寄存器,通知目的网络接口板的网络接口模块有网络报文要发送。
步骤3:目的网络接口板的网络接口模块,通过PCI-E Endpoint向PCI-E RC发起PCI-E Memory读事务,从系统内存中读取发送BD。
步骤4:目的网络接口板的网络接口模块根据发送BD的状态,在发送BD的状态为非空闲的情况下,发起PCI-E Memory读事务,从系统内存中空闲的发送BD对应的发送Buffer中读取网络报文,并通过物理网络接口发出。
步骤5:网络报文发送完成后,目的网络接口板的网络接口模块发起PCI-E Memory写事务,更新该发送BD的状态为空闲。
步骤6:目的网络接口板的网络接口模块,发送PCI-E中断消息给PCI-E RC,通知CPU CORE,网络接口模块有中断产生。
步骤7:CPU CORE通过PCI-E RC发起PCI-E Memory读事务,读取目的网络接口板上的网络接口模块的中断状态寄存器,确认该中断是网络报文发送完成中断,CPU CORE就可以回收发送BD对应的发送Buffer,为后面重新发起发送网络报文做准备。
从上述内容可见,现有技术中需要通过PCI-E总线发送大量额外的PCI-E Memory事务,以确定空闲的接收BD和非空闲的发送BD。另外,通过PCI-E总线发送的中断、更新BD状态、门铃操作等也属于额外的PCI-E总线开销。
针对现有技术中网络报文的转发进行评估时发现,对于64Bytes网络报文转发来说,有效网络报文传输不到PCI-E总线利用率的20%,即每传输64Bytes的有效网络报文,就需要额外承受300Bytes左右的开销。一个8GE(8Gbps)以太网线速的网络接口板,至少需要PCI-E2.0 8X(40Gbps,32根PCI-E总线管脚)的PCI-E物理链路。综上分析可知,现有技术中网络设备在转发网络报文时PCI-E总线的利用率相对较低。
由上述分析可知,PCI-E总线实现网络报文转发利用率较低的根本原因是,网络接口模块的接收BD、发送BD、接收Buffer和发送Buffer都保存在系统内存中,网络接口模块作为网络报文收发的主体,必须使用大量额外的PCI-E读写事务去预取和刷新BD状态,同时接收中断、发送中断和发送门铃也都必须使用额外的PCI-E读写事务。
对现有技术方案的常规改进是,把接收BD、发送BD、接收Buffer和发送Buffer都保存在网络接口模块中,但对于网络设备(例如路由器)来说,由于网络报文除了收发外,还需要CPU CORE参与网络报文内容的处理,CPU CORE处理保存在网络接口模块上的网络报文,会浪费更多的网络资源。所以,本发明提出一种创新设计思想,把网络接口模块的大部分功能(例如预取BD、刷新BD状态、接收中断、发送中断和发送门铃等通过PCI-E总线进行的操作)提取出来,集成到SOC CPU中实现,这样就可以降低CPU CORE和网络接口板之间的PCI-E读写事务的交互,提高PCI-E总线利用率。
本发明实施例提供了一种网络设备和网络报文转发方法,能够提高网络报文转发时PCI-E总线的利用率。
下面通过具体实施例,对本发明进行详细说明。
图2为本发明实施例提供的一种网络设备的结构示意图。该网络设备包括SOCCPU20和网络接口板21。
其中,SOC CPU 20包括:CPU CORE 201,通过SOC CPU片内高速总线与CPU CORE201相连的第一逻辑装置202,以及与第一逻辑装置202连接的PCI-E RC 203;网络接口板21包括:网络接口功能子模块211、第二逻辑装置212和PCI-E Endpoint 213,第二逻辑装置212分别与网络接口功能子模块211和PCI-E Endpoint 211连接;PCI-E RC 203通过PCI-E总线与PCI-E Endpoint213相连。
可以理解的是,网络设备可以包括不止一个SOC CPU20,一般包括至少两个网络接口板21,一个SOC CPU20一般与至少两个网络接口板21相连。
具体的,第二逻辑装置212接收网络接口功能子模块211发送的网络报文,以第一逻辑装置202中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-E Endpoint 213发送至PCI-E RC 203,PCI-E RC203解析出网络报文,并发送至所述临时接收Buffer,第一逻辑装置202将所述临时接收Buffer中的网络报文存储至目标接收Buffer;
第一逻辑装置202接收CPU CORE 201发送的网络报文,以第二逻辑装置212中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-E RC 203发送至PCI-E Endpoint 211,PCI-E Endpoint 213解析出网络报文,并发送至临时发送Buffer,第二逻辑装置212将所述临时发送Buffer中的网络报文发送至网络接口功能子模块211。
由上述内容可见,在本实施例中,网络设备从外部接收网络报文的过程包括:第二逻辑装置接收到网络报文后,以第一逻辑装置中的临时接收Buffer的地址为目的地址,将网络报文封装成PCI-E写事务并通过PCI-E Endpoint发送至PCI-E RC,PCI-E RC解析出网络报文,并将网络报文发送至临时接收Buffer,第一逻辑装置将临时接收Buffer中的网络报文存储至目标接收Buffer。网络设备向外部发送网络报文的过程包括:第一逻辑装置接收到网络报文后,以第二逻辑装置中的临时发送Buffer的地址为目的地址,将网络报文封装成PCI-E写事务并通过PCI-E RC发送至PCI-E Endpoint,PCI-E Endpoint解析出网络报文并发送至临时发送Buffer,通过第二逻辑装置将网络报文发送至网络接口功能子模块。与现有技术相比,本发明实施例不需要通过PCI-E总线发送预取接收BD和发送BD等额外的PCI-E读写事务,因此能够提高网络报文转发时PCI-E总线的利用率。
可以理解的是,在实际应用中,本发明实施例中的网络设备的结构不限于图2所示内容,网络设备还可以包括如图3所示的其他内容。具体的,SOC CPU还可以包括系统内存控制器,系统内存控制器通过SOC CPU片内高速总线分别与CPU CORE、第一逻辑装置相连。网络设备还可以包括系统内存,系统内存与SOC CPU,具体的,系统内存与系统内存控制器相连。其中,CPU CORE和第一逻辑装置可以通过系统内存控制器访问系统内存。网络接口板还可以包括物理网络接口,图2中的网络接口功能子模块、第二逻辑装置和PCI-E Endpoint包含在网络接口模块中,其中,物理网络接口从网络设备外部接收网络报文,并将网络报文发送至网络接口功能子模块。
在本发明的另一实施例中,在图2所示的网络设备的基础上,在初始化时,CPUCORE 201将临时接收Buffer的地址作为有效载荷,将第二逻辑装置中的接收Buffer配置寄存器地址作为目的地址,封装成PCI-E Memory写事务,将PCI-E Memory写事务通过第一逻辑装置202和PCI-E RC 203发送至PCI-E Endpoint 213,PCI-E Endpoint 213解析出临时接收Buffer的地址后,发送至第二逻辑装置212。这样,第二逻辑装置212在接收到网络报文时,就可以以临时接收Buffer的地址为目的地址,将网络报文通过PCI-E Memory写事务发送至临时接收Buffer。
同样的,在初始化时,CPU CORE 201还要将第二逻辑装置212中的临时发送Buffer的地址发送至第一逻辑装置202。这样,在第一逻辑装置202接收到网络报文时,就可以以临时发送Buffer的地址为目的地址,将网络报文通过PCI-E Memory写事务发送至临时发送Buffer。
其中,CPU CORE 201保存了网络设备中所有PCI-E空间的地址,包括临时接收Buffer的地址和临时发送Buffer的地址。
在本发明的另一实施例中,可以对图2所示实施例进行一些改进。具体的,第二逻辑装置212接收网络接口功能子模块211发送的网络报文,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-E Endpoint 213发送至PCI-E RC 203,PCI-E RC 203解析出网络报文,并发送至临时接收Buffer,第一逻辑装置202将临时接收Buffer中的网络报文存储至目标接收Buffer,可以包括:
第二逻辑装置212接收网络接口功能子模块211发送的网络报文,以网络报文为有效载荷,以第一逻辑装置202中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-E Endpoint 213发送至PCI-E RC 203。
PCI-E RC 203接收PCI-E Endpoint 213发送的PCI-E Memory写事务,解析出网络报文,将网络报文发送至临时接收Buffer中。
第一逻辑装置202在临时接收Buffer接收网络报文后,从第一逻辑装置202的接收BD链中确定空闲的目标接收BD,将临时接收Buffer中的网络报文存储至目标接收BD对应的目标接收Buffer中。
在第一逻辑装置202将临时接收Buffer中的网络报文存储至目标接收buffer之后,第一逻辑装置202更新目标接收BD的状态为非空闲状态,并向CPU CORE201发送中断通知。
接收BD的状态为非空闲状态,即表明该接收BD对应的接收Buffer中已经存储了网络报文。
CPU CORE 201响应中断通知,处理目标接收Buffer中的网络报文,处理完成后更新目标接收BD的状态为空闲状态。
接收BD的状态为空闲状态,即表明该接收BD对应的接收Buffer中已经没有网络报文了。
在本实施例中,当网络设备包括系统内存时,目标接收Buffer可以位于系统内存或第一逻辑装置中。具体的,当目标接收Buffer位于第一逻辑装置中时,可以由第一逻辑装置中的RAM(随机存取存储器)空间实现。当目标接收Buffer位于系统内存中时,目标接收Buffer不需要占用第一逻辑装置的存储空间,能够节省硬件成本。当目标接收Buffer位于第一逻辑装置中,第一逻辑装置通常需要配置大块高速的RAM空间,这样能够提高对网络报文的处理性能。
由上述内容可见,第一逻辑装置负责管理接收BD和发送BD,实现接收网络报文和发送网络报文时向CPU CORE发送中断通知的操作,以及接收和发送网络报文的DMA(DirectMemory Access)操作。也就是说,PCI-E RC与PCI-E Endpoint之间通过PCI-E总线发送的大部分PCI-E写事务属于包含网络报文的有效的PCI-E写事务,因此能够提高网络报文转发时PCI-E总线的利用率。
在本发明的另一实施例中,还可以对图2所示实施例进行另一种改进。具体的,第一逻辑装置202接收CPU CORE 201发送的网络报文,以第二逻辑装置中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-E RC 203发送至PCI-EEndpoint 213,PCI-E Endpoint 213解析出网络报文,并发送至临时发送Buffer,第二逻辑装置212将临时发送Buffer中的网络报文发送至网络接口功能子模块211,可以包括:
CPU CORE 201获得第一逻辑装置发送BD链中空闲的目标发送BD,将网络报文存储至目标发送BD对应的目标发送Buffer中,并更新目标发送BD的状态为非空闲状态。
第一逻辑装置202轮询发送BD链,当检测到目标发送BD的状态由空闲状态更新为非空闲状态时,从目标发送Buffer中读取网络报文。
第一逻辑装置202以网络报文为有效载荷,以临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,将PCI-E Memory写事务发送至PCI-E RC 203。
在将PCI-E Memory写事务通过PCI-E RC 203发送至PCI-E Endpoint 213之后,PCI-E RC 203会向第一逻辑装置202发送中断通知,以使第一逻辑装置202响应中断通知;
当第一逻辑装置202接收到PCI-E RC 203发送的中断通知后,第一逻辑装置202更新目标发送BD的状态为空闲状态,向CPU CORE 201发送中断通知,CPU CORE 201响应中断通知。
PCI-E Endpoint 213接收PCI-E RC 203发送的PCI-E Memory写事务,解析出网络报文,并发送至临时发送Buffer中。
在检测到临时发送Buffer中存储有网络报文时,第二逻辑装置212将临时发送Buffer中的网络报文发送至网络接口功能子模块211。
在本实施例中,当网络设备包括系统内存时,目标发送Buffer可以位于系统内存或第一逻辑装置202中。具体的,当目标发送Buffer位于第一逻辑装置中时,可以由第一逻辑装置中的RAM空间实现。当目标发送Buffer位于系统内存中时,目标发送Buffer不需要占用第一逻辑装置的存储空间,能够节省硬件成本。当目标发送Buffer位于第一逻辑装置中,第一逻辑装置通常需要配置大块高速的RAM空间,这样能够提高对网络报文的处理性能。
由上述内容可见,第二逻辑装置负责把从网络接口功能子模块接收到的网络报文封装成PCI-E写事务,通过PCI-E Endpoint发送至PCI-E RC,还负责从PCI-E RC发送来的PCI-E写事务中解析出网络报文,并将网络报文发送给网络接口功能子模块。也就是说,PCI-E RC与PCI-E Endpoint之间通过PCI-E总线发送的大部分PCI-E写事务属于包含网络报文的有效的PCI-E写事务,因此能够提高网络报文转发时PCI-E总线的利用率。
在本发明的另一实施例中,图2所示实施例中的第一逻辑装置202的内部结构还可以如图4所示,其中,第一逻辑装置202包括:接收BD链401、发送BD链402、临时接收Buffer403、接收处理模块404、发送处理模块405、硬件限速器406和接收发送Buffer 407。
具体的,接收BD链401是由接收BD组成的链表。接收处理模块404和CPU CORE 201都可以访问接收BD链401。接收处理模块404会一直轮询接收BD的状态。
发送BD链402是由发送BD组成的链表。CPU CORE 201准备好待发送的网络报文后,查找发送BD链402,确定空闲的目标发送BD,把网络报文存储至目标发送BD对应的目标发送Buffer中,并更新目标发送BD的状态为非空闲。
其中,接收BD链401和发送BD链402都可以存放在第一逻辑装置202的RAM空间中,该RAM空间对于CPU CORE 201是可访问的。
临时接收Buffer 403,用于存储PCI-E RC 203接收的网络报文。该临时接收Buffer 403位于网络设备内部PCI-E空间中,可以由第一逻辑装置202的RAM空间实现,与系统内存、临时接收Buffer 403以及临时发送Buffer统一编址。PCI-E RC 203接收PCI-EEndpoint 213发送的PCI-E Memory写事务,其中,该写事务中的有效载荷为网络报文,目的地址为临时接收Buffer 403的地址。PCI-E RC 203解析出网络报文,并将网络报文存储至临时接收Buffer 403中。接收Buffer 403接收到网络报文后变更自身状态为非空闲,以通知接收处理模块404处理网络报文。
接收处理模块404,用于轮询接收BD链401,确定处于空闲状态的目标接收BD,检测到临时接收Buffer 403中存储有网络报文后,将网络报文存储至目标接收BD对应的目标接收Buffer中,更新目标接收BD的状态,并向CPU CORE 201发送中断通知,以通知CPU CORE201处理目标接收Buffer中的网络报文。
具体的,接收处理模块404一直在轮询临时接收Buffer 403的状态,当发现临时接收Buffer 403的状态从空闲变为非空闲时,即检测到临时接收Buffer403中存储有网络报文。接收处理模块404可以根据空闲的目标接收BD的接收Buffer指针,找到目标接收Buffer的地址,并把临时接收Buffer 403中的报文存储至目标接收Buffer中,更新目标接收BD的状态为非空闲,更新临时接收Buffer 403的状态为空闲。
发送处理模块405,用于轮询发送BD链402,确定处于非空闲状态的目标发送BD,从目标发送BD对应的目标发送Buffer中获得网络报文,并封装成PCI-E Memory写事务,在硬件限速器406处于可发送状态时,通过PCI-E RC203发送PCI-E Memory写事务,更新目标发送BD的状态,并向CPU CORE 201发送中断通知。通过PCI-E RC 203发送PCI-E Memory写事务,即通过PCI-E RC 203向PCI-E Endpoint 213发送PCI-E Memory写事务。当硬件限速器406处于不可发送状态时,发送处理模块405继续轮询判断硬件限速器406的状态,直到其状态从不可发送变为可发送。在初始化时,CPU CORE 201会将临时发送Buffer的地址发送至发送处理模块405,这样,发送处理模块405获得网络报文后,以网络报文为有效载荷,以临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务。
具体的,发送处理模块405以网络报文为有效载荷,以临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务。
需要指出的是,本实施例中的接收处理模块404和发送处理模块405均为硬件实体,均可以由可编程逻辑器件实现。作为优先的,接收处理模块404和发送处理模块405均可以为现场可编程门阵列FPGA。
硬件限速器406,用于确定发送处理模块405是否能够向PCI-E RC 203发送PCI-EMemory写事务。
具体的,在初始化时,CPU CORE 201将物理网络接口向网络设备外部发送网络报文时的目标发送速率设置到硬件限速器406中,硬件限速器406根据目标发送速率,计算物理网络接口是否已经完成上一次网络报文的发送,如果是,则将自身状态设置为可发送,否则,将自身状态设置为不可发送。这样,能够保证第一逻辑装置发送网络报文的速率与网络接口板向网络设备外部发送网络报文的速率相匹配,避免出现发送速率不匹配导致的网络接口板丢弃网络报文的问题。
接收发送Buffer 407,包括:接收BD对应的接收Buffer和发送BD对应的发送Buffer,用于将接收处理模块404发送的网络报文存储至接收Buffer,将CPU CORE 201发送的网络报文存储至发送Buffer。其中,接收发送Buffer407位于网络设备内部PCI-E空间中,与系统内存、临时接收Buffer 403以及临时发送Buffer统一编址。
具体的,当网络设备包括系统内存时,接收发送Buffer 407可以位于系统内存或第一逻辑装置中。具体的,当接收发送Buffer位于第一逻辑装置中时,可以由第一逻辑装置中的RAM空间实现。当接收发送Buffer位于系统内存中时,接收发送Buffer不需要占用第一逻辑装置的存储空间,能够节省硬件成本。当接收发送Buffer位于第一逻辑装置中,第一逻辑装置通常需要配置大块高速的RAM空间,这样能够提高对网络报文的处理性能。
在本发明的另一实施例中,图2所示实施例中的第二逻辑装置212的内部结构还可以如图5所示,其中,第二逻辑装置212包括:网络报文接收处理模块501、临时发送Buffer502和网络报文发送处理模块503。
其中,网络报文接收处理模块501,用于接收网络接口功能子模块211发送的网络报文,并封装成PCI-E Memory写事务,通过PCI-E Endpoint 213发送PCI-E Memory写事务,即通过PCI-E Endpoint 213向PCI-E RC 203发送PCI-E Memory写事务。
具体的,网络报文接收处理模块501以网络报文为有效载荷,以临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务。在初始化时,CPU CORE 201会通过PCI-E总线把临时接收Buffer的地址设置到网络报文接收处理模块501中。
临时发送Buffer 502,用于存储PCI-E Endpoint 213发送的网络报文。该临时发送Buffer 502位于网络设备内部PCI-E空间中,可以由第二逻辑装置212的RAM空间实现,与系统内存、临时接收Buffer 403以及接收发送Buffer统一编址。PCI-E Endpoint 213接收PCI-E RC 203发送的PCI-E Memory写事务后,由于该写事务的有效载荷为网络报文,目的地址为临时发送Buffer 502的地址,因此PCI-E Endpoint 213将解析出的网络报文存储至临时发送Buffer 502中。临时发送Buffer 502存储网络报文后变更自身状态为非空闲,以便通知网络报文发送处理模块503发送网络报文。
网络报文发送处理模块503,用于在检测到临时发送Buffer 502中存储有网络报文时,将网络报文发送至网络接口功能子模块211。网络接口功能子模块211将网络报文发送至物理网络接口,以使物理网络接口将网络报文发送至网络设备外部。
具体的,网络报文发送处理模块503轮询临时发送Buffer 502的状态,当发现临时发送Buffer 502的状态由空闲变为非空闲时,即检测到临时发送Buffer 502中存储有网络报文。
需要指出的是,本实施例中的网络报文接收处理模块501和网络报文发送处理模块503均为硬件实体,均可以由可编程逻辑器件实现。作为优先的,网络报文接收处理模块501和网络报文发送处理模块503均可以为现场可编程门阵列FPGA。
图6为本发明实施例提供的网络报文转发方法的一种流程示意图,应用于上述实施例中的网络设备,所述方法包括:
步骤S601:第二逻辑装置接收网络接口功能子模块发送的网络报文,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-EEndpoint发送至PCI-E RC,PCI-E RC解析出网络报文,并发送至临时接收Buffer,第一逻辑装置将临时接收Buffer中的网络报文存储至目标接收Buffer;
步骤S602:第一逻辑装置接收CPU CORE发送的网络报文,以第二逻辑装置中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过PCI-E RC发送至PCI-E Endpoint,PCI-E Endpoint解析出网络报文,并发送至临时发送Buffer,第二逻辑装置将临时发送Buffer中的网络报文发送至网络接口功能子模块。
由上述内容可见,在本实施例中,网络设备从外部接收网络报文的过程包括:第二逻辑装置接收到网络报文后,以第一逻辑装置中的临时接收Buffer的地址为目的地址,将网络报文封装成PCI-E写事务并通过PCI-E Endpoint发送至PCI-E RC,PCI-E RC解析出网络报文,并将网络报文发送至临时接收Buffer,第一逻辑装置将临时接收Buffer中的网络报文存储至目标接收Buffer。网络设备向外部发送网络报文的过程包括:第一逻辑装置接收到网络报文后,以第二逻辑装置中的临时发送Buffer的地址为目的地址,将网络报文封装成PCI-E写事务并通过PCI-E RC发送至PCI-E Endpoint,PCI-E Endpoint解析出网络报文并发送至临时发送Buffer,通过第二逻辑装置将网络报文发送至网络接口功能子模块。与现有技术相比,本发明实施例不需要通过PCI-E总线发送预取接收BD和发送BD等额外的PCI-E读写事务,因此能够提高网络报文转发时PCI-E总线的利用率。
在本发明的另一实施例中,为了使将网络报文封装成PCI-E Memory写事务的过程更加高效,在图6所示实施例的基础上,所示方法还可以包括:
在初始化时,CPU CORE将临时接收Buffer的地址作为有效载荷,将第二逻辑装置中的接收Buffer配置寄存器地址作为目的地址,封装成PCI-E Memory写事务,将PCI-EMemory写事务通过所述第一逻辑装置和PCI-E RC发送至PCI-E Endpoint,PCI-E Endpoint解析出临时接收Buffer的地址后,发送至第二逻辑装置;
CPU CORE还要将第二逻辑装置中的临时发送Buffer的地址发送至第一逻辑装置。
这样,第一逻辑装置在将网络报文封装成PCI-E Memory写事务时,目的地址直接采用接收的临时发送Buffer的地址即可。同样的,第二逻辑装置在将网络报文封装成PCI-EMemory写事务时,目的地址直接采用接收的临时接收Buffer的地址即可,从而在后续的网络报文转发过程中能够提高转发效率。
在本发明的另一实施例中,可以对图6所示实施例中的步骤S601加以改进。具体的,步骤S601可以按照图7所示流程示意图执行,具体包括:
步骤S701:第二逻辑装置接收网络接口功能子模块发送的网络报文,以网络报文为有效载荷,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-EMemory写事务,并通过PCI-E Endpoint发送至PCI-E RC。
步骤S702:PCI-E RC接收PCI-E Endpoint发送的PCI-E Memory写事务,解析出网络报文,将网络报文发送至所述临时接收Buffer中。
步骤S703:第一逻辑装置在临时接收Buffer接收网络报文后,从第一逻辑装置的接收BD链中确定空闲的目标接收BD,将临时接收Buffer中的网络报文存储至目标接收BD对应的目标接收Buffer中,更新目标接收BD的状态为非空闲状态,并向CPU CORE发送中断通知。
步骤S704:CPU CORE响应中断通知,处理目标接收Buffer中的网络报文,处理完成后更新目标接收BD的状态为空闲状态。
在本发明的另一实施例中,可以对图6所示实施例中的步骤S602加以改进。具体的,步骤S602可以按照图8所示流程示意图执行,具体包括:
步骤S801:CPU CORE获得第一逻辑装置发送BD链中空闲的目标发送BD,将网络报文存储至目标发送BD对应的目标发送Buffer中,并更新目标发送BD的状态为非空闲状态。
步骤S802:第一逻辑装置轮询发送BD链,当检测到目标发送BD的状态由空闲状态更新为非空闲状态时,从目标发送Buffer中读取网络报文。
步骤S803:第一逻辑装置以网络报文为有效载荷,以临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,将PCI-E Memory写事务发送至PCI-E RC。
步骤S804:在将PCI-E Memory写事务通过PCI-E RC发送至PCI-E Endpoint之后,第一逻辑装置更新目标发送BD的状态为空闲状态,向CPU CORE发送中断通知,CPU CORE响应中断通知。
步骤S805:PCI-E Endpoint接收PCI-E RC发送的PCI-E Memory写事务,解析出网络报文,并发送至临时发送Buffer中。
步骤S806:在检测到临时发送Buffer中存储有网络报文时,第二逻辑装置将临时发送Buffer中的网络报文发送至网络接口功能子模块。
由于上述方法实施例与网络设备实施例是相互对应的,与该网络设备具有相同的技术效果,因此方法实施例的技术效果此处不再赘述。
对于方法实施例而言,由于其基本相似于网络设备实施例,所以描述得比较简单,相关之处参见网络设备实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解,上述实施方式中的全部或部分步骤是能够通过程序指令相关的硬件来完成的,所述的程序可以存储于计算机可读取存储介质中。这里所称存储介质,是指ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种网络设备,其特征在于,包括:SOC CPU和网络接口板;
其中,所述SOC CPU包括:CPU CORE,通过SOC CPU片内高速总线与所述CPU CORE相连的第一逻辑装置,以及与所述第一逻辑装置连接的PCI-E RC;所述网络接口板包括:网络接口功能子模块、第二逻辑装置和PCI-E Endpoint,所述第二逻辑装置分别与所述网络接口功能子模块和所述PCI-E Endpoint连接;所述PCI-E RC通过PCI-E总线与所述PCI-EEndpoint相连;
所述第二逻辑装置接收所述网络接口功能子模块发送的网络报文,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-EEndpoint发送至所述PCI-E RC,所述PCI-E RC解析出网络报文,并发送至所述临时接收Buffer,所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收Buffer;
所述第一逻辑装置接收所述CPU CORE发送的网络报文,以第二逻辑装置中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-E RC发送至所述PCI-E Endpoint,所述PCI-E Endpoint解析出网络报文,并发送至所述临时发送Buffer,所述第二逻辑装置将所述临时发送Buffer中的网络报文发送至所述网络接口功能子模块。
2.根据权利要求1所述的网络设备,其特征在于,
所述CPU CORE将所述临时接收Buffer的地址作为有效载荷,将第二逻辑装置中接收Buffer配置寄存器地址作为目的地址,封装成PCI-E Memory写事务,将PCI-E Memory写事务通过所述第一逻辑装置和PCI-E RC发送至所述PCI-E Endpoint,所述PCI-E Endpoint解析出所述临时接收Buffer的地址后,发送至所述第二逻辑装置;
所述CPU CORE将所述第二逻辑装置中的临时发送Buffer的地址发送至所述第一逻辑装置。
3.根据权利要求1所述的网络设备,其特征在于,
所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收buffer,包括:
所述第一逻辑装置从所述第一逻辑装置的接收BD链中确定空闲的目标接收BD,将所述临时接收Buffer中的网络报文存储至所述目标接收BD对应的目标接收Buffer中;
在所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收buffer之后:
所述第一逻辑装置更新所述目标接收BD的状态为非空闲状态,并向所述CPU CORE发送中断通知;
所述CPU CORE响应中断通知,处理所述目标接收Buffer中的网络报文,处理完成后更新所述目标接收BD的状态为空闲状态。
4.根据权利要求3所述的网络设备,其特征在于,所述网络设备还包括系统内存,所述系统内存与所述SOC CPU连接;
所述目标接收Buffer位于所述系统内存或所述第一逻辑装置中。
5.根据权利要求1所述的网络设备,其特征在于,
所述第一逻辑装置接收所述CPU CORE发送的网络报文,包括:
所述CPU CORE获得所述第一逻辑装置发送BD链中空闲的目标发送BD,将网络报文存储至所述目标发送BD对应的目标发送Buffer中,并更新所述目标发送BD的状态为非空闲状态;
所述第一逻辑装置轮询所述发送BD链,当检测到所述目标发送BD的状态由空闲状态更新为非空闲状态时,从所述目标发送Buffer中读取网络报文;
在将PCI-E Memory写事务通过所述PCI-E RC发送至所述PCI-E Endpoint之后:
所述第一逻辑装置更新所述目标发送BD的状态为空闲状态,向所述CPU CORE发送中断通知,所述CPU CORE响应中断通知。
6.根据权利要求5所述的网络设备,其特征在于,所述网络设备还包括:系统内存,所述系统内存与所述SOC CPU连接;
所述目标发送Buffer位于所述系统内存或所述第一逻辑装置中。
7.根据权利要求1所述的网络设备,其特征在于,所述第一逻辑装置包括:接收BD链、发送BD链、临时接收Buffer、接收处理模块、发送处理模块、硬件限速器和接收发送Buffer;
所述接收BD链是由接收BD组成的链表;
所述发送BD链是由发送BD组成的链表;
所述临时接收Buffer,用于存储所述PCI-E RC接收的网络报文;
所述接收处理模块,用于轮询所述接收BD链,确定处于空闲状态的目标接收BD,检测到所述临时接收Buffer中存储有网络报文后,将网络报文存储至所述目标接收BD对应的目标接收Buffer中,更新所述目标接收BD的状态,并向所述CPU CORE发送中断通知;
所述发送处理模块,用于轮询所述发送BD链,确定处于非空闲状态的目标发送BD,从所述目标发送BD对应的目标发送Buffer中获得网络报文,并封装成PCI-E Memory写事务,在所述硬件限速器处于可发送状态时,通过所述PCI-E RC发送PCI-E Memory写事务,更新所述目标发送BD的状态,并向所述CPU CORE发送中断通知;
所述硬件限速器,用于确定所述发送处理模块是否能够向所述PCI-E RC发送PCI-EMemory写事务;
所述接收发送Buffer,包括:所述接收BD对应的接收Buffer和所述发送BD对应的发送Buffer,用于将所述接收处理模块发送的网络报文存储至接收Buffer,将所述CPU CORE发送的网络报文存储至发送Buffer。
8.根据权利要求1所述的网络设备,其特征在于,所述第二逻辑装置包括:网络报文接收处理模块、临时发送Buffer和网络报文发送处理模块;
所述网络报文接收处理模块,用于接收所述网络接口功能子模块发送的网络报文,并封装成PCI-E Memory写事务,通过所述PCI-E Endpoint发送PCI-E Memory写事务;
所述临时发送Buffer,用于存储所述PCI-E Endpoint发送的网络报文;
所述网络报文发送处理模块,用于在检测到所述临时发送Buffer中存储有网络报文时,将网络报文发送至所述网络接口功能子模块。
9.一种网络报文转发方法,其特征在于,应用于权利要求1至8所述的网络设备,所述方法包括:
所述第二逻辑装置接收所述网络接口功能子模块发送的网络报文,以第一逻辑装置中的临时接收Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-EEndpoint发送至所述PCI-E RC,所述PCI-E RC解析出网络报文,并发送至所述临时接收Buffer,所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收Buffer;
所述第一逻辑装置接收所述CPU CORE发送的网络报文,以第二逻辑装置中的临时发送Buffer的地址为目的地址,封装成PCI-E Memory写事务,并通过所述PCI-E RC发送至所述PCI-E Endpoint,所述PCI-E Endpoint解析出网络报文,并发送至所述临时发送Buffer,所述第二逻辑装置将所述临时发送Buffer中的网络报文发送至所述网络接口功能子模块。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述CPU CORE将所述临时接收Buffer的地址作为有效载荷,将第二逻辑装置中的接收Buffer配置寄存器地址作为目的地址,封装成PCI-E Memory写事务,将PCI-E Memory写事务通过所述第一逻辑装置和PCI-E RC发送至所述PCI-E Endpoint,所述PCI-E Endpoint解析出所述临时接收Buffer的地址后,发送至所述第二逻辑装置;
所述CPU CORE将所述第二逻辑装置中的临时发送Buffer的地址发送至所述第一逻辑装置。
11.根据权利要求9所述的方法,其特征在于,
所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收buffer,包括:
所述第一逻辑装置从所述第一逻辑装置的接收BD链中确定空闲的目标接收BD,将所述临时接收Buffer中的网络报文存储至所述目标接收BD对应的目标接收Buffer中;
在所述第一逻辑装置将所述临时接收Buffer中的网络报文存储至目标接收buffer之后,还包括:
所述第一逻辑装置更新所述目标接收BD的状态为非空闲状态,并向所述CPU CORE发送中断通知;
所述CPU CORE响应中断通知,处理所述目标接收Buffer中的网络报文,处理完成后更新所述目标接收BD的状态为空闲状态。
12.根据权利要求9所述的方法,其特征在于,
所述第一逻辑装置接收所述CPU CORE发送的网络报文,包括:
所述CPU CORE获得所述第一逻辑装置发送BD链中空闲的目标发送BD,将网络报文存储至所述目标发送BD对应的目标发送Buffer中,并更新所述目标发送BD的状态为非空闲状态;
所述第一逻辑装置轮询所述发送BD链,当检测到所述目标发送BD的状态由空闲状态更新为非空闲状态时,从所述目标发送Buffer中读取网络报文;
在将PCI-E Memory写事务通过所述PCI-E RC发送至所述PCI-E Endpoint之后,还包括:
所述第一逻辑装置更新所述目标发送BD的状态为空闲状态,向所述CPU CORE发送中断通知,所述CPU CORE响应中断通知。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610382934.5A CN107453999B (zh) | 2016-05-31 | 2016-05-31 | 一种网络设备和网络报文转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610382934.5A CN107453999B (zh) | 2016-05-31 | 2016-05-31 | 一种网络设备和网络报文转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107453999A true CN107453999A (zh) | 2017-12-08 |
CN107453999B CN107453999B (zh) | 2020-10-02 |
Family
ID=60485286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610382934.5A Active CN107453999B (zh) | 2016-05-31 | 2016-05-31 | 一种网络设备和网络报文转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107453999B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733482A (zh) * | 2018-03-27 | 2018-11-02 | 华为技术有限公司 | 信息获取的方法、处理器以及通信装置 |
CN110445721A (zh) * | 2019-09-09 | 2019-11-12 | 迈普通信技术股份有限公司 | 一种报文转发方法及装置 |
WO2020000489A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种pcie发送、接收方法及装置、设备和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101194241A (zh) * | 2005-06-09 | 2008-06-04 | Nxp股份有限公司 | 用于对网络和存储器进行耦合的存储器控制器和方法 |
US20090086735A1 (en) * | 2007-09-28 | 2009-04-02 | Siukwin Tsang | Method of Skipping Nullified Packets During Mass Replay from Replay Buffer |
US20110202703A1 (en) * | 2010-02-15 | 2011-08-18 | International Business Machines Corporation | Reliability of a computer system employing pci express devices |
CN102184151A (zh) * | 2011-04-29 | 2011-09-14 | 杭州华三通信技术有限公司 | Pci-e转pci桥装置及其主动预取数据的方法 |
CN103198856A (zh) * | 2013-03-22 | 2013-07-10 | 烽火通信科技股份有限公司 | 一种ddr控制器及请求调度方法 |
CN104052621A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于跨快速外围组件互连(pcie)段的平台管理消息的方法和系统 |
CN104636301A (zh) * | 2015-02-15 | 2015-05-20 | 中南大学 | 一种基于pci-e接口的大规模plc高速背板总线系统 |
-
2016
- 2016-05-31 CN CN201610382934.5A patent/CN107453999B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101194241A (zh) * | 2005-06-09 | 2008-06-04 | Nxp股份有限公司 | 用于对网络和存储器进行耦合的存储器控制器和方法 |
US20090086735A1 (en) * | 2007-09-28 | 2009-04-02 | Siukwin Tsang | Method of Skipping Nullified Packets During Mass Replay from Replay Buffer |
US20110202703A1 (en) * | 2010-02-15 | 2011-08-18 | International Business Machines Corporation | Reliability of a computer system employing pci express devices |
CN102184151A (zh) * | 2011-04-29 | 2011-09-14 | 杭州华三通信技术有限公司 | Pci-e转pci桥装置及其主动预取数据的方法 |
CN104052621A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于跨快速外围组件互连(pcie)段的平台管理消息的方法和系统 |
CN103198856A (zh) * | 2013-03-22 | 2013-07-10 | 烽火通信科技股份有限公司 | 一种ddr控制器及请求调度方法 |
CN104636301A (zh) * | 2015-02-15 | 2015-05-20 | 中南大学 | 一种基于pci-e接口的大规模plc高速背板总线系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733482A (zh) * | 2018-03-27 | 2018-11-02 | 华为技术有限公司 | 信息获取的方法、处理器以及通信装置 |
WO2020000489A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种pcie发送、接收方法及装置、设备和系统 |
CN110445721A (zh) * | 2019-09-09 | 2019-11-12 | 迈普通信技术股份有限公司 | 一种报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107453999B (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10521283B2 (en) | In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives | |
US8174977B2 (en) | End-to-end flow control in a network | |
CN107995129A (zh) | 一种nfv报文转发方法和装置 | |
US11829323B2 (en) | Method of notifying a process or programmable atomic operation traps | |
US11418455B2 (en) | Transparent packet splitting and recombining | |
US9678891B2 (en) | Efficient search key controller with standard bus interface, external memory interface, and interlaken lookaside interface | |
US20200412655A1 (en) | Dynamic Offline End-to-End Packet Processing based on Traffic Class | |
US20230027534A1 (en) | Detecting infinite loops in a programmable atomic transaction | |
CN107453999A (zh) | 一种网络设备和网络报文转发方法 | |
Lockwood et al. | Implementing ultra low latency data center services with programmable logic | |
US20220121381A1 (en) | Method of organizing a programmable atomic unit instruction memory | |
CN104714904A (zh) | 采用窗口映射机制的RapidIO控制器及其控制方法 | |
US20230033452A1 (en) | Transporting request types with different latencies | |
Correa et al. | Ultra-low latency communication channels for FPGA-based HPC cluster | |
US8949856B2 (en) | Merging result from a parser in a network processor with result from an external coprocessor | |
CN101004674B (zh) | 数据处理系统和包括数据处理系统的高清晰度电视机 | |
US20160011994A1 (en) | Multi-processor with efficient search key processing | |
US20160011995A1 (en) | Island-based network flow processor with efficient search key processing | |
US9088594B2 (en) | Providing to a parser and processors in a network processor access to an external coprocessor | |
CN104898775A (zh) | 计算装置、存储装置、网络交换设备及计算机体系架构 | |
US9634901B2 (en) | Topology discovery in a computing system | |
CN104678815B (zh) | Fpga芯片的接口结构及配置方法 | |
CN107766269A (zh) | 一种隔离交换装置及方法 | |
CN104679687B (zh) | 一种识别中断源的方法及装置 | |
CN104572572B (zh) | 一种数据接收装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |