具有入口控制的业务量管理的制作方法_6

文档序号:8225869阅读:来源:国知局
与本发明的一个实施例相一致的被配置为消耗令牌的示例性操作的 流程图1500。例如,操作可以由监管器模块247响应于新的分组到达网络设备200而执行。 流程图1500的操作开始于消耗1502。可以在操作1504确定桶中当前可用令牌的数量是否 大于或等于分组长度。如果桶中当前可用令牌的数量大于或等于分组长度,则在操作1506, 从可用的令牌数量中减去分组的长度。如果桶中当前可用的令牌数量小于分组的长度,那 么程序流程可以在操作1508结束。
[0253]表7
[0254] /氺Token bucket consumption run-time operation*/
[0255] /氺Executed on new packet arrival, after the update operation*/
[0256] if(tb_tokens >= pkt_len)
[0257] tb_tokens = pkt_len ;
[0258] 因此,业务量监管可以使用一个或多个令牌桶来实现。令牌桶可以配置有容差,所 述容差可由例如服务提供商进行选择。业务量,容差被配置为促进针对相对高和相对低的 带宽流的计量和计量精度。
[0259] 图16A和16B包括与本发明的实施例相一致的被配置为示出示例性的分层调度器 的性能的两个图1606、1608。如本文所述,示例性分层调度器被实现有64K活动队列、业务 量整形、严格优先级和加权轮叫。调度器是在以2. 7GHz操作的处理器核上实现的。图1606 和1608示出了每个处理器核的调度器的性能。图1606以每秒百万分组数一以字节为单位 的分组大小示出了一个lOGbE端口的吞吐速率、线路速率以及2个lOGbE端口的线路速率。 图1608以每秒千兆比特数一以字节为单位的分组大小示出了一个lOGbE端口的吞吐速率、 线路速率以及2个lOGbE端口的线路速率。
[0260] 虽然图7、9A、9B、13、14和/或15示出了根据各个实施例的各种操作,但应当理解 的是,并不是图7、9八、98、13、14和/或15绘出的所有操作都是其它实施例所必须的。事实 上,在此完全设想,在本发明的其它实施例中,图7、9A、9B、13、14和/或15绘出的所有操作 和/或本文所述的其它操作可以在任何附图中未具体示出的方式进行组合,但仍然与本发 明一致。因此,针对并没有完全准确地在一个附图中示出的功能和/或操作的权利要求被 视作在本发明的内容和范围内。
[0261] 以上提供了示例性系统的体系结构和方法,但是,针对本发明的修改是可以的。处 理器可以包括一个或多个处理器核,并且可以被配置为执行系统软件。系统软件可包括,例 如操作系统。设备存储器可以包括被配置为存储一个或多个要通过网络接口发送或接收的 分组的I/O存储器的缓存。
[0262] 操作系统(0S)可以被配置为管理系统资源和控制在,例如网络设备200上运行的 任务。例如,操作系统可以使用MicrosoftWindows、HP-UX、Linux或UNIX来实现,虽然也 可以使用其它操作系统。在一些实施例中,OS可以由虚拟机监视器(或系统管理程序)代 替,虚拟机监视器可以向在一个或多个处理器上运行的各种操作系统(虚拟机)提供底层 硬件的抽象层。操作系统和/或虚拟机可以实现一个或多个协议栈。协议栈可以执行一个 或多个程序来处理分组。协议栈的一个例子是TCP/IP(传输控制协议/英特网协议)协议 栈,其包括用于处理(例如处理或生成)分组以在网络上发送和/或接收的一个或多个程 序。
[0263] 设备存储器和/或网络接口存储器可以包括一个或多个下列类型的存储器:半导 体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存 储器、闪存储器、磁盘存储器和/或光盘存储器。另外地或替代性地,系统存储器可包括其 他和/或以后开发计算机可读存储器类型。
[0264] 本文所描述的操作的实施例可以在系统中实现,该系统包括一个或多个存储设 备,其上单独地或组合地存储指令,当由一个或多个处理器执行指令时执行所述方法。处理 器可以包括,例如,网络设备200中的处理单元和/或可编程电路,和/或网络接口 216中 的其它处理单元或可编程电路。因此,根据本文中所描述的方法的操作可以被分配在多个 物理设备上,诸如在多个不同物理位置的处理结构。存储设备可以包括任何类型的有形的、 非短暂性存储装置,例如,任何类型的盘,包括软盘、光盘、致密盘只读存储器(CD-ROM)、可 重写光盘(CD-RW)及磁光盘、半导体器件,例如只读存储器(ROM)、随机存取存储器(RAM)、 诸如动态和静态RAM、可擦除可编程只读存储器(EPROM),电可擦除可编程只读存储器 (EEPROM)、闪存存储器、磁或光卡或任何类型的适合于存储电子指令的存储设备。
[0265] 如在此处任何实施例所用的"电路",可包括,例如,单独地或以任何组合的,硬连 线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。"模块",如本 文所使用的,可以包括,单独地或以任何组合的电路和/或代码和/或指令集(例如软件、 固件等)。
[0266] 在一些实施例中,硬件描述语言可被用于指定本文所描述的各种模块和/或电 路的电路和/或逻辑实现。例如,在一个实施例中,硬件描述语言可以符合或兼容于超高 速集成电路(VHSIC)硬件描述语言(VHDL),该语言可以实现本文所述的一个或多个电路 和/或模块的半导体制造。VHDL符合或兼容于IEEE标准2076-1987,IEEE标准2076. 2, IEEE1076. 1,IEEE草案 3.OOFVHDL-2006,IEEE草案 4. 0VHDL-2008 和 / 或其他版本的IEEE VHDL标准和/或其他硬件描述标准。
[0267] 服务提供商网络102和/或其他网络106可以包括分组交换网络。网络设备 108a,. . .,108n、其他网络106和/或客户端系统104A,. . .,104n能够使用所选择的分组交 换网络通信协议相互通信。一个示例性通信协议可包括以太网协议,该协议能够允许使用 传输控制协议/互联网协议(TCP/IP)的通信。以太网协议符合或兼容于由电气和电子工程 师协会(IEEE)公布的、发表于2008年12月名为"IEEE802. 3标准"的以太网标准和/或 更高版本的此标准。备选地或附加地,网络设备l〇8a,...,108n、其他网络106和/或客户 端系统104A,. . .,104n能够使用X. 25通信协议相互通信。X. 25通信协议符合或兼容于由 国际电信联盟电信标准化部门(ITU-T)颁布的标准。备选地或附加地,网络设备108a,..., 108n、其他网络106和/或客户端系统104A,. . .,104n能够使用帧中继通信协议相互进行 通信。帧中继通信符合或兼容于国际电报电话咨询委员会(CCITT)和/或美国国家标准学 会(ANSI)公布的标准。备选地或附加地,网络设备108a,...,108n、其他网络106和/或 客户端系统104A,...,104n能够使用异步传输模式(ATM)的通信协议相互通信。ATM通信 协议符合或兼容于ATM论坛公布的、发表于2001年8月、名为"ATM-MPLS网络互通2. 0"的 ATM标准和/或更高版本的此标准。当然,不同的和/或之后开发的面向连接的网络通信协 议都同样在此预期。
[0268] 因此,与本发明一致的系统和方法被配置为利用可编程的网络设备,来提供可编 程的出口业务量管理。系统和方法被配置为跨一个或多个处理器核和/或一个或多个线 程,分配与,例如大约数万或更多的分组流相关联的处理负载。分组处理可以被流水线化。 系统和方法被配置为对于排列操作,对多个分组并行地操作,对于出列操作,对多个管道并 行地操作,因此,"隐藏"预取延迟。
[0269] 分组流可以被分组为包括多个级别的调度层次结构,以促进业务量管理功能。在 一个或多个级别实现的业务量管理功能包括业务量整形、上限实施,严格优先级调度和加 权轮叫。使用信用逻辑来实现至少一些业务量管理功能。
[0270] 利用被配置为智能地丢弃分组的随机早期检测,可以实现拥塞管理。可以使用被 配置为对于相对高带宽和相对低带宽的业务量流两者都提供相对高精度的令牌桶结构来 实现业务量监管。
[0271] 因此,本发明提供了一种示例性网络设备。该示例性网络设备包括其中包括至少 一个处理器核的处理器,;被配置为以线路速率发送和接收分组的网络接口;被配置用于存 储调度器分层数据结构的存储器;以及调度器模块。调度器模块被配置为预取下一活动的 管道结构,所述下一活动的管道结构被包括在分层数据结构中,更新当前管道和相关联的 子端口的信用,至少部分地基于当前管道数据结构,来识别当前管道内的下一活动的业务 量类别,选择与所识别的下一活动的业务量类别相关联的下一队列,并且,如果可用的业务 量整形令牌桶信用以及可用的业务量类别信用大于或等于下一分组信用,则调度从所选择 的下一队列的下一分组,以供通过网络接口传输。
[0272] 本发明还提供了一种示例性方法。该示例性方法包括:由调度器模块预取下一活 动的管道结构,所述下一活动的管道结构被包括在分层数据结构中;由调度器模块更新当 前管道和相关联的子端口的信用;由调度器模块至少部分地基于当前的管道数据结构,识 别当前管道内的下一活动的业务量类别;由调度器模块选择与被识别的下一活动的业务量 类别相关联的下一队列;并且,如果可用的业务量整形令牌桶信用以及可用的业务量类别 信用大于或等于下一分组信用,则由调度器模块从所选择的下一队列调度下一分组,供进 行传输。
[0273] 本发明还提供了一个示例性系统,该系统包括一个或多个存储设备,其上单独地 或组合地存储指令,当由一个或多个处理器执行指令时导致以下操作,包括:预取下一活动 的管道结构,所述下一活动的管道结构被包括在分层数据结构中;更新当前管道和相关联 的子端口的信用;至少部分地基于当前的管道数据结构,识别当前管道内的下一活动的业 务量类别;选择与被识别的下一活动的业务量类别相关联的下一队列;并且,如果可用的 业务量整形令牌桶信用以及可用的业务量类别信用大于或等于下一分组信用,则从所选择 的下一队列调度下一分组,供进行传输。
[0274] 在本文中采用的术语和表达被用作描述的术语而不是限制,并且在使用这些术语 和表达时,没有意图排除所示出的和所描述的特征(或其部分)的任何等效特征,并且应认 识到,权利要求书的范围内的各种修改是可能的。因此,权利要求旨在覆盖所有这些等效内 容。
[0275] 本文描述了各种特征、方面和实施例。如本领域的技术人员所理解的,所述特征、 方面和实施例可以彼此相结合,并可以变化和修改。因此,本发明应当被视为包括这样的组 合、变化和修改。
【主权项】
1. 一种网络设备,包括: 处理器,包括至少一个处理器核; 网络接口,被配置为W线路速率发送和接收分组; 存储器,被配置为用于存储调度器分层数据结构;W及 调度器模块,被配置为预取下一活动的管道结构,所述下一活动的管道结构包括在所 述分层数据结构中,更新用于当前管道和相关联的子端口的信用,至少部分地基于当前的 管道数据结构识别当前管道内下一活动的业务量类别,选择与所识别的下一活动的业务量 类别相关联的下一队列,并且,如果可用的业务量整形(T巧令牌桶信用W及可用的业务量 类别信用大于或等于下一分组信用,则调度来自所选择的下一队列的下一分组W用于被网 络接口传输。
2. 根据权利要求1所述的网络设备,其中,所述调度器模块进一步被配置为至少部分 地基于包括在所述分层数据结构内的活动的队列位图,识别下一活动的管道。
3. 根据权利要求1所述的网络设备,其中,所述多个管道被并行地处理。
4. 根据权利要求1所述的网络设备,其中,更新所述信用包括W下各项中的至少一项: 将可用信用添加到与当前管道相关联的第一 TS令牌桶,将可用信用添加到与子端口相关 联的第二TS令牌桶,并且如果自最近更新后所过去的时间间隔大于或等于最小时间间隔, 则将与所识别的下一业务量类别相关联的信用计数器重置为上限。
5. 根据权利要求1所述的网络设备,其中,使用加权轮叫技术选择所述下一队列。
6. 根据权利要求1所述的网络设备,进一步包括拥塞管理模块,被配置为;如果所识别 的目的地队列占用率超过阔值,则丢弃接收到的分组。
7. 根据权利要求1所述的网络设备,进一步包括监管器模块,被配置为至少部分地基 于在计量令牌桶中可用的计量信用的数量,确定是否排列所接收到的分组。
8. 根据权利要求7所述的网络设备,其中,所述监管器模块进一步被配置为:至少部分 地基于所期望的计量精度,设置最小计量令牌桶更新周期;并且至少部分地基于处理器的 频率和线路速率,确定要添加到计量令牌桶的计量信用的数量W用于每个计量令牌桶更新 周期,所述计量令牌桶更新周期大于或等于最小令牌桶更新周期。
9. 一种方法,包括: 通过调度器模块预取下一活动的管道结构,所述下一活动的管道结构被包括在分层数 据结构中; 通过所述调度器模块更新用于当前管道和相关联的子端口的信用; 通过所述调度器模块至少部分地基于当前的管道数据结构,识别当前管道内的下一活 动的业务量类别; 通过所述调度器模块选择与被识别的下一活动的业务量类别相关联的下一队列;并且 如果可用的业务量整形令牌桶信用W及可用的业务量类别信用大于或等于下一分组 信用,则通过所述调度器模块调度来自所选择的下一队列的下一分组用于传输。
10. 根据权利要求9所述的方法,还包括: 通过所述调度器模块至少部分地基于包括在所述分层数据结构内的活动的队列位图, 识别下一活动的管道。
11. 根据权利要求9所述的方法,其中,所述多个管道被并行地处理。
12. 根据权利要求9所述的方法,其中,更新所述信用包括W下各项中的至少一项:将 可用信用添加到与当前管道相关联的第一 TS令牌桶,将可用信用添加到与子端口相关联 的第二TS令牌桶,并且如果自最近更新后所过去的时间间隔大于或等于最小时间间隔,贝U 将与所识别的下一业务量类别相关联的信用计数器重置为上限。
13. 根据权利要求9所述的方法,其中,使用加权轮叫技术选择所述下一队列。
14. 根据权利要求9所述的方法,进一步包括: 如果所识别的目的地队列占用率超过阔值,则通过拥塞管理模块丢弃接收到的分组。
15. 根据权利要求9所述的方法,进一步包括: 通过监管器模块至少部分地基于在计量令牌桶中可用的计量信用的数量,确定是否排 列所接收到的分组。
16. 根据权利要求15所述的方法,进一步包括: 通过所述监管器模块至少部分地基于所期望的计量精度,设置最小计量令牌桶更新周 期;并且 通过所述监管器模块至少部分地基于处理器的频率和线路速率,确定要添加到计量令 牌桶的计量信用的数量W用于每个计量令牌桶更新周期,所述计量令牌桶更新周期大于或 等于最小令牌桶更新周期。
17. -种系统,包括一种或多种存储介质,其上单独地或组合地存储有指令,当由一个 或多个处理器执行所述指令时导致如下操作,包括: 预取下一活动的管道结构,所述下一活动的管道结构被包括在分层数据结构中; 更新用于当前管道和相关联的子端口的信用; 至少部分地基于当前的管道数据结构,识别当前管道内的下一活动的业务量类别; 选择与被识别的下一活动的业务量类别相关联的下一队列;并且 如果可用的业务量整形令牌桶信用W及可用的业务量类别信用大于或等于下一分组 信用,则调度来自所选择的下一队列的下一分组W用于传输。
18. 根据权利要求17所述的系统,其中,当由一个或多个处理器执行所述指令时导致 W下额外的操作,包括: 至少部分地基于包括在所述分层数据结构内的活动的队列位图,识别下一活动的管 道。
19. 根据权利要求17所述的系统,其中,所述多个管道被并行地处理。
20. 根据权利要求17所述的系统,其中,更新所述信用包括W下各项中的至少一项:将 可用信用添加到与当前管道相关联的第一 TS令牌桶,将可用信用添加到与子端口相关联 的第二TS令牌桶,并且如果自最近更新后所过去的时间间隔大于或等于最小时间间隔,贝U 将与所识别的下一业务量类别相关联的信用计数器重置为上限。
21. 根据权利要求17所述的系统,其中,使用加权轮叫技术选择所述下一队列。
22. 根据权利要求17所述的系统,其中,当由一个或多个处理器执行所述指令时导致 W下额外的操作,包括: 如果所识别的目的地队列占用率超过阔值,则丢弃接收到的分组。
23. 根据权利要求17所述的系统,其中,当由一个或多个处理器执行所述指令时导致 W下额外的操作,包括: 至少部分地基于在计量令牌桶中可用的计量信用的数量,确定是否排列所接收到的分 组。
24.根据权利要求23所述的系统,其中,当由一个或多个处理器执行所述指令时导致 W下额外的操作,包括: 至少部分地基于所期望的计量精度,设置最小计量令牌桶更新周期;并且 至少部分地基于处理器的频率和线路速率,确定要添加到计量令牌桶的计量信用的数 量W用于每个计量令牌桶更新周期,所述计量令牌桶更新周期大于或等于最小令牌桶更新 周期。
【专利摘要】本申请公开了具有入口控制的业务量管理。一个实施例提供了一种网络设备。该网络设备包括:处理器,包括至少一个处理器核;网络接口,配置为以线路速率发送和接收分组;存储器,配置为用于存储调度器分层数据结构;以及调度器模块。所述调度器模块被配置为:预取下一活动的管道结构,所述下一活动的管道结构被包括在分层数据结构中,更新用于当前管道和相关联的子端口的信用,至少部分地基于当前的管道数据结构,识别当前管道内下一活动的业务量类别,选择与所识别的下一活动的业务量类别相关联的下一队列,并且,如果可用的业务量整形(TS)令牌桶信用以及可用的业务量类别信用大于或等于下一分组信用,则调度来自所选择的下一队列的下一分组以用于被网络接口传输。
【IPC分类】H04L12-24
【公开号】CN104539440
【申请号】CN201410541455
【发明人】C·F·F·杜米特瑞斯库, A·齐立钦, P·劳伦特, K·B·R·拉米亚, S·坦戈达
【申请人】英特尔公司
【公开日】2015年4月22日
【申请日】2014年7月9日
【公告号】US20150016266
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1