专利名称:一种交换设备中基于聚合链路分配缓存的方法及装置的制作方法
技术领域:
本发明涉及交换机等网络设备分配资源的方法,尤其涉及交换芯片中基 于聚合链路分配緩存的方法及装置。
背景技术:
交换芯片内部存在一定数量的緩存(buffer),当报文从交换机的源 端口进入交换机后,如果有可用的buffer,那么报文会被緩存在交换机的 buffer里面,直到交换机将报文从所有的目的端口发出后,该buffer才会被 释放。
交换芯片中分配buffer的方法大致有三种第一种是交换芯片的buffer 被其所有端口全局共享,只要有空闲buffer,所有端口都可以去抢占;第二 种是静态buffer分配,即通过端口设置静态值来设置平均可以占用的buffer 数目;第三种是动态buffer分配,即端口可以占用的buffer和交换芯片剩余 buffer成线性关系,也就是说端口可以占用的buffer随着交换芯片剩余buffer 减少而减少。
以上第二种、第三种方法虽然比起第 一种方法具有更好效果和更优的性 能,但二者都没有考虑到一种情况两台交换机通过链路聚合控制协议 (LACP, Link Aggregation Control Protocol),可以把多个端口聚合成为一 个聚合组(trunk)。在这种情况下,如果实现buffer在端口聚合组内的共享, 则能够进一步提高链路聚合组的报文转发性能,而如果仍然依上述方法基于 端口分配而不基于聚合组分配,则会不利于链路聚合组的转发性能的进一步 提高。
发明内容
本发明所要解决的技术问题是提供一种交换设备中基于聚合链路分配緩存的方法及装置,能够进一步提高链路聚合组端口的转发性能。
为了解决上述技术问题,本发明提供了 一种交换设备中基于聚合链路分
配緩存的方法,包括当报文从链路聚合组内的一端口进入,交换设备将该 聚合组内所有端口可占用的緩存总和作为聚合组可占用的緩存共享给该聚合 组内的各个端口 ,如判断该聚合组内已占用的緩存数目尚未达到该聚合组可 占用的緩存的总数目,则分配相应容量的緩存存储报文,否则丟弃报文。
进一步地,根据聚合组内的端口数目和交换设备内端口平均占用的緩存 数目,计算该聚合组可占用的緩存的总数目=交换设备内端口平均占用的緩
存数目x该聚合组内的端口数目;交换设备内端口平均占用的緩存数目=交 换设备内緩存的总数目/交换设备内的端口数目。
进一步地,根据对聚合组内各个端口当前可占用的緩存的数目求和,计
算该聚合组可占用的緩存的总数目;该聚合组内各个端口当前可占用的緩存 的数目=交换设备当前剩余的緩存数目x该聚合组内端口当前的活跃程度。
进一步地,当报文从除聚合组内的端口以外的普通端口i^,则
计算确定交换设备内端口平均占用的緩存数目,或者根据交换设备当前 剩余的緩存数目和该普通端口当前的活跃程度,计算该普通端口当前可占用 的緩存数目;并且,当该普通端口已占用的緩存数目尚未达到交换设备内端 口平均占用的緩存数目,或者当该普通端口已占用的緩存数目尚未达到该普 通端口当前可占用的緩存数目,则分配相应容量的緩存存储报文,否则丟弃 报文。
进一步地,在分配相应容量的緩存之前还包括查询交换设备内是否尚 存在空闲緩存,如存在则分配緩存,否则丢弃才艮文。
为了解决上述技术问题,本发明提供了一种交换设备中基于聚合链路分 配緩存的装置,包括依次连接的端口管理单元、緩存分配单元以及緩存单元; 其中
端口管理单元,用于管理交换设备内的所有端口,并当对进入才艮文的端 口区分为是链路聚合组端口 ,则将聚合组内所有端口可占用的緩存总和作为聚合组可占用的緩存共享给聚合组内的各个端口 ;当通过緩存分配单元查询 到,该聚合组内已占用的緩存数目尚未达到该聚合组可占用的緩存的总数目, 则向緩存分配单元申请分配相应容量的緩存存储才艮文,否则丢弃净艮文;
緩存分配单元,用于根据端口管理单元的申请,将分配的緩存提供给端 口管理单元;
緩存单元,用于提供存储报文的緩存。
进一步地,本发明的装置还包括分别与端口管理单元和緩存分配单元连 接的计算单元,用于根据从端口管理单元获取的交换设备内的端口数目,以
及从緩存分配单元获取的交换设备内的緩存的总数目,计算交换设备内端口 平均占用的緩存数目-交换设备内的緩存的总数目/交换设备内的端口数目; 然后根据从端口管理单元获取的聚合组内的端口数目和计算的交换设备内端 口平均占用的緩存数目,计算该聚合组可占用的緩存的总数目=交换设备内 端口平均占用的緩存数目x该聚合组内的端口数目,并将计算结果输出给端 口管理单元。
进一步地,
计算单元,或用于根据从緩存分配单元获取的交换设备当前剩余的緩存 数目,以及从端口管理单元获取的聚合组内端口当前的活跃程度,计算该聚 合组内各端口当前可占用的緩存的数目=交换设备当前剩余的緩存数目x该 聚合组内端口当前的活跃程度,然后对该聚合组内各端口当前可占用的緩存 的数目求和,计算该聚合组可占用的援存的总数目,并将计算结果输出给端 口管理单元。
进一步地,
端口管理单元,当对进入才艮文的端口区分为是除所述聚合组内的端口以 外的普通端口 ,则根据从计算单元输入的交换设备内端口平均占用的緩存数 目,或指示计算单元输出计算的普通端口当前可占用的緩存数目,当通过緩 存分配单元查询到,该普通端口已占用的緩存数目尚未达到交换设备内端口 平均占用的緩存数目,或者该普通端口已占用的緩存数目尚未达到该普通端 口当前可占用的緩存数目,则向緩存分配单元申请分配相应容量的緩存存储文;
计算单元,还用于根据端口管理单元的指示,通过从缓存分配单元获取 的交换设备当前剩余的緩存数目,以及从端口管理单元获取的该普通端口当 前的活跃程度,计算获得该普通端口当前可占用的緩存数目,并将计算结果 输出给端口管理单元。
进一步地,
緩存分配单元,还用于在分配緩存之前,查询交换设备是否尚存在空闲 緩存,存在则分配緩存,否则向端口管理单元返回分配失败的信息;
端口管理单元,在收到该分配失败的信息后,丢弃^Jl。
本发明对传统的静态、动态緩存分配方法进行了改进,通过将链路聚合 组内所有端口的緩存总和共享给聚合组内的各端口 ,实现基于聚合链路的緩 存分配,由此进一步提高了交换机链路聚合组的转发性能,同时还不会对其 它普通端口或者其它聚合组造成任何影响。
图1是本发明交换设备中基于聚合链路分配緩存的方法实施例流程图; 图2是本发明基于聚合链路分配緩存的装置实施例结构框图。
具体实施例方式
本发明引入了一种交换设备中基于聚合链路分配缓存的方法及装置,其 发明构思是,交换设备将链路聚合组里所有端口可占用的緩存共享给聚合组
内的每一端口;当报文从交换设备聚合组内的端口进入,且交换设备判断聚 合组里已占用的緩存数目尚未达到聚合組共享緩存的总数目,则分配緩存存 储报文,否则丢弃报文。
以下结合附图和优选实施例,对本发明的上述构思展开进行详细阐述, 以解释清楚本发明的技术方案。为了阐述方便,以下实施例仅在现有的第二
8种方法的基础上面进行阐述。实际上,本发明的才支术方案对于现有的第二种、
第三种buffer分配方法均适用。
请参见图1,本发明交换设备中基于聚合链路分配緩存的方法包括以下 步骤
步骤101:根据交换芯片内buffer总数目和端口数目,计算出端口平均 占用的buffer数目=交换芯片内buffer总数目/端口数目;
实际上,如果是动态分配buffer,则步骤101是根据交换芯片当前剩余 的buffer数目和端口当前的活跃程度(接收^^文的频度),计算端口当前可 占用的buffer数目=交换芯片当前剩余的buffer数目x端口当前的活跃程度, 即如果端口当前的活跃程度高,则在当前剩余的buffer中可占用的buffer数 目#尤大,反之亦然。
步骤102、 103:报文从端口进入,如果判断为链路聚合组里的端口 ,执 行步骤104,如果判断是除链路聚合组里的端口外的普通端口 ,执行步骤109;
步骤104~108:根据聚合组里的端口数目和端口平均占用的buffer数目, 确定聚合组可占用的buffer总数目=端口平均占用的buffer数目x聚合组里 的端口数目;判断聚合组内(所有端口)已占用的buffer数目是否达到聚合 组可占用的buffer总数目,达到则丟弃报文,没有达到则继续查询交换芯片 内是否尚存在空闲緩存,存在则分配buffer并緩存报文,否则丢弃报文;结 束流程。
如果是动态分配buffer,则步骤104是根据步骤101计算的聚合组内各 端口当前可占用的buffer数目,确定的聚合组可占用的buffer总数目,等于 聚合組内各端口当前可占用的buffer数目之和。
步骤109:判断该端口已占用buffer数目是否达到端口平均占用的buffer 数目,达到则执行步骤108,即丢弃报文;没有达到则执行步骤106,即继续 判断交换芯片内是否尚存在空闲緩存,存在则获取buffer并緩存报文,否则 丟弃报文。
上述步骤106作为可选步骤,用于保证聚合组里的端口或普通端口在分配的buffer中緩存报文时,不会与其它端口产生buffer资源冲突,亦即保证 不会对其它端口产生影响。
下面就上述方法实施例给出一个应用示例来帮助进一步理解本发明的技 术方案。
假设交换机共有2000个buffer,每个buffer 256字节;交换机共有20 个物理端口,端口 1、端口2、端口 3及端口 4都在链路聚合组1里面。
假设报文从聚合组1进入,则基于聚合链路分配緩存的方法就按如下步 骤执行
步骤l:计算端口平均占用的buffer数目=2000/20 = 100,即每个端口平 均可以占用100个buffer;
步骤2:如果才艮文从端口 1~端口 4的任意一个端口进入,则交换机判断 该端口属于链路聚合组里的端口 ,先计算链路聚合组可占用的buffer总数目 =端口平均占用的buffer数目x聚合组里的端口数目=100x4 = 400,即链路 聚合组可占用400个buffer;
步骤3:判断端口 1~端口 4当前已占用的buffer总数目是否达到400, 如果未达到则交换机分配緩存并存储报文,否则丢弃从聚合组1进来的报文。
如图2所示,本发明根据图1所示的方法相应地为交换机提供的一种基 于聚合链路分配緩存的装置的实施例,该装置200包括依次连接的计算单元 210、端口管理单元220、緩存分配单元230以及緩存单元240;其中
计算单元210,还与緩存分配单元230连接,用于通过緩存分配单元230 获取交换芯片内buffer总数目,再根据从端口管理单元220获取的交换芯片 内端口数目,计算出端口平均占用的buffer数目;根据从端口管理单元220 获取的聚合组里的端口数目和计算出的端口平均占用的buffer数目N,计算 聚合组可占用的buffer总数目M;将计算结果输出给端口管理单元220。
N-交换芯片内buffer总数目/端口数目;
M-端口平均占用的buffer数目x聚合组里的端口数目。当然,如果是釆用动态分配buffer的方法,计算单元210则可分別计算 端口当前可占用的buffer数目和聚合组可占用的buffer总数目,具体方法如 前所述,故此不再赘述。
端口管理单元220,用于管理交换芯片内的所有端口,确定端口数目, 并区分进入报文的端口是链路聚合组端口还是非链路聚合组端口 ;若区分为 链路聚合组端口,则根据记录的该聚合组已占用的buffer数目m和输入M, 判断m是否小于M,小于则向緩存分配单元230申请分配buffer,并将报文 緩存如緩存分配单元230分配的buffer中,否则丟弃该l艮文;若区分为非链 路聚合组端口 ,则根据记录的该端口已占用的buffer数目n和输入N,判断 n是否小于N,小于则根据报文容量向緩存分配单元230申请分配buffer,并 将报文緩存如緩存分配单元230分配的buffer中,否则丢弃该报文;在目的 端口提出发送报文的请求时,从緩存分配单元230取出相应的报文输出给该 目的端口 ,并向緩存分配单元230请求释放buffer。
图2所示的计算单元210,可合并在端口管理单元220中。
緩存分配单元230,用于根据端口管理单元220的申请分配相应容量的 buffer,并根据端口管理单元220的请求释放相应的buffer.
緩存单元240,用于提供存储报文的buffer。
本发明与现有技术相比较,引入了一种基于聚合链路的緩存分配方法, 能够实现对链路聚合组里的端口 bufferr在聚合组内的共享,从而提高链路聚 合组的报文转发性能。
当然,本发明还可以有其他多种实施例,在不背离本发明精神及其实质 的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种交换设备中基于聚合链路分配缓存的方法,包括当报文从链路聚合组内的一端口进入,交换设备将所述聚合组内所有端口可占用的缓存总和作为聚合组可占用的缓存共享给所述聚合组内的各个端口,如判断所述聚合组内已占用的缓存数目尚未达到所述聚合组可占用的缓存的总数目,则分配相应容量的缓存存储所述报文,否则丢弃所述报文。
2、 按照权利要求1所述的方法,其特征在于,根据所述聚合组内的端 口数目和所述交换设备内端口平均占用的缓存数目,计算所述聚合组可占用 的緩存的总数目=所述交换设备内端口平均占用的緩存数目x所述聚合组内 的端口数目;所述交换设备内端口平均占用的緩存数目=所述交换设备内緩 存的总数目/所述交换设备内的端口数目。
3、 按照权利要求1所述的方法,其特征在于,根据对聚合组内各个端 口当前可占用的緩存的数目求和,计算所述聚合组可占用的緩存的总数目; 所述聚合组内各个端口当前可占用的緩存的数目=所述交换设备当前剩余 的緩存数目x所迷聚合组内端口当前的活跃程度。
4、 按照权利要求2所述的方法,其特征在于,当报文从除所述聚合组 内的端口以外的普通端口进入,则计算确定所述交换设备内端口平均占用的緩存数目,或者根据交换设备 当前剩余的緩存数目和所述普通端口当前的活跃程度,计算所述普通端口当 前可占用的緩存数目;并且,当所述普通端口已占用的緩存数目尚未达到所 述交换设备内端口平均占用的緩存数目,或者当所述普通端口已占用的緩存 数目尚未达到所述普通端口当前可占用的緩存数目,则分配相应容量的緩存 存储所述报文,否则丟弃所述报文。
5、 按照权利要求1至4任一项所述的方法,其特征在于,在分配相应 容量的緩存之前还包括查询所述交换设备内是否尚存在空闲緩存,如存在 则分配所述緩存,否则丢弃所述才艮文。
6、 一种交换设备中基于聚合链路分配緩存的装置,其特征在于,所迷 装置包括依次连接的端口管理单元、緩存分配单元以及緩存单元;其中所述端口管理单元,用于管理交换设备内的所有端口,并当对进入^1文 的端口区分为是链路聚合组端口 ,则将所述聚合组内所有端口可占用的緩存总和作为聚合组可占用的緩存共享给所述聚合组内的各个端口 ;当通过所述 緩存分配单元查询到,所述聚合组内已占用的緩存数目尚未达到所述聚合组 可占用的緩存的总数目,则向所述緩存分配单元申请分配相应容量的緩存存 储所述报文,否则丟弃所述报文;所述緩存分配单元,用于根据所述端口管理单元的申请,将分配的所述 緩存提供给所述端口管理单元;所述緩存单元,用于提供存储报文的所述緩存。
7、 按照权利要求6所述的装置,其特征在于,所述装置还包括分别与 所述端口管理单元和所述緩存分配单元连接的计算单元,用于根据从所述端口管理单元获取的所述交换设备内的端口 数目,以及从所述緩存分配单元获取的所述交换设备内的緩存的总数目,计 算所述交换设备内端口平均占用的緩存数目=所述交换设备内的緩存的总数 目/所述交换设备内的端口数目;然后根据从所述端口管理单元获取的聚合组 内的端口数目和计算的所述交换设备内端口平均占用的緩存数目,计算所述 聚合组可占用的緩存的总数目=所迷交换设备内端口平均占用的緩存数目x 所述聚合组内的端口数目,并将计算结果输出给所述端口管理单元。
8、 按照权利要求7所述的装置,其特征在于,所述计算单元,或用于根据从所述緩存分配单元获取的所述交换设备当 前剩余的緩存数目,以及从所迷端口管理单元获取的所述聚合组内端口当前 的活跃程度,计算所述聚合组内各端口当前可占用的緩存的数目=所述交换 设备当前剩余的緩存数目x所述聚合组内端口当前的活i^程度,然后对所述聚合组内各端口当前可占用的緩存的数目求和,计算所述聚合组可占用的緩 存的总数目,并将计算结果输出给所述端口管理单元。
9、 按照权利要求7所述的装置,其特征在于,所迷端口管理单元,当对进入才艮文的端口区分为是除所述聚合组内的端 口以外的普通端口 ,则根据从所述计算单元输入的所述交换设备内端口平均占用的緩存数目,或指示所述计算单元输出计算的普通端口当前可占用的緩 存数目,当通过所述緩存分配单元查询到,所述普通端口已占用的緩存数目 尚未达到所述交换设备内端口平均占用的緩存数目,或者所述普通端口已占 用的緩存数目尚未达到所述普通端口当前可占用的緩存数目,则向所述緩存分配单元申请分配相应容量的緩存存储所述报文,否则丢弃所述才艮文;所述计算单元,还用于根据所述端口管理单元的指示,通过从所述緩存 分配单元获取的所述交换设备当前剩余的緩存数目,以及从所述端口管理单 元获取的所述普通端口当前的活跃程度,计算获得所述普通端口当前可占用 的緩存数目,并将计算结果输出给所述端口管理单元。
10、 按照权利要求6至9任一项所述的装置,其特征在于,所述緩存分配单元,还用于在分配緩存之前,查询所述交换设备是否尚 存在空闲緩存,存在则分配所述緩存,否则向所述端口管理单元返回分配失 败的信息;所述端口管理单元,在收到所述分配失败的信息后,丢弃所述报文。
全文摘要
一种交换设备中基于聚合链路分配缓存的方法及装置,该方法包括当报文从链路聚合组内的一端口进入,交换设备将该聚合组内所有端口可占用的缓存总和作为聚合组可占用的缓存共享给该聚合组内的各个端口,如判断该聚合组内已占用的缓存数目尚未达到该聚合组可占用的缓存的总数目,则分配相应容量的缓存存储报文,否则丢弃报文。本发明对传统的静态、动态缓存分配方法进行了改进,通过将聚合链路内所有端口的缓存总和共享给各端口,进一步提高了交换机链路聚合组的转发性能,同时还不会对其它普通端口或者其它聚合组造成任何影响。
文档编号H04L12/56GK101483593SQ200910006948
公开日2009年7月15日 申请日期2009年2月13日 优先权日2009年2月13日
发明者潘庭山 申请人:中兴通讯股份有限公司