本申请主张2012年5月15日提交的题为“Extended Priority”的美国临时专利申请No.61/647,164以及2012年5月21日提交的题为“Extended Priority”的美国临时专利申请No.61/649,554的权益,上述申请以引用的方式结合在本申请中。
发明内容
在一个实施例中,一种网络设备包括:包入口,其被配置成从网络接收包;以及包处理器。所述包处理器被配置成将所接收的包中的第一包识别为双虚拟局域网(VLAN)标记包,该双VLAN标记包包括(i)与第一VLAN标记相关联的第一优先级字段以及(ii)与第二VLAN标记相关联的第二优先级字段。所述包处理器还被配置成基于(i)所述第一包的第一优先级字段的一个或多个比特以及(ii)所述第一包的第二优先级字段的一个或多个比特来向所述第一包分配扩展优先级配置文件(profile),其中所述扩展优先级配置文件在一组可能的扩展优先级配置文件之中,该组可能的扩展优先级配置文件大于与所述第一包的单个VLAN标记相关联的任意一组可能的优先级配置文件。所述包处理器进一步被配置成根据所分配的扩展优先级配置文件处理所述第一包。
在这些实施例中的一些中,所述网络设备包含以下特征的任意组合。
所述网络设备进一步包含多个队列,并且所述包处理器被配置成根据所分配的扩展优先级配置文件至少部分地通过以下步骤处理所述第一包:基于所分配的扩展优先级配置文件选择所述多个队列中的一个;以及,向所选择的队列发送所述第一包、所述第一包的一部分或与所述第一包相关联的包描述符。
该组可能的扩展优先级配置文件中的每个配置文件对应于所述多个队列中的不同的队列。
该组可能的扩展优先级配置文件大于以下的组合:(i)与所述第一优先级字段相关联的第一组可能的优先级配置文件;以及(ii)与所述第二优先级字段相关联的第二组可能的优先级配置文件。
所述第一组可能的优先级配置文件由2M个优先级配置文件组成,其中M为大于零的整数,所述第二组可能的优先级配置文件由2N个优先级配置文件组成,其中N为大于零的整数,并且该组可能的扩展优先级配置文件由2(M+N)个优先级配置文件组成。
所述包处理器被配置成至少部分地通过以下步骤将所述扩展优先级配置文件分配给所述第一包:将所述第一包的第一优先级字段的所述一个或多个比特和所述第一包的第二优先级字段的所述一个或多个比特映射到所述扩展优先级配置文件。
所述包处理器被配置成至少部分地通过以下步骤将所述第一包的第一优先级字段的所述一个或多个比特和所述第一包的第二优先级字段的所述一个或多个比特映射到所述扩展优先级配置文件:将所述第一包的第一优先级字段的所述一个或多个比特和所述第一包的第二优先级字段的所述一个或多个比特映射到扩展优先级比特;以及,将所述扩展优先级比特映射到所述扩展优先级配置文件。
所述包处理器被配置成进一步通过以下步骤将所述扩展优先级配置文件分配给所述第一包:以表示所述扩展优先级配置文件的新的比特值重写所述第一包的所述第一优先级字段的至少一部分和所述第一包的所述第二优先级字段的至少一部分。
所分配的扩展优先级配置文件对应于通过分布在(i)所述第一包的第一优先级字段的所述一个或多个比特以及(ii)所述第一包的第二优先级字段的所述一个或多个比特中的至少一项之中的第一组一个或多个比特指示的优先级等级,以及通过分布在(i)所述第一包的第一优先级字段的所述一个或多个比特以及(ii)所述第一包的第二优先级字段的所述一个或多个比特中的至少一项之中的第二组一个或多个比特指示的优先级次等级。
所述包入口被配置成从所述网络接收以太网包,并且所述包处理器被配置成至少部分地通过以下步骤将所述第一包识别为双VLAN标记包:将所述第一包识别为(i)多链接透明互联(TRILL)包、(ii)最短路径桥接(SPB)包或(iii)IEEE 802.1ad包中的一个。
所述包处理器被配置成至少部分地通过以下步骤将所述第一包识别为双VLAN标记包:确定通过对应于双VLAN标记包的端口接收到所述第一包。
所述网络设备进一步包含包出口,所述包入口被配置成从未被配置成支持所述扩展优先级配置文件的传统网络接收所述包,并且所述包处理器进一步被配置成通过所述包出口将所述第一包传输到被配置成支持所述扩展优先级配置文件的非传统网络。
所述包处理器的至少一部分驻留于所述包入口内。
在另一实施例中,一种耦合到网络的网络设备中的方法包括:从网络接收包;将所述包识别为双VLAN标记包,该双VLAN标记包包括(i)与第一VLAN标记相关联的第一优先级字段以及(ii)与第二VLAN标记相关联的第二优先级字段;以及,基于(i)所述包的第一优先级字段的一个或多个比特以及(ii)所述包的第二优先级字段的一个或多个比特,向所述包分配扩展优先级配置文件,其中所述扩展优先级配置文件在一组可能的扩展优先级配置文件之中,该组可能的扩展优先级配置文件大于与所述包的单个VLAN标记相关联的任意一组可能的优先级配置文件。所述方法还包括:根据所分配的扩展优先级配置文件处理所述包。
在这些实施例中的一些中,所述方法包含以下特征的任意组合。
根据所分配的扩展优先级配置文件处理所述包包括:基于所分配的扩展优先级配置文件选择多个队列中的一个,其中所述多个队列中的每个队列对应于所述可能的扩展优先级配置文件中的不同的配置文件;以及,将所述包、所述包的一部分或与所述包相关联的包描述符发送给所选择的队列。
向所述包分配扩展优先级配置文件包括分配来自一组可能的扩展优先级配置文件中的扩展优先级配置文件,其中该组可能的扩展优先级配置文件大于以下的组合:(i)与所述第一优先级字段相关联的第一组可能的优先级配置文件,以及(ii)与所述第二优先级字段相关联的第二组可能的优先级配置文件。
向所述包分配扩展优先级配置文件包括:将所述包的第一优先级字段的所述一个或多个比特和所述包的第二优先级字段的所述一个或多个比特映射到所述扩展优先级配置文件。
向所述包分配扩展优先级配置文件包括分配对应于以下各项的扩展优先级配置文件:通过分布在(i)所述包的第一优先级字段的所述一个或多个比特以及(ii)所述包的第二优先级字段的所述一个或多个比特中的至少一项之中的第一组一个或多个比特指示的优先级等级;以及通过分布在(i)所述包的第一优先级字段的所述一个或多个比特以及(ii)所述包的第二优先级字段的所述一个或多个比特中的至少一项之中的第二组一个或多个比特指示的优先级次等级。
从所述网络接收包包括从所述网络接收以太网包,并且将所述包识别为双VLAN标记包包括将所述以太网包识别为(i)TRILL包、(ii)SPB包或(iii)IEEE 802.1ad包中的一个。
在另一实施例中,一种网络设备包括:包入口,其被配置成从网络接收包;以及,包处理器。所述包处理器被配置成:将所接收的包中的第一包识别为具有扩展优先级配置文件的双VLAN标记包;以及,基于分布在(i)与所述第一包的第一VLAN标记相关联的第一优先级字段的M个比特以及(ii)与所述第一包的第二VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,从一组可能的扩展优先级配置文件中确定所述第一包的扩展优先级配置文件,其中该组可能的扩展优先级配置文件(i)大于与所述第一优先级字段相关联的第一组可能的优先级配置文件并且(ii)大于与所述第二优先级字段相关联的第二组可能的优先级配置文件。所述包处理器还被配置成根据所述确定的扩展优先级配置文件处理所述第一包。
在这些实施例中的一些中,所述网络设备包含以下特征的任意组合。
所述包处理器被配置成基于包括(i)所述第一优先级字段的所述M个比特以及(ii)所述第二优先级字段的N个比特的P个比特确定所述第一包的扩展优先级配置文件。
所述包处理器被配置成从一组2(M+N)个可能的扩展优先级配置文件中确定所述第一包的扩展优先级配置文件。
所述包处理器被配置成:将所接收的包中的第一包识别为与扩展优先级配置文件相关联的TRILL包;以及,基于分布在(i)与所述TRILL包的链路报头内的第一VLAN标记相关联的第一优先级字段的M个比特以及(ii)与所述TRILL包的TRILL报头内的第二VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,确定所述TRILL包的扩展优先级配置文件。
所述包处理器被配置成:将所接收的包中的第一包识别为与扩展优先级配置文件相关联的IEEE 802.1ad包;以及,基于分布在(i)与所述IEEE 802.1ad包的客户VLAN标记相关联的第一优先级字段的M个比特以及(ii)与所述IEEE 802.1ad包的服务VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,确定所述IEEE 802.1ad包的扩展优先级配置文件。
在另一实施例中,一种网络设备中的方法包括:从网络接收包;将所述包识别为具有扩展优先级配置文件的双VLAN标记包;以及,基于分布在(i)与所述包的第一VLAN标记相关联的第一优先级字段的M个比特以及(ii)与所述包的第二VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,从一组可能的扩展优先级配置文件中确定所述包的扩展优先级配置文件,其中该组可能的扩展优先级配置文件(i)大于与所述第一优先级字段相关联的第一组可能的优先级配置文件并且(ii)大于与所述第二优先级字段相关联的第二组可能的优先级配置文件。所述方法还包括根据所述确定的扩展优先级配置文件处理所述包。
在这些实施例中的一些中,所述方法包含以下特征的任意组合。
基于P个比特确定所述扩展优先级配置文件包括:基于包括(i)所述第一优先级字段的所述M个比特以及(ii)所述第二优先级字段的N个比特的P个比特,确定所述扩展优先级配置文件。
确定所述扩展优先级配置文件包括:从一组2(M+N)个可能的扩展优先级配置文件中确定所述扩展优先级配置文件。
将所述包识别为具有扩展优先级配置文件的双VLAN标记包包括:将所述包识别为与扩展优先级配置文件相关联的TRILL包,以及基于P个比特确定所述包的扩展优先级配置文件包括:基于分布在(i)与所述TRILL包的链路报头内的第一VLAN标记相关联的第一优先级字段的M个比特以及(ii)与所述TRILL包的TRILL报头内的第二VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,确定所述TRILL包的扩展优先级配置文件。
将所述包识别为具有扩展优先级配置文件的双VLAN标记包包括:将所述包识别为与扩展优先级配置文件相关联的IEEE 802.1ad包,并且基于P个比特确定所述包的扩展优先级配置文件包括:基于分布在(i)与所述IEEE 802.1ad包的客户VLAN标记相关联的第一优先级字段的M个比特以及(ii)与所述IEEE 802.1ad包的服务VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,确定所述IEEE 802.1ad包的扩展优先级配置文件
确定所述扩展优先级配置文件包括确定以下扩展优先级配置文件,该扩展优先级配置文件对应于通过分布在(i)所述第一优先级字段的所述M个比特以及(ii)所述第二优先级字段的所述N个比特中的至少一项之中的第一组一个或多个比特指示的优先级等级以及通过分布在(i)所述第一优先级字段的所述M个比特以及(ii)所述第二优先级字段的所述N个比特中的至少一项之中的第二组一个或多个比特指示的优先级次等级。
在另一实施例中,一种网络包括多个网络设备,其中每个网络设备被配置成:接收多个包,其中每个包具有与两个或两个以上相应VLAN标记相关联的两个或两个以上优先级字段;以及,根据选自第一组可能的扩展优先级配置文件的扩展优先级配置文件处理接收到的包。所述第一组可能的扩展优先级配置文件所包括的配置文件多于与所述两个或两个以上相应VLAN标记相关联的两个或两个以上优先级字段的任何单个字段所提供的配置文件。
在这些实施例中的一些中,所述网络包含以下特征的任意组合。
所述多个网络设备中的每个网络设备与对应于该组可能的扩展优先级配置文件的第一虚拟域相关联,并且所述多个网络设备中的至少一个网络设备耦合到与第二虚拟域相关联的网络设备,其中,所述第二虚拟域对应于不同于所述第一组可能的扩展优先级配置文件的第二组可能的扩展优先级配置文件,并且其中,所述第二组可能的扩展优先级配置文件所包括的配置文件多于与所述两个或两个以上相应VLAN标记相关联的两个或两个以上优先级字段的任何单个字段所提供的配置文件。
所述多个网络设备中的每个网络设备与对应于该组可能的扩展优先级配置文件的第一虚拟域相关联,并且所述多个网络设备中的至少一个网络设备耦合到与第二虚拟域相关联的网络设备,其中所述第二虚拟域对应于仅所述两个或两个以上优先级字段中的一个所提供的一组可能的优先级配置文件。
各自具有分别与两个或两个以上相应VLAN标记相关联的两个或两个以上优先级字段的所述多个包包括(i)TRILL包、(ii)SPB包或(iii)IEEE 802.1ad包中的一个或多个。
在另一实施例中,一种网络中的方法包括在所述网络中的多个网络设备的每一个上接收相应的多个包。每个包具有与两个或两个以上相应VLAN标记相关联的两个或两个以上优先级字段。所述方法还包括根据选自第一组可能的扩展优先级配置文件的扩展优先级配置文件在所述网络中的所述多个网络设备的每一个上处理接收到的包。所述第一组可能的扩展优先级配置文件所包括的配置文件多于与所述两个或两个以上相应VLAN标记相关联的两个或两个以上优先级字段的任何单个字段所提供的配置文件。
在一个这样的实施例中,在所述网络中的多个网络设备的每一个上接收相应的多个包包括:接收相应的多个包,该多个包包括(i)TRILL包、(ii)SPB包或(iii)IEEE 802.1ad包中的一个或多个。
在另一实施例中,一种网络设备包括:存储器;包入口,其被配置成从网络接收包;以及包处理器。所述包处理器被配置成将所接收的包中的第一包识别为具有由(i)与所述第一包的第一VLAN标记相关联的第一优先级字段的一个或多个比特以及(ii)与所述第一包的第二VLAN标记相关联的第二优先级字段的一个或多个比特所指定的扩展优先级配置文件的包。所述包处理器还被配置成:将所述扩展优先级配置文件映射到与所述第一VLAN标记相关联的优先级配置文件;将重建所述第一包中所指定的所述扩展优先级配置文件所需的一个或多个比特值存储在所述存储器中;以及,根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述第一包。
在这些实施例中的一些中,所述网络设备包含以下特征的任意组合。
在所述包处理器根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述第一包之后,所述包处理器进一步被配置成使所述第一包被转发到另一网络设备,其中(i)所述第一优先级字段的比特被设定成对应于与所述第一VLAN标记相关联的所述优先级配置文件的比特值并且(ii)所述第二优先级字段的比特被设定成重建所述第一包中所指定的所述扩展优先级配置文件所需的所述一个或多个比特值。
在所述包处理器根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述第一包之后,所述包处理器进一步被配置成使用(i)对应于与所述第一VLAN标记相关联的所述优先级配置文件的比特值以及(ii)重建所述第一包中所指定的所述扩展优先级配置文件所需的所述一个或多个比特值,来重建所述第一包的扩展优先级配置文件。
所述网络设备进一步包含多个队列,并且所述包处理器被配置成根据与所述第一VLAN标记相关联的所述优先级配置文件至少部分地通过以下步骤处理所述包:基于与所述第一VLAN标记相关联的所述优先级配置文件选择所述多个队列中的一个;以及,将所述包、所述包的一部分或与所述包相关联的包描述符发送给所选择的队列。
所述包处理器被配置成将所接收的包中的第一包识别为具有由(i)与所述第一VLAN标记相关联的所述第一优先级字段的所有比特以及(ii)与所述第二VLAN标记相关联的所述第二优先级字段的所有比特所指定的扩展优先级配置文件的包。
在另一实施例中,一种耦合到网络的网络设备中的方法包括:从网络接收包;将所述包识别为具有由(i)与所述包的第一VLAN标记相关联的第一优先级字段的一个或多个比特以及(ii)与所述包的第二VLAN标记相关联的第二优先级字段的一个或多个比特所指定的扩展优先级配置文件的包;将所述扩展优先级配置文件映射到与所述第一VLAN标记相关联的优先级配置文件;将重建所述包中所指定的扩展优先级配置文件所需的一个或多个比特值存储在存储器中;以及,根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述包。
在这些实施例中的一些中,所述方法包含以下特征的任意组合。
所述方法进一步包含:在根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述包之后,使所述包被转发到另一网络设备,其中(i)所述第一优先级字段的比特被设定成对应于与所述第一VLAN标记相关联的所述优先级配置文件的比特值,并且(ii)所述第二优先级字段的比特被设定成重建所述包中所指定的扩展优先级配置文件所需的所述一个或多个比特值。
所述方法进一步包含:在根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述包之后,使用(i)对应于与所述第一VLAN标记相关联的所述优先级配置文件的比特值以及(ii)重建所述包中所指定的扩展优先级配置文件所需的所述一个或多个比特值来重建所述包的扩展优先级配置文件。
根据与所述第一VLAN标记相关联的所述优先级配置文件处理所述包包括:基于与所述第一VLAN标记相关联的所述优先级配置文件选择多个队列中的一个;以及,将所述包、所述包的一部分或与所述包相关联的包描述符发送给所选择的队列。
将所述包识别为具有扩展优先级配置文件的包包括:将所述包识别为具有由(i)与所述第一VLAN标记相关联的所述第一优先级字段的所有比特以及(ii)与所述第二VLAN标记相关联的所述第二优先级字段的所有比特所指定的扩展优先级配置文件的包。
具体实施方式
为了促进有效的网络管理,电气和电子工程师协会(IEEE)802.1Q标准定义了位于以太网包的虚拟局域网(VLAN)标记内的三比特优先级字段,通过三个优先级比特的值指定包的八个可能的层2优先级配置文件中的一个。而且,以太网基础结构中所使用的一些通信协议为每个包指定两个不同的三比特层2优先级字段,其中每个优先级字段与不同的VLAN标记相关联。例如,IEEE 802.1ad标准定义了“QinQ”包格式,其包括具有三比特优先级字段的外部VLAN(“服务VLAN”)标记以及具有另一个三比特优先级字段的内部VLAN(“客户VLAN”)标记。作为另一实例,IEEE 802.1aq标准定义的最短路径桥接(SPB)协议定义了封装在标记IEEE 802.1Q/802.1ad“QinQ”帧的边缘处的包。作为又一实例,互联网工程任务组(IETF)提供的多链接透明互联(TRILL)标准定义了一种包格式,其包括位于包括三比特优先级字段的链路报头中的外部VLAN标记以及位于包括另一个三比特优先级字段的TRILL报头中的内部VLAN标记。然而,对于这些各种类型的包中的每种类型的包,在处理给定的包时,常规的网络设备仅考虑单个VLAN标记优先级,因此根据仅八个可能的层2优先级配置文件中的一个来处理每个包。例如,常规的网络设备仅根据服务VLAN标记中所指示的优先级或仅根据客户VLAN标记中指定的优先级,而不会根据所有两种优先级,来处理IEEE 802.1ad包。
在下文描述的实施例中,网络设备(例如,交换设备)被配置成支持大量不同的层2优先级配置文件,其大于使用常规的联网技术可获得的优先级配置文件。根据各种实施例,包的“优先级配置文件”规定了如何以多种不同方式中的任一种对包进行处理,例如,是否可丢弃包、包所允许的最大等待时间或包的各种调度参数中的任意参数。在一个实施例中,将与第一VLAN标记相关联的第一优先级字段内的比特和与第二不同的VLAN标记相关联的第二优先级字段内的比特集体地用作单个“扩展”优先级字段。为方便起见,单个VLAN标记内的常规的层2优先级字段的比特在本文中有时被称为“VLAN优先级标记”或“VPT”,而用于表示层2扩展优先级字段的两个VPT内的比特在本文中有时统称为“双VLAN优先级标记”或“DVPT”。
在一些实施例中,扩展优先级字段(DVPT)中的增加的数量的比特允许兼容的网络设备以提供为仅单独地检验单个VLAN标记的优先级的常规设备所提供的层2服务质量(QoS)配置文件的至少两倍、并且在一些实施例中超过两倍的服务质量(QoS)配置文件。在其中包包括各自能够表示多达23(八)个不同优先级配置文件的两个层2、三比特VPT的实施例中,例如,将两个VPT的共计六个比特集体地用作表示多达26(64)个不同优先级配置文件的DVPT。在各种实施例和/或情境中,例如取决于网络设备在网络中所处的位置(例如,作为核心/骨干设备,或作为边缘设备),网络设备可将两个或两个以上VPT映射到单个扩展优先级配置文件,将扩展优先级配置文件映射到单个VLAN标记优先级配置文件,和/或将扩展优先级配置文件变为新的扩展优先级配置文件。
通过支持数量增加的层2优先级配置文件,网络和网络设备可更有效地管理和控制不同业务类型的更多变化的集合,而不必要求在每个包内检验任何层3优先级信息。在一个实施例中,例如,即使不检验以太网包的层3差分服务代码点(DSCP或DiffServ)字段,设备也能够支持以太网包的增加数量的优先级配置文件。
图1为根据实施例的实施本公开的包处理技术的例示性网络设备10(例如,如桥之类的网络交换机)的框图。在本实施例中,网络设备10包括包入口12、耦合到包入口12的包处理器14和耦合到包处理器14的包出口16。在一个实施例中,包入口12耦合到一个或多个物理端口(图1中未示出),其中包入口12通过所述物理端口从网络接收包。类似地,在一个实施例中,包出口16耦合到一个或多个物理端口(图1中未示出),其中包出口16通过所述物理端口将包转发到网络中的其它网络设备。在其中网络设备10为边缘设备的实施例中,例如,包入口12从第一网络接收包,并且包出口16至少将接收的包中的一些转发到第二不同网络。在其中网络设备10为核心设备而非边缘设备的另一例示性实施例中,包入口12从同一网络内的设备接收包,而包出口至少将接收的包中的一些转发同一网络内的设备。在一个实施例中,网络设备10驻留于基于以太网的网络内,并且处理以太网包。
在一个实施例中,包入口12和包出口16各自包括被配置成对通过网络设备10接收的包进行处理的一个或多个处理单元(图1中未示出)。为了便于解释,本文中对“包”的引用可表示包本身、与所述包相关联包描述符或对应于所述包的不同的适合的数据单元(例如,包报头、包报头的一部分等)。在各种实施例中,包入口12内的处理单元包括隧道终止接口(tunnel termination interface,TTI)分类单元、入口策略单元、网桥引擎、入口策略器单元等中的一个或多个,而包出口16内的处理单元包括出口滤波单元、层2(和/或层3)复制单元、业务整形单元、调度单元、出口策略单元、出口策略器单元等中的一个或多个。在一个实施例中,包入口12的处理单元为在入口管线内以串行配置排列的处理引擎,而包出口16的处理单元为在出口管线内以串行配置排列的处理引擎(例如,获自的系列的包处理器)。替代地,各个处理单元对应于可定义网络或包处理器的在如数据流管线等可编程处理单元的管线中执行的代码的部分(例如,获自的系列的数据流网络处理器),或为一个或多个软件驱动的包和/或网络处理器的功能性程序模块。为了简化解释,下文在通过单独的处理引擎定义的入口和出口管线的上下文中进行描述,但本文所描述的原理可同等地应用于其它适合的用于交换机的处理器架构,并且交换机架构不应被理解为局限于任何特定的架构设计。
通常,包处理器14对通过包入口12接收到的至少一些包执行与扩展优先级配置文件相关的一个或多个特定的处理操作。为此,例示性网络设备10的包处理器14包括双VLAN标记(DVT)包识别单元20、扩展优先级配置文件映射单元22和优先级依赖处理单元24。在一个实施例中,为了确定哪个包应接收特定优先级处理操作,DVT包识别单元20首先识别接收的包中的哪一个符合双VLAN标记包格式。如本文中所使用,术语“双VLAN标记包”或“DVT包”用于表示具有包括(例如,在包报头中)至少两个不同的VPT(即,至少两个单独的层2优先级字段,其中每个层2优先级字段与不同的VLAN标记相关联)的格式的包。如上述,例如,双VLAN标记包包括(但非局限于)IEEE 802.1ad包、SPB包和TRILL包。下文结合图2更详细地描述可通过包处理器14进行处理的双VLAN标记包的一个实例。
在一个实施例中,为了将接收到的包识别为双VLAN标记包,DVT包识别单元20确定所述包是否符合已知的具有双VLAN标记格式的协议,例如IEEE 802.1ad、SPB或TRILL协议(例如,通过检验包的一个或多个报头字段)。在替代实施例中,通过识别网络设备10接收所述包的物理端口,DVT包识别单元20将接收到的包识别为双VLAN标记包。例如,在一个实施例和/或情境中,对网络设备10进行预配置,使得DVT包识别单元20能够先验地获知特定的物理端口将仅接收符合特定协议的包。在另一例示性实施例/情境中,对网络设备10进行预配置,使得DVT包识别单元20先验地获知特定的VLAN对应于符合特定协议的包。在其它实施例中,DVT包识别单元20使用任何其它适合的技术将接收到的包识别为双VLAN标记包。
由DVT包识别单元20识别为双VLAN标记包的包被提供给扩展优先级配置文件映射单元22。在一个实施例中,扩展优先级配置文件映射单元22选择性地将来自包的两个或两个以上VPT的比特映射到扩展优先级配置文件,将包的DVPT的比特映射到与单个常规的VLAN标记相关联的优先级配置文件,或保持包的(扩展或常规)优先级配置文件不变。在一些实施例中,扩展优先级配置文件映射单元22的特定操作取决于以下因素:例如,网络设备10是否被配置成两个网络之间的边缘设备、网络设备10从其接收包的网络的类型和/或网络设备10向其转发包的网络的类型(例如,不支持层2扩展优先级配置文件的传统网络,或支持层2扩展优先级配置文件的非传统网络)、网络设备10是否被配置成非传统网络内的核心/骨干设备、当前是否启用扩展优先级配置文件模式和/或其它因素。在其中网络设备10为从传统网络接收双VLAN标记包并向非传统网络转发所述包的边缘设备的一个实施例和情境中,例如,扩展优先级配置文件映射单元22将来自全部两个VPT的比特值映射到所述包的扩展优先级配置文件。下文参照图4更详细地描述此实施例/情境和其它实施例/情境以及扩展优先级配置文件映射单元22内的各种单元。
在扩展优先级配置文件映射单元22执行优先级配置文件映射之后,优先级依赖处理单元24根据包的新的优先级配置文件对所述包进行处理。在其中扩展优先级配置文件映射单元22将两个VPT的比特映射到扩展优先级配置文件的一个实施例和情境中,例如,优先级依赖处理单元24通过将包发送到适当的队列(或确定是否应将包丢弃等)来施行对应于所述扩展优先级配置文件的QoS等级。在另一例示性实施例/情境中,优先级依赖处理单元24使用扩展优先级配置文件来确定所述包应转发的另一网络设备的地址。在其它例示性实施例/情境中,优先级依赖处理单元24基于扩展优先级配置文件执行其它类型的操作。
在例示性网络设备10中,将包处理器14耦合到存储器26,例如动态随机存取存储器(DRAM)或其它适合的存储器。根据各种不同的实施例,存储器26能够用于不同的目的。例如,在一个实施例中,存储器26存储对应于通过包入口12接收到的包的包描述符或包报头,或整个包的副本,并且包处理器14被配置成对存储器26进行读取和写入。在其中扩展优先级配置文件映射单元22将DVPT比特映射到单个VPT的比特的一个实施例中,存储器26存储允许稍后在网络设备10中或在网络设备10所耦合的网络中的后续设备处重建初始DVPT比特的比特值。在一些实施例中,存储器26通过重写包报头或包描述符的部分存储这些比特值。
在一个实施例中,为了易于理解,在硬件、执行固件和/或软件指令的处理器或其组合中实施包入口12、包处理器14和/或包出口16。在一些实施例中,在硬件中全部或部分地实施例示性网络设备10中的包入口12、包处理器14和包出口16,并且大体上以网速(wire speed)对包进行处理。例如,在一个实施例中,以专用集成电路(ASIC)内的硬件管线架构实施所有的单元。在其它实施例中,使用不同类型的集成电路,例如可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、定制集成电路等。在一些实施例中,在耦合到一起的多个不同的集成电路上实施例示性网络设备10的单元。在一些实施例中,如上述,可利用其它的架构和/或平台,例如在可编程处理单元的管线中执行的代码的部分,或为一个或多个软件驱动的包和/或网络处理器的功能性程序模块。
尽管图1为了清晰起见示出独立于包入口12和包出口16的包处理器14,但是在一些实施例中,包处理器14的单元分布在包入口12内、分布在包出口16内或分布在包入口12和包出口16两者内。例如,在一个实施例中,包入口12内的入口策略单元(图1中未示出)执行DVT包识别单元20和扩展优先级配置文件映射单元22的功能,而优先级依赖包处理单元24为包出口16中所包括的出口QoS施行单元。在另一例示性实施例中,DVT包识别单元20和扩展优先级配置文件映射单元22位于包入口12中的策略单元之前,使得三元内容可寻址存储器(TCAM)在策略单元中的查找能够利用扩展优先级配置文件映射单元22所执行的任何映射的结果。在其它实施例中,包入口12、包处理器14和/或包出口16中的一些或所有单元/引擎的位置是可配置的,从而允许特定的应用定义包处理的次序。例如,在一个实施例中,当包从入口向出口行进时,多个中央处理单元(CPU)各自被配置成向相应单元/引擎(或相应组的单元/引擎)提供可编程包处理功能性。
图2是根据一个实施例和情境的通过图1的例示性网络设备10处理的例示性双VLAN标记包40的示图。在一个实施例中,除了将多个VPT用作指示扩展优先级配置文件的DVPT的能力外,例示性双VLAN标记包40符合IEEE 802.1ad标准,并且包括八字节的前导码42、六字节的目的地MAC字段44、六字节的源MAC字段46、四字节的外部(服务)VLAN标记50、四字节的内部(客户)VLAN标记52、两字节的以太网类型(EtherType)/大小字段54、包括数据的n字节的有效载荷56以及用于错误检测的四字节的循环冗余校验(CRC)/帧校验序列(FCS)字段60。外部VLAN标记50包括16比特的标记协议标识符(TPID)字段62、3比特的优先级代码点(PCP)字段64、1比特的丢弃合法性指示符(DEI)字段66和12比特的VLAN标识符(VID)字段68。类似地,内部VLAN标记52包括16比特的TPID字段72、3比特的PCP字段74、1比特的DEI字段76和12比特的VID字段78。PCP字段64充当与外部VLAN标记50相关联的VPT,而PCP字段74充当与内部VLAN标记52相关联的VPT。在一个实施例中,两个PCP字段64、74的全部六个比特充当用于指示扩展优先级配置文件的DVPT。在其它实施例中,DVPT包括分布在两个PCP字段64、74之中的少于六个比特。
在各种实施例中,通过检验以太网类型/大小字段54、通过直接确定包40包括两个VPT(即,PCP字段64和PCP字段74)或通过不同的适合的技术,图1的DVT包识别单元20将包40识别为双VLAN标记包。在一个实施例和情境中,扩展优先级配置文件映射单元22将DVPT比特(即,两个PCP字段64、74的一些或全部比特)映射到对应于特定的扩展优先级配置文件的新的一组比特值,并以新的值重写PCP字段64、74的比特。在另一实施例和情境中,包处理器14获知已从与网络设备10相同的层2 DVPT域中的另一设备(即,从利用与网络设备10相同组的扩展优先级配置文件的设备)接收到包40,因此,扩展优先级配置文件映射单元22保持该比特值不变。在又一实施例和情境中,扩展优先级配置文件映射单元22将指示扩展优先级配置文件的DVPT比特映射到用于包40中的单个VPT的比特值(即,映射到用于PCP字段64的比特值,或映射到用于PCP字段74的比特值),并且以新的值仅重写这些比特。
尽管例示性双VLAN标记包40通常符合IEEE 802.1ad包,但是在其它实施例和/或情境中,替代地,图1的网络设备10处理不同类型的双VLAN标记包,例如TRILL包或SPB包。此外,尽管例示性双VLAN标记包50仅包括两个VPT(PCP字段64和PCP字段74),但是在其它实施例和/或情境中,替代地,图1的网络设备10处理各自包括多于两个VPT的包。例如,在一个实施例和情境中,网络设备10处理具有三个或三个以上VPT的包,并且扩展优先级配置文件映射单元22将来自所述三个或三个以上VPT的一些或全部比特映射到扩展优先级配置文件。
图3为根据实施例的包括多个耦合网络82A-82D的例示性系统80的框图。网络82A-82D中的每一个包含单个层2 DVPT域内的网络设备的集合(即,共享相同的一组层2扩展优先级配置文件的网络设备的集合)。在一个实施例中,网络82A、82C和82D为各自包括被配置成支持扩展优先级配置文件的网络设备的非传统(扩展优先级)网络,而网络82B为不能支持扩展优先级配置文件的传统网络。更具体地,在图3所示的例示性实施例中,扩展优先级网络82A、82C和82D中的每一个支持64种不同的优先级配置文件,而传统网络82B仅支持八种不同的优先级配置文件(例如,通过三比特的外部VLAN标记优先级提供的八种优先级配置文件)。例如,此可对应于其中包的两个VPT中的每一个均包括三个比特并且DVPT包括两个VPT的全部六个比特的实施例。
在例示性系统80中,网络82A和82B通过边缘设备84耦合,网络82B和82C通过边缘设备86耦合,并且网络82C和82D通过边缘设备88耦合。在一个实施例中,边缘设备84、86、88为类似于图1的网络设备10的网络设备。此外,在一些实施例中,网络82A-82D中的每一个包括一个或多个核心/骨干设备,这些设备不在不同的网络之间提供接口。为清晰起见,图3仅示出此类型的单个设备,即扩展优先级网络82C中的核心设备90。在一个实施例中,核心设备90和/或图3中未示出的其它核心设备也为类似于图1的网络设备10的网络设备。
在一些实施例中,扩展优先级网络82A、82C和82D中的至少两个定义不同组的层2扩展优先级配置文件,因此与不同的层2 DVPT域相关联(例如,以类似于层3的不同DSCP域的方式)。在图3的例示性系统80中,网络82A和82C均为其中使用第一组64个扩展优先级配置文件(“组A”)的第一层2 DVPT域的一部分,而网络82D为其中使用不同的第二组64个扩展优先级配置文件(“组B”)的第二层2 DVPT域的一部分。
尽管图3中将例示性系统80示为包括三个扩展优先级网络和一个传统网络,但是其它实施例可包括不同数量的类似于网络82A、82C和82D的扩展优先级网络和/或不同数量的类似于网络82B的传统网络。此外,在其它实施例中,扩展优先级网络82A、82C和/或82D支持多于或少于64个优先级配置文件,和/或传统网络82B支持多于或少于八个优先级配置文件。下文将参照图4更详细地描述网络80内的不同设备的操作。
图4为框图,其提供根据实施例的实施本公开的包处理技术的例示性包处理器100的更详细的视图。在一个实施例中,将包处理器100用作图1中的网络设备10的包处理器14。然而,在其它实施例中,将包处理器100用于不同于网络设备10的网络设备。首先,将基于其功能性描述包处理器100内的各种单元;接着,将描述若干例示性情境以说明所述单元的操作。为了便于解释,参照其中包处理器100对图2所示的例示性双VLAN标记包40进行操作并且其中指示扩展优先级配置文件的DVPT包括两个VPT的全部六个比特(即,PCP字段64和PCP字段74的全部比特)的实施例和情境,描述包处理器100的功能性和操作。然而,在各种其它实施例和/或情境中,包处理器100对其它类型的双VLAN标记包进行操作和/或DVPT包括少于单个VPT的全部比特,该其它类型的双VLAN标记包例如TRILL包、SPB包或具有多于两个VLAN标记的包。
包处理器100包括DVT包识别单元102,其将接收到的包40识别为双VLAN标记包。在一些实施例中,DVT包识别单元102为类似于图1中的网络设备10的DVT包识别单元20的单元。在图4的例示性实施例中,将DVT包识别单元102耦合到DVPT映射单元104。在一个实施例中,DVPT映射单元104被配置成读取包40的DVPT(即,PCP字段64和PCP字段74中的全部比特的值)并且将该值映射到新的DVPT值。在一个实施例中,DVPT映射单元104通过访问包描述符存储装置110来读取包40的DVPT。在其它实施例中,替代地,DVPT映射单元访问存储的包40的副本或存储的包40的报头的副本。在一个实施例中,包描述符存储装置110(或报头存储装置等)包括在图1的网络设备10的存储器26中。在一个实施例中,通过将旧的DVPT值用作存储在例如内容可寻址存储器的存储器中的DVPT映射表112的密钥,DVPT映射单元104将旧的DVPT值映射到新的DVPT值。在另一实施例中,通过将可配置的比特掩码应用于旧的DVPT,DVPT映射单元104将旧的DVPT映射到新的DVPT,如下文参照图7进一步描述的那样。
在一些实施例中,包40的外部VPT中的(即,PCP字段64中的)比特对应于DVPT的最高有效比特,而包40的内部VPT中的(即,PCP字段74中的)比特对应于DVPT的最低有效比特。在其它实施例中,包40的内部VPT中的(即,PCP字段74中)比特对应于DVPT的最高有效比特,而包40的外部VPT中的(即,PCP字段64中的)比特对应于DVPT的最低有效比特。在一些实施例中,哪个VPT对应于DVPT的最高有效比特和哪个VPT对应于DVPT的最低有效比特是包括包处理器100的网络设备的可配置参数。
在一些实施例中,仅当满足一个或多个标准时,DVPT映射单元104才重映射DVPT比特值。例如,在一个实施例中,仅当包处理器100确定启用“DVPT模式”和/或仅当包处理器100确定启用“DVPT-DVPT重映射”时,DVPT映射单元104才重映射DVPT比特值。在一个实施例中,“DVPT模式”用于控制包处理器100是否根据DVPT指示的扩展优先级或根据单个VPT优先级(例如,根据外部VLAN标记50的PCP字段64)处理包40。在一个实施例中,基于如何选择性地配置包处理器100,启用或禁用“DVPT-DVPT重映射”。例如,在一个实施例中,若将在核心网络设备内使用包处理器100,则禁用DVPT-DVPT重映射;但是,若将在用于将包从第一层2 DVPT域(支持第一组扩展优先级配置文件)转发到第二层2 DVPT域(支持不同的第二组扩展优先级配置文件)的边缘设备内使用包处理器100,则启用DVPT-DVPT重映射。在一个实施例中,DVPT-DVPT重映射机制类似于在层3 DSCP域之间使用的DSCP-DSCP重映射机制。
将DVPT映射单元104耦合到QoS配置文件映射单元106。QoS配置文件映射单元106被配置成从包描述符存储装置110读取包40的DVPT的比特值(无论这些比特是否已被DVPT映射单元104重映射)并且将所述比特值映射到扩展优先级配置文件。例如,在一个实施例中,通过将DVPT用作存储在如内容可寻址存储器的存储器中的配置文件映射表114的密钥,QoS配置文件映射单元106将DVPT值映射到扩展优先级配置文件。在一些实施例中,配置文件映射表114中的每个配置文件对应于包40应该或必需遵循的特定的标准。例如,在一个实施例中,特定的优先级配置文件指示包40的最大允许等待时间,而其又致使包处理器100中的一个或多个后续单元以特定的方式处理包40(例如,通过将包40放在特定的队列中)。
在其中包处理器100对图2的包40进行处理的一个实施例中,配置文件映射表114提供一组至少64个不同的优先级配置文件,其中的任一个均可基于QoS配置文件映射单元106所执行的映射而应用于包40。在一个实施例中,配置文件映射表114提供一组64个不同的优先级,其与DSCP所提供的64个层3 QoS选项相同或大体上相同。
在一些实施例中,配置文件映射表114所提供的优先级配置文件以分级方式排列。例如,在一个实施例中,对优先级配置文件进行排列,使得DVPT的三个最高有效比特(例如,在一个实施例和/或配置中,外部VPT的比特)指定优先级等级,而DVPT的三个最低有效比特(例如,在一个实施例和/或配置中,内部VPT的比特)指定优先级次等级。图5为根据实施例的以此分级方式排列的一个例示性配置文件映射表200的示图。在图5的例示性实施例中,索引号210表示DVPT的三个最高有效比特的值,其中每个索引号对应于优先级配置文件220中的不同的配置文件。
在其中使用n个比特指示优先级等级的一些实施例中,零和2n之间的优先级等级对应于可基于其DVPT值而分配给包的一般“类别”,而剩余优先级等级中的一些或全部(若存在)对应于将要分配给特定类型的数据的特定优先级配置文件。例如,在图5的实施例中,保留最高三个优先级等级用于特定的数据类型:关键RBridge管理数据(例如,当网络通路断开时利用的“拓扑变化”消息),互联网小型计算机系统接口(ISCSI)数据(提供对存储装置的访问)以及基于IP的语音传输(VoIP)数据。在本实施例中,下一个最高优先级等级为“保留”优先级配置文件(例如,未使用/未定义的配置文件,或可由系统设计者进行配置的配置文件等),随后是对应于可选择性地分配给特定包的不同优先级等级的四个一般类别(类别A到类别D)。
在一些分级实施例中,优先级等级中的一些或全部与大量的优先级次等级相关联。例如,在一个实施例中,优先级次等级由DVPT的三个最低有效比特指示,由此提供多达八个不同的次等级。在图5的例示性实施例中,DVPT的三个最低有效比特对应于内部或“本地”VPT标记,其指示类别A、B、C或D包的优先级次等级。在本例示性实施例中,对于对应于特定业务类型(即,关键RBridge管理数据、ISCSI数据和VoIP数据)的优先级等级,不使用优先级次等级。然而,在其它实施例中,特定业务类型的一些或全部优先级配置文件与一组优先级次等级相关联。
在其它实施例中,并且再次参照图4,配置文件映射表114提供的优先级配置文件不是以分级方式排列(例如,在一个实施例中,将六比特的DVPT的全部比特作为平坦的六比特值来处理)。例如,此“平坦DVPT”方法可使优先级操控(例如,DVPT-DVPT重映射)更为简单。
在一个实施例中,配置文件映射表114为QoS配置文件表,其用于设置业务类别、用户优先级、DSCP和丢弃优先级。例如,在其中当处理类似于包40的包时包处理器100支持一组64个层2扩展优先级配置文件的一个实施例中,配置文件映射表114具有如下排列的128个条目:
DSCP |
0-63 |
DVPT |
64-127 |
VPT |
64+n*8,其中n=0...7 |
表1
如表1所示,这种配置文件映射表提供VPT和DVPT表条目之间的“剪切”,其之所以可能实现,是因为在本实施例中,外部VPT对应于DVPT的最高有效三个比特,致使VPT值正好位于表条目64+n*8(即,条目64、72、80等)。
在QoS配置文件映射单元106已将包40的DVPT映射到扩展优先级配置文件之后,包处理器100内的队列选择单元116选择排队单元120内的n个队列中的一个作为包40将被送达的队列。例如,在一个实施例中,将排队单元120中的n个队列中的每一个与特定的优先级相关的属性,例如与队列相关联的等待时间,相关联。在一个实施例中,队列选择单元116基于QoS配置文件映射单元106所确定的扩展优先级配置文件选择包40将被送达的队列。在一个实施例中,排队单元120与包括包处理器100的网络设备的单个出口端口相关联。在一些实施例中,包括包处理器100的网络设备包括用于每个出口端口的类似于队列选择单元116的队列选择单元以及类似于排队单元120的排队单元。
在一些实施例中,按照扩展优先级配置文件,排队单元120包括少于一个队列(在具有64个扩展优先级配置文件的实施例中,n=4个队列或n=8个队列)。在其它实施例中,按照配置文件映射表114中的扩展优先级配置文件,排队单元120包括一个队列(例如,在具有64个扩展优先级配置文件的实施例中,n=64个队列)。以此方式,可更精细地控制QoS施行。在一些实施例中,将排队单元120的队列额外地用于根据层3 DSCP优先级对包进行处理。
在一些实施例中,除队列选择单元116和排队单元120之外或替代队列选择单元116和排队单元120,包处理器100还包括其它基于优先级的处理单元。例如,在一个实施例中,包处理器100包括出口处理单元,其用于将包40转发到基于扩展优先级配置文件所确定的设备地址。
在一个实施例中,在硬件、执行固件和/或软件指令的处理器或其组合中实施包处理器100中的一些或全部单元。在一些实施例中,在硬件中整体或部分地实施包处理器100的单元,并且大体上以网速对包进行处理。例如,在一个实施例中,在ASIC内的硬件管线架构中实施所有的单元。在其它实施例中,使用不同类型的集成电路,例如PLD、FPGA、PLA、定制集成电路等。在一些实施例中,在耦合到一起的多个不同的集成电路上实施例示性包处理器100的单元。例如,在一些实施例中,如上述,可使用其它架构和/或平台,例如,在可编程处理单元的管线中执行的代码的部分或为一个或多个软件驱动的包和/或网络处理器的功能性程序模块。
现将参照图3的系统80描述根据一个实施例的对于若干不同的例示性情境的包处理单元100的操作。在第一例示性情境中,包处理器100包括在边缘设备84中,从传统网络82B中的设备接收包40,并将包40转发到扩展优先级网络82A中的设备。在一个实施例中,DVT包识别单元102首先将包40识别为双VLAN标记包。此外,因为设备84被配置成边缘设备,所以包处理器100先验地知道从网络82B接收并发向网络82A的包将需要将全部两个VPT映射到DVPT。因此,在一个实施例中,DVPT映射单元104将PCP字段64的三个比特和PCP字段74的三个比特映射至六比特的DVPT,并且QoS配置文件映射单元106将六比特的DVPT映射到“组A”的64个优先级配置文件中的一个。在一个实施例中,队列选择单元116接着基于所得优先级配置文件选择排队单元120中的一个队列,并且包40进入所选择的队列。其后,边缘设备84内的其它单元和/或包40将被转发到的扩展优先级网络82A内的任意后续网络设备能够根据QoS配置文件映射单元106所确定的扩展优先级配置文件对包40进行处理。
在第二例示性情境中,包处理器100同样包括在边缘设备84中,但是从扩展优先级网络82A中的设备接收包40,并将包40转发到传统网络82B中的设备。同样,在本情境中,DVT包识别单元102首先将包40识别为双VLAN标记包。此外,因为设备84被配置成边缘设备,所以包处理器100先验地知道从网络82A接收并发向网络82B的包将需要将其DVPT映射到单个VPT(即,对应于网络82B的八个优先级配置文件的VPT)。因此,DVPT映射单元104将包40的DVPT映射到用于对PCP字段64进行重写的三比特VPT。在一个实施例中,QoS配置文件映射单元106接着将三比特VPT映射到八个优先级配置文件中的一个,并且队列选择单元116基于所得优先级配置文件选择排队单元120中的一个队列。
在本情境中,在一些实施例中,包处理器100设法预留足够的信息以允许稍后(在转换成单个VPT之前)通过另一设备重建包40的DVPT。例如,在一个实施例中,DVPT映射单元104保持包40中的PCP字段74的比特不变,从而使,例如,边缘设备86能够确定在将包转发到网络82C中的设备之前如何将PCP字段64和74的比特映射回DVPT。
在第三例示性情境中,包处理器100包括在边缘设备88中,从扩展优先级网络82C中(第一层2 DVPT域中)的设备接收包40,并将包40转发到扩展优先级网络82D中(第二不同的层2 DVPT域中)的设备。同样,在本情境中,DVT包识别单元102首先将包40识别为双VLAN标记包。此外,因为设备88被配置成边缘设备,所以包处理器100先验地知道从网络82C接收并发向网络82D的包将需要将DVPT从初始值映射到新的值。因此,DVPT映射单元104将包40的DVPT映射到用于重写PCP字段64和74的新的DVPT。在一个实施例中,QoS配置文件映射单元106接着将新的DVPT映射到“组B”中的64个优先级配置文件中的一个,并且队列选择单元116基于所得优先级配置文件选择排队单元120中的一个队列。其后,边缘设备88内的其它单元和/或扩展优先级网络82D内的包40将被转发到的后续网络设备能够根据QoS配置文件映射单元106所确定的扩展优先级配置文件对包40进行处理。
在一个实施例中,图3中的系统80的核心设备90被配置成根据边缘设备设定的扩展优先级配置文件对例如包40的包进行处理,但是不执行层2优先级的映射。例如,在一个这样的实施例中,核心设备90包括DVT包识别单元102、队列选择单元116和/或排队单元120,但是不包括(或不利用)DVPT映射单元104或QoS配置文件映射单元106。
如上述,在一些实施例中,以分级方式排列QoS配置文件。在这些实施例中的一些中,根据允许传统优先级配置文件和扩展优先级配置文件之间的更简单映射的特定分级来排列QoS配置文件。在一个这样的实施例中,第一VLAN标记(例如,外部VLAN标记)提供对应于传统设备/网络所支持的优先级配置文件的优先级等级,而第二VLAN标记(例如,内部VLAN标记)提供第一VLAN标记优先级等级中的一个或多个中的每一个的优先级次等级。因此,在本实施例中,传统交换机能够通过仅检验单个VLAN标记的优先级(例如,外部VLAN标记优先级)对包进行处理,而非传统交换机能够通过检验全部DVPT(即,外部VLAN标记优先级和内部VLAN标记优先级两者)针对同一包提供更精细的优先级分辨度。
图6示出一个这样的实施例,其说明了分级优先级方案中的当包从非传统网络向传统网络传播且随后回到非传统网络时用于确定包优先级的比特的设置中的例示性转换250。具体地,比特设置260表示用于指示第一非传统网络(例如,图3的网络82A)中的设备中的优先级配置文件的DVPT比特,比特设置270表示用于指示第二传统网络(例如,图3的网络82B)中的设备中的优先级配置文件的单个VPT比特,而比特设置280表示用于指示与第一网络相同的层2域相关联的第三非传统网络(例如,图3的网络82C)中的设备中的优先级配置文件的DVPT比特。在例示性转换250中,以包的外部VLAN标记的三个比特290指示粗优先级等级,而以同一包的内部VLAN标记的三个比特292指示优先级次等级。此外,在例示性转换250中,传统网络利用刚好对应于外部VLAN标记的三个比特290所指示的优先级的优先级配置文件。因此,在本实施例中,当包从第一(非传统)网络向第二(传统)网络传播并接着向第三(非传统)网络传播时,不要求外部VLAN标记优先级比特290的重映射。在一些实施例中,中间传统网络中的设备通过在包传播通过传统网络时将初始值保留在内部VLAN标记中来“保存”比特292的值,由此允许在包再进入非传统网络时在边缘设备(例如,图3的边缘设备86)处完全重建比特设置280(即,DVPT)。
图7为根据一个实施例的用于确定扩展QoS配置文件的例示性方法300的流程图。在各种实施例中,通过图4的DVT包识别单元102、DVPT映射单元104和QoS配置文件映射单元106实施方法300,或通过图1的DVT包识别单元20和扩展优先级配置文件映射单元22实施方法300。
在框310,确定接收到的包是否为双VLAN标记包。若在框310确定包不是双VLAN标记包,则流程进入框320,其中以常用方式对包进行处理(例如,根据单个VLAN标记优先级进行处理)。若在框310确定包是双VLAN标记包,则替代地,流程进入框330。
在框330,确定针对实施方法300的网络设备是否启用DVPT模式。在一个实施例中,网络设备的DVPT模式控制网络设备是根据DVPT所指示的扩展优先级还是根据单个VLAN标记优先级处理接收到的包。若DVPT模式被禁用,则流程进入框320,其中根据单个VLAN标记优先级(例如,外部VLAN标记优先级)对包进行处理。若DVPT模式被启用,则替代地,流程进入340。
在框340,确定针对实施方法300的网络设备是否启用DVPT-DVPT映射。若禁用,则维持包的初始DVPT(框360)。若启用,则将初始DVPT映射到新的DVPT(框350)。最后,在框370,将新的或初始DVPT映射到对应于包的QoS等级的扩展优先级配置文件。
图8为框图,其提供根据实施例的例示性DVPT映射单元400的更详细的视图。在一个实施例中,将DVPT映射单元400用作图4中的包处理器100的DVPT映射单元104。然而,在其它实施例中,将DVPT映射单元104用于不同于包处理器100的包处理器。
例示性DVPT映射单元400接受三比特外部VPT 410和三比特内部VPT 412作为输入,并且输出VPT410和412将被映射到的六比特DVPT 414。例如,在一个实施例中,外部VPT 410为包40的外部VLAN标记50中的PCP字段64,而内部VPT 412为包40的内部VLAN标记52中的PCP字段74。在一个实施例中,DVPT映射单元400从例如图4的包描述符存储装置110之类的存储器读取外部VPT 410和内部VPT412。
DVPT映射单元400包括3-8解码器416,其在八个行中的一个上输出“1”(而在其它七个行上输出“0”),以反映外部VPT 410的值。例如,在一个实施例中,当外部VPT比特值为001时,3-8解码器416仅在行编号1上输出“1”,而当外部比特值为111时,3-8解码器416仅在行编号7上输出“1”。DVPT映射单元400通过八比特的DVPT掩码420控制如何执行映射。在一个实施例中,能够自动地或通过系统设计选择性地配置DVPT掩码420的值。
将3-8解码器416的八个输出和DVPT掩码420的八个输出输入到一组“与(AND)”门422-1至422-8。具体地,在一个实施例中,“与”门422-1至422-8中的每一个对来自3-8解码器416的一个比特和来自DVPT掩码420的相应比特执行逻辑“与”运算,如图8所示。“或(OR)”门424对所有“与”门422-1至422-8的输出执行逻辑“或”运算,并且将结果/输出提供给每比特“与”逻辑426。内部VPT 412也被输入到每比特“与”逻辑426。在一个实施例中,当且仅当“或”门424的输出为“1”时,每比特“与”逻辑426将内部VPT比特412输出到六比特DVPT 414。
在一个实施例中,DVPT掩码420的值和外部VPT 410的值集体地确定是否将内部VPT比特412映射到DVPT 414的一部分。在一个实施例中,若仅对一个或多个特定的优先级将外部VPT 410和内部VPT412两者映射到DVPT 414,例如,则仅应将DVPT掩码420的相应比特设为“1”。因此,在其中仅当外部VPT 410等于001或111时(即,仅当3-8解码器416分别输出八个比特00000010或10000000时)应将内部VPT 412映射到DVPT 414的一个例示性实施例和情境中,将DVPT掩码420的八个比特设定为10000010。因此,当设定此掩码值并且具有等于001或111的外部VPT 410的包到达时,“与”门422-2或422-8输出“1”,其致使“或”门424输出“1”。此又导致每比特“与”逻辑426将内部VPT 412传递到DVPT 414。相反地,对于其中外部VPT 410不等于001或111的包,将内部VPT 412与DVPT 414隔开,并且以一些其它方式设置DVPT 414的相应三个比特。例如,在一个实施例中,基于端口配置设置DVPT 414的三个比特。
在一个实施例中,外部VPT 410比特充当六比特DVPT 414的三个最高有效比特,而每比特“与”逻辑426输出的三个比特充当六比特DVPT 414的最低有效三个比特。在另一实施例中,外部VPT 410比特充当六比特DVPT 414的三个最低有效比特,而每比特“与”逻辑426输出的三个比特充当六比特DVPT 414的最高有效三个比特。在一些实施例中,系统设计者可选择性地配置外部VPT 410比特以充当DVPT 414的最高有效比特,充当DVPT 414的最低有效比特,或充当DVPT 414内的一些其它比特排列。
图9为根据实施例的用于在被配置成支持扩展优先级配置文件的网络设备中处理包的例示性方法500的流程图。在各种实施例中,通过图1的网络设备10或通过包括图4的包处理器10的网络设备实施方法500。在一个实施例中,在其中网络设备正从处于相同的网络82C内的另一设备接收包的情境中,通过类似于图3中的核心设备90定位的网络设备实施方法500。在一些实施例中,在对应于特定的层2域的网络内的多个网络设备中的每一个中独立地实施整个方法500。
在框510,从网络(例如,类似于网络82C的网络)接收包。在一个实施例中,在类似于图1中的网络设备10的包入口12的包入口处或通过类似于图1中的网络设备10的包入口12的包入口接收包。
在框520,将在框510接收到的包识别为具有扩展优先级配置文件的双VLAN标记包(即,具有至少两个VLAN标记的包)。例如,在其中于框510中接收到的包为以太网包的实施例中,将包识别为TRILL包、SPB包或IEEE 802.1ad包中的一个。在一些实施例中,通过确定包是经由已知的对应于具有扩展优先级配置文件的双VLAN标记包的端口接收,将所述包识别为具有扩展优先级配置文件的双VLAN标记包。
在框530,基于分布在与所述包的第一VLAN标记相关联的第一优先级字段的M个比特和与所述包的第二VLAN标记相关联的第二优先级字段的N个比特之中的P个比特,确定在框510接收的包的扩展优先级配置文件。从一组可能的扩展优先级配置文件中确定所述包的扩展优先级配置文件,其中该组可能的扩展优先级配置文件大于与所述第一优先级字段相关联的一组可能的优先级配置文件并大于与所述第二优先级字段相关联的一组可能的优先级配置文件。在一些实施例中,扩展优先级配置文件的确定所基于的P个比特包括第一优先级字段的所有M个比特和第二优先级字段的所有N个比特。在一个这样的实施例中,从一组2(M+N)个可能的扩展优先级配置文件中确定扩展优先级配置文件。在一些实施例中,P个比特进一步分布在至少第三优先级字段中的比特之中。
在其中于框520中将包识别为与扩展优先级配置文件相关联的TRILL包的实施例中,扩展优先级配置文件的确定所基于的P个比特分布在与所述TRILL包的链路报头内的第一VLAN标记相关联的第一优先级字段的M个比特和与所述TRILL包的TRILL报头内的第二VLAN标记相关联的第二优先级字段的N个比特之中。在其中于框520中将包识别为与扩展优先级配置文件相关联的IEEE 802.1ad包的实施例中,扩展优先级配置文件的确定所基于的P个比特分布在与包的客户VLAN标记相关联的第一优先级字段的M个比特和包的服务VLAN标记的N个比特之中。
在其中利用分级配置文件排列的一些实施例中,在框530确定的扩展优先级配置文件为对应于该优先级等级内的优先级等级和优先级次等级两者的配置文件。在一个这样的实施例中,通过分布在所述第一优先级字段的所述M个比特和/或述第二优先级字段的所述N个比特之中的第一组一个或多个比特指示优先级等级,并且通过分布在所述第一优先级字段的所述M个比特和/或述第二优先级字段的所述N个比特之中的第二组一个或多个比特指示优先级次等级。对于其中M=N=3的特定情况,上述的图6提供这种实施例的一个实例,其中通过外部VLAN标记的所有三个优先级比特指示优先级等级,而通过内部VLAN标记的所有三个优先级比特指示优先级次等级。
在框540,根据在框500确定的扩展优先级配置文件对包进行处理。例如,在一个实施例中,基于扩展优先级配置文件将包分配给特定的队列。
图10为根据其中网络设备将新的扩展优先级配置文件应用于所述包的一个实施例和情境的、用于在被配置成支持扩展优先级配置文件的网络设备中处理包的例示性方法600的流程图。在各种实施例中,通过图1的网络设备10实施方法600,或通过包括图4的包处理器100的网络设备实施方法600。在一个实施例中,在其中网络设备从传统网络82B接收包的情境中,通过类似于图3中的边缘设备84定位的网络设备实施方法600。
在框610,从网络(例如,类似于网络82B的网络)接收包。在一个实施例中,在类似于图1中的网络设备10的包入口12的包入口处或通过类似于图1中的网络设备10的包入口12的包入口接收包。
在框620,将在框610接收的包识别为双VLAN标记包,其包括与第一VLAN标记相关联的第一优先级字段和与第二VLAN标记相关联的第二优先级字段。在其中在框610接收的包为以太网包的一个实施例中,例如,将包识别为TRILL包、SPB包或IEEE 802.1ad包中的一个。在一些实施例中,通过确定包是经由已知的对应于双VLAN标记包的端口接收,将包识别为双VLAN标记包。
在框630,基于所述第一优先级字段的一个或多个比特和所述第二优先级字段的一个或多个比特,将扩展优先级配置文件分配给在框610接收的包。在框630分配的扩展优先级配置文件为一组可能的扩展优先级配置文件中的一个,并且该组可能的扩展优先级配置文件为大于与所述包的单个VLAN标记相关联的任意一组可能的优先级配置文件。因此,例如,该组可能的扩展优先级配置文件大于与包的第一优先级字段相关联的一组可能的优先级配置文件,并且大于与包的第二优先级字段相关联的一组可能的优先级配置文件。在一个实施例中,该组可能的扩展优先级配置文件大于与所述第一优先级字段相关联的该组可能的优先级配置文件和与所述第二优先级字段相关联的该组可能的优先级配置文件两者的组合。
更具体地,在一个实施例中,与所述第一优先级字段相关联的该组可能的优先级配置文件是由2M个优先级配置文件(M为大于零的整数)组成,与所述第二优先级字段相关联的该组可能的优先级配置文件是由2N个优先级配置文件(N为大于零的整数)组成,并且该组可能的扩展优先级配置文件是由2(M+N)个优先级配置文件组成。在一个实施例中,与所述第一优先级字段相关联的该组可能的优先级配置文件和与所述第二优先级字段相关联的该组可能的优先级配置文件各自仅包括八个配置文件(即,M=N=3),而该组可能的扩展优先级配置文件包括2(3+3)=64个不同的配置文件。
在一些实施例中,在框630中将扩展优先级配置文件分配给所述包包括:将所述包的第一优先级字段的一个或多个比特和所述包的第二优先级字段的一个或多个比特映射到所述扩展优先级配置文件。此外,在这些实施例中的一些中,将这些各种比特映射到扩展优先级配置文件包括至少两个阶段过程:将第一优先级字段的一个或多个比特和第二优先级字段的一个或多个比特映射到扩展优先级比特(例如,映射到DVPT);接着,将这些扩展优先级比特映射到扩展优先级配置文件。同样,在这些实施例中的一些中,将各种比特映射到扩展优先级配置文件包括:以表示所述扩展优先级配置文件的新的比特值重写包的第一优先级字段的至少一部分和包的第二优先级字段的至少一部分。
在其中利用分级配置文件排列的一些实施例中,在框630分配的扩展优先级配置文件为对应于优先级等级和该优先级等级内的优先级次等级二者的配置文件。在一个这样的实施例中,通过分布在第一优先级字段的一个或多个比特和/或第二优先级字段的一个或多个比特之中的第一组一个或多个比特指示所述优先级等级,而通过分布在第一优先级字段的一个或多个比特和/或第二优先级字段的一个或多个比特之中的第二组一个或多个比特指示所述优先级次等级。
在框640,根据在框630分配的扩展优先级配置文件对包进行处理。在一个实施例中,在框640中的处理包括:基于在框630分配的扩展优先级配置文件选择多个队列中的一个,并且将所述包、所述包的一部分或与所述包相关联包描述符发送给所选择的队列。在一个这样的实施例中,所述多个队列中的每个队列对应于所述可能的扩展优先级配置文件中的不同的配置文件。
在一些实施例中,方法600包括图10中未示出的额外的框。例如,在一个实施例中,方法600包括其中根据在框630分配的扩展优先级配置文件对包进行处理的额外的框。作为另一实例,在其中从未被配置成支持在框630分配的扩展优先级配置文件的传统网络(例如,网络82B)接收包的一个实施例中,方法600包括其中通过包出口将包传输到被配置成支持在框630分配的扩展优先级配置文件的非传统网络(例如,类似于网络82A的网络)的额外的框。
图11为根据其中网络设备将包的扩展优先级配置文件转换成与所述包的单个VLAN标记相关联的优先级配置文件的一个实施例和情境的、用于在被配置成支持扩展优先级配置文件的网络设备中处理包的例示性方法700的流程图。在各种实施例中,通过图1的网络设备10实施方法700,或通过包括图4的包处理器100的网络设备实施方法700。在一个实施例中,在其中网络设备从扩展优先级配置文件网络82A接收包的情境中,通过类似于图3中的边缘设备84定位的网络设备实施方法700。
在框710,从网络(例如,类似于网络82A的网络)接收包。在一个实施例中,在类似于图1中的网络设备10的包入口12的包入口处或通过类似于图1中的网络设备10的包入口12的包入口接收包。
在框720,将在框710接收的包识别为具有通过与所述包的第一VLAN标记相关联的第一优先级字段的一个或多个比特和与所述包的第二VLAN标记相关联的第二优先级字段的一个或多个比特所指定的扩展优先级配置文件的双VLAN标记包。在一个实施例中,将包识别为具有通过所述第一优先级字段的所有比特和所述第二优先级字段的所有比特指定的扩展优先级配置文件的双VLAN标记包。
在框730,将所述包的扩展优先级配置文件映射到与所述第一VLAN标记相关联的优先级配置文件。在一些实施例中,至少部分地通过以下步骤执行框730中的映射:将指示扩展优先级配置文件的DVPT映射到指示与第一VLAN标记相关联的优先级配置文件的单个VPT。
在框740,将重建扩展优先级配置文件(在框710中接收的包中所指定)所需的一个或多个比特值存储在存储器中。例如,在一个实施例中,通过重写包、包报头或包描述符中的VPT字段值来存储允许(例如,稍后在实施方法700的同一网络设备中,或在同一网络内的不同的边缘设备中)对扩展优先级配置文件进行重建的比特值。
在框750,根据与所述第一VLAN标记相关联的所述优先级配置文件对包进行处理。在一个实施例中,框750中的处理包括:基于与所述第一VLAN标记相关联的所述优先级配置文件选择多个队列中的一个;以及将所述包、所述包的一部分或与所述包相关联的包描述符发送给所选择的队列。
在一些实施例中,方法700包括图11中未示出的额外的框。例如,在一个实施例中,方法700在框750之后包括将包转发到另一网络设备的额外的框,其中将包的特定的比特设定为特定的值。例如,在一个实施例中,将第一优先级字段的比特设定为对应于与第一VLAN标记相关联的优先级配置文件的比特值,而将第二优先级字段的比特设定为重建扩展优先级配置文件所需的一个或多个比特值。在另一例示性实施例中,方法700在框750之后包括额外的框,其中使用对应于与第一VLAN标记相关联的优先级配置文件的比特值并使用重建包中所指定的扩展优先级配置文件所需的一个或多个比特值来重建包的扩展优先级配置文件。
可在有线或无线通信系统中所使用的任何类型的网络设备中实施本公开的实施例,这些网络设备包括例如在包括或耦合到有线或无线LAN或者有线或无线WAN、互联网、电缆等的通信系统中所使用的设备。
尽管已参照仅用于说明性目的且非意欲限制本发明的特定的实例对本发明进行了描述,但是本领域的普通技术人员将理解到,可对所公开的实施例进行改变、添加和/或删除,而不背离本发明的精神和范围。