缓存资源的管理方法及装置制造方法
【专利摘要】本申请公开了一种缓存资源的管理方法及装置,其中,该方法包括:按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的VOQ,划分为至少两个VQG,划分得到的每一个VQG对应于该报文属性组合中的每一个报文属性的一个属性值;其中,报文属性组合由以下至少一种报文属性组成:发送方式、优先级、通用等级、入端口、协议类型、报文内容;为每一个VQG配置对应的缓存资源门限值;当需要缓存报文时,确定用于存放该报文的VOQ,根据该报文的报文属性,确定该VOQ所属的VQG;根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,确定是否将该报文存放到该VOQ中。
【专利说明】缓存资源的管理方法及装置
【技术领域】
[0001]本申请涉及资源管理【技术领域】,特别涉及一种缓存资源的管理方法及装置。
【背景技术】
[0002]在交换机、路由器等通信设备中的转发芯片上都设置有数据缓存单元,用来临时存储报文,以免报文发生丢失。例如,当网络拥塞时,端口不能立即发送报文,就会将报文先存储到数据缓存单元中。报文能够缓存的时间越长,代表通信设备对于突发事件的适应能力越强。因此,如何管理数据缓存资源,提高缓存利用率是非常重要的一项技术。
[0003]目前,在基于VOQ (Virtual Output Queue,虚拟输出队列)进行数据转发的设备中,缓存资源管理的方法是基于VOQ进行管理,缓存资源管理的单位是V0Q,每一个VOQ对应一个出端口和一个优先级(Traffic Class,TC)。现有的缓存资源管理方法是,为每一个VOQ配置对应的缓存资源门限值,即,VOQ最多可以占用大小为对应的缓存资源门限值的缓存资源;当有一个报文需要缓存时,根据该报文的出端口和优先级,确定该报文需要存放到的V0Q;判断该VOQ当前已经占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VOQ对应的缓存资源门限值,若是,则丢弃该报文,否则,该报文存放到该VOQ中进行缓存。
[0004]但是,这种按照VOQ进行缓存管理的方法存在以下问题:
[0005](I)需要根据对应的出端口和优先级,为每一个VOQ配置一个缓存资源门限值,当VOQ的数量很大时,配置工作量较大;
[0006](2)以VOQ为单位进行缓存资源管理,由于VOQ是与确定的物理属性:出端口和优先级对应的,因此,只能根据报文出端口和优先级来管理缓存资源,管理方式比较单一,不灵活。
【发明内容】
[0007]本申请提供了一种缓存资源的管理方法及装置,旨在解决现有技术中存在的配置工作量较大,管理方式单一和不灵活的问题。
[0008]本申请的技术方案如下:
[0009]一方面,提供了一种缓存资源的管理方法,包括:
[0010]按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG,划分得到的每一个VQG对应于该报文属性组合中的每一个报文属性的一个属性值;其中,报文属性组合由以下至少一种报文属性组成:发送方式、优先级、通用等级、入端口、协议类型、报文内容;
[0011]为每一个VQG配置对应的缓存资源门限值;
[0012]当需要缓存报文时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG ;
[0013]根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,确定是否将该报文存放到该VOQ中。
[0014]另一方面,还提供了一种缓存资源的管理装置,包括:
[0015]划分模块,用于按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG,划分得到的每一个VQG对应于该报文属性组合中的每一个报文属性的一个属性值;其中,报文属性组合由以下至少一种报文属性组成:发送方式、优先级、通用等级、入端口、协议类型、报文内容;
[0016]配置模块,用于为每一个VQG配置对应的缓存资源门限值;
[0017]确定模块,用于当需要缓存报文时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG ;
[0018]处理模块,用于根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,确定是否将该报文存放到该VOQ中。
[0019]本申请的以上技术方案中,先按照由至少一个报文属性组成的报文属性组合中的所有报文属性,将VOQ划分为多个(即至少两个)VQG,然后,为每一个VQG配置对应的缓存资源门限值,后续,当有报文需要缓存时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG,之后根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,来确定是否可以将该报文存放到该VOQ中。
[0020]在上述方法中,由于将VOQ划分成多个VQG,为VQG配置对应的缓存资源门限值,显然,由于只需为少量的几个VQG配置对应的缓存资源门限值,因此极大地减少了配置工作量;而且,按照发送方式、优先级、通用等级、入端口、协议类型、报文内容等上层应用相关的报文属性中的至少一种报文属性,将VOQ划分成多个VQG,为每一个VQG配置对应的缓存资源门限值,从而,以VQG作为缓存资源管理的单位,通过控制每一个VQG的缓存资源占用率来管理缓存资源,这样,可以根据用户的实际需求,以统计的方式来管理缓存资源,管理方式比较灵活,能够更加合理地分配缓存资源。
[0021]另外,将VOQ划分成多个VQG,对每一个VQG配置对应的缓存资源门限值,以VQG为单位实现缓存资源的管理,而不是以VOQ为单位进行缓存资源的管理,从而,同一 VQG中的所有VOQ能够共享该VQG占用的缓存资源,提高了缓存资源利用率。
【专利附图】
【附图说明】
[0022]图1是本申请实施例一的缓存资源的管理方法的流程图;
[0023]图2是本申请实施例一的例一中的缓存资源的管理方法的具体处理流程图;
[0024]图3是本申请实施例一的例二中的缓存资源的管理方法的具体处理流程图;
[0025]图4是本申请实施例一的例三中的缓存资源的管理方法的具体处理流程图;
[0026]图5是本申请实施例三的包含有缓存资源的管理装置的通信设备的硬件结构示意图。
【具体实施方式】
[0027]交换机、路由器等通信设备上设置有多个报文转发芯片,每一个报文转发芯片中均设置有数据缓存单元,用于临时存储报文,以免报文发生丢失。为了提高通信设备对于突发事件的适应能力,需要对数据缓存单元的缓存资源进行合理的管理。
[0028]为了解决现有技术的缓存资源管理方法中存在的配置工作量较大,管理方式单一和不灵活的问题,本申请以下实施例中提供了一种缓存资源的管理方法,以及一种可以应用该方法的装置。
[0029]实施例一
[0030]如图1所示,本申请实施例中的缓存资源的管理方法包括以下步骤:
[0031]步骤S102,按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG (VOQ Group,虚拟输出队列组),划分得到的每一个VQG对应于该报文属性组合中的每一个报文属性的一个属性值;
[0032]本申请实施例中,报文属性指的是发送方式、优先级、通用等级(Common Class,CC)、入端口、协议类型、报文内容等属性,而每一种报文属性可以有多个属性值。例如,发送方式有3个属性值:单播、非单播、上送CPU (中央处理器);优先级的属性值有O?7这8个优先级;通用等级的属性值可以有高优先级和低优先级这2个通用等级,也可以有高优先级、中优先级、低优先级这3个通用等级;等等。
[0033]步骤S102中的报文属性组合可以由至少一种报文属性组成。
[0034]步骤S104,为每一个VQG配置对应的缓存资源门限值;
[0035]步骤S106,当需要缓存报文时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG;
[0036]步骤S108,根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,来确定是否将该报文存放到该VOQ中。
[0037]也就是说,如果该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和(将该和记为P),大于该VQG对应的缓存资源门限值,则丢弃该报文,否则,将该报文存放到该VOQ中,并将该VQG当前占用的缓存资源值更新为P。
[0038]本申请实施例的方法中,先按照由至少一个报文属性组成的报文属性组合中的所有报文属性,将VOQ划分为多个(即至少两个)VQG,然后,为每一个VQG配置对应的缓存资源门限值,后续,当有报文需要缓存时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG,之后根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,来确定是否可以将该报文存放到该VOQ中。
[0039]在上述方法中,由于将VOQ划分成多个VQG,为VQG配置对应的缓存资源门限值,显然,由于只需为少量的几个VQG配置对应的缓存资源门限值,因此极大地减少了配置工作量;而且,按照发送方式、优先级、通用等级、入端口、协议类型、报文内容等上层应用相关的报文属性中的至少一种报文属性,将VOQ划分成多个VQG,为每一个VQG配置对应的缓存资源门限值,从而,以VQG作为缓存资源管理的单位,通过控制每一个VQG的缓存资源占用率来管理缓存资源,这样,可以根据用户的实际需求,以统计的方式来管理缓存资源,管理方式比较灵活,能够更加合理地分配缓存资源。
[0040]另外,将VOQ划分成多个VQG,对每一个VQG配置对应的缓存资源门限值,以VQG为单位实现缓存资源的管理,而不是以VOQ为单位进行缓存资源的管理,从而,同一 VQG中的所有VOQ能够共享该VQG占用的缓存资源,提高了缓存资源利用率。[0041]在实际实施过程中,在步骤S102中可以按照一个报文属性组合对VOQ进行分组,也可以按照多个报文属性组合分别对VOQ进行分组。当报文属性组合有多个(即至少两个)时,在步骤S102中会按照每一个报文属性组合中的所有报文属性,将VOQ划分为至少两个VQG,这样,在步骤S106中根据需要缓存的报文的报文属性,确定出用于存放该报文的VOQ所属的VQG,确定结果是该VOQ所属的VQG有至少两个,之后,在步骤S108中,若判断出该VOQ所属的任一 VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,大于该VQG对应的缓存资源门限值,则丢弃该报文;若判断出该VOQ所属的每一个VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,均不大于该VQG对应的缓存资源门限值,则将该报文存放到该VOQ中。
[0042]通过多个报文属性组合分别对VOQ进行分组,为每一个分组即VQG配置对应的缓存资源门限值,可以多方位、多层次地管理缓存资源,为具有多种不同报文属性的报文提供合理的缓存资源,合理利用缓存资源。
[0043]以下分别通过几个例子,来说明上述实施例中的方法。
[0044]例一:
[0045]如图2所示,在本例一中,缓存资源的管理方法包括以下步骤:
[0046]步骤S202,按照报文的发送方式,将VOQ划分为至少两个VQG,为了描述方便,称为Global (全局)VQG,划分得到的每一个Global VQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送CPU ;
[0047]报文转发芯片对于报文的发送方式有三种:单播、非单播、以及上送CPU,因此,按照报文的发送方式,可以将VOQ划分为三个Global VQG,例如,分别记为Global VQGO,Global VQGl和 Global VQG2:
[0048]Global VQGO—单播VQG,对应于单播的发送方式,其中的VOQ用于存放单播报文;
[0049]Global VQGl—非单播VQG,对应于非单播的发送方式,其中的VOQ用于存放非单播报文,包括:组播报文、广播报文和目的地址未知的单播报文;
[0050]Global VQG2—上送CPU VQG,对应于上送CPU的发送方式,其中的VOQ用于存放去往CPU的协议报文。
[0051]步骤S204,按照报文的发送方式和优先级,将VOQ划分为至少两个VQG,为了描述方便,称为TC VQG,划分得到的每一个TC VQG对应于一个优先级和发送方式的一个属性值;
[0052]由于无论是单播报文、非单播报文、还是上送CPU的报文都是区分优先级的。因此,按照报文的发送方式和优先级,可以将VOQ划分为多个TC VQG,即,将上述三个GlobalVQG =Global VQG0, Global VQGl 和 Global VQG2 中的每一个,进一步划分为多个 TC VQG0
[0053]例如,按照发送方式和优先级,划分得到的多个TC VQG分别记为:
[0054]TC VQGO—单播TC0VQG,对应于单播的发送方式和优先级0,其中的VOQ用于存放优先级为O的单播报文;
[0055]TC VQGl—单播TC1VQG,对应于单播的发送方式和优先级I,其中的VOQ用于存放优先级为I的单播报文;
[0056]TC VQG2—单播TC2VQG,对应于单播的发送方式和优先级2,其中的VOQ用于存放优先级为2的单播报文;[0057]......[0058]TC VQG7—单播TC7VQG,对应于单播的发送方式和优先级7,其中的VOQ用于存放优先级为7的单播报文;
[0059]TC VQG8—非单播TC0VQG,对应于非单播的发送方式和优先级0,其中的VOQ用于存放优先级为O的非单播报文;
[0060]TC VQG9—非单播TC1VQG,对应于非单播的发送方式和优先级1,其中的VOQ用于存放优先级为I的非单播报文;
[0061]TC VQGlO—非单播TC2VQG,对应于非单播的发送方式和优先级2,其中的VOQ用于存放优先级为2的非单播报文;
[0062]......[0063]TC VQG15—非单播TC7VQG,对应于非单播的发送方式和优先级7,其中的VOQ用于存放优先级为7的非单播报文;
[0064]TC VQG16—上送CPU TCOVQG,对应于上送CPU的发送方式和优先级0,其中的VOQ用于存放优先级为O的上送CPU的协议报文;
[0065]TC VQG17—上送CPU TC1VQG,对应于上送CPU的发送方式和优先级1,其中的VOQ用于存放优先级为I的上送CPU的协议报文;
[0066]TC VQG18—上送CPU TC2VQG,对应于上送CPU的发送方式和优先级2,其中的VOQ用于存放优先级为2的上送CPU的协议报文;
[0067]......[0068]TC VQG23—上送CPU TC7VQG,对应于上送CPU的发送方式和优先级7,其中的VOQ用于存放优先级为7的上送CPU的协议报文。
[0069]显然,可以看出,TCVQGO ?TC VQG7 属于 Global VQGO, TC VQG8 ?TC VQG15 属于 Global VQGl, TC VQG16 ?TC VQG23 属于 Global VQG2。
[0070]上述步骤S202-S204对应于步骤S102,其中,步骤S202和步骤S204没有特定的先
后顺序。
[0071]步骤S206,根据用户的配置信息,为每一个Global VQG和每一个TC VQG配置对应的缓存资源门限值;该步骤对应于步骤S104 ;
[0072]具体的,为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数;也就是说,各个Global VQG占用的缓存资源彼此独立。
[0073]例如,Global VQGO为例,所有用于存放单播报文的VOQ (为了描述方便,称为单播V0Q)都属于Global VQG0,所有单播VOQ占用的缓存资源之和等于Global VQGO占用的缓存资源,即为大小为Global VQGO对应的缓存资源门限值的缓存资源。
[0074]通过为每一个Global VQG配置对应的缓存资源门限值,来控制Global VQGO,Global VQGl和Global VQG2占用的缓存资源彼此独立,就可以限制所有单播VOQ占用的缓存资源,所有非单播VOQ占用的缓存资源,以及,所有上送CPU VOQ占用的缓存资源,可以全局地控制单播报文、非单播报文、上送CPU的协议报文中的任一种报文拥塞的情况下,不会影响另外两种报文的存放,可以保证单播业务、非单播业务和上送CPU的业务彼此不会互相干扰,在某种业务拥塞的情况下,其他业务仍然能够正常处理。[0075]另外,在为TC VQG配置缓存资源门限值时,可以按照以下预定规则进行配置:在对应于发送方式的同一个属性值的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG。
[0076]例如,该预定规则可以是:
[0077]在对应于单播的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQGO的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;
[0078]在对应于非单播的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQGl的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;
[0079]在对应于上送CPU的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQG2的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小。
[0080]通过为TC VQG配置对应的缓存资源门限值,来控制该TC VQG占用的缓存资源,就可以限制属于该TC VQG的所有VOQ占用的缓存资源。
[0081]在按照发送方式划分得到多个Global VQG并为每一个Global VQG配置对应的缓存资源门限值之后,进一步按照发送方式和优先级划分得到多个TC VQG并为每一个TC VQG配置对应的缓存资源门限值,可以控制对应于不同发送方式(即发送方式的不同属性值)的VOQ之间的缓存资源占用比例,进一步,还可以控制同一种发送方式(即发送方式的同一个属性值)下的各优先级VOQ之间的缓存资源占用比例。
[0082]步骤S208,当需要缓存一报文时,根据该报文的出端口和优先级,确定用于存放该报文的V0Q,为了描述方便,记为VOQ-x ;根据该报文的发送方式和优先级,确定VOQ-x所属的VQG ;假设,该报文是单播报文且优先级是1,用于存放该报文的VOQ-x属于Global VQGO和 TC VQGl ;
[0083]步骤S210,判断Global VQGO当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于Global VQGO对应的缓存资源门限值,若是,则执行步骤S216,否则,执行步骤S212 ;
[0084]步骤S212,判断TC VQGl当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于TC VQGl对应的缓存资源门限值,若是,则执行步骤S216,否则,执行步骤S214 ;
[0085]步骤S214,将该报文存放到VOQ-x中;
[0086]步骤S216,丢弃该报文。
[0087]上述步骤S208?步骤S216对应于步骤S106?步骤S108。
[0088]通过例一中的方法,按照发送方式将VOQ划分成多个Global VQG,每一个GlobalVQG对应于单播、非单播、上送CPU中的一种,为每一个Global VQG使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数,这样,单播、非单播和上送CPU的业务互相不干扰。[0089]并且,按照发送方式和优先级将VOQ划分成多个TC VQG,并在为对应于同一种发送方式的所有TC VQG配置对应的缓存资源门限值时,按照以下预定规则进行配置:每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小。这样,同一发送方式下,不同优先级都可以尽可能地占用更多的缓存资源,优先级越高的VQG能占用更多的缓存资源,优先级越接近的VQG的竞争情况越激烈,确保了多个优先级拥塞的情况下,高优先级的报文不会被丢弃,同时,还满足了一定的头阻塞能力,即,避免了某一优先级报文占用了大部分甚至全部缓存资源而导致的其他优先级报文无法占用缓存资源的问题。
[0090]例二:
[0091]如图3所示,在本例二中,缓存资源的管理方法包括以下步骤:
[0092]步骤S302,按照报文的发送方式,将VOQ划分为至少两个VQG,为了描述方便,称为Global VQG,划分得到的每一个Global VQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送CPU ;
[0093]报文转发芯片对于报文的发送方式有三种:单播、非单播、以及上送CPU,因此,按照报文的发送方式,可以将VOQ划分为三个Global VQG,例如,分别记为Global VQGO,Global VQGl和 Global VQG2:
[0094]Global VQGO—单播VQG,对应于单播的发送方式,其中的VOQ用于存放单播报文;
[0095]Global VQGl—非单播VQG,对应于非单播的发送方式,其中的VOQ用于存放非单播报文,包括:组播报文、广播报文和目的地址未知的单播报文;
[0096]Global VQG2—上送CPU VQG,对应于上送CPU的发送方式,其中的VOQ用于存放去往CPU的协议报文。
[0097]步骤S304,按照报文的发送方式和优先级,将VOQ划分为至少两个VQG,为了描述方便,称为TC VQG,划分得到的每一个TC VQG对应于一个优先级和发送方式的一个属性值;
[0098]由于无论是单播报文、非单播报文、还是上送CPU的报文都是区分优先级的。因此,按照报文的发送方式和优先级,可以将VOQ划分为多个TC VQG,即,将上述三个GlobalVQG =Global VQG0, Global VQGl 和 Global VQG2 中的每一个,进一步划分为多个 TC VQG0
[0099]例如,按照发送方式和优先级,划分得到的多个TC VQG分别记为:
[0100]TC VQGO—单播TC0VQG,对应于单播的发送方式和优先级0,其中的VOQ用于存放优先级为O的单播报文;
[0101]TC VQGl—单播TC1VQG,对应于单播的发送方式和优先级I,其中的VOQ用于存放优先级为I的单播报文;
[0102]TC VQG2—单播TC2VQG,对应于单播的发送方式和优先级2,其中的VOQ用于存放优先级为2的单播报文;
[0103]......[0104]TC VQG7—单播TC7VQG,对应于单播的发送方式和优先级7,其中的VOQ用于存放优先级为7的单播报文;
[0105]TC VQG8—非单播TC0VQG,对应于非单播的发送方式和优先级0,其中的VOQ用于存放优先级为O的非单播报文;
[0106]TC VQG9—非单播TC1VQG,对应于非单播的发送方式和优先级1,其中的VOQ用于存放优先级为I的非单播报文;
[0107]TC VQGlO—非单播TC2VQG,对应于非单播的发送方式和优先级2,其中的VOQ用于存放优先级为2的非单播报文;
[0108]......[0109]TC VQG15—非单播TC7VQG,对应于非单播的发送方式和优先级7,其中的VOQ用于存放优先级为7的非单播报文;
[0110]TC VQG16—上送CPU TC0VQG,对应于上送CPU的发送方式和优先级0,其中的VOQ用于存放优先级为O的上送CPU的协议报文;
[0111]TC VQG17—上送CPU TC1VQG,对应于上送CPU的发送方式和优先级1,其中的VOQ用于存放优先级为I的上送CPU的协议报文;
[0112]TC VQG18—上送CPU TC2VQG,对应于上送CPU的发送方式和优先级2,其中的VOQ用于存放优先级为2的上送CPU的协议报文;
[0113]......[0114]TC VQG23—上送CPU TC7VQG,对应于上送CPU的发送方式和优先级7,其中的VOQ用于存放优先级为7的上送CPU的协议报文。
[0115]显然,可以看出,TCVQGO ?TC VQG7 属于 Global VQGO, TC VQG8 ?TC VQG15 属于 Global VQGl, TC VQG16 ?TC VQG23 属于 Global VQG2。
[0116]步骤S306,按照发送方式和通用等级,将VOQ划分为至少两个VQG,为了描述方便,称为CC (Common Class,通用等级)VQG,划分得到的每一个CC VQG对应于一个通用等级和发送方式的一个属性值;
[0117]利用报文的通用等级可以笼统区分报文的优先级,例如,通用等级包括:高低优先级,或者,高中低优先级,等等。比如,将TCO?TC5划归为低优先级,TC6?TC7划归为高优先级。
[0118]当通用等级包括:高低优先级时,按照发送方式和通用等级,划分得到的多个CCVQG分别记为:
[0119]CC VQGO—单播低优先级VQG,对应于单播的发送方式和低优先级,其中的VOQ用于存放低优先级(例如,TCO?TC5)的单播报文;
[0120]CC VQGl—单播高优先级VQG,对应于单播的发送方式和高优先级,其中的VOQ用于存放高优先级(例如,TC6?TC7)的单播报文;
[0121]CC VQG2—非单播低优先级VQG,对应于非单播的发送方式和低优先级,其中的VOQ用于存放低优先级(例如,TCO?TC5)的非单播报文;
[0122]CC VQG3—非单播低优先级VQG,对应于非单播的发送方式和低优先级,其中的VOQ用于存放低优先级(例如,TC6?TC7)的非单播报文;
[0123]CC VQG4—上送CPU低优先级VQG,对应于上送CPU的发送方式和低优先级,其中的VOQ用于存放低优先级(例如,TCO?TC5)的上送CPU的协议报文;
[0124]CC VQG5—上送CPU低优先级VQG,对应于上送CPU的发送方式和低优先级,其中的VOQ用于存放低优先级(例如,TC6?TC7)的上送CPU的协议报文;[0125]显然,可以看出,CCVQGO 和 CC VQGl 属于 Global VQGO,CC VQG2 和 CC VQG3 属于Global VQGl, CC VQG4 和 CC VQG5 属于 Global VQG2。
[0126]上述步骤S302-S306对应于步骤S102,其中,步骤S302、步骤S304、步骤S306没有特定的先后顺序。
[0127]步骤S308,根据用户的配置信息,为每一个Global VQG、每一个TC VQG和每一个CC VQG配置对应的缓存资源门限值;该步骤对应于步骤S104 ;
[0128]首先,为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数;也就是说,各个Global VQG占用的缓存资源彼此独立。
[0129]例如,Global VQGO为例,所有用于存放单播报文的VOQ (为了描述方便,称为单播V0Q)都属于Global VQG0,所有单播VOQ占用的缓存资源之和等于Global VQGO占用的缓存资源,即为大小为Global VQGO对应的缓存资源门限值的缓存资源。
[0130]通过为每一个Global VQG配置对应的缓存资源门限值,来控制Global VQGO,Global VQGl和Global VQG2占用的缓存资源彼此独立,就可以限制所有单播VOQ占用的缓存资源,所有非单播VOQ占用的缓存资源,以及,所有上送CPU VOQ占用的缓存资源,可以全局地控制单播报文、非单播报文、上送CPU的协议报文中的任一种报文拥塞的情况下,不会影响另外两种报文的存放,可以保证单播业务、非单播业务和上送CPU的业务彼此不会互相干扰,在某种业务拥塞的情况下,其他业务仍然能够正常处理。
[0131]其次,在为TC VQG配置缓存资源门限值时,可以按照以下预定规则进行配置:在对应于发送方式的同一个属性值的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG。
[0132]例如,该预定规则可以是:
[0133]在对应于单播的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQGO的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;
[0134]在对应于非单播的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQGl的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;
[0135]在对应于上送CPU的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQG2的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小。
[0136]通过为TC VQG配置对应的缓存资源门限值,来控制该TC VQG占用的缓存资源,就可以限制属于该TC VQG的所有VOQ占用的缓存资源。
[0137]再次,在为每一个CC VQG配置对应的缓存资源门限值时,可以按照以下预定规则进行配置:在对应于发送方式的同一个属性值的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于对应Global VQG的缓存资源门限值;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG。
[0138]例如,该预定规则可以是:
[0139]在对应于单播的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于Global VQGO的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于Global VQGO的缓存资源门限值;
[0140]在对应于非单播的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于Global VQGl的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于Global VQGl的缓存资源门限值;
[0141]在对应于上送CPU的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于Global VQG2的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于Global VQG2的缓存资源门限值。
[0142]其中,当通用等级包括:高低优先级时,对应于除最高通用等级以外的其他通用等级的CC VQG是:对应于低优先级的CC VQG ;当通用等级包括:高中低优先级时,对应于除最高通用等级以外的其他通用等级的CC VQG是:对应于中优先级的CC VQG和对应于低优先级的CC VQG。
[0143]通过为CC VQG配置对应的缓存资源门限值,来控制该CC VQG占用的缓存资源,就可以限制属于该CC VQG的所有VOQ占用的缓存资源。
[0144]在按照发送方式划分得到多个Global VQG并为每一个Global VQG配置对应的缓存资源门限值之后,进一步按照发送方式和优先级划分得到多个TC VQG并为每一个TC VQG配置对应的缓存资源门限值,进一步按照发送方式和通用等级划分得到多个CC VQG并为每一个CC VQG配置对应的缓存资源门限值,可以控制对应于不同发送方式的VOQ之间的缓存资源占用比例,进一步还可以控制同一种发送方式下的各优先级VOQ之间的缓存资源占用比例,以及进一步还可以控制同一种发送方式下的各通用等级VOQ之间的缓存资源占用比例,使得缓存资源的管理方式更为灵活。
[0145]步骤S310,当需要缓存一报文时,根据该报文的出端口和优先级,确定用于存放该报文的V0Q,为了描述方便,记为VOQ-x ;根据该报文的发送方式和优先级,确定VOQ-x所属的VQG ;假设,该报文是单播报文且优先级是1,用于存放该报文的VOQ-x属于Global VQGO,TC VQGl和 CC VQGO ;
[0146]步骤S312,判断Global VQGO当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于Global VQGO对应的缓存资源门限值,若是,则执行步骤S320,否则,执行步骤S314 ;
[0147]步骤S314,判断TC VQGl当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于TC VQGl对应的缓存资源门限值,若是,则执行步骤S320,否则,执行步骤S316 ;
[0148]步骤S316,判断CC VQGO当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于CC VQGO对应的缓存资源门限值,若是,则执行步骤S320,否则,执行步骤S318 ;
[0149]步骤S318,将该报文存放到VOQ-x中;
[0150]步骤S320,丢弃该报文。
[0151]上述步骤S310?步骤S320对应于步骤S106?步骤S108。
[0152]通过例二中的方法,按照发送方式将VOQ划分成多个Global VQG,每一个GlobalVQG对应于单播、非单播、上送CPU中的一种,为每一个Global VQG使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数,这样,单播、非单播和上送CPU的业务互相不干扰。
[0153]并且,按照发送方式和优先级将VOQ划分成多个TC VQG,并在为对应于同一种发送方式的所有TC VQG配置对应的缓存资源门限值时,按照以下预定规则进行配置:每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小。这样,同一发送方式下,不同优先级都可以尽可能地占用更多的缓存资源,优先级越高的VQG能占用更多的缓存资源,优先级越接近的VQG的竞争情况越激烈,确保了多个优先级拥塞的情况下,高优先级的报文不会被丢弃,同时,还满足了一定的头阻塞能力,即,避免了某一优先级报文占用了大部分甚至全部缓存资源而导致的其他优先级报文无法占用缓存资源的问题。
[0154]并且,进一步按照发送方式和通用等级将VOQ划分成多个CC VQG,并在为对应于同一种发送方式的所有CC VQG配置对应的缓存资源门限值时,按照以下预定规则进行配置:每一个CC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于对应Global VQG的缓存资源门限值。这样,在同一发送方式下,通用等级越高的VQG能占用更多的缓存资源,并且,保证了最高通用等级的VQG在任何情况下都能够占用一定数量的缓存资源。
[0155]另外,在另一种实施例中,还可以仅按照报文的发送方式将VOQ划分为3个GlobalVQG,以及,按照报文的发送方式和通用等级将VOQ划分为多个CC VQG,其他的步骤与上述步骤S302?步骤S320类似,这里不再赘述。
[0156]例三:
[0157]如图4所示,在本例三中,缓存资源的管理方法包括以下步骤:
[0158]步骤S402,按照报文的发送方式,将VOQ划分为至少两个Global VQG,划分得到的每一个Global VQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送CPU ;
[0159]报文转发芯片对于报文的发送方式有三种:单播、非单播、以及上送CPU,因此,按照报文的发送方式,可以将VOQ划分为三个Global VQG,例如,分别记为Global VQGO,Global VQGl和 Global VQG2:
[0160]Global VQGO—单播VQG,对应于单播的发送方式,其中的VOQ用于存放单播报文;
[0161]Global VQGl—非单播VQG,对应于非单播的发送方式,其中的VOQ用于存放非单播报文,包括:组播报文、广播报文和目的地址未知的单播报文;[0162]Global VQG2—上送CPU VQG,对应于上送CPU的发送方式,其中的VOQ用于存放去往CPU的协议报文。
[0163]步骤S404,按照报文的入端口,将VOQ划分为至少两个IPT (InPut Port,入端口)VQG,划分得到的每一个IPT VQG对应于一个入端口 ;
[0164]其中的入端口即为本转发芯片上的端口。
[0165]上述步骤S402?步骤S404对应于步骤S102。
[0166]步骤S406,根据用户的配置信息,为每一个Global VQG和每一个IPT VQG配置对应的缓存资源门限值;该步骤对应于步骤S104 ;
[0167]首先,为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数Sum;也就是说,各个Global VQG占用的缓存资源彼此独立。
[0168]通过为每一个Global VQG配置对应的缓存资源门限值,来控制Global VQGO,Global VQGl和Global VQG2占用的缓存资源彼此独立,就可以限制所有单播VOQ占用的缓存资源,所有非单播VOQ占用的缓存资源,以及,所有上送CPU VOQ占用的缓存资源,可以全局地控制单播报文、非单播报文、上送CPU的协议报文中的任一种报文拥塞的情况下,不会影响另外两种报文的存放,可以保证单播业务、非单播业务和上送CPU的业务彼此不会互相干扰,在某种业务拥塞的情况下,其他业务仍然能够正常处理。
[0169]其次,为每一个IPT VQG配置对应的缓存资源门限值为Sum/N,其中,N为预设的同时拥塞的入端口的最大数量。
[0170]通过为IPT VQG配置对应的缓存资源门限值,来控制该IPT VQG占用的缓存资源,可以限制对应于不同入端口的VOQ占用的缓存资源比例。
[0171]在按照发送方式划分得到多个Global VQG并为每一个Global VQG配置对应的缓存资源门限值之后,进一步按照入端口划分得到多个IPT VQG并为每一个IPT VQG配置对应的缓存资源门限值,可以控制对应于不同发送方式的VOQ之间的缓存资源占用比例,进一步还可以控制对应于不同入端口的IPT VOQ之间的缓存资源占用比例,使得缓存资源的管理方式更为灵活。
[0172]步骤S408,当需要缓存一报文时,根据该报文的出端口和优先级,确定用于存放该报文的V0Q,为了描述方便,记为VOQ-x ;根据该报文的发送方式和入端口,确定VOQ-x所属的VQG ;假设,该报文是单播报文且入端口是P0RT1,用于存放该报文的VOQ-x属于GlobalVQGO 和 IPT VQGl ;
[0173]步骤S410,判断Global VQGO当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于Global VQGO对应的缓存资源门限值,若是,则执行步骤S416,否则,执行步骤S412 ;
[0174]步骤S412,判断IPT VQGl当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于IPT VQGl对应的缓存资源门限值,若是,则执行步骤S416,否则,执行步骤 S414 ;
[0175]步骤S414,将该报文存放到VOQ-X中;
[0176]步骤S416,丢弃该报文。
[0177]上述步骤S408?步骤S416对应于步骤S106?步骤S108。[0178]通过例三中的方法,按照发送方式将VOQ划分成多个Global VQG,每一个GlobalVQG对应于单播、非单播、上送CPU中的一种,为每一个Global VQG使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数,这样,单播、非单播和上送CPU的业务互相不干扰。
[0179]并且,按照入端口将VOQ划分成多个IPT VQG,并为每一个IPT VQG配置对应的缓存资源门限值为Sum/N,其中,N为预设的同时拥塞的入端口的最大数量。这样,确保了不同入端口的IPT VQG能够占用尽可能多的缓存资源,同时,还满足了一定的头阻塞能力,S卩,避免了某一入端口的报文占用了大部分甚至全部缓存资源而导致的其他入端口的报文无法占用缓存资源的问题。
[0180]显然,在实际实施过程中,还可以采用更多不同的报文属性组合对VOQ进行划分,来实现对缓存资源的管理,本申请对此不做限定。
[0181]实施例二
[0182]以下通过一个具体的实例,来说明上述实施例一的例二中配置缓存资源门限值的方法。
[0183]假设,某一个交换机的转发芯片上的数据缓存单元中总的缓存大小为1000K,对各个VQG配置的缓存资源门限值如下:
[0184]1、各个Global VQG的缓存资源门限值:
[0185]Global VQGO:850K
[0186]Global VQGl:1OOK
[0187]Global VQG2:50K
[0188]2、各个TC VQG的缓存资源门限值
[0189]以对应于单播的发送方式的TC VQG为例:
[0190]TC VQGO (对应于单播和 TC0): 100K
[0191]TC VQGl (对应于单播和 TCl): 100K
[0192]TC VQG2 (对应于单播和 TC2):500K
[0193]TC VQG3 (对应于单播和 TC3):500Κ
[0194]TC VQG4 (对应于单播和 TC4):500Κ
[0195]TC VQG5 (对应于单播和 TC5):500Κ
[0196]TC VQG6 (对应于单播和 TC6):800Κ
[0197]TC VQG7 (对应于单播和 TC7):800Κ
[0198]在单播的发送方式下,进一步按照优先级来控制缓存资源门限值,对应于不同优先级的TC VOG对应的缓存资源门限值之和,不需要等于对应于单播的Global VQGO对应的缓存资源门限值,即,各个优先级占用的缓存资源不是各自独立的,而是存在共享的情况。
[0199]当没有其他优先级存在时,单个优先级可以占用最多的资源,而存在多个优先级共同竞争的情况下,就会出现各个优先级的抢占,为对应于不同优先级的TC VQG配置不同的缓存资源门限值,可以适当的调配各优先级能够占用的缓存资源。
[0200]从上述为TC VQGO?TC VQG7配置的缓存资源门限值可以看出:在对应于单播的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于Global VQGO的缓存资源门限值850K ;TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TCVQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小。
[0201]当同时存在TC0、TC2和TC7时,当TC7占用800K时,剩下的50K (Global VQGO对应的缓存资源门限值为850K)将由TC2和TCO共同抢占,而如果TC7仅占用了 500K,则TCO和TC2共同抢占剩下的350K,但TCO最多只能占用100K,因此TC2可以保证250K的缓存资源。
[0202]3、各个CC VQG的缓存资源门限值
[0203]以对应于单播的发送方式的CC VQG为例:
[0204]CC VQGO (对应于单播和 TCO ?TC5):700K
[0205]CC VQGl (对应于单播和 TC6 ?TC7):850Κ
[0206]在单播的发送方式下,进一步按照通用等级来控制缓存资源门限值,此处的通用等级可分为高优先级和低优先级,其中TC6?TC7属于高优先级,TCO?TC5属于低优先级。由于各个优先级占用的缓存资源不是独立的,因此进一步按照通用等级控制缓存资源门限值的目的是保证高优先级的单播报文不被影响。
[0207]从上述为CC VQGO?CC VQGl配置的缓存资源门限值可以看出:在对应于单播的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于Global VQGO的缓存资源门限值850K ;CC VQG对应的通用等级越高,配置的缓存资源门限值越大;并且,对应于低优先级的CC VQG:CC VQGO的缓存资源门限值700K,小于Global VQGO的缓存资源门限值850K,这样,可以保证对应于高优先级的CC VQG:CC VQGl能够占用至少150K的缓存资源,因为CC VQGO最多只能占用700K。
[0208]实施例三
[0209]针对上述实施例一中的方法,本申请实施例中提供了一种可以应用该方法的缓存资源的管理装置。该装置可以应用于例如路由器、交换机等的通信设备中。
[0210]以软件实现为例,如图5所示,该装置中可以包括以下模块:划分模块10、配置模块20、确定模块30和处理模块40,其中:
[0211]划分模块10,用于按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG,划分得到的每一个VQG对应于该报文属性组合中的所有报文属性;其中,报文属性组合由以下至少一种报文属性组成:发送方式、优先级、通用等级、入端口、协议类型、报文内容;
[0212]配置模块20,用于为每一个VQG配置对应的缓存资源门限值;
[0213]确定模块30,用于当需要缓存报文时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG ;
[0214]处理模块40,用于根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,确定是否将该报文存放到该VOQ中。
[0215]其中,当报文属性组合有至少两个时,确定的VOQ所属的VQG有至少两个,则,该处理模块中包括:丢弃单元和存放单元,其中:
[0216]丢弃单元,用于若判断出该VOQ所属的任一 VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,大于该VQG对应的缓存资源门限值,则丢弃该报文;
[0217]存放单元,用于若判断出该VOQ所属的每一个VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,均不大于该VQG对应的缓存资源门限值,则将该报文存放到该VOQ中。
[0218]在本申请的一种实施例中,该划分模块中包括:第一划分单元和第二划分单元,其中:
[0219]第一划分单元,用于按照发送方式,将VOQ划分为至少两个Global VQG,划分得到的每一个Global VQG对应于以下发送方式中的一种:单播、非单播和上送CPU ;
[0220]第二划分单元,用于按照发送方式和优先级,将VOQ划分为至少两个TCVQG,划分得到的每一个TC VQG对应于一个优先级和以下发送方式中的一种:单播、非单播、上送CPU。
[0221]此时,该配置模块中包括:第一配置单元和第二配置单元,其中:
[0222]第一配置单元,用于为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数;
[0223]第二配置单元,用于按照预定规则,每一个TC VQG配置对应的缓存资源门限值;其中,该预定规则包括:在对应于同一种发送方式的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;其中,对应Global VQG是对应于该种发送方式的Global VQG。
[0224]在本申请的另一种实施例中,该划分模块中除了可以包括上述的第一划分单元和第二划分单元以外,还可以包括第三划分单元,其中:
[0225]第三划分单元,用于按照发送方式和通用等级,将VOQ划分为至少两个CC VQG,划分得到的每一个CC VQG对应于一个通用等级和以下发送方式中的一种:单播、非单播、上送 CPU ;
[0226]其中,通用等级为高优先级或低优先级,或者,通用等级为高优先级、中优先级、或低优先级。
[0227]此时,该配置模块中除了可以包括上述的第一配置单元和第二配置单元以外,还可以包括第三配置单元,其中:
[0228]第三配置单元,用于按照预定规则,为每一个CC VQG配置对应的缓存资源门限值;
[0229]其中,该预定规则包括:在对应于同一种发送方式的所有CC VQG中,每一个CCVQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于对应Global VQG的缓存资源门限值;其中,对应Global VQG是对应于该种发送方式的Global VQG。
[0230]在本申请的又一种实施例中,该划分模块中包括:第一划分单元和第二划分单元,其中:
[0231 ] 第一划分单元,用于按照发送方式,将VOQ划分为至少两个Global VQG,划分得到的每一个Global VQG对应于以下发送方式中的一种:单播、非单播和上送CPU ;
[0232]第二划分单元,用于按照入端口,将VOQ划分为至少两个IPT VQG,划分得到的每一个IPT VQG对应于一个入端口。
[0233]此时,该配置模块中包括:第一配置单元和第二配置单元,其中:[0234]第一配置单元,用于为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数Sum ;
[0235]第二配置单元,用于为每一个IPT VQG配置对应的缓存资源门限值为Sum/N,其中,N为预设的同时拥塞的入端口的最大数量。
[0236]本申请实施例并不排除硬件或者软硬件结合的实施方式。请参考图5,从硬件层面而言,通信设备中包括:CPU、非易失性存储器、内存、转发芯片以及其他硬件。上述的缓存资源的管理装置作为一个逻辑意义上的装置,其是通过CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。转发芯片上设置有数据缓存单元,当对应的计算机程序指令被执行时,形成的缓存资源的管理装置用于按照实施例一中的方法管理数据缓存单元中的缓存资源。
[0237]综上,本申请以上实施例可以达到以下技术效果:
[0238](I)先按照由至少一个报文属性组成的报文属性组合中的所有报文属性,将VOQ划分为多个VQG,然后,为每一个VQG配置对应的缓存资源门限值,后续,当有报文需要缓存时,确定用于存放该报文的V0Q,根据该报文的报文属性,确定该VOQ所属的VQG,之后根据该VQG当前占用的缓存资源值与该报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,来确定是否可以将该报文存放到该VOQ中。
[0239]在上述方法中,由于将VOQ划分成多个VQG,为VQG配置对应的缓存资源门限值,显然,由于只需为少量的几个VQG配置对应的缓存资源门限值,因此极大地减少了配置工作量;而且,按照发送方式、优先级、通用等级、入端口、协议类型、报文内容等上层应用相关的报文属性中的至少一种报文属性,将VOQ划分成多个VQG,为每一个VQG配置对应的缓存资源门限值,从而,以VQG作为缓存资源管理的单位,通过控制每一个VQG的缓存资源占用率来管理缓存资源,这样,可以根据用户的实际需求,以统计的方式来管理缓存资源,管理方式比较灵活,能够更加合理地分配缓存资源。
[0240]另外,将VOQ划分成多个VQG,对每一个VQG配置对应的缓存资源门限值,以VQG为单位实现缓存资源的管理,而不是以VOQ为单位进行缓存资源的管理,从而,同一 VQG中的所有VOQ能够共享该VQG占用的缓存资源,提高了缓存资源利用率。
[0241](2)通过多个报文属性组合分别对VOQ进行分组,为每一个分组即VQG配置对应的缓存资源门限值,可以多方位、多层次地管理缓存资源,为具有多种不同报文属性的报文提供合理的缓存资源,合理利用缓存资源。
[0242](3)按照发送方式将VOQ划分成多个Global VQG,每一个Global VQG对应于单播、非单播、上送CPU中的一种,为每一个Global VQG使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数,这样,单播、非单播和上送CPU的业务互相不干扰。
[0243]并且,按照发送方式和优先级将VOQ划分成多个TC VQG,并在为对应于同一种发送方式的所有TC VQG配置对应的缓存资源门限值时,按照以下预定规则进行配置:每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小。这样,同一发送方式下,不同优先级都可以尽可能地占用更多的缓存资源,优先级越高的VQG能占用更多的缓存资源,优先级越接近的VQG的竞争情况越激烈,确保了多个优先级拥塞的情况下,高优先级的报文不会被丢弃,同时,还满足了一定的头阻塞能力,即,避免了某一优先级报文占用了大部分甚至全部缓存资源而导致的其他优先级报文无法占用缓存资源的问题。
[0244](4)进一步按照发送方式和通用等级将VOQ划分成多个CC VQG,并在为对应于同一种发送方式的所有CC VQG配置对应的缓存资源门限值时,按照以下预定规则进行配置:每一个CC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,CCVQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于对应Global VQG的缓存资源门限值。这样,在同一发送方式下,通用等级越高的VQG能占用更多的缓存资源,并且,保证了最高通用等级的VQG在任何情况下都能够占用一定数量的缓存资源。
[0245](5)按照发送方式将VOQ划分成多个Global VQG,每一个Global VQG对应于单播、非单播、上送CPU中的一种,为每一个Global VQG使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数,这样,单播、非单播和上送CPU的业务互相不干扰。
[0246]并且,按照入端口将VOQ划分成多个IPT VQG,并为每一个IPT VQG配置对应的缓存资源门限值为Sum/N,其中,N为预设的同时拥塞的入端口的最大数量。这样,确保了不同入端口的IPT VQG能够占用尽可能多的缓存资源,同时,还满足了一定的头阻塞能力,S卩,避免了某一入端口的报文占用了大部分甚至全部缓存资源而导致的其他入端口的报文无法占用缓存资源的问题。
[0247]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【权利要求】
1.一种缓存资源的管理方法,其特征在于,包括: 按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的虚拟输出队列VOQ,划分为至少两个虚拟输出队列组VQG,划分得到的每一个VQG对应于该报文属性组合中的每一个报文属性的一个属性值;其中,报文属性组合由以下至少一种报文属性组成:发送方式、优先级、通用等级、入端口、协议类型、报文内容; 为每一个VQG配置对应的缓存资源门限值; 当需要缓存报文时,确定用于存放所述报文的V0Q,根据所述报文的报文属性,确定该VOQ所属的VQG ; 根据该VQG当前占用的缓存资源值与所述报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,确定是否将所述报文存放到该VOQ中。
2.根据权利要求1所述的方法,其特征在于,当报文属性组合有至少两个时,确定的VOQ所属的VQG有至少两个,则,确定是否将所述报文存放到该VOQ中的方法包括: 若判断出该VOQ所属的任一 VQG当前占用的缓存资源值与所述报文需要占用的缓存资源值之和,大于该VQG对应的缓存资源门限值,则丢弃所述报文; 若判断出该VOQ所属的每一个VQG当前占用的缓存资源值与所述报文需要占用的缓存资源值之和,均不大于该VQG对应的缓存资源门限值,则将所述报文存放到该VOQ中。
3.根据权利要求2所述的方法,其特征在于,按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG的方法包括: 按照发送方式,将VOQ划分为至少两个全局Global VQG,划分得到的每一个GlobalVQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送中央处理器CPU ; 按照发送方式和优先级,将VOQ划分为至少两个优先级TC VQG,划分得到的每一个TCVQG对应于一个优先级和发送方式的一个属性值。
4.根据权利要求3所述的方法,其特征在于,为每一个VQG配置对应的缓存资源门限值的方法包括: 为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数; 按照预定规则,每一个TC VQG配置对应的缓存资源门限值;其中,该预定规则包括:在对应于发送方式的同一个属性值的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG。
5.根据权利要求4所述的方法,其特征在于,按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG的方法还包括: 按照发送方式和通用等级,将VOQ划分为至少两个通用等级CC VQG,划分得到的每一个CC VQG对应于一个通用等级和发送方式的一个属性值; 其中,通用等级为高优先级或低优先级,或者,通用等级为高优先级、中优先级、或低优先级。
6.根据权利要求5所述的方法,其特征在于,为每一个VQG配置对应的缓存资源门限值的方法还包括: 按照预定规则,为每一个CC VQG配置对应的缓存资源门限值; 其中,该预定规则包括:在对应于发送方式的同一个属性值的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于对应Global VQG的缓存资源门限值;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG。
7.根据权利要求2所述的方法,其特征在于,按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的V0Q,划分为至少两个VQG的方法包括: 按照发送方式,将VOQ划分为至少两个Global VQG,划分得到的每一个Global VQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送CPU ; 按照入端口,将VOQ划分为至少两个入端口 IPT VQG,划分得到的每一个IPT VQG对应于一个入端口。
8.根据权利要求7所述的方法,其特征在于,为每一个VQG配置对应的缓存资源门限值的方法包括: 为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数Sum ; 为每一个IPT VQG配置对应的缓存资源门限值为Sum/N,其中,N为预设的同时拥塞的入端口的最大数量。
9.一种缓存资源的管理装置,其特征在于,包括: 划分模块,用于按照报文属性组合中的所有报文属性,将用于存放需要缓存的报文的虚拟输出队列V0Q,划分为至少两个虚拟输出队列组VQG,划分得到的每一个VQG对应于该报文属性组合中的每一个报文属性的一个属性值;其中,报文属性组合由以下至少一种报文属性组成:发送方式、优先级、通用等级、入端口、协议类型、报文内容; 配置模块,用于为每一个VQG配置对应的缓存资源门限值; 确定模块,用于当需要缓存报文时,确定用于存放所述报文的V0Q,根据所述报文的报文属性,确定该VOQ所属的VQG ; 处理模块,用于根据该VQG当前占用的缓存资源值与所述报文需要占用的缓存资源值之和,是否大于该VQG对应的缓存资源门限值,确定是否将所述报文存放到该VOQ中。
10.根据权利要求9所述的装置,其特征在于,当报文属性组合有至少两个时,确定的VOQ所属的VQG有至少两个,则,所述处理模块包括: 丢弃单元,用于若判断出该VOQ所属的任一 VQG当前占用的缓存资源值与所述报文需要占用的缓存资源值之和,大于该VQG对应的缓存资源门限值,则丢弃所述报文; 存放单元,用于若判断出该VOQ所属的每一个VQG当前占用的缓存资源值与所述报文需要占用的缓存资源值之和,均不大于该VQG对应的缓存资源门限值,则将所述报文存放到该VOQ中。
11.根据权利要求10所述的装置,其特征在于,所述划分模块包括: 第一划分单元,用于按照发送方式,将VOQ划分为至少两个全局Global VQG,划分得到的每一个Global VQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送中央处理器CPU ; 第二划分单元,用于按照发送方式和优先级,将VOQ划分为至少两个优先级TC VQG,划分得到的每一个TC VQG对应于一个优先级和发送方式的一个属性值。
12.根据权利要求11所述的装置,其特征在于,所述配置模块包括: 第一配置单元,用于为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数; 第二配置单元,用于按照预定规则,每一个TC VQG配置对应的缓存资源门限值;其中,该预定规则包括:在对应于发送方式的同一个属性值的所有TC VQG中,每一个TC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,TC VQG对应的优先级越高,配置的缓存资源门限值越大,并且,任意两个TC VQG对应的优先级的差值越小,配置的缓存资源门限值的差值越小;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG0
13.根据权利要求12所述的装置,其特征在于,所述划分模块还包括: 第三划分单元,用于按照发送方式和通用等级,将VOQ划分为至少两个通用等级CCVQG,划分得到的每一个CC VQG对应于一个通用等级和发送方式的一个属性值; 其中,通用等级为高优先级或低优先级,或者,通用等级为高优先级、中优先级、或低优先级。
14.根据权利要求13所述的装置,其特征在于,所述配置模块还包括: 第三配置单元,用于按照预定规则,为每一个CC VQG配置对应的缓存资源门限值; 其中,该预定规则包括:在对应于发送方式的同一个属性值的所有CC VQG中,每一个CC VQG配置的缓存资源门限值,均不大于对应Global VQG的缓存资源门限值,CC VQG对应的通用等级越高,配置的缓存资源门限值越大,并且,对应于除最高通用等级以外的其他通用等级的CC VQG的缓存资源门限值之和,小于对应Global VQG的缓存资源门限值;其中,对应Global VQG是对应于发送方式的该属性值的Global VQG。
15.根据权利要求10所述的装置,其特征在于,所述划分模块包括: 第一划分单元,用于按照发送方式,将VOQ划分为至少两个Global VQG,划分得到的每一个Global VQG对应于发送方式的一个属性值;其中,发送方式的属性值包括:单播、非单播和上送CPU ; 第二划分单元,用于按照入端口,将VOQ划分为至少两个入端口 IPT VQG,划分得到的每一个IPT VQG对应于一个入端口。
16.根据权利要求15所述的装置,其特征在于,所述配置模块包括: 第一配置单元,用于为每一个Global VQG配置对应的缓存资源门限值,使得所有Global VQG对应的缓存资源门限值之和等于缓存资源的总数Sum ; 第二配置单元,用于为每一个IPT VQG配置对应的缓存资源门限值为Sum/N,其中,N为预设的同时拥塞的入端口的最大数量。
【文档编号】H04L12/861GK103780507SQ201410052358
【公开日】2014年5月7日 申请日期:2014年2月17日 优先权日:2014年2月17日
【发明者】翟颖颖 申请人:杭州华三通信技术有限公司