网络设备的流控方法和流控装置以及网络设备的制造方法
【专利摘要】本发明公开了一种网络设备的流控方法和装置以及网络设备。基于本发明,接口板的逻辑装置可以将出方向上的数据以太报文的发送完成信息封装在流控以太报文上报,流控以太报文可以被主板的以太交换芯片转发至主板的逻辑装置,主板的逻辑装置通过对流控以太报文的解析能够得到所述的发送完成信息、并封装在流控消息中写入主板的内存供主板的CPU即时读取,使主板的CPU能够及时感知出方向上的数据以太报文是否发生拥塞,从而有利于准确实现网络设备出方向上的QOS。而且,本发明还能够避免发送完成信息的上报影响数据以太报文的传送,并实现CPU对数据以太报文的发送和接收的松耦合。
【专利说明】
网络设备的流控方法和流控装置以及网络设备
技术领域
[0001]本发明涉及网络技术,特别涉及网络设备的流控方法、网络设备的流控装置、以及网络设备。
【背景技术】
[0002]网络设备可以采用以太总线架构,并且,在以太总线架构中,主板的CPU与主板的以太交换芯片之间的以太数据通道、主板的以太交换芯片与接口板的逻辑装置之间的以太数据通道、以及接口板的逻辑装置与接口板的接口芯片之间的接口数据通道可能会存在物理带宽相互不匹配的情况。
[0003]因此,网络设备容易在出方向上发生数据报文的拥塞。若主板的CPU无法及时感知前述拥塞及前述拥塞的解除,则难以准确实现网络设备出方向上的Q0S(Quality ofService,服务质量)。
【发明内容】
[0004]有鉴于此,本发明的实施例提供了一种网络设备的流控方法、一种网络设备的流控装置、以及网络设备。
[0005]在一个实施例中,一种网络设备的流控方法应用于网络设备的接口板的逻辑装置中,并且,所述流控方法包括:
[0006]依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文;
[0007]将所述流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入以太数据通道。
[0008]可选地,所述流控方法进一步在所述流控以太报文中填充所述接口板的接口板标识、以及在所述出方向上完成发送的数据以太报文对应的逻辑通道标识。
[0009]在另一个实施例中,一种网络设备的流控方法应用于网络设备的主板的逻辑装置中,并且,所述流控方法包括:
[0010]从主板的以太交换芯片接收流控以太报文;
[0011]从所述流控以太报文中解析得到发送完成信息;
[0012]构造包含所述发送完成信息的流控消息;
[0013]将所述流控消息写入主板的CPU的内存。
[0014]可选地,所述流控方法以DMA的方式向所述内存写入所述流控消息。
[0015]可选地,所述流控方法进一步以中断的方式通知所述CPU从所述内存读取所述流控消息。
[0016]可选地,所述流控方法进一步依据所述流控以太报文中的接口板标识和逻辑通道标识,将所述流控消息写入至所述内存中对应的发送完成队列中。
[0017]在又一个实施例中,一种网络设备的流控方法应用于网络设备的主板的CPU中,并且,所述流控方法包括:
[0018]当网络设备的接口板中维护的发送缓存队列的状态为非满时,将出方向上的数据以太报文送入以太数据通道;
[0019]当所述发送缓存队列的状态为满时,将出方向上的数据以太报文送入QOS队列中缓存,直至所述发送缓存队列的状态变为非满;
[0020]当从主板的逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息;
[0021]以及,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。
[0022]可选地,所述流控方法以轮询的方式或响应中断的方式从所述内存中读取流控消息。
[0023]可选地,所述流控方法依据从所述内存中的发送完成队列中读取的所述流控消息,维护对应的所述发送缓存队列的状态。
[0024]在一个实施例中,一种网络设备的流控装置应用于网络设备的接口板的逻辑装置中,并且,所述流控装置包括:
[0025]报文构造模块,依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文;
[0026]报文上送模块,将所述流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入以太数据通道。
[0027]可选地,所述报文构造模块进一步在所述流控以太报文中填充所述接口板的接口板标识、以及在所述出方向上完成发送的数据以太报文对应的逻辑通道标识。
[0028]在另一个实施例中,一种网络设备的流控装置应用于网络设备的主板的逻辑装置中,并且,所述流控装置包括:
[0029]报文接收模块,从主板的以太交换芯片接收流控以太报文;
[0030]报文解析模块,从所述流控以太报文中解析得到发送完成信息;
[0031]消息构造模块,构造包含所述发送完成信息的流控消息;
[0032]消息上报模块,将所述流控消息写入主板的CPU的内存。
[0033]可选地,所述消息上报模块以DMA的方式向所述内存写入所述流控消息。
[0034]可选地,所述消息上报模块进一步以中断的方式通知所述CPU从所述内存读取所述流控消息。
[0035]可选地,所述消息上报模块进一步依据所述流控以太报文中的接口板标识和逻辑通道标识,将所述流控消息写入至所述内存中对应的发送完成队列中。
[0036]在又一个实施例中,一种网络设备的流控装置应用于网络设备的主板的CPU中,并且,所述流控装置包括:
[0037]发送驱动模块,当网络设备的接口板中维护的发送缓存队列的状态为非满时,将出方向上的数据以太报文送入以太数据通道;
[0038]QOS缓存模块,当所述发送缓存队列的状态为满时,将出方向上的数据以太报文送AQOS队列中缓存,直至所述发送缓存队列的状态变为非满;
[0039]内存读取模块,当从主板的逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息;
[0040]队列维护模块,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。
[0041]可选地,所述内存读取模块以轮询的方式或响应中断的方式从所述内存中读取流控消息。
[0042]可选地,所述队列维护模块依据从所述内存中的发送完成队列中读取的所述流控消息,维护对应的所述发送缓存队列的状态。
[0043]在一个实施例中,一种网络设备,包括接口板和主板,所述接口板具有第一逻辑装置,所述主板具有CPU、内存、以太交换芯片、以及第二逻辑装置;
[0044]所述第一逻辑装置和所述CPU之间形成有途经所述以太交换芯片的以太数据通道,并且,所述第一逻辑装置中维护有发送缓存队列和接收缓存队列;
[0045]所述第一逻辑装置依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文,以及,将所述流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入所述以太数据通道;
[0046]所述第二逻辑装置从所述以太交换芯片接收所述流控以太报文,从所述流控以太报文中解析得到发送完成信息、并构造包含所述发送完成信息的流控消息,以及,将所述流控消息写入主板的CPU的内存;
[0047]所述CPU在所述发送缓存队列的状态为非满时,将出方向上的数据以太报文送入所述以太数据通道;在所述发送缓存队列的状态为满时,将出方向上的数据以太报文送入QOS队列中缓存,直至所述发送缓存队列的状态变为非满;在从所述第二逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息;以及,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。
[0048]可选地,所述第一逻辑装置进一步在所述流控以太报文中填充所述接口板的接口板标识、以及在所述出方向上完成发送的数据以太报文对应的逻辑通道标识;所述第二逻辑装置进一步依据所述流控以太报文中的接口板标识和逻辑通道标识,将所述流控消息写入至所述内存中对应的发送完成队列中;以及,所述流控方法依据从所述内存中的发送完成队列中读取的所述流控消息,维护对应的所述发送缓存队列的状态。
[0049]可选地,所述第二逻辑装置以DMA的方式向所述内存写入所述流控消息。
[0050]可选地,所述CPU以轮询的方式从所述内存读取所述流控消息;或者,所述第二逻辑装置进一步以中断的方式通知所述CPU从所述内存读取所述流控消息,所述CPU以响应中断的方式读取所述流控消息。
[0051]由此可见,接口板的逻辑装置可以将出方向上的数据以太报文的发送完成信息封装在流控以太报文中上报,流控以太报文可以被主板的以太交换芯片转发至主板的逻辑装置,主板的逻辑装置通过对流控以太报文的解析能够得到所述的发送完成信息、并封装在流控消息中写入主板的内存供主板的CPU即时读取,使主板的CPU能够及时感知出方向上的数据以太报文是否发生拥塞,从而有利于准确实现网络设备出方向上的Q0S。而且,发送完成信息的上报不占用CPU与以太交换芯片之间的以太数据通道,以避免影响数据以太报文的传送;以及,CPU对出方向数据以太报文的发送完成信息的处理与对入方向的数据以太报文的处理相互独立,以实现CPU对数据以太报文的发送和接收的松耦合。
【附图说明】
[0052]图1为一个实施例中的网络设备的示例性结构示意图;
[0053]图2为图1中示出的第一逻辑装置的原理图;
[0054]图3为图1和图2中示出的流控以太报文的有效数据段的示意图;
[0055]图4为图1中示出的第二逻辑装置的原理图;
[0056]图5为图1中示出的流控消息的示意图;
[0057]图6为图1中示出的流控消息在内存中的存放方式的示意图;
[0058]图7为图1中示出的CPU的原理图;
[0059]图8为一个实施例中的网络设备的流控方法的流程示意图;
[0060]图9为另一个实施例中的网络设备的流控方法的流程示意图;
[0061]图10为又一个实施例中的网络设备的流控方法的流程示意图;
[0062]图11为一个实施例中的网络设备的流控装置的结构示意图;
[0063]图12为另一个实施例中的网络设备的流控装置的结构示意图;
[0064]图13为又一个实施例中的网络设备的流控装置的结构示意图;
[0065]图14为如图13所示流控装置的一种实现方式的示意图。
【具体实施方式】
[0066]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0067]请参见图1,在一个实施例中,网络设备100可以采用以太总线架构,并包括接口板11和主板12。接口板11具有接口芯片111和第一逻辑装置112,并且,主板12具有CPU121、以太交换芯片122、内存123、以及第二逻辑装置124。
[0068]接口芯片111可以为网络设备100提供外部接口,并处理通过外部接口收发的报文。例如,接口芯片111提供的外部接口可以连接(Wide Area Network,广域网),相应地,接口芯片111提供的外部接口可以称为WAN接口。其中,这里所述的WAN接口可以是ADSL (Asymmetric Digital Subscriber Line,非对称数字用户线路)接口和总线、采用TDM(Time Divis1n Multiplexing,时分复用)技术的 E1/T1 接口和总线、Consle (串口 )接口和总线、或P0S(Packet over SONET/SDH, S0NET/SDH承载包)接口。另外,接口芯片111还通过接口总线131连接第一逻辑装置11。
[0069]以太交换芯片122分别与第一逻辑装置112和CPU 121通过以太总线132和133连接。
[0070]内存123通过内存总线141连接CPU 121。
[0071]第二逻辑装置124 通过例如 PC1-E (Peripheral ComponentInterconnect-Express,扩展外设部件互连标准)总线等1/0总线142连接CPU 121,并且,第二逻辑装置124还通过以太总线130与以太交换芯片123连接。相应地,CPU 121可访问内存123,并且,第二逻辑装置124可以通过CPU 121以DMA (Direct Memory Access,直接内存访问)方式访问内存123。其中,这里所述的DMA方式是指:CPU 121中承载有连接内存总线141、并对应内存123的内存控制器,CPU 121中还承载有连接PC1-E总线142、并对应第二逻辑装置124的PC1-E控制器,当第二逻辑装置124以DMA方式访问内存123时,CPU 121中的PC1-E控制器可以将访问命令传递给内存控制器、以实现对内存123的直接访问。
[0072]在网络设备100的出方向上,从CPU 121发出的数据以太报文通过以太总线133、以太交换芯片122、以及以太总线132传输至第一逻辑装置112。
[0073]在网络设备100的入方向上,第一逻辑装置112发出的数据以太报文通过以太总线132、以太交换芯片122、以及以太总线133传输至CPU 121。
[0074]S卩,以太交换芯片122与第一逻辑装置112和CPU 121之间的以太总线132和133主要承担数据以太报文的传输,因此,以太总线132和133可以被视为以太数据通道,并且,可以认为,第一逻辑装置112与CPU 121之间形成有途经以太交换芯片122的以太数据通道。另外,以太数据通道可以多块接口板复用,并且,接口板可以在逻辑上形成多条逻辑通道,即,以太数据通道可以被逻辑上划分出的多条逻辑通道复用。
[0075]请参见图1并同时结合图2,第一逻辑装置112中维护有出方向上的发送缓存队列
21、以及入方向上的接收缓存队列22。
[0076]在出方向上,来自CPU 121的数据以太报文40缓存在发送缓存队列21中,并且,发送缓存队列21中的数据以太报文40被转换为外部接口报文40’后,通过接口总线131向接口芯片111发出;
[0077]在入方向上,来自WAN芯片111的外部接口报文40’被转换为数据以太报文40、并缓存在接收缓存队列22中,接收缓存队列22中的数据以太报文40被送入以太数据通道(即,以太总线132) ο
[0078]另外,当接口板11存在多条逻辑通道时,每个逻辑通道分别对应一个发送缓存队列21和一个接收缓存队列22。
[0079]第一逻辑装置112还可以依据发送缓存队列21中被送出的数据以太报文40,构造包含发送完成信息的流控以太报文31,以告知CPU 121数据以太报文40在出方向上的发送是否发生拥塞。
[0080]请参见图3,上述的流控以太报文31可以采用最小以太报文长度,即64字节,并且,上述的流控以太报文31中包括的以下内容可以作为以太报文的有效数据段被封装在以太报文中:
[0081]流控以太报文标识31a,其表示当前的以太报文为流控以太报文31 ;
[0082]接口板标识31b,其标识构造该流控以太报文31的接口板11 ;
[0083]逻辑通道标识31c,其标识该流控以太报文31中的发送完成信息对应的逻辑通道;
[0084]发送完成信息30,其表示对应逻辑通道在出方向上的以太数据报文的发送状况,例如,在上一个流控以太报文31之后完成发送的以太数据报文的个数;
[0085]以及,保留域31d,其可用于对流控以太报文31的扩展。
[0086]第一逻辑装置112构造出的流控以太报文31可以在入方向上被优先于接收缓存队列22中的数据以太报文送入以太数据通道,以借助以太数据通道的一部分向CPU 121上报。此处所述的以太数据通道的一部分,可以包括以太交换芯片122与第一逻辑装置112之间的一段以太总线132,并且,可以不包括以太交换芯片122与CPU 121之间的另一段以太总线133。相应地,流控以太报文31随入方向上的数据以太报文到达以太交换芯片122之后,可以被以太交换芯片122通过以太总线130转发至第二逻辑装置124,而不会向入方向上的数据以太报文那样通过以太总线133被上报至CPU 121。
[0087]S卩,流控以太报文31在以太交换芯片122中的处理方式不同于入方向上的数据以太报文。第一逻辑装置112可以为流控以太报文31设置高于数据以太报文的优先级,较高的优先级不但可以确保流控以太报文31可以在入方向上被优先于接收缓存队列22中的数据以太报文送入以太数据通道(即,以太总线132),而且,还可以使以太交换芯片122依据优先级的不同而区别流控以太报文31和数据以太报文的处理方式。例如,以太交换芯片122的端口可以对应地配置有ACL(Access Control List,访问控制列表),使具有较高优先级的报文(如流控以太报文31)从连接以太总线130的端口转发,并使具有较低优先级的报文(如数据以太报文)从连接以太总线133的端口转发。
[0088]以太交换芯片122与第二逻辑装置124之间的以太总线130主要承担流控以太报文从以太交换芯片122向第二逻辑装置124的转发,因此,以太总线130可以被视为以太流控通道。并且,对应任意接口板的任意逻辑通道的流控以太报文31都可以通过以太流控通道传输,因此,以太流控通道也可以被多块接口板、以及逻辑上划分出的多条逻辑通道复用。
[0089]请参见图4,当第二逻辑装置124通过以太总线130从以太交换芯片122接收到流控以太报文31后,可以从流控以太报文31中解析得到发送完成信息30、并构造包含发送完成信息30的流控消息32。并且,第二逻辑装置124可以将流控消息32写入(可以采用DMA方式)内存123。
[0090]请参见图5,上述的流控消息32可以为I/O总线消息并包括:
[0091]发送完成信息30;
[0092]流控有效位32a,其可以被第二逻辑装置124置为有效、以表示该流控消息32当前尚未被CPU 121读取,并在流控消息32被CPU 121读取后被CPU 121置为无效;
[0093]保留域32b,其可用于对流控消息32的扩展。
[0094]请参见图1并结合图6,内存123中可以设置发送完成队列23,第二逻辑装置124可以将流控消息32写入至发送完成队列23中。并且,当存在多块接口板和多条逻辑通道时,每块接口板的每个逻辑通道在内存123中分别对应一个发送完成队列23,第二逻辑装置124可以依据从流控以太报文31中解析出的接口板标识和逻辑通道标识,识别出流控消息32对应的接口板和逻辑通道,并将流控消息32写入至与其对应相同接口板的相同逻辑通道的发送完成队列23中。例如,对于接口板i的逻辑通道j (i和j均为正整数),第二逻辑装置124可以从发送完成队列的首地址QueHeadAddress_i_j开始依次写入对应逻辑通道的流控消息I?M(M为正整数)。
[0095]CPU 121通过读取内存123可以获得流控消息32。例如,对于CPU 121选用单核CHJ的情况,第二逻辑装置124可以采用中断方式通知CPU 121,相应地,CPU 121以响应中断的方式从内存123读取流控消息32。再例如,对于CPU 121选用多核CPU的情况,第二逻辑装置124可以不是必须通知CPU 121,而是由CPU 121中的一个指定核以轮询的方式从内存123读取流控消息32。
[0096]并且,CPU 121可以依据流控消息32中的发送完成信息感知数据以太报文在出方向上的发送是否发生拥塞。进而,结合流控消息32与其对出方向上送入以太数据通道(即,以太总线133)的数据以太报文的统计,CPU 121可以即时响应数据以太报文在出方向上的拥塞及拥塞解除。
[0097]请参见图1并结合图7,CPU 121具有网络报文协议层401、驱动层402、以及位于网络报文协议层401与驱动层402之间的QOS队列403。
[0098]网络报文协议层401负责处理数据以太报文40,并能够感知数据以太报文在出方向上的发送是否发生拥塞。
[0099]驱动层402负责执行数据以太报文40通过以太数据通道在入方向和出方向上的传输、访问内存123中的流控消息32、维护出方向上送入以太数据通道(S卩,以太总线133)的数据以太报文40的发送统计结果、以及维护接口板11中的发送缓存队列21的队列状态42并上报给网络报文协议层401。并且,当存在多块接口板和多条逻辑通道时,驱动层402可以依据从内存123中对应的发送完成队列中读取的流控消息32维护对应的发送缓存队列21的队列状态42。
[0100]对于出方向,当将数据以太报文40送入以太数据通道(即,以太总线133)后,驱动层402对出方向上送入以太数据通道(S卩,以太总线133)的数据以太报文40的发送统计结果累加相应的数值。当发送统计结果的数值到达发送缓存队列21的缓存上限时,驱动层402将表示非满状态的队列状态42置为满状态。
[0101]并且,驱动层402依据可以依据流控消息32中的发送完成信息30所表示的已完成发送的数据以太报文40的数量,对出方向上送入以太数据通道的数据以太报文40的发送统计结果减少相应的数值。当发送统计结果的数值低于发送缓存队列21的缓存上限时,驱动层402将表示满状态的队列状态42置为非满状态。
[0102]相应地,若驱动层402向网络报文协议层401上报的队列状态42为非满,则网络报文协议层401将出方向上的数据以太报文40下发(Q0S队列403中缓存的数据以太报文40优先)至驱动层402,由驱动层402将下发的数据以太报文40送入以太数据通道(即,以太总线133)。若驱动层402向网络报文协议层401上报的队列状态42为满,则网络报文协议层401将出方向上的数据以太报文40送入QOS队列中缓存,直至驱动层402向网络报文协议层401上报的队列状态42变为非满。
[0103]如上可见,接口板11的第一逻辑装置112可以将出方向上的数据以太报文的发送完成信息30封装在流控以太报文31中上报,该流控以太报文31可以被主板12的以太交换芯片122转发至主板12的第二逻辑装置124,第二逻辑装置124通过对流控以太报文31的解析能够得到发送完成信息30、并封装在流控消息32中写入主板12的内存123供主板12的CPU 121即时读取,使主板12的CPU 121能够及时感知出方向上的数据以太报文是否发生拥塞,从而有利于准确实现网络设备出方向上的Q0S。
[0104]而且,发送完成信息30的上报不占用CPU 121与以太交换芯片122之间的以太数据通道133,从而能够避免影响数据以太报文的传送;以及,CPU 121对出方向数据以太报文的发送完成信息30的处理与对入方向的数据以太报文的处理相互独立,从而实现CPU121对数据以太报文的发送和接收的松耦合。
[0105]基于上述的原理,以下的实施例中还相应地提供了网络设备的流控方法和装置,下面分别予以详细说明。
[0106]请参见图8,在一个实施例中,网络设备的流控方法可以应用于网络设备的接口板的逻辑装置(例如图1中示出的第一逻辑装置112)中,并且,该流控方法可以包括:
[0107]S811,依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文;
[0108]S812,将构造出的流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入以太数据通道。
[0109]其中,上述的S811可以进一步为构造的流控以太报文设置高于数据以太报文的优先级。并且,对于存在多块接口板以及接口板形成多条逻辑通道的情况,上述的S811还可以进一步在流控以太报文中填充接口板的接口板标识、以及在出方向上完成发送的数据以太报文对应的逻辑通道标识。
[0110]请参见图9,在另一个实施例中,网络设备的流控方法可以应用于网络设备的主板的逻辑装置(例如图1中示出的第二逻辑装置124)中,并且,该流控方法可以包括:
[0111]S821,从主板的以太交换芯片接收流控以太报文;
[0112]S822,从接收到的流控以太报文中解析得到发送完成信息;
[0113]S823,构造包含该发送完成信息的流控消息;
[0114]S824,将构造出的流控消息写入主板的CPU的内存。
[0115]其中,上述的S824可以采用DMA的方式向内存写入流控消息,并且,上述的S824还可以进一步采用中断的方式通知CPU从内存中读取流控消息。并且,对于存在多块接口板以及接口板形成多条逻辑通道的情况,上述的S822可以进一步从流控以太报文中解析得到接口板标识和逻辑通道标识,相应地,上述的S824可以依据解析得到的接口板标识和逻辑通道标识将流控消息写入至内存中对应的发送完成队列中。
[0116]请参见图10,在又一个实施例中,网络设备的流控方法可以应用于网络设备的主板的CPU(例如图1中示出的CPU 121)中,并且,该流控方法可以包括:
[0117]S830,判断网络设备的接口板中维护的发送缓存队列的状态;
[0118]S831,当该发送缓存队列的状态为非满时,将出方向上的数据以太报文送入以太数据通道;
[0119]S832,当发送缓存队列的状态为满时,将出方向上的数据以太报文送入QOS队列中缓存,直至该发送缓存队列的状态变为非满。
[0120]S841,当从主板的逻辑装置接收到读取内存的通知时,从主板的内存中读取流控消息;
[0121]S842,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及读取到的流控消息中的发送完成信息维护发送缓存队列的状态。
[0122]其中,上述的S841可以通过轮询的方式或响应中断的方式从主板的内存中读取流控消息。并且,对于存在多块接口板以及接口板形成多条逻辑通道的情况,上述的S841从对应的发送完成队列中读取的流控消息可以用于S842维护对应的发送缓存队列的状
??τ O
[0123]请参见图11,对应如图8所示的流控方法,在一个实施例中对应地提供了一种网络设备的流控装置91,该流控装置91可以应用于网络设备的接口板的逻辑装置(例如图1中示出的第一逻辑装置112)中,并且,该流控装置91可以包括:
[0124]报文构造模块911,依据发送缓存队列21中被送出的数据以太报文,构造包含发送完成信息的流控以太报文;
[0125]报文上送模块912,将流控以太报文在入方向上优先于接收缓存队列22中的数据以太报文送入以太数据通道。
[0126]其中,上述的报文构造模块911可以进一步为构造的流控以太报文设置高于数据以太报文的优先级。并且,对于存在多块接口板以及接口板形成多条逻辑通道的情况,上述的报文构造模块911还可以进一步在流控以太报文中填充接口板的接口板标识、以及在出方向上完成发送的数据以太报文对应的逻辑通道标识。
[0127]请参见图12,对应如图9所示的流控方法,在另一个实施例中对应地提供了一种网络设备的流控装置92,该流控装置92可以应用于网络设备的主板的逻辑装置(例如图1中示出的第二逻辑装置124)中,并且,该流控装置92可以包括:
[0128]报文接收模块921,从主板的以太交换芯片接收流控以太报文;
[0129]报文解析模块922,从接收的流控以太报文中解析得到发送完成信息;
[0130]消息构造模块923,构造包含该发送完成信息的流控消息;
[0131]消息上报模块924,将构造的流控消息写入主板的CPU的内存。
[0132]其中,上述的消息上报模块924可以采用DMA的方式向内存写入流控消息,上述的消息上报模块924还可以进一步采用中断的方式通知CPU从内存读取流控消息。并且,对于存在多块接口板以及接口板形成多条逻辑通道的情况,上述的报文解析模块922可以进一步从流控以太报文中解析得到接口板标识和逻辑通道标识,相应地,上述的消息上报模块924可以依据解析得到的接口板标识和逻辑通道标识将流控消息写入至内存中对应的发送完成队列中。
[0133]请参见图13,对应如图10所示的流控方法,在又一个实施例中提供了一种网络设备的流控装置93,该流控装置93包括:
[0134]发送驱动模块931,当网络设备的接口板中维护的发送缓存队列的状态为非满时,将出方向上的数据以太报文送入以太数据通道;
[0135]QOS缓存模块932,当所述发送缓存队列的状态为满时,将出方向上的数据以太报文送入QOS队列中缓存,直至所述发送缓存队列的状态变为非满;
[0136]内存读取模块933,当从主板的逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息;
[0137]队列维护模块934,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。
[0138]其中,上述的内存读取模块933可以通过轮询的方式或响应中断的方式从主板的内存中读取流控消息。并且,对于存在多块接口板以及接口板形成多条逻辑通道的情况,上述的内存读取模块933从对应的发送完成队列中读取的流控消息可以用于队列维护模块934维护对应的发送缓存队列的状态。
[0139]作为一种可选的方案,上述如图13所示的流控装置93可以通过软硬结合的方式来实现。请参见图14,在包括CPU 931(可以与图1中示出的CPU 121相同)和内存932 (可以是图1中示出的内存123、也可以是其他内存)的硬件架构中,该流控装置93可以为存储于内存932中的计算机指令、并可由CPU 931读取来完成如图13所示的模块功能。从而:
[0140]当网络设备的接口板中维护的发送缓存队列的状态为非满时,CPU931将出方向上的数据以太报文送入以太数据通道;
[0141]当所述发送缓存队列的状态为满时,CPU 931将出方向上的数据以太报文送入QOS队列中缓存,直至所述发送缓存队列的状态变为非满;
[0142]当从主板的逻辑装置接收到读取内存的通知时,CPU 931从内存(例如图1中示出的内存123)中读取流控消息;
[0143]以及,CPU 931还依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。
[0144]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种网络设备的流控方法,其特征在于,所述流控方法应用于网络设备的接口板的逻辑装置中,并且,所述流控方法包括: 依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文; 将所述流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入以太数据通道。2.根据权利要求1所述的流控方法,其特征在于,所述流控方法进一步包括:在所述流控以太报文中填充所述接口板的接口板标识、以及在所述出方向上完成发送的数据以太报文对应的逻辑通道标识。3.—种网络设备的流控方法,其特征在于,所述流控方法应用于网络设备的主板的逻辑装置中,并且,所述流控方法包括: 从主板的以太交换芯片接收流控以太报文; 从所述流控以太报文中解析得到发送完成信息; 构造包含所述发送完成信息的流控消息; 将所述流控消息写入主板的CPU的内存。4.根据权利要求3所述的流控方法,其特征在于,所述流控方法以DMA的方式向所述内存写入所述流控消息。5.根据权利要求3所述的流控方法,其特征在于,所述流控方法进一步以中断的方式通知所述CPU从所述内存读取所述流控消息。6.根据权利要求3所述的流控方法,其特征在于,所述流控方法进一步依据所述流控以太报文中的接口板标识和逻辑通道标识,将所述流控消息写入至所述内存中对应的发送完成队列中。7.—种网络设备的流控方法,其特征在于,所述流控方法应用于网络设备的主板的CPU中,并且,所述流控方法包括: 当网络设备的接口板中维护的发送缓存队列的状态为非满时,将出方向上的数据以太报文送入以太数据通道; 当所述发送缓存队列的状态为满时,将出方向上的数据以太报文送入服务质量QOS队列中缓存,直至所述发送缓存队列的状态变为非满; 当从主板的逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息; 以及,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。8.根据权利要求7所述的流控方法,其特征在于,所述流控方法以轮询的方式或响应中断的方式从所述内存中读取流控消息。9.根据权利要求7所述的流控方法,其特征在于,所述流控方法依据从所述内存中的发送完成队列中读取的所述流控消息,维护对应的所述发送缓存队列的状态。10.一种网络设备的流控装置,其特征在于,所述流控装置应用于网络设备的接口板的逻辑装置中,并且,所述流控装置包括: 报文构造模块,依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文; 报文上送模块,将所述流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入以太数据通道。11.根据权利要求10所述的流控装置,其特征在于,所述报文构造模块进一步在所述流控以太报文中填充所述接口板的接口板标识、以及在所述出方向上完成发送的数据以太报文对应的逻辑通道标识。12.—种网络设备的流控装置,其特征在于,所述流控装置应用于网络设备的主板的逻辑装置中,并且,所述流控装置包括: 报文接收模块,从主板的以太交换芯片接收流控以太报文; 报文解析模块,从所述流控以太报文中解析得到发送完成信息; 消息构造模块,构造包含所述发送完成信息的流控消息; 消息上报模块,将所述流控消息写入主板的CPU的内存。13.根据权利要求12所述的流控装置,其特征在于,所述消息上报模块以DMA的方式向所述内存写入所述流控消息。14.根据权利要求12所述的流控装置,其特征在于,所述消息上报模块进一步以中断的方式通知所述CPU从所述内存读取所述流控消息。15.根据权利要求12所述的流控装置,其特征在于,所述消息上报模块进一步依据所述流控以太报文中的接口板标识和逻辑通道标识,将所述流控消息写入至所述内存中对应的发送完成队列中。16.—种网络设备的流控装置,其特征在于,所述流控装置应用于网络设备的主板的CPU中,并且,所述流控装置包括: 发送驱动模块,当网络设备的接口板中维护的发送缓存队列的状态为非满时,将出方向上的数据以太报文送入以太数据通道; QOS缓存模块,当所述发送缓存队列的状态为满时,将出方向上的数据以太报文送入服务质量QOS队列中缓存,直至所述发送缓存队列的状态变为非满; 内存读取模块,当从主板的逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息; 队列维护模块,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状态。17.根据权利要求16所述的流控装置,其特征在于,所述内存读取模块以轮询的方式或响应中断的方式从所述内存中读取流控消息。18.根据权利要求16所述的流控装置,其特征在于,所述队列维护模块依据从所述内存中的发送完成队列中读取的所述流控消息,维护对应的所述发送缓存队列的状态。19.一种网络设备,其特征在于,包括接口板和主板,所述接口板具有第一逻辑装置,所述主板具有(PU、内存、以太交换芯片、以及第二逻辑装置; 所述第一逻辑装置和所述CPU之间形成有途经所述以太交换芯片的以太数据通道,并且,所述第一逻辑装置中维护有发送缓存队列和接收缓存队列; 所述第一逻辑装置依据发送缓存队列中被送出的数据以太报文,构造包含发送完成信息的流控以太报文,以及,将所述流控以太报文在入方向上优先于接收缓存队列中的数据以太报文送入所述以太数据通道; 所述第二逻辑装置从所述以太交换芯片接收所述流控以太报文,从所述流控以太报文中解析得到发送完成信息、并构造包含所述发送完成信息的流控消息,以及,将所述流控消息写入主板的CPU的内存; 所述CPU在所述发送缓存队列的状态为非满时,将出方向上的数据以太报文送入所述以太数据通道;在所述发送缓存队列的状态为满时,将出方向上的数据以太报文送入QOS队列中缓存,直至所述发送缓存队列的状态变为非满;在从所述第二逻辑装置接收到读取内存的通知时,从所述内存中读取流控消息;以及,依据在出方向上对送入以太数据通道的数据以太报文的统计、以及所述流控消息中的发送完成信息维护所述发送缓存队列的状??τ O20.根据权利要求19所述的网络设备,其特征在于,所述第一逻辑装置进一步在所述流控以太报文中填充所述接口板的接口板标识、以及在所述出方向上完成发送的数据以太报文对应的逻辑通道标识;所述第二逻辑装置进一步依据所述流控以太报文中的接口板标识和逻辑通道标识,将所述流控消息写入至所述内存中对应的发送完成队列中;以及,所述流控方法依据从所述内存中的发送完成队列中读取的所述流控消息,维护对应的所述发送缓存队列的状态。21.根据权利要求19所述的网络设备,其特征在于,所述第二逻辑装置以DMA的方式向所述内存写入所述流控消息。22.根据权利要求21所述的网络设备,其特征在于,所述CPU以轮询的方式从所述内存读取所述流控消息;或者,所述第二逻辑装置进一步以中断的方式通知所述CPU从所述内存读取所述流控消息,所述CPU以响应中断的方式读取所述流控消息。
【文档编号】H04L12/861GK105991471SQ201510085671
【公开日】2016年10月5日
【申请日】2015年2月16日
【发明人】赵志宇, 张泽, 慕长林
【申请人】杭州华三通信技术有限公司