CN102263698B - 虚拟通道的建立方法、数据传输的方法及线卡 - Google Patents
虚拟通道的建立方法、数据传输的方法及线卡 Download PDFInfo
- Publication number
- CN102263698B CN102263698B CN201110229658.6A CN201110229658A CN102263698B CN 102263698 B CN102263698 B CN 102263698B CN 201110229658 A CN201110229658 A CN 201110229658A CN 102263698 B CN102263698 B CN 102263698B
- Authority
- CN
- China
- Prior art keywords
- credit
- tunnel
- pcie
- terminal wiring
- card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Nonwoven Fabrics (AREA)
Abstract
本发明实施例提供一种虚拟通道的建立方法、数据传输的方法及线卡,包括:在分布式系统的各线卡间建立承载控制通道和业务通道的数据传输的虚拟通道,将控制通道和业务通道统一用虚拟通道承载,简化了线卡的通道管理。同时,提供了一种基于所述虚拟通道的高效的线卡间数据传输方案,该方案中每个线卡均将部分内存映射到统一的PCIE空间,通过PCIE内存写总线事务完成线卡间数据的传输,由于PCIE内存写总线事务采用Post方式,从而相对于传统的PCIE通道,可以减少数据传输的延迟,实现高性能的数据转发。
Description
技术领域
本发明涉及通信领域,尤其涉及一种虚拟通道的建立方法、数据传输的方法及线卡。
背景技术
传统的分布式系统通常包含有各种线卡,如主控卡、业务卡和载板卡等。在分布式系统中,通常包含有控制通道与业务通道两种通道。其中控制通道一般为主控卡与业务卡,或者载板卡与业务卡之间的数据通道,控制通道主要完成控制信息及配置信息的下发;业务通道一般为业务卡之间的数据通道,业务通道一般用于业务报文的转发。在分布式系统的通道的实现形式中,由于控制通道报文较少,使用的带宽较少,一般使用千兆以太网(GE,Gigabit Ethernet)相连;而业务通道由于报文较多,使用的带宽较高,多使用高带宽的快速外围组件连接(PCIE,Peripheral Component Interconnect Express)总线技术实现。
PCIE总线是新一代的输入/输出(I/O)局部总线标准,是取代PCI总线的革命性总线架构,PCIE总线在处理器系统中得到了大规模的使用。相比PCI总线,PCIE总线采用独特的双通道传输模式,类似于全双工模式,大大提高了数据传输速度;同时采用点到点的互联技术,通过交换机(Switch)等设备,可灵活的拓扑结构;另外,PCIE总线还使用了一些在网络通信中使用的技术,比如支持多种数据路由方式,基于多同龄的数据传递方式和基于保温的传送方式,并充分地考虑了数据传送中出现的服务质量(QoS,Quality of Service)问题。
基于PCIE总线的体系结构主要包括根组件(RC,Root Complex)、交换机(Switch)和各种终端设备(EP,Endpoint)。其中RC主要完成存储器域到PCIE总线域的地址转换,RC的下游端口可以挂接交换机来扩展更多的PCIE端口,也可以直接挂接EP。交换机主要起到扩展系统的作用,它支持一个上端口和多个下端口,端口之间可以进行数据交换,通过交换机桥接,PCIE总线可以进行链路扩展。
PCIE总线采用分层的体系结构,包括了事务层(Transaction Layer),数据链路层(Data link layer)和物理层(Physical Layer)三个子层。数据报文首先在事务层中形成,即形成事务层数据报文(TLP,Transaction Layer Packet)。TLP经过数据链路层时被加上序列码(Sequence Number)和循环冗余码校验(CRC),然后在物理层经过8/10B编码发送。
从软件设计的角度出发,PCIE总线行为主要包括内存读总线事务,内存写总线事务,IO读总线事务等。而这些总线行为又可以分为Non-Post方式和Post方式。其中,Non-Post方式中,请求设备(Request)向结束设备(completer)发出一个传输请求报文,结束设备会发送结束(completion)报文来通知请求设备报文传输完成。Post方式中,请求设备向结束设备发出一个传输请求报文,结束设备不会发送结束报文来通知请求设备报文传输完成。在PCIE总线行为中,内存读总线事务采用Non-Post方式,内存写总线事务采用Post方式,使用内存读总线事务会增加数据收发的延迟。
根据现有的分布式系统的通道的实现形式,目前的分布式系统的数据传输存在以下缺陷:
1、内存传输机制多样化,存在以太通道,PCIE通道及其他物理通道,并根据传输报文目的的不同进行区分。这样,随着分布式系统的拓展及线卡的增加,各个线卡上维护的通道及物理总线也会愈加复杂。主控卡随着通道增多而不得不消耗大量的中央处理器(CPU)资源来处理报文,而业务卡上存在复杂的控制通道与业务通道,也会使得通道管理复杂,影响分布式系统的性能及可维护性。
2、在利用传统的PCIE通道进行报文转发过程中,PCIE总线行为为采用Non-Post方式的内存读总线事务。发送线卡(发送业务卡)与目的线卡(目的业务卡)需要进行内存申请--报文发送--报文确认的流程,即发送线卡要将报文转发到目的线卡,需要先从目的线卡申请内存地址空间,然后依据申请的地址空间将报文发送过去。目的线卡收到报文后,会通告发送线卡传输已完成,并进行后续的操作。在大流量业务转发的情况下,使用PCIE内存读总线事务进行内存申请会导致PCIE通道长期被阻塞,导致通道性能的急剧下降;同时报文发送--报文确认的交互过程也会造成极大的传输时延,损伤转发性能。
发明内容
本发明实施例提供一种虚拟通道的建立方法、数据传输的方法及线卡,减少分布式系统的CPU资源损耗,提高分布式系统的性能和可维护性,并减少报文传输时延。
一种虚拟通道的建立方法,该方法包括:
确定对端线卡发送的保活keepalive报文;
从确定出的keepalive报文中,查询在当前时刻所述对端线卡最近一次发送的keepalive报文的设定字段,根据该keepalive报文确定与所述对端线卡待建立控制虚拟通道和业务虚拟通道;
根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
一种数据传输的方法,该方法包括:
为建立的控制虚拟通道或业务虚拟通道分配独立的接收RX队列,并根据对端线卡发送的保活keepalive报文,确定对端线卡的信用池基地址,所述信用池基地址为在快速外围组件连接PCIE空间所述对端线卡指定的内存对应的起始地址;
分别将所述RX队列中的每个缓存器buffer空间地址封装为一个信用,并将设定数量的信用封装为一个事务层数据报文TLP;
根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述对端线卡的信用池基地址起始的PCIE空间。
一种数据传输的方法,该方法包括:
确定第二设定快速外围组件连接PCIE空间中由对端线卡写入的信用,所述信用由缓存器buffer空间地址封装而成;
将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间。
一种线卡,该线卡包括:
报文确定模块,用于确定对端线卡发送的保活keepalive报文;
查询模块,用于从确定出的keepalive报文中,查询在当前时刻所述对端线卡最近一次发送的keepalive报文的设定字段,根据该keepalive报文确定与所述对端线卡待建立控制虚拟通道和业务虚拟通道;
虚拟通道建立模块,用于根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
一种线卡,该线卡包括报文确定模块、查询模块和虚拟通道建立模块,该线卡还包括:
队列分配模块,用于为建立的控制虚拟通道或业务虚拟通道分配独立的接收RX队列;
基地址确定模块,用于根据对端线卡发送的保活keepalive报文,确定对端线卡的信用池基地址,所述信用池基地址为在快速外围组件连接PCIE空间所述对端线卡指定的内存对应的起始地址;
信用组帧模块,用于分别将所述RX队列中的每个缓存器buffer空间地址封装为一个信用,并将设定数量的信用封装为一个事务层数据报文TLP;
信用控制模块,用于根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述对端线卡的信用池基地址起始的PCIE空间。
一种线卡,该线卡包括报文确定模块、查询模块和虚拟通道建立模块,该线卡还包括:
写入信用确定模块,用于确定第二设定快速外围组件连接PCIE空间中由对端线卡写入的信用,所述信用由缓存器buffer空间地址封装而成;
数据发送模块,用于将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间。
根据本发明实施例提供的方案,在分布式系统的各线卡间建立承载控制通道和业务通道的数据传输的虚拟通道,将控制通道和业务通道统一用虚拟通道承载,简化了线卡的通道管理。同时,提供了一种基于所述虚拟通道的高效的线卡间数据传输方案,该方案中每个线卡均将部分内存映射到统一的PCIE空间,通过PCIE内存写总线事务完成线卡间数据的传输,由于PCIE内存写总线事务采用Post方式,从而相对于传统的PCIE通道,可以减少数据传输的延迟,实现高性能的数据转发。
附图说明
图1为本发明实施例一提供的一种虚拟通道的建立方法的步骤流程图;
图2为本发明实施例二提供的一种虚拟通道的建立方法的步骤流程图;
图3为本发明实施例二提供的PCIE空间的结构示意图;
图4为本发明实施例三提供的一种数据传输方法的步骤流程图;
图5为本发明实施例三提供的TLP的结构示意图;
图6(a)和图6(b)分别为本发明实施例三提供的数据报文和IPG报文的结构示意图;
图7为本发明实施例四提供的一种线卡的结构示意图;
图8为本发明实施例五提供的一种线卡的结构示意图;
图9为本发明实施例六提供的一种线卡的结构示意图;
图10为本发明实施例五提供的线卡和本发明实施例六提供的线卡之间的数据传输过程示意图。
具体实施方式
针对现有的分布式系统中各线卡之间进行数据传输时所存在的缺陷,本发明实施例提供一种基于PCIE体系的虚拟通道的创建及管理的方法,应用于线卡,包括主控卡、业务卡及载板卡上。
下面结合说明书附图和各实施例对本发明方案进行说明。
实施例一、
本发明实施例一提供一种虚拟通道的建立方法,该方法的步骤流程如图1所示,具体包括以下步骤:
步骤001、确定对端线卡发送的保活keepalive报文。
步骤002、确定与所述对端线卡待建立的控制虚拟通道和业务虚拟通道。
本步骤包括:从确定出的keepalive报文中,查询在当前时刻所述对端线卡最近一次发送的keepalive报文的设定字段,根据该keepalive报文确定与所述对端线卡待建立控制虚拟通道和业务虚拟通道。
步骤003、建立控制虚拟通道和业务虚拟通道。
本步骤包括:根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
下面通过一个具体的实例对本发明实施例一的方案进行详细说明。
实施例二、
本发明实施例二提供一种虚拟通道的建立方法,该方法的步骤流程如图2所示,具体包括以下步骤:
步骤101、通过配置寄存器,将内存映射到PCIE空间。
分布式系统的线卡根据对端线卡发送的保活keepalive报文来建立虚拟通道,每个线卡会在本线卡的固定内存域开辟一个保留区域用于存放对端线卡的keepalive报文。该保留区域可以根据分布式系统中线卡的数量进行划分,所述保留区域中设置有针对分布式系统中的每个线卡的独立的内存空间,保留区域中针对每个线卡的独立的内存空间可以用每个线卡的设备身份标识号码(ID号)进行标识。
本实施例以分布式系统中的一个线卡为例,对建立虚拟通道的过程进行说明。
在本步骤中,该线卡起机后,保留区域被映射到PCIE空间中,所述PCIE空间是一个逻辑上连续,物理上分离的虚拟空间,同一个分布式系统中的各线卡被映射到统一的PCIE空间。具体的,可以通过配置寄存器将保留区域暴露出来,允许其他线卡通过PCIE总线事务对该保留区域进行操作,从而对端线卡可以通过PCIE内存写总线事务,通过在所述PCIE空间写入keepalive报文,将keepalive报文存放在该保留区域。从PCIE根组件(RC,Root Complex)的角度来看,该保留区域被映射到了PCIE空间中。
为了实现后续利用虚拟通道进行数据传输,线卡在起机后还可以将自身指定的内存映射到PCIE空间,从而允许其他线卡通过PCIE总线事务对该指定的内存进行操作。
假设一个分布式系统中有线卡0,线卡1……线卡26(可以分别以dev0,dev1……dev26表示),如图3所示为该分布式系统中各线卡对应的PCIE空间的结构示意图。
以线卡3(dev3)为例,该线卡中起始内存地址为0x000-0000,结束内存地址为0x1000-0000的内存空间被映射到了起始地址为0x5-1000-0000的PCIE空间,且该线卡的保留区域为起始内存地址为0x000-8000,结束内存地址为0x000-9000的内存空间。在线卡3的保留区域中,设置有针对分布式系统中的每个线卡(包括dev0,dev1……dev26)的独立的内存空间。
以线卡26(dev26)为例,该线卡中起始内存地址为0x000-0000,结束内存地址为0x1000-0000的内存空间被映射到了起始地址为0x4-C000-0000的PCIE空间,且该线卡的保留区域为起始内存地址为0x000-8000,结束内存地址为0x000-9000的内存空间。在线卡26的保留区域中,设置有针对分布式系统中的每个线卡(包括dev0,dev1……dev26)的独立的内存空间。
步骤102、确定对端线卡发送的保活keepalive报文。
在本实施例中为了与对端线卡建立虚拟通道,需要确定对端线卡发送的keepalive报文。本步骤可以具体包括,确定对端线卡通过PCIE内存写总线事务在自身保留区域对应的PCIE空间写入的keepalive报文。
对端线卡可以根据自己的设备身份标识号码(ID号)在与自身待建立虚拟通道的线卡的对应的PCIE空间中查找属于自己的用于保存keepalive报文的内存空间,并通过定时轮训方式,定时将keepalive报文写入。
步骤103、查询在当前时刻所述对端线卡最近一次发送的keepalive报文。
对端线卡发送的keepalive报文中可以携带待建立的通道信息和信用池基地址,所述keepalive报文还可以进一步携带本地槽位,对端线卡的状态信息以及线卡的类型信息。
所述信用池基地址为对端线卡的指定的内存映射在PCIE空间的起始地址。所述线卡的类型信息可以为控制卡、业务卡或载板卡。
在本步骤中,可以根据对端线卡最近一次发送的keepalive报文的设定字段中的通道信息,确定与所述对端线卡待建立的控制虚拟通道和业务虚拟通道。
步骤104、建立虚拟通道。
本步骤具体包括:根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
所述控制虚拟通道和业务虚拟通道可以以通道结构体的形式建立。该通道结构体中可以包含对端线卡发送的keepalive报文中包含的信息,如对端线卡的槽位等。
至此,实现了将控制通道和业务通道统一用虚拟通道承载,简化了线卡的通道管理。
步骤105、拆除建立的虚拟通道。
在本实施例中,可以根据以下两种方式中的至少一种来确定是否拆除建立的虚拟通道:
方式一、在最后一次接收到所述对端线卡发送的keepalive报文时刻起的设定时长内没有接收到所述对端线卡再次发送的keepalive报文时,拆除建立的所述控制虚拟通道和业务虚拟通道。
具体的,在建立控制虚拟通道和业务虚拟通道的同时,可以清空自身保存的所述对端线卡发送的keepalive报文,并通过定时轮训方式,在设定次数内没有接收到所述对端线卡发送的keepalive报文时,确定对端线卡发生异常,拆除建立的与所述对端线卡建立的控制虚拟通道和业务虚拟通道。
方式二、在确定建立控制虚拟通道和业务虚拟通道之后接收到的所述对端线卡发送的keepalive报文不合法时,拆除建立的所述控制虚拟通道和业务虚拟通道。
可以通过所述对端线卡最近一次发送的keepalive报文中携带的魔术Magic校验值,确定该keepalive报文的合法性。在根据接收到的keepalive报文计算出的Magic校验值与该keepalive报文中携带的Magic校验值一致时,确定接收到的keepalive报文为合法的keepalive报文,否则,确定接收到的keepalive报文为不合法的keepalive报文。
较优的,在步骤102之后,步骤103之前,还可以包括步骤103’:
步骤103’、确定所述对端线卡最近一次发送的keepalive报文的合法性。
具体的,也可以通过所述对端线卡最近一次发送的keepalive报文中携带的魔术Magic校验值,确定该keepalive报文的合法性。在确定所述对端线卡最近一次发送的keepalive报文合法时,继续执行步骤103,否则,可以重新执行步骤102。
通过本发明实施例一和实施例二提供的方案,不仅提供了一种建立分布式系统的线卡间虚拟通道的方法,还提供了撤销分布式系统的线卡间虚拟通道的方法。
实施例三、
本发明实施例三提供一种基于本发明实施例一和实施例二提供的方法所建立的虚拟通道(业务虚拟通道或控制虚拟通道)进行数据传输的方法,以每次线卡B与线卡A之间的虚拟通道建立之后,且撤销之前,线卡B(发送线卡)与线卡A(目的线卡)进行数据传输为例,该方法的步骤流程如图4所示,具体包括以下步骤:
步骤201、线卡A为建立的与线卡B之间的控制虚拟通道或业务虚拟通道分配独立的接收RX队列,并根据线卡B发送的保活keepalive报文,确定线卡B的信用池基地址。
所述RX队列可以用于接收对端线卡(线卡B)发送的数据。线卡A为建立的与线卡B之间的控制虚拟通道或业务虚拟通道分配的RX队列可以为本发明实施例二中映射到PCIE空间的指定的内存中的全部或部分。
在本步骤中,可以根据线卡B发送的保活keepalive报文,确定线卡B的信用池基地址,即可以确定线卡B的指定的内存映射在PCIE空间的起始地址。
步骤202、线卡A进行空间地址的封装。
本步骤包括:线卡A分别将所述RX队列中的每个缓存器buffer空间地址封装为一个信用,并将设定数量的信用封装为一个事务层数据报文(TLP,Transaction Layer Packet),所述设定数量为正整数。所述信用可以理解为内存地址,是一种特殊的内存空间。一个信用可以用于表示所述RX队列中一个缓存器的空间地址。本实施例中,可以将线卡B的指定的内存在PCIE空间的映射空间视为线卡B的信用池,该信用池可以用于存放线卡A发送的信用。
线卡A分别将所述RX队列中的每个缓存器空间地址封装为一个信用,具体包括:线卡A分别将自身对应的PCIE空间(第一设定PCIE空间,该第一设定PCIE空间可以为包括线卡A的指定的内存对应的PCIE空间和线卡A的保留区域对应的PCIE空间的线卡A对应的一块连续的PCIE空间)起始地址和每个缓存器的空间地址封装为一个信用,使得后续线卡B可以根据每个信用确定线卡A的所述RX队列中的每个缓存器在PCIE空间的具体位置。
为了提高后续用所述信用进行PCIE空间更新的效率,可以将封装得到的每个信用的向右偏移N位,所述N为正整数。为了提高PCIE总线的使用率,可以将设定数量大于1的信用封装为一个TLP。
例如,线卡A分别将自身对应的PCIE空间地址和每个缓存器的空间地址封装为一个36位的PCIE空间地址,并可以将该36位的PCIE空间地址去除低4位压缩为32位,并使用一个32位整型变量表示,使得每个信用占4个字节。而为了提高PCIE总线的使用率,可以将64个信用封装为一个TLP。TLP的结构可以如图5所示。
步骤203、线卡A根据所述TLP中封装的信用,更新线卡B的PCIE空间。
在本步骤中,线卡A可以通过PCIE内存写总线事务进行线卡B对应的PCIE空间(第二设定PCIE空间,该第二设定PCIE空间可以为包括线卡B的指定的内存对应的PCIE空间和线卡B的保留区域对应的PCIE空间的线卡B对应的一块连续的PCIE空间)的更新,实际上,线卡B对应的进行更新的PCIE空间即为所述信用池基地址起始的PCIE空间。
更新完成后,线卡A可以将自身保存的线卡B的信用池基地址偏移所述设定数量位,该设定数量即为事务层数据报文中封装的信用的数量,作为再次更新时的信用池基地址。
步骤204、线卡B向线卡A发送数据。
本步骤中,线卡B可以调度自身对应的PCIE空间,具体的,可以利用发送TX函数调度自身对应的PCIE空间,根据上层函数发送的待传输数据报文的指针,使用直接内存访问(DMA,Direct Memory Access)作为发送引擎进行待传输数据的发送。在确定获得线卡A更新至自身对应的PCIE空间的一个信用后,可以调用PCIE内存写总线事务将待传输的数据直接发送到该信用对应的空间地址上,即发送到线卡A的RX队列中的缓存器空间中,具体的,可以以数据报文的形式发送数据。
当然,在本步骤中,可以对应的对所述信用向左偏移N位,以得到原始的信用,所述N为正整数。
较优的,线卡B在一次数据传输完成后,可以向线卡A发送结束报文,如帧间间隙(IPG,Inter Packet Gap)报文,通知线卡A该次数据传输完成。具体的,可以通过PCIE内存写总线事务将所述结束报文写入所述信用对应的PCIE空间,线卡A通过识别出所述结束报文,确定该次数据传输完成。数据报文和IPG报文的结构可以分别如图6(a)和图6(b)所示,图6(a)和图6(b)中的类型字段可以用于存放报文标识,用于区分该报文为数据报文还是IPG报文,如报文标识为1表示该报文为数据报文,报文标识为2表示该报文为IPG报文。长度字段可以用于存放报文的长度值,在报文为数据报文时,长度值为数据报文的长度,在报文为IPG报文时,长度值可以为固定值。
步骤205、线卡A接收线卡B发送的数据。
在本步骤中,线卡A可以查询自身的RX队列,具体的,可以调用接收RX函数查询自身的RX队列,当确定一个缓存器中保存的数据是新接收到的数据时,可以调用上层函数对这个缓存器进行处理。
较优的,线卡A确定出一个缓存器中保存的数据是新接收到的数据之后,调用上层函数对这个缓存器进行处理之前,还可以进一步确定该缓存器中保存的数据是正确的数据,具体的,可以确定接收到的数据(数据报文)的校验值,在确定出的校验值与该接收到的数据(数据报文)中携带的校验值一致时,确定接收到的数据是正确的数据,否则,确定接收到的数据为错误的数据。
在本步骤中,线卡A可以利用未包含在所述RX队列中的缓存器空间地址更新所述RX队列中接收到数据的缓存器空间地址,实现RX队列中缓存器的更新,从而后续可以利用新的缓存器接收线卡B发送的数据。
通过本发明实施例三提供的方案,在进行数据传输的线卡利用本发明实施例一和实施例二提供的方案建立了虚拟通道的基础上,进行数据传输的线卡均将自身的部分内存映射到统一的PCIE空间,通过对该PCIE空间的写操作,实现了线卡间的数据传输。在相对于现有技术通过采用Post方式的PCIE内存写总线事务避免PCIE的内存读总线事务导致的总线阻塞,减少数据传输的延迟的基础上,还可以在一次数据传输结束时,发送IPG报文,进一步减少数据传输过程中等待确认的过程,提高数据传输效率。
与本发明实施例一和实施例二基于同一发明构思,通过实施例四提供以下的线卡。
实施例四、
本发明实施例四提供一种线卡,该线卡的结构示意图如图7所示,具体包括:
报文确定模块11用于确定对端线卡发送的保活keepalive报文;查询模块12用于从确定出的keepalive报文中,查询在当前时刻所述对端线卡最近一次发送的keepalive报文的设定字段,根据该keepalive报文确定与所述对端线卡待建立控制虚拟通道和业务虚拟通道;虚拟通道建立模块13用于根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
所述线卡还包括寄存器配置模块14:
寄存器配置模块14用于配置寄存器,将固定内存域的保留区域映射到快速外围组件连接PCIE空间;
报文确定模块11具体用于确定对端线卡通过PCIE内存写总线事务在所述保留区域对应的PCIE空间写入的keepalive报文。
所述线卡还包括合法性确定模块15:
合法性确定模块15用于确定报文确定模块确定出的对端线卡最近一次发送的keepalive报文合法。
合法性确定模块15具体用于通过所述对端线卡最近一次发送的keepalive报文中携带的魔术Magic校验值,确定该keepalive报文合法。
所述线卡还包括虚拟通道撤销模块16:
虚拟通道撤销模块16用于在最后一次接收到所述对端线卡发送的keepalive报文时刻起的设定时长内没有接收到所述对端线卡再次发送的keepalive报文时,拆除建立的所述控制虚拟通道和业务虚拟通道;或者,在建立控制虚拟通道和业务虚拟通道之后,确定接收到的所述对端线卡发送的keepalive报文不合法时,拆除建立的所述控制虚拟通道和业务虚拟通道。
与本发明实施例一、二、三基于同一发明构思,通过实施例五和实施例六提供以下的线卡。本发明实施例五和实施例六中的线卡均可以视为利用本发明实施例一和实施例二中的方法建立了虚拟通道,即实施例五和实施例六中的线卡均包括实施例四中涉及的报文确定模块、查询模块和虚拟通道建立模块,当然,实施例五和实施例六中的线卡还可以进一步包括实施例四中涉及的寄存器配置模块、合法性确定模块和虚拟通道撤销模块。
实施例五、
本发明实施例五提供一种线卡,可以视为线卡之间进行数据传输时的目的线卡,该线卡的结构示意图如图8所示,具体包括:
队列分配模块21用于为建立的控制虚拟通道或业务虚拟通道分配独立的接收RX队列;基地址确定模块22用于根据对端线卡发送的保活keepalive报文,确定对端线卡的信用池基地址,所述信用池基地址为在快速外围组件连接PCIE空间所述对端线卡指定的内存对应的起始地址;信用组帧模块23用于分别将所述RX队列中的每个缓存器buffer空间地址封装为一个信用,并将设定数量的信用封装为一个事务层数据报文TLP;信用控制模块24用于根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述对端线卡的信用池基地址起始的PCIE空间。
信用组帧模块23具体用于分别将第一设定PCIE空间起始地址和所述每个缓存器空间地址封装为一个信用。信用组帧模块23具体用于将封装得到的每个信用向右偏移N位,所述N为正整数。
所述线卡还包括:
基地址更新模块25用于将偏移所述设定数量位的信用池基地址作为再次更新时的信用池基地址。
所述线卡还包括数据接收模块26:
数据接收模块26用于利用未包含在所述RX队列中的缓存器空间地址更新接收到数据的缓存器空间地址。
实施例六、
本发明实施例六提供一种线卡,可以视为线卡之间进行数据传输时的发送线卡,该线卡的结构示意图如图9所示,具体包括:
写入信用确定模块31用于确定第二设定快速外围组件连接PCIE空间中由对端线卡写入的信用,所述信用由缓存器buffer空间地址封装而成;数据发送模块32用于将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间。
写入信用确定模块31具体用于将所述信用向左偏移N位,所述N为正整数。
所述线卡还包括数据发送控制模块33:
数据发送控制模块33用于通过PCIE内存写总线事务将用于指示本次传输完成的结束报文写入所述信用对应的PCIE空间。
实施例五中的线卡与实施例六中的线卡互为对端线卡,一个线卡可以同时具有实施例五中的线卡的功能与实施例六中的线卡的功能,实施例五中的线卡(线卡A)和实施例六中的线卡(线卡B)之间的数据传输过程可以如图10所示。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (26)
1.一种虚拟通道的建立方法,其特征在于,该方法包括:
确定对端线卡发送的存储在保留区域的保活keepalive报文;
从确定出的keepalive报文中,查询在当前时刻所述对端线卡最近一次发送的keepalive报文的设定字段,根据该keepalive报文中携带的待建立的通道信息,确定与所述对端线卡待建立控制虚拟通道和业务虚拟通道;
根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
2.如权利要求1所述的方法,其特征在于,确定对端线卡发送的keepalive报文之前,所述方法还包括:
通过配置寄存器,将固定内存域的保留区域映射到快速外围组件连接PCIE空间;
确定对端线卡发送的keepalive报文,具体包括:
确定对端线卡通过PCIE内存写总线事务在所述保留区域对应的PCIE空间写入的keepalive报文。
3.如权利要求1所述的方法,其特征在于,确定对端线卡发送的keepalive报文之后,查询所述对端线卡最近一次发送的keepalive报文的设定字段之前,所述方法还包括:
确定所述对端线卡最近一次发送的keepalive报文合法。
4.如权利要求3所述的方法,其特征在于,确定所述对端线卡最近一次发送的keepalive报文合法,具体包括:
通过所述对端线卡最近一次发送的keepalive报文中携带的魔术Magic校验值,确定该keepalive报文合法。
5.如权利要求1~4任一所述的方法,其特征在于,建立控制虚拟通道和业务虚拟通道之后,该方法还包括:
在最后一次接收到所述对端线卡发送的keepalive报文时刻起的设定时长内没有接收到所述对端线卡再次发送的keepalive报文时,拆除建立的所述控制虚拟通道和业务虚拟通道;或者,
在接收到的所述对端线卡发送的keepalive报文不合法时,拆除建立的所述控制虚拟通道和业务虚拟通道。
6.一种应用权利要求1所述的方法建立的虚拟通道进行数据传输的方法,其特征在于,该方法包括:
为建立的控制虚拟通道或业务虚拟通道分配独立的接收RX队列,并根据对端线卡发送的保活keepalive报文中携带的信用池基地址,确定对端线卡的信用池基地址,所述信用池基地址为在快速外围组件连接PCIE空间所述对端线卡指定的内存对应的起始地址;
分别将所述RX队列中的每个缓存器buffer空间地址封装为一个信用,并将设定数量的信用封装为一个事务层数据报文TLP;
根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述对端线卡的信用池基地址起始的PCIE空间。
7.如权利要求6所述的方法,其特征在于,分别将所述RX队列中的每个缓存器空间地址封装为一个信用,具体包括:
分别将第一设定PCIE空间起始地址和所述每个缓存器空间地址封装为一个信用。
8.如权利要求6或7所述的方法,其特征在于,分别将所述RX队列中的每个缓存器空间地址封装为一个信用之后,将设定数量的信用封装为一个TLP报文之前,所述方法还包括:
将封装得到的每个信用向右偏移N位,所述N为正整数。
9.如权利要求6或7所述的方法,其特征在于,根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述信用池基地址起始的PCIE空间之后,所述方法还包括:
将偏移设定数量位的信用池基地址作为再次更新时的信用池基地址。
10.如权利要求6或7所述的方法,其特征在于,根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述信用池基地址起始的PCIE空间之后,所述方法还包括:
利用未包含在所述RX队列中的缓存器空间地址,更新接收到数据的缓存器空间地址。
11.一种应用权利要求1所述的方法建立的虚拟通道进行数据传输的方法,其特征在于,该方法包括:
确定第二设定快速外围组件连接PCIE空间中由对端线卡写入的信用,所述信用由缓存器buffer空间地址封装而成;
将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间。
12.如权利要求11所述的方法,其特征在于,确定第二设定PCIE空间由对端线卡写入的信用之后,将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间之前,所述方法还包括:
将所述信用向左偏移N位,所述N为正整数。
13.如权利要求11或12所述的方法,其特征在于,将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间之后,所述方法还包括:
通过PCIE内存写总线事务将用于指示本次传输完成的结束报文写入所述信用对应的PCIE空间。
14.一种线卡,其特征在于,该线卡包括:
报文确定模块,用于确定对端线卡发送的存储在保留区域的保活keepalive报文;
查询模块,用于从确定出的keepalive报文中,查询在当前时刻所述对端线卡最近一次发送的keepalive报文的设定字段,根据该keepalive报文中携带的待建立的通道信息,确定与所述对端线卡待建立控制虚拟通道和业务虚拟通道;
虚拟通道建立模块,用于根据确定出的待建立的控制虚拟通道和业务虚拟通道,建立控制虚拟通道和业务虚拟通道。
15.如权利要求14所述的线卡,其特征在于,所述线卡还包括:
寄存器配置模块,用于配置寄存器,将固定内存域的保留区域映射到快速外围组件连接PCIE空间;
报文确定模块,具体用于确定对端线卡通过PCIE内存写总线事务在所述保留区域对应的PCIE空间写入的keepalive报文。
16.如权利要求14所述的线卡,其特征在于,所述线卡还包括:
合法性确定模块,用于确定报文确定模块确定出的对端线卡最近一次发送的keepalive报文合法。
17.如权利要求16所述的线卡,其特征在于,
合法性确定模块,具体用于通过所述对端线卡最近一次发送的keepalive报文中携带的魔术Magic校验值,确定该keepalive报文合法。
18.如权利要求14~17任一所述的线卡,其特征在于,所述线卡还包括:
虚拟通道撤销模块,用于在最后一次接收到所述对端线卡发送的keepalive报文时刻起的设定时长内没有接收到所述对端线卡再次发送的keepalive报文时,拆除建立的所述控制虚拟通道和业务虚拟通道;或者,在建立控制虚拟通道和业务虚拟通道之后,确定接收到的所述对端线卡发送的keepalive报文不合法时,拆除建立的所述控制虚拟通道和业务虚拟通道。
19.一种线卡,其特征在于,该线卡包括如权利要求14所述的报文确定模块、查询模块和虚拟通道建立模块,该线卡还包括:
队列分配模块,用于为建立的控制虚拟通道或业务虚拟通道分配独立的接收RX队列;
基地址确定模块,用于根据对端线卡发送的保活keepalive报文中携带的信用池基地址,确定对端线卡的信用池基地址,所述信用池基地址为在快速外围组件连接PCIE空间所述对端线卡指定的内存对应的起始地址;
信用组帧模块,用于分别将所述RX队列中的每个缓存器buffer空间地址封装为一个信用,并将设定数量的信用封装为一个事务层数据报文TLP;
信用控制模块,用于根据所述TLP报文中封装的信用,通过PCIE内存写总线事务更新所述对端线卡的信用池基地址起始的PCIE空间。
20.如权利要求19所述的线卡,其特征在于,信用组帧模块,具体用于分别将第一设定PCIE空间起始地址和所述每个缓存器空间地址封装为一个信用。
21.如权利要求19或20所述的线卡,其特征在于,信用组帧模块,具体用于将封装得到的每个信用向右偏移N位,所述N为正整数。
22.如权利要求19或20所述的线卡,其特征在于,所述线卡还包括:
基地址更新模块,用于将偏移设定数量位的信用池基地址作为再次更新时的信用池基地址。
23.如权利要求19或20所述的线卡,其特征在于,所述线卡还包括:
数据接收模块,用于利用未包含在所述RX队列中的缓存器空间地址更新接收到数据的缓存器空间地址。
24.一种线卡,其特征在于,该线卡包括如权利要求14所述的报文确定模块、查询模块和虚拟通道建立模块,该线卡还包括:
写入信用确定模块,用于确定第二设定快速外围组件连接PCIE空间中由对端线卡写入的信用,所述信用由缓存器buffer空间地址封装而成;
数据发送模块,用于将待发送的数据通过PCIE内存写总线事务写入所述信用对应的PCIE空间。
25.如权利要求24所述的线卡,其特征在于,
写入信用确定模块,具体用于将所述信用向左偏移N位,所述N为正整数。
26.如权利要求24或25所述的线卡,其特征在于,所述线卡还包括:
数据发送控制模块,用于通过PCIE内存写总线事务将用于指示本次传输完成的结束报文写入所述信用对应的PCIE空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110229658.6A CN102263698B (zh) | 2011-08-11 | 2011-08-11 | 虚拟通道的建立方法、数据传输的方法及线卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110229658.6A CN102263698B (zh) | 2011-08-11 | 2011-08-11 | 虚拟通道的建立方法、数据传输的方法及线卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102263698A CN102263698A (zh) | 2011-11-30 |
CN102263698B true CN102263698B (zh) | 2014-01-22 |
Family
ID=45010164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110229658.6A Active CN102263698B (zh) | 2011-08-11 | 2011-08-11 | 虚拟通道的建立方法、数据传输的方法及线卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102263698B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546400A (zh) * | 2011-12-20 | 2012-07-04 | 福建星网锐捷网络有限公司 | 一种卡间通信的方法、通信卡及网络转发设备 |
CN102523168B (zh) * | 2011-12-23 | 2014-09-10 | 福建星网锐捷网络有限公司 | 一种传输报文的方法及装置 |
CN102594708A (zh) * | 2012-03-22 | 2012-07-18 | 北京星网锐捷网络技术有限公司 | 流量控制方法及装置、线卡及分布式网络设备 |
CN102752223B (zh) * | 2012-07-26 | 2014-11-05 | 杭州海康威视数字技术股份有限公司 | 并行系统间数据传输方法及其系统 |
CN104283750B (zh) * | 2014-10-22 | 2017-07-21 | 北方信息控制集团有限公司 | 基于以太网总线的统一链路层多协议交换方法 |
CN109634902B (zh) * | 2018-12-19 | 2020-08-25 | 锐捷网络股份有限公司 | 一种适用于pcie总线的数据传输方法、装置及系统 |
CN112269752B (zh) * | 2020-10-10 | 2023-07-14 | 山东云海国创云计算装备产业创新中心有限公司 | 一种PCIe虚拟通道的数据处理方法及相关装置 |
CN112631969B (zh) * | 2020-12-30 | 2024-01-30 | 凌云光技术股份有限公司 | 一种基于pcie接口的虚拟多通道数据传输方法和系统 |
CN113901015B (zh) * | 2021-09-07 | 2023-05-30 | 北京航天巨恒系统集成技术有限公司 | 分布式数据共享方法、装置、存储节点卡及计算机设备 |
CN114416630A (zh) * | 2021-12-24 | 2022-04-29 | 深圳市广和通无线通信软件有限公司 | 基于pcie的通信方法、装置、计算机设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123529A (zh) * | 2007-09-21 | 2008-02-13 | 杭州华三通信技术有限公司 | 基于pcie交换网的组播实现方法、系统及设备 |
CN101277195A (zh) * | 2007-03-30 | 2008-10-01 | 杭州华三通信技术有限公司 | 一种交换网通信系统、实现方法及交换装置 |
CN102006226A (zh) * | 2010-11-19 | 2011-04-06 | 福建星网锐捷网络有限公司 | 报文缓存管理方法、装置及网络设备 |
CN102098154A (zh) * | 2011-01-29 | 2011-06-15 | 华为技术有限公司 | 传输精确时钟同步协议消息的方法、设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287114B2 (en) * | 2005-05-10 | 2007-10-23 | Intel Corporation | Simulating multiple virtual channels in switched fabric networks |
-
2011
- 2011-08-11 CN CN201110229658.6A patent/CN102263698B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277195A (zh) * | 2007-03-30 | 2008-10-01 | 杭州华三通信技术有限公司 | 一种交换网通信系统、实现方法及交换装置 |
CN101123529A (zh) * | 2007-09-21 | 2008-02-13 | 杭州华三通信技术有限公司 | 基于pcie交换网的组播实现方法、系统及设备 |
CN102006226A (zh) * | 2010-11-19 | 2011-04-06 | 福建星网锐捷网络有限公司 | 报文缓存管理方法、装置及网络设备 |
CN102098154A (zh) * | 2011-01-29 | 2011-06-15 | 华为技术有限公司 | 传输精确时钟同步协议消息的方法、设备及系统 |
Non-Patent Citations (2)
Title |
---|
《PCI ExPress 交换及桥接芯片的展望》;Steve Moore;《今日电子》;20090130;全文 * |
Steve Moore.《PCI ExPress 交换及桥接芯片的展望》.《今日电子》.2009, |
Also Published As
Publication number | Publication date |
---|---|
CN102263698A (zh) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102263698B (zh) | 虚拟通道的建立方法、数据传输的方法及线卡 | |
CN102281254B (zh) | 服务器串口设计系统及方法 | |
CN100579108C (zh) | 一种远程密钥验证的方法和主机结构适配器 | |
US9594718B2 (en) | Hardware accelerated communications over a chip-to-chip interface | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
US8776080B2 (en) | Management component transport protocol interconnect filtering and routing | |
CN101222430B (zh) | 一种高速多协议数据传输系统和方法 | |
CN106155960A (zh) | 基于gpio握手和edma的uart串口通信方法 | |
CN101599004B (zh) | 基于fpga的sata控制器 | |
CN102316043B (zh) | 端口虚拟化方法、交换机及通信系统 | |
JPS6387435A (ja) | エレベ−タシステムの情報伝送制御方法 | |
CN102811152B (zh) | 一种多主总线网络通讯实时交易数据交换实现方法 | |
CN104731635A (zh) | 一种虚拟机访问控制方法,及虚拟机访问控制系统 | |
CN104798010A (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN101540764A (zh) | 一种基于fpga的面向虚拟机的数据传输和路由方法 | |
US20170262389A1 (en) | System-on-chip and method for exchanging data between computation nodes of such a system-on-chip | |
CN111581136B (zh) | 一种dma控制器及其实现方法 | |
CN105530157A (zh) | Afdx网络交换机多个虚拟链路共享信用的方法 | |
CN103347077A (zh) | 分布式文件系统的数据传输方法和装置 | |
CN104468404B (zh) | 一种缓冲区配置方法及装置 | |
CN113204517B (zh) | 一种电力专用以太网控制器的核间共享方法 | |
CN109743350A (zh) | 一种科学计算应用影像区交换通信模式的卸载实现方法 | |
CN101334763B (zh) | 主机与设备之间的数据传送方法 | |
CN101197782B (zh) | 一种基于多核处理器的网络设备的控制方法及系统 | |
CN114448963B (zh) | 一种融合控制架构下外设共享通信的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS CO., LTD. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Fujian Xingwangruijie Network Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |