隧道的优先级设置方法及装置与流程

文档序号:12161828阅读:440来源:国知局
隧道的优先级设置方法及装置与流程

本发明涉及通信技术领域,尤其涉及基于一种隧道的优先级设置方法及装置。



背景技术:

ECMP(Equal Cost Multi-Path,等价多路径)是改进IP网络中基于最短路径的内部网关路由协议不足的一种技术,ECMP使得转发的流量在多条等价路径中分配。

在实际组网中,经常会用到在公网上使用多条隧道共同承载公私网流量的场景,为了充分利用带宽而又能区分不同的业务优先级,需要同一个隧道具有承载多个优先级数据流的功能。但是,现有的ECMP只允许隧道带有一个优先级,进而该隧道只能承载单个优先级数据流,造成该隧道的带宽不能得以充分利用,导致隧道带宽资源的浪费。



技术实现要素:

本发明提供一种隧道的优先级设置方法及装置,旨在解决现有的ECMP只允许隧道带有一个优先级而导致隧道带宽资源浪费的技术问题。

为实现上述目的,本发明提供的一种隧道的优先级设置方法,所述隧道的优先级设置方法包括以下步骤:

获取各个隧道的原始优先级;

对各个隧道的原始优先级均进行编码操作;

将编码后的优先级信息发送至底层驱动,以供所述底层驱动基于所述优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中。

优选地,所述对各个隧道的原始优先级均进行编码操作的步骤包括:

分别按照各个所述隧道的原始优先级的大小顺序对各个隧道的优先级进行比特位设置;

分别对比特位设置后的各个隧道的优先级进行编码操作。

优选地,所述分别对比特位设置后的各个隧道的优先级进行编码操作的步骤包括:分别对比特位设置后的各个隧道的优先级按照十六进制进行编码操作。

优选地,在所述将编码后的优先级信息发送至底层驱动,以供所述底层驱动基于所述优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中,所述方法还包括:

在接收到待转发数据包时,获取所述待转发数据包的数据报文优先级;

基于所述ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引;

在所述ECMP的硬件表项中查找所述出口封装表硬件地址索引对应的隧道信息,并根据所述隧道信息转发所述待转发数据包。

优选地,所述基于所述ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引的步骤包括:

获取所述待转发数据包的目的物理地址MAC、源MAC、目的IP地址、源IP地址以及隧道标签;

通过哈希算法基于所述数据报文优先级、目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签计算偏移值;

基于所述ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引。

此外,为实现上述目的,本发明还提供一种隧道的优先级设置装置,所述隧道的优先级设置装置包括:

获取模块,用于获取各个隧道的原始优先级;

编码模块,用于对各个隧道的原始优先级均进行编码操作;

发送模块,用于将编码后的优先级信息发送至底层驱动,以供所述底层驱动基于所述优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中。

优选地,所述编码模块包括:

设置单元,用于分别按照各个所述隧道的原始优先级的大小顺序对各个隧道的优先级进行比特位设置;

编码单元,用于分别对比特位设置后的各个隧道的优先级进行编码操作。

优选地,所述编码单元还用于分别对比特位设置后的各个隧道的优先级按照十六进制进行编码操作。

优选地,所述隧道的优先级设置装置还包括:

第二获取模块,用于在接收到待转发数据包时,获取所述待转发数据包的数据报文优先级;

计算模块,用于基于所述ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引;

转发模块,用于在所述ECMP的硬件表项中查找所述出口封装表硬件地址索引对应的隧道信息,并根据所述隧道信息转发所述待转发数据包。

优选地,所述计算模块包括:

获取单元,用于获取所述待转发数据包的目的物理地址MAC、源MAC、目的IP地址、源IP地址以及隧道标签;

第一计算单元,用于通过哈希算法基于所述数据报文优先级、目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签计算偏移值;

第二计算单元,用于基于所述ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引。

本发明通过获取各个隧道的原始优先级;接着对各个隧道的原始优先级均进行编码操作,然后将编码后的优先级信息发送至底层驱动,以供所述底层驱动基于所述优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中,实现了优先级在对应隧道中进行负载分担,进而能够充分利用优先级的隧道带宽,节约了隧道的带宽资源,提高了隧道带宽资源的利用率以及数据转发的效率。

附图说明

图1为本发明隧道的优先级设置方法第一实施例的流程示意图;

图2为本发明对对各个隧道的原始优先级均进行编码操作的步骤的细化流程示意图;

图3本发明隧道的优先级设置方法第二实施例的流程示意图;

图4本发明获得待转发数据包对应的隧道的出口封装表硬件地址索引的步骤的细化流程示意图;

图5为本发明隧道的优先级设置装置第一实施例的功能模块示意图;

图6为图5中编码模块的细化功能模块示意图;

图7为本发明隧道的优先级设置装置第二实施例的功能模块示意图;

图8位图7中计算模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种隧道的优先级设置方法。

参照图1,图1为本发明隧道的优先级设置方法第一实施例的流程示意图。

在本实施例中,该隧道的优先级设置方法包括:

步骤S10,获取各个隧道的原始优先级;

各个隧道的原始优先级为ECMP中的各个隧道的最初具有的优先级,或者,在最初的系统配置时,为各个隧道配置的优先级,其中,全部或者部分隧道的原始优先级包括多个优先级。

步骤S20,对各个隧道的原始优先级均进行编码操作;

对获取到的各个隧道的原始优先级均进行编码,编码后的各个隧道的优先级保留了各个隧道中的具有多个优先级的隧道的所有的优先级。

步骤S30,将编码后的优先级信息发送至底层驱动,以供所述底层驱动基于所述优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中。

将编码后的优先级发送至底层驱动,底层驱动对接收到的优先级信息进行对应的解码操作,然后根据解码后的优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中,即根据解码后的隧道的优先级信息完成各个隧道在ECMP的256个硬件表项中的配置,本实施例中,ECMP中隧道的优先级范围为0~7,每个优先级对应有32个出口 封装硬件表项,ECMP具有256个出口封装硬件表项,首先底层驱动根据解码后的优先级信息对ECMP的隧道的8个优先级配置对应的隧道,此时,在ECMP中的每个优先级对应的各个隧道只占据该优先级对应的32个出口封装表中的一个出口封装硬件表项,然后底层驱动将该优先级对应的所有隧道配置到该优先级对应的32个出口封装表的剩余出口封装表中,其中配置方式采用间隔配置,即使得该优先级对应的所有隧道配置的出口封装表的数量基本相同。在按照上述方式配置对应的ECMP等价多路径的出口封装表硬件地址索引后,若ECMP的隧道优先级中存在无隧道的优先级,则将最低优先级的所有隧道设置为无隧道的优先级对应的隧道,当然,如果ECMP设置有default优先级,则将无隧道分配的优先级分配default优先级对应的隧道。ECMP的优先级范围0~7中的每一个优先级都配置了对应优先级的隧道,进而避免了在后续数据包转发时根据优先级查询不到对应隧道的情况,进一步提高了隧道带宽资源的利用率以及数据转发的效率。

本实施例通过获取各个隧道的原始优先级;接着对各个隧道的原始优先级均进行编码操作,然后将编码后的优先级信息发送至底层驱动,以供底层驱动基于优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中,实现了优先级在对应隧道中进行负载分担,进而能够充分利用优先级的隧道带宽,节约了隧道的带宽资源,提高了隧道带宽资源的利用率以及数据转发的效率。

参照图2,图2为本发明对各个隧道的原始优先级均进行编码操作的步骤的细化流程示意图。

基于第一实施例提出本发明步骤S20的细化流程的实施例,在本实施例中,步骤S20包括:

步骤S21,分别按照各个所述隧道的原始优先级的大小顺序对各个隧道的优先级进行比特位设置;

本实施例中,ECMP的隧道的优先级范围为0~7,将该优先级范围按照由大到小的顺序进行排列,然后将每一个隧道的原始优先级设为1,将该隧道不具有的优先级设为0,例如,将优先级为0、4、5的隧道通过二进制表示为:00110001,将优先级为1、3的隧道设置为00001010。

步骤S22,分别对比特位设置后的各个隧道的优先级进行编码操作。

编码操作是指按照其他的进制对隧道的优先级进行编码,编码后的各个隧道的优先级保留了各个隧道中的具有多个优先级的隧道的所有的优先级。譬如,优先级为0、4、5的隧道按照十六进制编码后为TE{0x31},优先级为1、3的隧道按照十六进制编码后为TE{0xa}。

进一步地,本实施例中,步骤S22包括:分别对比特位设置后的各个隧道的优先级按照十六进制进行编码操作。

由于ECMP隧道的优先级范围为0~7,即隧道的优先级最多带有8个,因此,本实施例中,采用十六进制对隧道的优先级进行编码。

本实施例通过分别按照各个所述隧道的原始优先级的大小顺序对各个隧道的优先级进行比特位设置,然后分别对比特位设置后的各个隧道的优先级进行编码操作,实现了对各个隧道的优先级进行编码,使得各个优先级在对应隧道中进行负载分担,进而能够充分利用优先级的隧道带宽,节约了隧道的带宽资源,提高了隧道带宽资源的利用率以及数据转发的效率。

参照图3,图3本发明隧道的优先级设置方法第二实施例的流程示意图。

基于上述实施例提出本发明隧道的优先级设置方法的第二实施例,在本实施例中,在步骤S30之后,该隧道的优先级设置方法还包括:

步骤S40,在接收到待转发数据包时,获取所述待转发数据包的数据报文优先级;

在接收到待转发数据包时,获取待转发数据包的数据报文优先级,当然,同时需要对待转发数据包进行微码解析。

步骤S50,基于所述ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引;

基于ECMP硬件表项的基址以及数据报文优先级计算获得待转发数据包对应的隧道的出口封装表硬件地址索引,其中,ECMP硬件表项的基址是指ECMP的256个连续硬件表项索引的首地址。

步骤S60,在所述ECMP的硬件表项中查找所述出口封装表硬件地址索引对应的隧道信息,并根据所述隧道信息转发所述待转发数据包。

根据出口封装表硬件地址索引在ECMP的硬件表项中查找与出口封装表 硬件地址索引对应的隧道信息,其中,该隧道信息为路由器中与出口封装表硬件地址索引对应的端口,然后根据所述隧道信息转发所述待转发数据包,即在路由器中与出口封装表硬件地址索引对应的端口中转发所述待转发数据包。

本实施例通过在接收到待转发数据包时,获取所述待转发数据包的数据报文优先级;接着基于ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引;然后在ECMP的硬件表项中查找所述出口封装表硬件地址索引对应的隧道信息,并根据隧道信息转发该待转发数据包,实现了待转发数据包在进行转发时根据其数据报文的优先级进行隧道的选择。

参照图4,图4本发明获得待转发数据包对应的隧道的出口封装表硬件地址索引的步骤的细化流程示意图。

基于上一实施例提出本发明步骤S50的细化流程实施例,在本实施例中,步骤S50包括:

步骤S51,获取所述待转发数据包的目的物理地址MAC、源MAC、目的IP地址、源IP地址以及隧道标签;

获取待转发数据包的五元组信息,该五元组包括目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签。

步骤S52,通过哈希算法基于所述数据报文优先级、目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签计算偏移值;

根据数据报文优先级以及五元组信息通过相应的哈希算法计算获得偏移值,例如,在ECMP的每个优先级拥有32个出口封装表时,该偏移值的范围为0~31。

步骤S53,基于所述ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引。

基于ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引,其中,该出口封装表硬件地址索引=基址+优先级×32+偏移值。

本实施例通过获取待转发数据包的目的物理地址MAC、源MAC、目的 IP地址、源IP地址以及隧道标签,接着通过哈希算法基于数据报文优先级、目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签计算偏移值,然后基于ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得待转发数据包对应的隧道的出口封装表硬件地址索引,实现了出口封装表硬件地址索引的精确计算,进而实现了待转发数据包在进行转发时根据其数据报文的优先级进行隧道的选择。

本发明进一步提供一种隧道的优先级设置装置。

参照图5,图5为本发明隧道的优先级设置装置第一实施例的功能模块示意图。

在本实施例中,该隧道的优先级设置装置包括:

获取模块10,用于获取各个隧道的原始优先级;

各个隧道的原始优先级为ECMP中的各个隧道的最初具有的优先级,或者,在最初的系统配置时,为各个隧道配置的优先级,其中,全部或者部分隧道的原始优先级包括多个优先级。

编码模块20,用于对各个隧道的原始优先级均进行编码操作;

编码模块20对获取模块10获取到的各个隧道的原始优先级均进行编码,编码后的各个隧道的优先级保留了各个隧道中的具有多个优先级的隧道的所有的优先级。

发送模块30,用于将编码后的优先级信息发送至底层驱动,以供所述底层驱动基于所述优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中。

发送模块30将编码后的优先级发送至底层驱动,底层驱动对接收到的优先级信息进行对应的解码操作,然后根据解码后的优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中,即根据解码后的隧道的优先级信息完成各个隧道在ECMP的256个硬件表项中的配置,本实施例中,ECMP中隧道的优先级范围为0~7,每个优先级对应有32个出口封装硬件表项,ECMP具有256个出口封装硬件表项,首先底层驱动根据解码后的优先级信息对ECMP的隧道的8个优先级配置对应的隧道,此时,在ECMP中的每个优先级对应的各个隧道只占据该优先级对应的32个 出口封装硬件表项中的一个出口封装表,然后底层驱动将该优先级对应的所有隧道配置到该优先级对应的32个出口封装表的剩余出口封装表中,其中配置方式采用间隔配置,即使得该优先级对应的所有隧道配置的出口封装表的数量基本相同。

本实施例通过获取模块10获取各个隧道的原始优先级;接着编码模块20对各个隧道的原始优先级均进行编码操作,然后发送模块30将编码后的优先级信息发送至底层驱动,以供底层驱动基于优先级信息把各个优先级对应的隧道出口封装表信息写入对应的等价多路径ECMP的硬件表项中,实现了优先级在对应隧道中进行负载分担,进而能够充分利用优先级的隧道带宽,节约了隧道的带宽资源,提高了隧道带宽资源的利用率以及数据转发的效率。

参照图6,图6为图5中编码模块的细化功能模块示意图。

基于第一实施例提出本发明隧道的优先级设置装置的编码模块的细化功能模块实施例,在本实施例中,编码模块20包括:

设置单元21,用于分别按照各个所述隧道的原始优先级的大小顺序对各个隧道的优先级进行比特位设置;

本实施例中,ECMP的隧道的优先级范围为0~7,设置单元21将该优先级范围按照由大到小的顺序进行排列,然后将每一个隧道的原始优先级设为1,将该隧道不具有的优先级设为0,例如,将优先级为0、4、5的隧道通过二进制表示为:00110001,将优先级为1、3的隧道设置为00001010。

编码单元22,用于分别对比特位设置后的各个隧道的优先级进行编码操作;

编码操作是指按照其他的进制对隧道的优先级进行编码,譬如,十进制、二进制、八进制或十六进制等;譬如,编码单元22将优先级为0、4、5的隧道按照十六进制编码后为TE{0x31},编码单元22将优先级为1、3的隧道按照十六进制编码后为TE{0xa}。

进一步地,本实施例中,编码单元还用于分别对比特位设置后的各个隧道的优先级按照十六进制进行编码操作。

由于ECMP隧道的优先级范围为0~7,即隧道的优先级最多带有8个,因此,本实施例中,采用十六进制对隧道的优先级进行编码。

本实施例通过设置单元21分别按照各个所述隧道的原始优先级的大小顺序对各个隧道的优先级进行比特位设置,然后编码单元22分别对比特位设置后的各个隧道的优先级进行编码操作,实现了对各个隧道的优先级进行编码,使得各个优先级在对应隧道中进行负载分担,进而能够充分利用优先级的隧道带宽,节约了隧道的带宽资源,提高了隧道带宽资源的利用率以及数据转发的效率。

参照图7,图7为本发明隧道的优先级设置装置第二实施例的功能模块示意图。

基于上述实施例提出本发明隧道的优先级设置装置的第二实施例,在本实施例中,该隧道的优先级设置装置还包括:

第二获取模块40,用于在接收到待转发数据包时,获取所述待转发数据包的数据报文优先级;

计算模块50,用于基于所述ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引;

计算模块50基于ECMP硬件表项的基址以及数据报文优先级计算获得待转发数据包对应的隧道的出口封装表硬件地址索引息,其中,ECMP硬件表项的基址是指ECMP的256个连续硬件表项索引的首地址。

转发模块60,在所述ECMP的硬件表项中查找所述出口封装表硬件地址索引对应的隧道信息,并根据所述隧道信息转发所述待转发数据包。

转发模块60根据出口封装表硬件地址索引在ECMP的硬件表项中查找与出口封装表硬件地址索引对应的隧道信息,其中,该隧道信息为路由器中与出口封装表硬件地址索引对应的端口,然后根据所述隧道信息转发所述待转发数据包,即在路由器中与出口封装表硬件地址索引对应的端口中转发所述待转发数据包。

本实施例通过在接收到待转发数据包时,第二获取模块40获取待转发数据包的数据报文优先级;接着计算模块50基于ECMP硬件表项的基址以及数据报文优先级计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引;然后转发模块60在ECMP的硬件表项中查找所述出口封装表硬件地址索引对应的隧道信息,并根据隧道信息转发该待转发数据包,实现了待转发 数据包在进行转发时根据其数据报文的优先级进行隧道的选择。

参照图8,图8位图7中计算模块的细化功能模块示意图。

基于上一实施例提出本发明计算模块50的细化功能模块的实施例,在本实施例中,该计算模块50包括:

获取单元51,用于获取所述待转发数据包的目的物理地址MAC、源MAC、目的IP地址、源IP地址以及隧道标签;

获取单元51获取待转发数据包的五元组信息,该五元组包括目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签。

第一计算单元52,用于通过哈希算法基于所述数据报文优先级、目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签计算偏移值;

第一计算单元52根据数据报文优先级以及五元组信息通过相应的哈希算法计算获得偏移值,例如,在ECMP的每个优先级拥有32个出口封装表时,该偏移值的范围为0~31。

第二计算单元53,用于基于所述ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引。

第二计算单元53基于ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得所述待转发数据包对应的隧道的出口封装表硬件地址索引,其中,该出口封装表硬件地址索引=基址+优先级×32+偏移值。

本实施例通过获取单元51获取待转发数据包的目的物理地址MAC、源MAC、目的IP地址、源IP地址以及隧道标签,接着第一计算单元52通过哈希算法基于数据报文优先级、目的MAC、源MAC、目的IP地址、源IP地址以及隧道标签计算偏移值,然后第二计算单元53基于ECMP硬件表项的基址、数据报文优先级以及偏移值计算获得待转发数据包对应的隧道的出口封装表硬件地址索引,实现了出口封装表硬件地址索引的精确计算,进而实现了待转发数据包在进行转发时根据其数据报文的优先级进行隧道的选择。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1