CN114095457A - 基于流的共享缓冲区资源管理 - Google Patents

基于流的共享缓冲区资源管理 Download PDF

Info

Publication number
CN114095457A
CN114095457A CN202110896745.0A CN202110896745A CN114095457A CN 114095457 A CN114095457 A CN 114095457A CN 202110896745 A CN202110896745 A CN 202110896745A CN 114095457 A CN114095457 A CN 114095457A
Authority
CN
China
Prior art keywords
flow
admission
packet
controller
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110896745.0A
Other languages
English (en)
Inventor
尼夫·艾贝思特
阿维夫·克菲尔
吉尔·利维
里昂·穆拉
巴拉克·加夫尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mellanox Technologies Ltd
Original Assignee
Mellanox Technologies TLV Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mellanox Technologies TLV Ltd filed Critical Mellanox Technologies TLV Ltd
Publication of CN114095457A publication Critical patent/CN114095457A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种用于控制共享缓冲区(SB)的装置,该装置包括接口和SB控制器。该接口被配置为访问基于流的数据计数和准入状态。SB控制器被配置为对由耦合到通信网络的网络设备接收的分组执行基于流的记账,用于生成基于流的数据计数,每个基于流的数据计数与一个或多个相应的流相关联,并且至少以基于流的数据计数为基础生成准入状态,每个准入状态从一个或多个相应的基于流的数据计数生成。

Description

基于流的共享缓冲区资源管理
技术领域
本文描述的实施方式总体上涉及通信网络,并且具体地涉及用于基于流的共享缓冲区资源管理的方法和装置。
背景技术
网络元件通常存储传入的分组以供处理和转发。将分组存储在共享缓冲区中能够有效地共享存储资源。管理共享缓冲区资源的方法是本领域已知的。例如,美国专利10,250,530描述了一种通信装置,该装置包括多个接口,该接口被配置为连接到分组数据网络,用于接收和转发多种类型的数据分组。存储器耦合到接口并且被配置为缓冲区以包含在等待经由出口接口传输到网络的同时通过入口接口接收的分组。分组处理逻辑被配置为维护与出口接口中的相应出口接口相关联的多个发送队列,并且将分别对应于第一和第二类型的第一和第二数据分组的第一和第二队列条目放置在公共发送队列中,用于通过给定的出口接口进行传输,同时在缓冲区中分配相应的空间以存储第一和第二分组,以针对分别分配给第一和第二类型数据分组的单独、第一和第二缓冲区分配。
发明内容
本文描述的实施方式提供了一种用于控制共享缓冲区(SB)的装置,该装置包括接口和SB控制器。该接口被配置为访问基于流的数据计数和准入状态。SB控制器被配置为对由耦合到通信网络的网络设备接收的分组执行基于流的记账以生成基于流的数据计数,每个基于流的数据计数与一个或多个相应的流相关联,并且至少基于所述基于流的数据计数生成准入状态,每个准入状态从一个或多个相应的基于流的数据计数生成。
在一个实施方式中,SB包括在所述SB控制器可访问的存储器中,所述存储器在所述装置的外部。在另一个实施方式中,所述装置还包括存储器,所述SB包括在所述存储器中。在又一个实施方式中,该装置还包括包含入口端口的多个端口,其被配置为连接到所述通信网络,以及数据平面逻辑,其被配置为从入口端口接收分组,将所述分组分类为相应的流;并且,根据基于所述基于流的数据计数生成的一个或多个准入状态,决定是允许所述分组进入所述SB还是丢弃所述分组。
在一些实施方式中,SB控制器被配置为产生属于多个不同流的分组的聚合数据计数,并且基于所述聚合数据计数生成用于所述多个不同流的分组的准入状态。在其他实施方式中,SB控制器被配置为针对属于相应的第一和第二不同流的分组产生第一和第二基于流的数据计数,并且基于所述第一和第二基于流的数据计数生成所述第一和第二流的分组的准入状态。在其他实施方式中,SB控制器被配置为基于多个选择的流生成多个准入状态,并且所述数据平面逻辑被配置为基于所述多个准入状态决定是允许属于所述选择的流之一的分组进入所述SB还是丢弃所述分组。
在一个实施方式中,数据平面逻辑被配置为针对接收到的分组确定所述多个端口中的相应出口端口、入口优先级和出口优先级,并且其中所述SB控制器被配置为对于(i)与相应入口端口和入口优先级相关联的Rx数据计数,以及(ii)与相应出口端口和出口优先级相关联的Tx数据计数执行占用记账,并基于所述基于流的数据计数和所述Rx数据计数和所述Tx数据计数中的至少一个生成所述准入状态。在另一个实施方式中,SB控制器被配置为并行执行所述基于流量的记账和所述占用记账。在又一实施方式中,SB控制器被配置为通过(i)将哈希函数应用于所接收的分组的报头中的一个或多个字段,或(ii)使用访问控制列表(ACL)处理所述分组为接收的分组识别相应的基于流的数据计数。
在一些实施方式中,SB控制器被配置为基于选自协议列表中的协议中使用的基于流的绑定为接收的分组识别相应的基于流的数据计数,所述协议包括:租户协议、桥接协议、路由协议和隧道协议。在其他实施方式中,SB控制器被配置为本地监控所选择的基于流的数据计数,以基于所监控的基于流的数据计数并基于报告标准来评估所述网络设备的性能水平,以报告指示所述性能水平的信息。在其他实施方式中,SB控制器被配置为至少基于与一个或多个所选择的流相关联的基于流的数据计数来计算丢弃概率,并且基于所述基于流的数据计数和所述丢弃概率为所述一个或多个流生成准入状态。
根据在此描述的实施方式,另外提供了一种用于控制共享缓冲区(SB)的方法,该方法包括在包括SB控制器的装置中访问基于流的数据计数和准入状态。对由耦合到通信网络的网络设备接收的分组执行基于流的记账以生成基于流的数据计数,每个基于流的数据计数与一个或多个相应的流相关联。至少基于所述基于流的数据计数生成准入状态,每个准入状态从一个或多个相应的基于流的数据计数生成。
结合附图,从其实施方式的以下详细描述中将更全面地理解这些和其他实施方式,其中:
附图说明
图1是示意性地示出了根据本文描述的实施方式的在共享缓冲区中处理基于流的分组准入的网络元件的框图;
图2A至图2C是示意性地示出了根据本文描述的实施方式的示例基于流的准入配置的图;
图3是示意性地示出了根据本文描述的实施方式的用于基于流的准入的数据平面处理的方法的流程图;以及
图4是示意性地示出了根据本文描述的实施方式的用于产生基于流的准入状态的方法的流程图。
具体实施方式
概述
本文描述的实施方式提供用于共享缓冲区资源的基于流的管理的方法和系统。
网络元件中的共享缓冲区存储通常属于多个流的传入分组。存储的分组被处理并等待传输到其适当的目的地。
共享缓冲区的存储空间用于存储通过多个入口端口接收到并指定通过多个出口端口传送的分组。在一些实施方式中,共享缓冲区控制器管理共享缓冲区以实现端口中存储空间的公平分配。
在一些实施方式中,共享缓冲区控制器通过将有限量的存储空间分配给本文称为“区域”的实体来管理共享缓冲区资源。可以将区域分配给包括入口端口和接收优先级的对,或者分配给包括出口端口和传输优先级的对。对于每个区域,共享缓冲区将数据存储到动态调整的相应阈值。
共享缓冲区对每个区域当前缓存的数据量进行记账,并根据记账决定允许接收到的分组进入共享缓冲区或丢弃该分组。在该方案中,分组准入的决定与入口/出口端口和接收/传输优先级有关,但不考虑穿过网络元件的分组所属于的流。
在所公开的实施方式中,为了提高管理共享缓冲区存储空间的灵活性,指定了一种新的区域类型,这里将其称为“基于流的”区域。基于流的区域对应于特定的流,但独立于任何端口和分配给端口的优先级。使用基于流的区域提供了共享缓冲区使用的基于流的视图,因此可用于在共享存储空间时对不同的数据流进行优先级排序。此外,还可以使用组合多个基于流的区域或将基于流的区域与端口/优先级区域组合的复杂准入方案。
考虑包括多个端口、配置为共享缓冲区(SB)的存储器、SB控制器和数据平面逻辑的网络元件。多个端口被配置为连接到通信网络。共享缓冲区(SB)被配置为存储从通信网络接收到的分组。SB控制器被配置为对由网络元件接收的分组执行基于流的记账以产生基于流的数据计数,每个基于流的数据计数与一个或多个相应的流相关联,并且至少以基于流的数据计数为基础生成准入状态,每个准入状态是从一个或多个相应的基于流的数据计数生成的。数据平面逻辑被配置为从入口端口接收分组,将分组分类为相应的流,并以基于所述基于流的数据计数生成的一个或多个准入状态为基础来决定是否允许分组进入SB或丢弃分组。
SB控制器可以以各种方式管理数据计数和准入状态。在一个实施方式中,SB控制器为属于多个不同流的分组产生聚合数据计数,并基于聚合数据计数为多个不同流的分组生成准入状态。在另一个实施方式中,SB控制器为属于相应的第一和第二不同流的分组产生第一和第二基于流的数据计数,基于第一和第二基于流的数据计数两者生成第一和第二流的分组的准入状态。在又一实施方式中,SB控制器基于多个选定流生成多个准入状态,并且数据平面逻辑基于多个准入状态决定是准入属于选定流之一的分组进入SB还是丢弃该分组。
在处理接收到的分组时,数据平面逻辑为接收到的分组确定相应的出口端口、入口优先级和出口优先级。SB控制器对(i)与相应入口端口和入口优先级相关联的Rx数据计数,以及(ii)与相应出口端口和出口优先级相关联的Tx数据计数执行占用记账。SB控制器以基于流的记账以及Rx数据计数和Tx数据计数中的至少一个为基础来生成准入状态。注意,SB控制器并行执行基于流的记账和占用记账。
SB控制器可以以各种方式将接收到的分组链接到基于流的数据计数。在一些实施方式中,SB控制器通过(i)将哈希函数应用于接收的分组的报头中的一个或多个字段,或(ii)使用访问控制列表(ACL)来处理分组来为接收的分组识别相应的基于流的数据计数。在其他实施方式中,SB控制器基于在诸如租户协议、桥接协议、路由协议或隧道协议的协议中使用的基于流的绑定为接收的分组识别相应的基于流的数据计数。
用于管理SB资源的基于流的记账可以用于其他目的,例如基于流的镜像和基于流的拥塞避免,如下文将进一步描述的。
在所公开的技术中,SB控制器对选定流执行基于流的记账。这允许基于单个流优先级来共享存储空间。这种基于流的视图能够在竞争流之间公平共享存储空间,而不管流到达网络元件处经由哪个端口。此外,结合基于流的数据计数和占用数据计数的灵活准入方案也是可能的。
系统描述
图1是示意性地图示了根据这里描述的实施方式的在共享缓冲区中处理基于流的分组准入的网络元件20的框图。
在随后的描述和权利要求中,术语“网络元件”指的是分组网络中与网络中的其他设备和/或与耦合到网络的网络节点通信分组的任何设备。网络元件可以包括例如交换机、路由器或网络适配器。
网络元件20包括入口端口22和出口端口24形式的接口,用于连接到通信网络26。网络元件20通过入口端口22从通信网络接收分组并通过出口端口24发送转发的分组。尽管在图1中,入口端口和出口端口是分开的,都是在实际应用中,每个端口可以作为入口端口和出口端口两者。
通信网络26可以包括使用任何合适的通信协议进行操作的任何合适的分组网络。例如,通信网络26可以包括以太网网络、IP网络或无限宽带网络。
每个入口端口22与相应的控制逻辑30相关联,该控制逻辑30处理进入的分组,如下所述。尽管在图1中仅描绘了两个控制逻辑模块,但实际的网络元件可以包括数百个入口端口和相应的控制逻辑模块。耦合到端口22的存储器34被配置为共享缓冲区,用于临时存储被处理并分配给多个队列以传输到通信网络的分组。
在经由入口端口22接收到传入分组时,入口端口将分组放置在共享缓冲区34中并通知相关控制逻辑30该分组已准备好进行处理。解析器44解析分组报头并为分组生成描述符,解析器将其传递到描述符处理器46以进一步处理和生成转发指令。基于描述符,描述符处理器46通常确定将通过其发送分组的出口端口24。描述符还可以指示要应用于分组的服务质量(QoS),即接收和传输时的优先级水平,以及用于修改分组报头的任何适用指令。准入决定模块48决定是丢弃还是准入该分组。准入决定模块基于准入状态62确定准入决定,如下面将详细描述的。
描述符处理器46将准入的分组的描述符放置在排队系统50中的适当队列中以等待经由指定的出口端口24的传输。典型地,排队系统50包含用于每个出口端口24的专用队列或每个出口端口的多个队列,对于每个QoS水平(例如,传输优先级)一个。
描述符处理器46将准入的分组的描述符传递到排队系统50和缓冲区(SB)控制器54,其用作共享缓冲区34的中央缓冲区管理和记账模块。SB控制器54执行两种类型的记账,这里称为如“占用记账”和“基于流量的记账”。对于占用记账,SB控制器管理“占用数据计数”56,而对于基于流的记账,SB控制器管理“基于流的数据计数”58。SB控制器54响应于决定准入分组的控制逻辑30而接收消耗信息,并响应于发送排队的分组接收释放信息。SB控制器54基于消耗和释放信息增加或减少占用数据计数和基于流量的数据计数。
SB控制器可以使用任何合适的计数单位,例如字节或分组的数量,来管理占用数据计数和基于流的数据计数。以基于流的数据计数58并且可能基于占用数据计数56为基础,SB控制器产生准入状态62以供准入决定模块48,以用于决定每个接收到的分组的准入/丢弃。
在一些实施方式中,SB控制器54管理基于流的数据计数以及与本文中称为“区域”的实体相关联的占用数据计数。占用区域包括一对入口端口和Rx优先级或一对出口端口和Tx优先级。基于流的区域包括流。SB控制器可以基于池66确定准入状态62,其中每个池与多个区域或与其对应的数据计数相关联。例如,池包括一个或多个基于流的数据计数,并且可能包括一个或多个Rx占用数据计数和/或一个或多个Tx占用数据计数。
在一些实施方式中,SB控制器54包括接口64,SB控制器经由该接口访问占用数据计数56、基于流的数据计数58和准入状态62。在一个实施方式中,接口64还用于通过SB控制器访问消耗和释放信息。
当在排队系统50中排队的分组的描述符到达其队列的头部时,排队系统50将该描述符传递给分组发送器52以供执行。分组发送器52分别耦合到出口端口24并用作分组传输模块。响应于该描述符,分组发送器52从共享缓冲区34读取分组数据,并且(可选地)进行分组报头中要求的任何改变以通过出口端口24传输到通信网络26。
在通过相应的出口端口24传输分组时,分组发送器52向SB控制器54发信号通知SB控制器54已经发送了分组,并且作为响应,SB控制器54从SB 34释放分组,使得SB 34中的分组位置可以被覆盖。这种存储器记账和管理过程通常在任何给定时间对多个不同的分组并行进行。
图1中的网络元件24的配置是作为示例给出的,也可以使用其他合适的网络元件配置。
网络元件20的一些元件,例如控制逻辑30和SB控制器54,可以在硬件中实现,例如在一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)中。附加地或替代地,网络元件的一些元件可以使用软件或使用硬件和软件元件的组合来实现。
为清楚起见,图1中省略了对于理解本申请的原理不必要的元件,例如各种接口、寻址电路、定时和排序电路以及调试电路。
存储器34可以包括使用任何合适的存储技术的任何合适的存储设备,例如随机存取存储器(RAM)。SB可以在片上内部RAM或片外外部RAM中实现。
在一些实施方式中,SB控制器包含在任何合适的装置中,例如网络元件或网络接口控制器(NIC)。在一些实施方式中,SB包含在SB控制器可访问的存储器中,该存储器在装置外部。在其他实施方式中,所述装置还包括存储器,所述SB包含在所述存储器中。
在一些实施方式中,SB控制器54的一些功能可以由通用处理器执行,该处理器在软件中编程以执行这里描述的功能。该软件可以通过例如网络以电子形式下载到处理器,或者它可以替代地或附加地被提供和/或存储在非暂时性有形介质上,例如磁、光或电子存储器。
在随后的描述和权利要求中,涉及实时分组处理和转发以进行传输的元件统称为“数据平面逻辑”。在图1的示例中,用于处理给定分组的数据平面逻辑包括入口端口22、控制逻辑30、排队系统50、分组Tx 52和出口端口24。数据平面逻辑不包括控制处理任务例如由SB控制器54生成准入状态62。
共享缓冲区记账和管理
在一些实施方式中,SB控制器54管理SB 34以实现共享缓冲区的公平使用。为此,在共享缓冲区中为对应于(PI,Rp)和(PO,Tp)的区域分配了相应的存储空间。在上述区域中,PI和PO分别代表相应的入口和出口端口,Rp和Tp分别代表相应的接收和传输优先级。分配的存储空间绑定到相应的动态阈值。SB控制器在相应的占用数据计数56中保存区域(PI,Rp)和(PO,Tp)在任何给定时间消耗的数据量。
在一些公开的实施方式中,SB控制器使用基于流的方法来管理SB资源。在这些实施方式中,SB管理与基于流的数据计数58相关联的基于流的区域。每个基于流的区域虚拟地消耗绑定到动态阈值的共享缓冲区的存储空间。SB存储消耗的基于流的视图可用于在不同数据流之间确定SB存储的优先级。
准入状态62指示相对于对应的动态阈值消耗的数据量。准入状态可以具有指示数据计数是否超过相关动态阈值的二进制值,在这种情况下应该丢弃分组。替代地,准入状态可以具有多个离散值或连续范围,例如,有界存储空间的占用百分比。
由准入决定模块48测试的用于准入的分组可以链接到一个或多个区域(或相应的数据计数)。例如,该分组可以链接到区域(PI,Rp)的占用数据计数、区域(PO、Tp)的占用数据计数和/或基于流的区域的基于流的数据计数。通常,分组可以链接到数据计数类型(i)基于流的数据计数(ii)Rx占用数据计数和(iii)Tx占用数据计数中的至少一种。取决于SB配置,每个数据计数类型可以与池66相关联。链接到多个数据计数池的分组还与SB控制器54基于多个数据计数确定的一个或多个准入状态相关联。
如本文所述,分组可以以各种方式链接或绑定到某个数据计数或多个数据计数的池。在一些实施方式中,SB控制器54通过将哈希函数应用于接收的分组的报头中的一个或多个字段,从而识别对应于接收的分组的数据计数(或池),例如基于流的数据计数,导致池的标识符。在另一个实施方式中,SB控制器通过使用提取池标识符的访问控制列表(ACL)处理接收的分组来识别对应于接收的分组的数据计数(或池)。
在一些实施方式中,SB控制器基于选自协议列表的协议中使用的基于流的绑定为接收的分组识别对应的数据计数(例如,基于流的数据计数),协议包括:租户协议、桥接协议、路由协议和隧道协议。在这些实施方式中,分组所属于的流代表选定的协议。
决定模块48可以以多种方式基于多个准入状态来决定分组准入或丢弃。例如,当使用二进制准入状态时,决定模块48可以仅在所有相关准入状态都指示分组准入时才决定准入分组。替代地,当仅部分相关准入状态指示分组准入时,SB控制器54可以例如基于多数投票标准来决定分组准入。
在一些实施方式中,准入状态的值包括连续范围,并且决定模块通过计算一些或所有相关准入状态的预定义函数来决定分组准入。例如,SB控制器根据两个或更多个选定的数据计数计算平均数据计数,并通过将平均数据计数与动态阈值进行比较来确定准入状态。
基于流的准入配置
图2A2C是根据本文描述的实施方式示意性地示出示例基于流的准入配置的图。
一般来说,记账和生成准入状态是与控制平面处理相关的任务,而准入决定是与数据平面处理相关的任务。基于流的准入配置将被描述为由图1的网络元件20执行。
图2A描绘了处理流100,其中分组准入基于表示为FL1的单个流。属于流FL1的分组104经由入口端口22接收,入口端口22将分组放置在SB 34中。通常,除FL1之外的流的分组也经由与FL1的分组相同的入口端口接收。通过入口端口22接收的分组由相应的控制逻辑模块30处理。
在执行记账时,SB控制器54接收指示被准入的分组的消耗信息和指示发送的分组的释放信息。SB控制器54对FL1分组执行基于流的记账以产生表示为FB_DC1的基于流的数据计数。在一些实施方式中,基于消耗和释放信息,取决于入口端口、出口端口和从分组的报头确定的Rx/Tx优先级,SB控制器54执行基于占用的记账以产生占用数据计数112。此记账是控制平面任务的一部分。
SB控制器54基于FB_DC1为FL1的分组产生许可状态116,表示为AS1。在图2A的示例中,SB控制器54还基于占用数据计数112产生占用准入状态120,包括表示为RxAS的Rx准入状态和表示为TxAS的Tx准入状态。占用数据计数112和准入状态120与任何特定流无关。
在决定分组准入时,准入决定模块48为流FL1的分组产生相应的准入决定124。准入决定可以例如仅以基于流的准入状态AS1为基础,或者除AS1之外还基于一个或多个占用准入状态120。
在一些实施方式中,SB控制器54包括监控诸如FB_DC1的基于流的数据计数的可见性引擎128。可见性引擎128基于FB_DC1的行为生成可见性指示。例如,可见性指示可以指示基于流的数据计数的值的短时间变化。在一些实施方式中,准入决定模块48也可以基于可见性指示来产生准入决定124。在一些实施方式中,可见性引擎128产生用于基于流的镜像的可见性指示,如下所述。
控制逻辑30将属于对于其准入决定是正面的FL1的分组描述符传递给排队系统50,以使用分组TX 52经由出口端口24传输到通信网络。控制逻辑30报告已经被丢弃到SB控制器的FL1分组,其从SB 34释放丢弃的分组。
图2B描绘了处理流130,其中分组准入基于表示为FL2和FL3的两个不同流。属于FL2的分组132和属于FL3的分组134通过入口端口22(或通过两个不同的入口端口22)被接收并放置在SB 34中。注意,通过不同的入口端口接收的分组使用不同的相应控制逻辑模块30进行处理。
在本示例中,在执行记账时,SB控制器54对FL2和FL3的分组执行基于聚合流的记账以产生表示为FB_DC2的公共基于流的数据计数136。基于流的数据计数FB_DC2表示当前在网络元件中缓存的来自FL2和FL3的数据量。
SB控制器54基于FB_DC2为FL2和FL3的分组产生准入状态138,表示为AS2。在图2B的示例中,SB控制器54还基于占用数据计数产生占用准入状态140(类似于图2A的准入状态116)。
在决定准入时,处理FL2和FL3的分组的控制逻辑模块30中的准入决定模块48为FL2和FL3的分组产生准入决定142。准入决定可以例如仅以基于流的准入状态AS2为基础,或基于AS2和一个或多个占用准入状态140。
在一些实施方式中,可见性引擎144(类似于上面的可见性引擎128)监控FB_DC2并基于FB_DC2输出可见性指示。准入决定模块48可以在产生准入决定142时使用可见性指示。
处理FL2和FL3的分组的控制逻辑模块30传递属于这些流的分组的描述符,这些分组已经被允许进入排队系统50,用于使用分组Tx 52经由公共出口端口24或经由两个相应的出口端口进行传输。处理FL2和FL3的分组的控制逻辑模块30将已经被丢弃的FL2和FL3的分组报告给SB控制器,SB控制器从SB 34释放丢弃的分组。
图2C描绘了基于表示为FL4、FL5和FL6的三个不同流的分组准入的处理流150。属于相应流FL4、FL5和FL6的分组152、154和156经由一个或多个入口端口22被接收并且被放置在SB 34中。
在本示例中,在执行记账时,SB控制器54对FL4、FL5和FL6的分组执行单独的基于流的记账,以产生表示为FB_DC3、FB_DC4和FB_DC5的相应的基于流的数据计数160。
在本示例中,SB控制器54基于数据计数FB_DC3、FB_DC4和FB_DC5产生表示为AS3和AS4的两个准入状态162。具体地,SB控制器54基于对应于FL4和FL5的数据计数FB_DC3和FB_DC4产生AS3,并基于对应于FL6的单个数据计数FB_DC5产生AS4。在一些实施方式中,SB控制器54还基于占用数据计数产生占用准入状态170(类似于图2A的准入状态116)。
在决定准入时,处理FL4、FL5和FL6的分组的控制逻辑模块30的准入决定模块48以基于流的准入状态AS3和AS4中的至少一个为基础产生针对流FL4、FL5和FL6的分组的准入决定174。在一个实施方式中,准入决定还基于一个或多个占用准入状态170。
在一些实施方式中,准入决定可以另外基于通过使用可见性引擎(类似于未示出的可见性引擎128和144)监视基于流的数据计数FB_DC3、FB_DC4和FB_DC5中的一个或多个而产生的一个或多个可见性指示178。
处理FL4、FL5和FL6的分组的控制逻辑模块30传递属于FL4、FL5和FL6的分组的描述符,这些分组已经被允许进入排队系统50以由分组Tx 52经由公共出口端口24或经由两个或三个出口端口进行传输。处理FL4、FL5和FL6的分组的控制逻辑模块30将已被丢弃的FL4、FL5和FL6的分组报告给SB控制器,SB控制器从SB 34释放丢弃的分组。
基于流的分组准入方法
图3是根据本文描述的实施方式示意性地示出用于基于流的准入的数据平面处理的方法的流程图。
该方法将被描述为由图1的网络元件20执行。在执行图3的方法时,假设SB控制器已经使用先前接收的分组产生了准入决定模块48可访问的准入状态62。下面将参考图4描述用于产生准入状态的方法。
图3的方法开始于网络元件20在分组接收步骤200经由入口端口22接收分组并将接收的分组存储在SB 34中。所讨论的入口端口被表示为“PI”。
在分组分析步骤204,解析器44解析分组报头以生成分组的描述符。解析器44将描述符传递给描述符处理器46,该处理器基于描述符确定以下参数:
FLFL-分组所属于的流。
POPO-分组应转发到的出口端口。
RpRp-分组的接收优先级。
TpTp-分组的传输优先级。
在准入状态访问步骤208,准入决定模块48读取与(PI,Rp)、(PO,Tp)和FL相关联的一个或多个准入状态。如上所述,与(PI,Rp)和(PO,Tp)相关联的准入状态由SB控制器54基于占用数据计数56产生,并且与FL相关联的准入状态由SB控制器54以基于流的数据计数58为基础产生。
在决定步骤212,准入决定模块48基于在步骤108观察到的一个或多个准入状态来决定是准入还是丢弃分组。
在准入查询步骤216,描述符处理器46检查是否应该准入该分组。当步骤216处的决定是丢弃分组时,该方法循环回到步骤100以接收另一个分组。描述符处理器46还将丢弃的分组报告给SB控制器以释放被丢弃的分组占用的存储空间。当步骤216的决定是准入该分组时,描述符处理器46进行到排队步骤220。在步骤220,描述符处理器将对应的描述符放置在排队系统50中的适当队列中以以传输优先级Tp等待经由指定的出口端口PO的传输。在消耗报告步骤224,描述符处理器46向SB控制器54报告与被准入的分组有关的消耗信息以用于记账。在步骤224之后,该方法循环回到步骤100以接收后续分组。
在释放报告步骤228,在经由端口PO传输排队的分组时,分组Tx 52向SB控制器54报告释放事件,用于记账更新和刷新相关准入状态。
产生基于流的准入状态的方法
图4是示意性地示出根据本文描述的实施方式的用于产生基于流的准入状态的方法的流程图。
该方法将被描述为由图1的SB控制器54执行。
图4的方法开始于SB控制器在等待步骤250等待接收消耗和释放通知。如上所述,描述符处理器46响应于分组准入而生成消耗通知,并且分组发送器52响应于发送先前准入和排队的分组生成释放通知。假设每个消耗/释放通知都包括指向底层分组描述符的指针,该描述符指示分组所属于的流FL,以及指向分组的区域(PI,Rp)和(PO,Tp)。
响应于接收到对应于给定分组的消耗通知,SB控制器54增加与给定分组所属于的流FL相关联的基于流的数据计数。SB控制器还增加与给定分组的区域(PI,Rp),(PO,Tp)相关联的占用数据计数。让DC表示对应于给定分组的数据量。在步骤254,SB控制器如下计算更新的数据计数:Count(FL)+=DC,Count(PI,Rp)+=DC以及Count(PO,Tp)+=DC。
响应于接收到对应于给定分组的释放通知,SB控制器54减少与给定分组所属于的流FL相关联的基于流的数据计数。SB控制器还减少与给定分组的区域(PI,Rp),(PO,Tp)相关联的占用数据计数。让DC表示对应于给定分组的数据量。在步骤258,SB控制器如下计算更新的计数:Count(FL)-=DC,Count(PI,Rp)-=DC以及Count(PO,Tp)-=DC。
在步骤254和258中的每一个之后,该方法进行到准入状态刷新步骤262,在该步骤SB控制器54更新与FL、(PI,Rp)和(PO,Tp)相关联的准入状态62以反映消耗的影响或释放事件。在步骤262之后,该方法循环回到步骤250以等待随后的通知。
基于流的镜像
镜像是用于例如由网络元件用于报告选定的事件,例如,用于故障排除和性能评估的技术。在镜像中,可以将使用预定义标准(例如,拥塞检测)选择的分组报告给中央实体以供分析。选定的分组被复制并发送到网络,因此可能会不合需要地消耗大量可用带宽。
在一些实施方式中,镜像标准包括基于流的标准。例如,属于某个流(FL)的分组可以基于分配给FL的基于流的计数进行镜像,例如使用可见性引擎128或144。在一些实施方式中,FL的分组可以基于其他流的基于流的数据计数进行镜像。此外,属于FL的分组可以基于与FL相关联的一个或多个占用数据计数进行镜像。在一些实施方式中,基于流的镜像标准可以与诸如识别拥塞条件的另一镜像标准组合。
基于流的拥塞避免
加权随机早期检测(WRED)是一种可用于避免拥塞的方法。在WRED中,丢弃分组的概率随着传输队列建立而增加。
在一些实施方式中,准入决定模块48包括参与决定分组准入或丢弃的基于流的WRED模块(未示出)。具体地,SB控制器54至少基于与一个或多个选定流相关联的基于流的数据计数来计算丢弃概率,并且以基于流的数据计数和丢弃概率为基础为一个或多个流生成基于流的准入状态。在一些实施方式中,SB控制器还基于一个或多个占用数据计数来确定准入状态。
上述实施方式是作为示例给出的,也可以使用其他合适的实施方式。例如,在上述实施方式中,基于流的记账是相对于入口端口进行的。然而,在替代实施方式中,相对于出口端口执行基于流的记账。
尽管这里描述的实施方式主要解决网络元件中SB的基于流的管理,但是这里描述的方法和系统也可以用于其他合适的网络设备,例如用于管理网络接口控制器(NIC)的SB。
应当理解,以上描述的实施方式是通过示例的方式引用的,并且以下权利要求不限于已经在上文中具体示出和描述的内容。相反,该范围包括上文描述的各种特征的组合和子组合,以及本领域技术人员在阅读上述描述后会想到的并且在现有技术中未公开的变化和修改。以引用方式并入本专利申请中的文件应被视为本申请的组成部分,除非在这些并入文件中以与本说明书中明确或隐含的定义相冲突的方式定义的任何术语,仅应考虑本说明书中的定义。

Claims (26)

1.一种用于控制共享缓冲区(SB)的装置,所述装置包括:
接口,所述接口被配置为访问基于流的数据计数和准入状态;和
SB控制器,所述SB控制器被配置为:
对由耦合到通信网络的网络设备接收的分组执行基于流的记账以生成基于流的数据计数,每个基于流的数据计数与一个或多个相应的流相关联;以及
至少基于所述基于流的数据计数生成准入状态,每个准入状态从一个或多个相应的基于流的数据计数生成。
2.根据权利要求1所述的装置,其中所述SB包括在所述SB控制器可访问的存储器中,所述存储器在所述装置的外部。
3.根据权利要求1所述的装置,其中所述装置还包括存储器,所述SB包括在所述存储器中。
4.根据权利要求1所述的装置,还包括:
包括入口端口的多个端口,所述多个端口被配置为连接到所述通信网络;和
数据平面逻辑,所述数据平面逻辑被配置为:
从所述入口端口接收分组;
将所述分组分类为相应的流;以及
以基于所述基于流的数据计数生成的一个或多个准入状态为基础,决定是允许所述分组进入所述SB还是丢弃所述分组。
5.根据权利要求1所述的装置,其中所述SB控制器被配置为产生属于多个不同流的分组的聚合数据计数,并且基于所述聚合数据计数生成用于所述多个不同流的所述分组的准入状态。
6.根据权利要求1所述的装置,其中所述SB控制器被配置为针对属于相应的第一和第二不同流的分组产生第一和第二基于流的数据计数,并且基于所述第一和第二基于流的数据计数生成所述第一和第二流的所述分组的准入状态。
7.根据权利要求4所述的装置,其中所述SB控制器被配置为基于多个选择的流生成多个准入状态,并且所述数据平面逻辑被配置为基于所述多个准入状态决定是允许属于所述选择的流之一的分组进入所述SB还是丢弃所述分组。
8.根据权利要求4所述的装置,其中所述数据平面逻辑被配置为针对接收到的分组确定所述多个端口中的相应出口端口、入口优先级和出口优先级,并且其中所述SB控制器被配置为对于(i)与相应入口端口和入口优先级相关联的Rx数据计数,以及(ii)与相应出口端口和出口优先级相关联的Tx数据计数执行占用记账,并基于所述基于流的数据计数和所述Rx数据计数和所述Tx数据计数中的至少一个生成所述准入状态。
9.根据权利要求8所述的装置,其中所述SB控制器被配置为并行执行所述基于流量的记账和所述占用记账。
10.根据权利要求1所述的装置,其中所述SB控制器被配置为通过(i)将哈希函数应用于所接收的分组的报头中的一个或多个字段,或(ii)使用访问控制列表(ACL)处理所述分组为接收的分组识别相应的基于流的数据计数。
11.根据权利要求1所述的装置,其中所述SB控制器被配置为基于选自协议列表中的协议中使用的基于流的绑定为接收的分组识别相应的基于流的数据计数,所述协议包括:租户协议、桥接协议、路由协议和隧道协议。
12.根据权利要求1所述的装置,其中所述SB控制器被配置为本地监控所选择的基于流的数据计数,以基于所监控的基于流的数据计数并基于报告标准来评估所述网络设备的性能水平,以报告指示所述性能水平的信息。
13.根据权利要求1所述的装置,其中所述SB控制器被配置为至少基于与一个或多个所选择的流相关联的基于流的数据计数来计算丢弃概率,并且基于所述基于流的数据计数和所述丢弃概率为所述一个或多个流生成准入状态。
14.一种用于控制共享缓冲区(SB)的方法,所述方法包括:
在包括SB控制器的装置中,访问基于流的数据计数和准入状态;
对由耦合到通信网络的网络设备接收的分组执行基于流的记账以生成基于流的数据计数,每个基于流的数据计数与一个或多个相应的流相关联;以及
至少基于所述基于流的数据计数生成准入状态,每个准入状态从一个或多个相应的基于流的数据计数生成。
15.根据权利要求14所述的方法,其中所述SB包括在所述SB控制器可访问的存储器中,所述存储器在所述装置的外部。
16.根据权利要求14所述的方法,其中所述装置还包括存储器,所述SB包括在所述存储器中。
17.根据权利要求14所述的方法,并且包括:
通过包括入口端口的多个端口连接到所述通信网络;
从所述入口端口接收分组;
将所述分组分类为相应的流;以及
以基于所述基于流的数据计数生成的一个或多个准入状态为基础,决定是允许所述分组进入所述SB还是丢弃所述分组。
18.根据权利要求14所述的方法,其中执行所述基于流的记账包括产生属于多个不同流的分组的聚合数据计数,并且其中生成所述准入状态包括基于所述聚合数据计数生成用于所述多个不同流的分组的准入状态。
19.根据权利要求14所述的方法,其中执行所述基于流的记账包括为属于相应的第一和第二不同流的分组生成第一和第二基于流的数据计数,并且其中生成准入状态包括基于所述第一和第二基于流的数据计数生成所述第一和第二流的分组的准入状态。
20.根据权利要求14所述的方法,其中生成所述准入状态包括基于多个选择的流生成多个准入状态,并且其中决定是允许属于所选择的流之一的分组进入所述SB还是丢弃所述分组包括基于所述多个准入状态决定是否允许所述分组。
21.根据权利要求14所述的方法,还包括针对接收到的分组确定所述多个端口中的相应出口端口、入口优先级和出口优先级,并且对于(i)与相应入口端口和入口优先级相关联的Rx数据计数,以及(ii)与相应出口端口和出口优先级相关联的Tx数据计数执行占用记账,并且其中生成所述准入状态包括基于所述基于流的数据计数和所述Rx数据计数和所述Tx数据计数中的至少一个生成所述准入状态。
22.根据权利要求21所述的方法,其中执行所述占用记账包括并行执行基于流量的记账和所述占用记账。
23.根据权利要求14所述的方法,并且包括通过(i)将哈希函数应用于所接收的分组的报头中的一个或多个字段,或(ii)使用访问控制列表(ACL)处理所述分组为接收的分组识别相应的基于流的数据计数。
24.根据权利要求14所述的方法,并且包括基于选自协议列表中的协议中使用的基于流的绑定为接收的分组识别相应的基于流的数据计数,所述协议包括:租户协议、桥接协议、路由协议和隧道协议。
25.根据权利要求14所述的方法,并且包括本地监控所选择的基于流的数据计数,基于所监控的基于流的数据计数并基于报告标准来评估所述网络设备的性能水平,报告指示所述性能水平的信息。
26.根据权利要求14所述的方法,并且包括至少基于与一个或多个所选择的流相关联的基于流的数据计数来计算丢弃概率,并且其中生成所述准入状态包括基于所述基于流的数据计数和所述丢弃概率为所述一个或多个流生成准入状态。
CN202110896745.0A 2020-08-10 2021-08-05 基于流的共享缓冲区资源管理 Pending CN114095457A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/988,800 US20220045972A1 (en) 2020-08-10 2020-08-10 Flow-based management of shared buffer resources
US16/988,800 2020-08-10

Publications (1)

Publication Number Publication Date
CN114095457A true CN114095457A (zh) 2022-02-25

Family

ID=77226690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110896745.0A Pending CN114095457A (zh) 2020-08-10 2021-08-05 基于流的共享缓冲区资源管理

Country Status (3)

Country Link
US (1) US20220045972A1 (zh)
EP (1) EP3955550A1 (zh)
CN (1) CN114095457A (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10355981B1 (en) 2016-03-02 2019-07-16 Innovium, Inc. Sliding windows
US11075847B1 (en) 2017-01-16 2021-07-27 Innovium, Inc. Visibility sampling
US11784932B2 (en) * 2020-11-06 2023-10-10 Innovium, Inc. Delay-based automatic queue management and tail drop
US11621904B1 (en) 2020-11-06 2023-04-04 Innovium, Inc. Path telemetry data collection
US11956136B2 (en) * 2021-03-24 2024-04-09 Arista Networks, Inc. System and method for scalable and accurate flow rate measurement
US11870682B2 (en) 2021-06-22 2024-01-09 Mellanox Technologies, Ltd. Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies
US11765103B2 (en) 2021-12-01 2023-09-19 Mellanox Technologies, Ltd. Large-scale network with high port utilization
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060092837A1 (en) * 2004-10-29 2006-05-04 Broadcom Corporation Adaptive dynamic thresholding mechanism for link level flow control scheme
US7215641B1 (en) * 1999-01-27 2007-05-08 Cisco Technology, Inc. Per-flow dynamic buffer management
CN107204931A (zh) * 2016-03-20 2017-09-26 迈络思科技Tlv有限公司 拥塞控制措施的灵活应用
CN109565476A (zh) * 2016-08-29 2019-04-02 思科技术公司 使用共享全局存储器储备进行队列保护

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130126816A (ko) * 2012-04-26 2013-11-21 한국전자통신연구원 트래픽 혼잡을 제어하는 트래픽 관리장치 및 그 방법
US10250530B2 (en) 2016-03-08 2019-04-02 Mellanox Technologies Tlv Ltd. Flexible buffer allocation in a network switch
US10498612B2 (en) * 2016-09-27 2019-12-03 Mellanox Technologies Tlv Ltd. Multi-stage selective mirroring
WO2018106868A1 (en) * 2016-12-07 2018-06-14 Idac Holdings, Inc. Slicing switch resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7215641B1 (en) * 1999-01-27 2007-05-08 Cisco Technology, Inc. Per-flow dynamic buffer management
US20060092837A1 (en) * 2004-10-29 2006-05-04 Broadcom Corporation Adaptive dynamic thresholding mechanism for link level flow control scheme
CN107204931A (zh) * 2016-03-20 2017-09-26 迈络思科技Tlv有限公司 拥塞控制措施的灵活应用
CN109565476A (zh) * 2016-08-29 2019-04-02 思科技术公司 使用共享全局存储器储备进行队列保护

Also Published As

Publication number Publication date
US20220045972A1 (en) 2022-02-10
EP3955550A1 (en) 2022-02-16

Similar Documents

Publication Publication Date Title
EP3955550A1 (en) Flow-based management of shared buffer resources
US11005769B2 (en) Congestion avoidance in a network device
US11855901B1 (en) Visibility sampling
US7916718B2 (en) Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US6678248B1 (en) Policy based quality of service
US9185047B2 (en) Hierarchical profiled scheduling and shaping
US6993041B2 (en) Packet transmitting apparatus
US9112784B2 (en) Hierarchical occupancy-based congestion management
CN108667898B (zh) 网元和用于提供网元中的缓冲器内容的快照的方法
US20040213265A1 (en) Method and a device for implicit differentiation of quality of service in a network
US9055009B2 (en) Hybrid arrival-occupancy based congestion management
US8144588B1 (en) Scalable resource management in distributed environment
JP2003258871A (ja) トラフィックおよびサービス・レベル・アグリーメントに基づいた自動ルータ構成
WO2010020988A2 (en) System and methods for distributed quality of service enforcement
US8929213B2 (en) Buffer occupancy based random sampling for congestion management
CN107835133B (zh) 一种基于多属性决策的流优先级控制方法
Li et al. OPTAS: Decentralized flow monitoring and scheduling for tiny tasks
WO2021244247A1 (zh) 转发数据报文的方法、网络节点、系统及存储介质
Li et al. Survey on traffic management in data center network: from link layer to application layer
US20230022037A1 (en) Flow-based management of shared buffer resources
US20240073141A1 (en) Flow-based congestion control
JP3581056B2 (ja) トラヒック観測装置、トラヒック監視装置、データグラム転送装置及びデータグラム転送システム
US20150049770A1 (en) Apparatus and method
JP2003023460A (ja) レート制御装置
JP2003023450A (ja) レート制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220309

Address after: Yoknam, Israel

Applicant after: Mellanox Technologies, Ltd.

Address before: Israel Lai Ananna

Applicant before: Mellanox Technologies TLV Ltd.