CN108632169A - 一种分片的服务质量保证方法及现场可编程逻辑门阵列 - Google Patents
一种分片的服务质量保证方法及现场可编程逻辑门阵列 Download PDFInfo
- Publication number
- CN108632169A CN108632169A CN201710169735.0A CN201710169735A CN108632169A CN 108632169 A CN108632169 A CN 108632169A CN 201710169735 A CN201710169735 A CN 201710169735A CN 108632169 A CN108632169 A CN 108632169A
- Authority
- CN
- China
- Prior art keywords
- fragment
- priority
- threshold value
- buffer threshold
- buffer
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种分片的QoS保证方法及FPGA,通过接收分片,分片为来自至少一个DSL端口的以太网包切割而成;从该分片中解析出该分片的优先级信息;根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;若是,则将该分片存入缓存空间中,并根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新;根据先入先出的规则将缓存空间中的待发送分片取出,并外发;采用上述方案,使得DSL设备在上行数据通道发生拥塞时,保证高优先级的分片不丢包,中优先级的分片尽量不丢包,以保证服务质量,避免了出现乱序、从而丢包的问题。
Description
技术领域
本发明涉及宽带接入数据通信领域,尤其涉及一种分片的服务质量保证方法及现场可编程逻辑门阵列。
背景技术
DSL(Digital Subscriber Line,数字用户线路)是一种宽带接入技术,通过传统的电话通双绞线,可以传送高达2Gbit/s的数据。通常的DSL接入设备的架构如图1所示。DSL设备由一个主控板和多个线卡构成,线卡上有DSL芯片和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列),主控板上有交换芯片。在从DSL端口到上联口的上行方向,DSL芯片对以太网包进行固定大小的切割,形成原始分片,然后按照ITU-T G.999.1标准的要求,在这些切割的原始分片外部加上GINT头(ITU-T G.999.1通常简称G.INT标准,把G.INT标准中定义的分片简称为GINT分片;G表示ITU标准中的G系列标准,INT是英文Interface的缩写),形成GINT分片。FPGA收到来自DSL芯片的各个端口的GINT分片后,在芯片内部存储、汇聚后通过内联口发送到主控板的交换芯片。交换芯片把来自各个DSL端口的GINT分片重组成以太网包,并经过处理后再经过上联口发送出DSL设备。
DSL端口上传输的GINT分片分为三种不同的优先级。优先级最高的H_GINT分片不能丢弃;优先级中等的业务M_GINT分片是尽量不丢弃;优先级低的业务L_GINT分片可以丢弃。
由于DSL设备是一种数据汇聚型的设备,线卡内联口的有效带宽通常小于各个DSL端口总的带宽和。这样,内联口出口处就会形成拥塞,造成GINT分片丢失。为了保证最高优先级的H_GINT分片不被丢失,中等优先级的业务M_GINT分片尽量不丢失,需要在FPGA芯片上实施服务质量QoS(Quality of Service,服务质量)。如图2所示,图2是在图1的基础上,在FPGA芯片上实施QoS,FPGA芯片包括接口处理模块、分片解析分类模块、分片描述符队列、队列调度模块、分片发送模块,现在通用的QoS方法是出口QoS,其思路是接口处理模块接收各个端口发来的分片,分片解析分类模块根据分片的优先级信息将分片进行解析分类,在出内联口之前设置三个队列,并且把三个队列分别设置为高、中、低三种优先级,对应存放H、M、L三个优先级的GINT分片。队列后面的队列调度模块把队列中的GINT分片按照优先级调度出来,通过后级的分片发送模块送往内联口。队列调度模块在调度时,先把高优先级队列的H_GINT分片调度完了,再调度中优先级队列中的M_GINT分片,最后调度低优先级队列中的L_GINT分片。每个DSL端口都有高、中、低优先级的以太网包,并且在DSL芯片中被切割、封装成长度固定的H_GINT、M_GINT、L_GINT分片。GINT分片通过GINT头的标识,可以分为首分片、中间分片和尾分片,分别对应以太网包的头部、中间以及尾部;同时,GINT头中也标识了DSL端口号。被调度出的GINT分片从内联口进入主控板的交换芯片后,按照端口被重组成以太网包。
但是,在以下场景中,采用出口QoS将会出现问题。当DSL端口中先收到低优先级的以太网包,经过处理后形成L_GINT分片进入FPGA的低优先级队列。此时高优先级队列是空的,于是队列调度模块就开始把L_GINT分片调度到主控板的交换芯片进行重组。此时,交换芯片的重组模块收到了首L_GINT分片和中间L_GINT分片,但尚未收到尾L_GINT分片。当低优先级队列中的L_GINT分片尚未调度结束时,来自同一个DSL端口的高优先级报文也被切割成H_GINT分片,进入FPGA的高优先级队列。于是队列调度模块开始把H_GINT分片调度出来,送到交换芯片的重组模块进行重组。此时,对于某个DSL端口而言,交换芯片的重组模块先后收到了首L_GINT分片、中间L_GINT分片、首H_GINT分片、中间H_GINT分片以及尾H_GINT分片。重组模块进行重组时,会把首分片和尾分片之间的所有分片重组成一个以太网包。由于这些首、尾分片分别来自不同的以太网包,最终重组会出现失败,导致高优先级的以太网包被丢弃。因此,采用传统的出口QoS方法进行处理,会在主控的交换芯片出现GINT分片乱序、错包、丢包、无法在DSL设备上使用的问题。
发明内容
本发明实施例主要解决的技术问题是,提供一种分片的服务质量保证方法及现场可编程逻辑门阵列,解决现有技术中,采用传统的出口QoS方法,会在主控的交换芯片出现分片乱序、错包、丢包、无法在DSL设备上使用的问题。
为解决上述技术问题,本发明实施例提供一种分片的服务质量保证方法,包括:
接收分片,分片为来自至少一个数字用户线路端口的以太网包切割而成;
从该分片中解析出该分片的优先级信息;
根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;
若是,则将该分片存入缓存空间中,并根据预设规则判断是否对优先级的缓存门限值进行更新;
若是,则对优先级的缓存门限值进行更新;
根据先入先出的规则将缓存空间中的待发送分片取出,并外发。
为解决上述技术问题,本发明实施例提供一种现场可编程逻辑门阵列,包括:
接收模块,用于接收分片,分片为来自至少一个数字用户线路端口的以太网包切割而成;
解析模块,用于从该分片中解析出该分片的优先级信息;
第一判断模块,用于根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;
存储模块,用于若第一判断模块判断需要将该分片存入缓存空间中,则将该分片存入缓存空间中;
第二判断模块,用于根据预设规则判断是否对优先级的缓存门限值进行更新;
更新模块,用于若第二判断模块根据预设规则判断需要对优先级的缓存门限值进行更新,则对优先级的缓存门限值进行更新;
外发模块,用于根据先入先出的规则将缓存空间中的待发送分片取出,并外发。
为解决上述技术问题,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行前述的分片的服务质量保证方法。
本发明的有益效果是:
根据本发明实施例提供的一种分片的服务质量保证方法及现场可编程逻辑门阵列,通过接收分片,分片为来自至少一个数字用户线路端口的以太网包切割而成;从该分片中解析出该分片的优先级信息;根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;若是,则将该分片存入缓存空间中,并根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新;根据先入先出的规则将缓存空间中的待发送分片取出,并外发;采用上述方案,使得DSL设备在上行数据通道发生拥塞时,保证高优先级的分片不丢包,中优先级的分片尽量不丢包,低优先级分片可以丢包,以保证服务质量,同时克服了采用传统的出口QoS方法导致的高低优先级分片的乱序、从而丢包的问题。
附图说明
图1为现有技术、以及本发明实施例一、二提供的一种DSL宽带接入设备的示意图;
图2为现有技术提供的一种出口QoS的宽带接入设备的示意图;
图3为本发明实施例一提供的一种分片的服务质量保证方法的流程图;
图4为本发明实施例一、二提供的一种缓存空间划分的示意图;
图5为本发明实施例二提供的一种FPGA的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。
实施例一
本实施例提供一种分片的服务质量保证方法,请参见图3,图3为本实施例提供的一种分片的服务质量保证方法的流程图,该方法包括以下步骤:
S301:接收分片,分片为来自至少一个DSL端口的以太网包切割而成;
本实施例提供的分片的服务质量保证方法可以采用FPGA来实现。FPGA在整个系统中的位置和作用如图1所示。图1为本实施例提供的一种DSL宽带接入设备架构图;DSL宽带设备由一个主控板和多个线卡组成,线卡和主控板之间通过内联口连接。线卡上有多个DSL芯片,这些DSL芯片有多个DSL端口。来自多个DSL端口的以太网包进入DSL芯片后,被切割成分片,然后按照ITU-T G.999.1标准的要求,在这些切割的分片外部加上GINT头,成为GINT分片被送到FPGA;ITU-T G.999.1通常简称G.INT标准,把G.INT标准中定义的分片简称为GINT分片。FPGA把来自多个DSL端口的GINT分片汇聚后,通过内联口送到主控板的交换芯片进行重组。
S301中的分片是指GINT分片,GINT分片的来源具体为在从DSL端口到上联口的上行方向,DSL芯片对以太网包进行固定大小的切割,形成原始分片,然后按照ITU-T G.999.1标准的要求,在这些切割的原始分片外部加上GINT头,由此便形成GINT分片。
可以对各个DSL端口进行轮询,轮流接收来自各个DSL端口的GINT分片。
在一种实施方式中,DSL端口上传输的GINT分片分为三种不同的优先级,包括高优先级分片H_GINT、中优先级分片M_GINT、低优先级分片L_GINT;优先级最高的H_GINT分片不能丢弃,优先级中等的业务M_GINT分片是尽量不丢弃,优先级低的业务L_GINT分片可以丢弃。
每个DSL端口都有高、中、低优先级的以太网包,并且在DSL芯片中被切割、封装成长度固定的H_GINT、M_GINT、L_GINT分片;GINT分片通过GINT头的标识,可以分为首分片、中间分片和尾分片,分别对应以太网包的头部、中间以及尾部;同时,GINT头中也标识了DSL端口号;也即一个GINT分片中包含该分片的优先级信息(优先级信息包括高优先级、中优先级、低优先级)、分片类型信息(分片类型信息包括首分片、中间分片、尾分片)、以及DSL端口号信息。
S302:从该分片中解析出该分片的优先级信息;
在接收到分片后,从该分片中解析出该分片是高优先级分片H_GINT、还是中优先级分片M_GINT、还是低优先级分片L_GINT;
S303:根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;若是,则进入S304,若否,则进入S308;
缓存空间包括高优先级独享缓存空间和共享缓存空间,高优先级独享缓存空间用于存储高优先级的分片,共享缓存空间用于存储各个优先级的分片;共享缓存空间可以存储高优先级分片H_GINT、中优先级分片M_GINT以及低优先级分片L_GINT;
当接收到的分片为高优先级分片时,优先存入高优先级独享缓存空间,当高优先级独享缓存的剩余空间不足时,才将高优先级分片存入共享缓存空间。
参见图4,图4为本实施例提供的一种缓存空间划分的示意图,其中,高优先级分片独享缓存空间的大小是H_TH_MIN,共享缓存空间的大小是SHARE_TH;定义H_GINT、M_GINT、L_GINT分片的缓存门限值分别为H-TH、M-TH、L-TH,H-TH、M-TH、L-TH三者之和等于SHARE_TH。
若该优先级的分片已占用的缓存空间大小小于分配给该优先级的缓存门限值,则将该GINT分片存入缓存,且已占用的缓存空间大小的数值对应增加;否则把该分片丢弃,该端口后面收到的非首分片也会被丢弃。
除了根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,来判断是否将该分片存入缓存空间中之外,还可以根据该分片的优先级信息、该优先级的分片已经占用的缓存计数器计数值、以及分配给该优先级的缓存门限值,来判断是否将该分片存入缓存空间中;在该GINT分片存入缓存之后,占用缓存计数器加1。
S304:将该分片存入缓存空间中;
若判断出将该分片可以存入缓存空间中,则给该分片分配缓存空间地址,按照分配的地址,把该分片存储到相应的空间。
S305:根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则进入S306,若否,则进入S309;
S306:若是,则对优先级的缓存门限值进行更新;
可以动态调整三种优先级分片的缓存门限值,H-TH的调整范围在H_TH_MIN、H_TH_MAX之间;M_TH的调整范围在M_TH_MIN、M_TH_MAX之间;L_TH的调整范围在L_TH_MIN、L_TH_MAX之间。
根据各个优先级GINT分片已占用的缓存空间大小以及旧的各个优先级的缓存门限值,动态更新调整优先级的缓存门限值。
在一种实施方式中,若接收到的分片需要存入共享缓存空间,S304、S305以及S306中根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新包括:
若该分片对应的优先级已占用的共享缓存的空间大小大于该优先级缓存门限值减去第一预设值,且小于该优先级缓存门限的最大值,则将该优先级缓存门限值加上第一预设值作为新的该优先级缓存门限值,同时将任何一个低于该优先级的缓存门限值减去第一预设值作为新的该低级别优先级的缓存门限值。
其中,预设规则包括该分片对应的优先级已占用的共享缓存的空间大小大于该优先级缓存门限值减去第一预设值,且小于该优先级缓存门限的最大值。
例如,第一预设值可以为64,若当前共享缓存中存放的H_GINT分片数量H_CNT>H_TH-64且H_CNT<H_TH_MAX,则把H_GINT分片的可用缓存门限值H_TH增加64,同时把M_GINT分片的缓存门限值减少64或者把L_GINT分片的缓存门限值减少64,即H_TH=H_TH_old+64,M_TH=M_TH_old-64或者L_TH=L_TH_old-64。
若当前共享缓存中M_GINT分片的数量M_CNT>M_TH-64且M_CNT<M_TH_MAX,则增加M_GINT分片的缓存门限值,同时减少L_GINT分片的缓存门限值,即M_TH=M_TH_old+64,L_TH=L_TH_old–64。
在一种实施方式中,若接收到的分片为高优先级分片,且需要存入共享缓存空间,S304、S305以及S306中根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新包括:
若该高优先级分片已占用的共享缓存的空间大小小于高优先级缓存门限值减去第二预设值,且大于高优先级缓存门限的最小值,则将高优先级缓存门限值减去第三预设值作为新的高优先级缓存门限值,同时将任何一个低于该高优先级的缓存门限值加上第三预设值作为新的该低级别优先级的缓存门限值。
其中,预设规则包括该高优先级分片已占用的共享缓存的空间大小小于高优先级缓存门限值减去第二预设值,且大于高优先级缓存门限的最小值。
例如第二预设值可以为160,第三预设值可以为64,若当前共享缓存中H_CNT<H_TH-160并且H_CNT>H_TH_MIN,则把H_GINT分片的缓存门限值减少64,同时把M_GINT分片的缓存门限值增加64或者把L_GINT分片的缓存门限值增加64,即H_TH=H_TH_old-64,M_TH=M_TH_old+64或者L_TH=L_TH_old+64。否则,维持现有数值。
在一种实施方式中,当接收到的分片为低优先级分片时,S304、S305以及S306中根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新包括:
若高优先级分片已占用的共享缓存的空间大小小于第四预设值,中优先级分片已占用的共享缓存的空间大小小于中优先级缓存门限值减去第五预设值,且大于中优先级缓存门限的最小值,且低优先级分片已占用的共享缓存的空间大小大于低优先级缓存门限值减去第六预设值,则将低优先级缓存门限值加上第六预设值作为新的低优先级缓存门限值,同时将中优先级缓存门限值减去第六预设值作为新的中优先级缓存门限值。
其中,预设规则包括高优先级分片已占用的共享缓存的空间大小小于第四预设值,中优先级分片已占用的共享缓存的空间大小小于中优先级缓存门限值减去第五预设值,且大于中优先级缓存门限的最小值,且低优先级分片已占用的共享缓存的空间大小大于低优先级缓存门限值减去第六预设值。
例如第五预设值可以为160,第六预设值可以为64,共享缓存中的H_GINT分片、M_GINT分片数量很少,同时L_GINT分片数量较多,且符合以下条件:M_CNT<M_TH-160且M_TH>M_TH_MIN,且L_CNT>L_TH-64,则把L_GINT分片的缓存门限值按照如下方式提高,同时降低M_GINT分片的缓存门限值:M_TH=M_TH_old-64,L_TH=L_old+64。如果上述条件都不满足,则维持中优先级和低优先级分片的缓存门限值不变。
S307:根据先入先出的规则将缓存空间中的待发送分片取出,并外发,流程结束。
在S304的将该分片存入缓存空间中之后,还包括:
获取该分片的描述符信息,描述符信息包括优先级信息、大小信息以及缓存地址信息;
大小信息是指该分片的大小,即所占内存大小;
将描述符信息送入分片描述符队列;
S307根据先入先出的规则将缓存空间中的待发送分片取出,并外发包括:
根据先入先出的规则从分片描述符队列中取出待发送分片的描述符信息;
先进入分片描述符队列的分片先取出,后进入分片描述符队列的分片后取出;
根据描述符信息从缓存空间中取出对应的分片;
将取出的分片加上物理层封装后外发到内联口。
S308:将该分片丢弃。
S309:不更新。
根据本发明实施例提供的一种分片的服务质量保证方法,通过接收分片,分片为来自至少一个数字用户线路端口的以太网包切割而成;从该分片中解析出该分片的优先级信息;根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;若是,则将该分片存入缓存空间中,并根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新;根据先入先出的规则将缓存空间中的待发送分片取出,并外发;采用上述方案,使得DSL设备在上行数据通道发生拥塞时,保证高优先级的分片不丢包,中优先级的分片尽量不丢包,低优先级分片可以丢包,以保证服务质量,同时克服了采用传统的出口QoS方法导致的高低优先级分片的乱序、从而丢包的问题。
实施例二
本实施例提供一种FPGA,请参见图5,图5为本实施例提供的一种FPGA的示意图,该FPGA包括:
接收模块501,用于接收分片,分片为来自至少一个DSL端口的以太网包切割而成;
本实施例提供的FPGA在整个系统中的位置和作用如图1所示,图1为本实施例提供的一种DSL宽带接入设备架构图;DSL宽带设备由一个主控板和多个线卡组成,线卡和主控板之间通过内联口连接。线卡上有多个DSL芯片,这些DSL芯片有多个DSL端口。来自多个DSL端口的以太网包进入DSL芯片后,被切割成分片,然后按照ITU-T G.999.1标准的要求,在这些切割的分片外部加上GINT头,成为GINT分片被送到FPGA;ITU-T G.999.1通常简称G.INT标准,把G.INT标准中定义的分片简称为GINT分片。FPGA把来自多个DSL端口的GINT分片汇聚后,通过内联口送到主控板的交换芯片进行重组。
接收模块501接收的分片是指GINT分片,GINT分片的来源具体为在从DSL端口到上联口的上行方向,DSL芯片对以太网包进行固定大小的切割,形成原始分片,然后按照ITU-TG.999.1标准的要求,在这些切割的原始分片外部加上GINT头,由此便形成GINT分片。
接收模块501可以对各个DSL端口进行轮询,轮流接收来自各个DSL端口的GINT分片。
在一种实施方式中,DSL端口上传输的GINT分片分为三种不同的优先级,包括高优先级分片H_GINT、中优先级分片M_GINT、低优先级分片L_GINT;优先级最高的H_GINT分片不能丢弃,优先级中等的业务M_GINT分片是尽量不丢弃,优先级低的业务L_GINT分片可以丢弃。
每个DSL端口都有高、中、低优先级的以太网包,并且在DSL芯片中被切割、封装成长度固定的H_GINT、M_GINT、L_GINT分片;GINT分片通过GINT头的标识,可以分为首分片、中间分片和尾分片,分别对应以太网包的头部、中间以及尾部;同时,GINT头中也标识了DSL端口号;也即一个GINT分片中包含该分片的优先级信息(优先级信息包括高优先级、中优先级、低优先级)、分片类型信息(分片类型信息包括首分片、中间分片、尾分片)、以及DSL端口号信息。
解析模块502,用于从该分片中解析出该分片的优先级信息;
在接收到分片后,从该分片中解析出该分片是高优先级分片H_GINT、还是中优先级分片M_GINT、还是低优先级分片L_GINT;
第一判断模块503,用于根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;
缓存空间包括高优先级独享缓存空间和共享缓存空间,高优先级独享缓存空间用于存储高优先级的分片,共享缓存空间用于存储各个优先级的分片;共享缓存空间可以存储高优先级分片H_GINT、中优先级分片M_GINT以及低优先级分片L_GINT;
当接收模块501接收到的分片为高优先级分片时,存储模块504将该高优先级分片优先存入高优先级独享缓存空间,当高优先级独享缓存的剩余空间不足时,才将高优先级分片存入共享缓存空间。
参见图4,图4为本实施例提供的一种缓存空间划分的示意图,其中,高优先级分片独享缓存空间的大小是H_TH_MIN,共享缓存空间的大小是SHARE_TH;定义H_GINT、M_GINT、L_GINT分片的缓存门限值分别为H-TH、M-TH、L-TH,H-TH、M-TH、L-TH三者之和等于SHARE_TH。
若该优先级的分片已占用的缓存空间大小小于分配给该优先级的缓存门限值,则将该GINT分片存入缓存,且已占用的缓存空间大小的数值对应增加;否则把该分片丢弃,该端口后面收到的非首分片也会被丢弃。
除了根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,来判断是否将该分片存入缓存空间中之外,还可以根据该分片的优先级信息、该优先级的分片已经占用的缓存计数器计数值、以及分配给该优先级的缓存门限值,来判断是否将该分片存入缓存空间中;在该GINT分片存入缓存之后,占用缓存计数器加1。
存储模块504,用于若第一判断模块503判断需要将该分片存入缓存空间中,则将该分片存入缓存空间中;
若判断出将该分片可以存入缓存空间中,则给该分片分配缓存空间地址,按照分配的地址,把该分片存储到相应的空间。
第二判断模块505,用于根据预设规则判断是否对优先级的缓存门限值进行更新;
更新模块506,用于若第二判断模块505根据预设规则判断需要对优先级的缓存门限值进行更新,则对优先级的缓存门限值进行更新;
可以动态调整三种优先级分片的缓存门限值,H-TH的调整范围在H_TH_MIN、H_TH_MAX之间;M_TH的调整范围在M_TH_MIN、M_TH_MAX之间;L_TH的调整范围在L_TH_MIN、L_TH_MAX之间。
根据各个优先级GINT分片已占用的缓存空间大小以及旧的各个优先级的缓存门限值,动态更新调整优先级的缓存门限值。
在一种实施方式中,若第一判断模块503判断出接收到的分片需要存入共享缓存空间,第二判断模块505判断出该分片对应的优先级已占用的共享缓存的空间大小大于该优先级缓存门限值减去第一预设值,且小于该优先级缓存门限的最大值,则更新模块506将该优先级缓存门限值加上第一预设值作为新的该优先级缓存门限值,同时将任何一个低于该优先级的缓存门限值减去第一预设值作为新的该低级别优先级的缓存门限值。
其中,预设规则包括该分片对应的优先级已占用的共享缓存的空间大小大于该优先级缓存门限值减去第一预设值,且小于该优先级缓存门限的最大值。
例如,第一预设值可以为64,若当前共享缓存中存放的H_GINT分片数量H_CNT>H_TH-64且H_CNT<H_TH_MAX,则把H_GINT分片的可用缓存门限值H_TH增加64,同时把M_GINT分片的缓存门限值减少64或者把L_GINT分片的缓存门限值减少64,即H_TH=H_TH_old+64,M_TH=M_TH_old-64或者L_TH=L_TH_old-64。
若当前共享缓存中M_GINT分片的数量M_CNT>M_TH-64且M_CNT<M_TH_MAX,则增加M_GINT分片的缓存门限值,同时减少L_GINT分片的缓存门限值,即M_TH=M_TH_old+64,L_TH=L_TH_old–64。
在一种实施方式中,若接收模块501接收到的分片为高优先级分片,且第一判断模块503判断出该高优先级分片需要存入共享缓存空间,第二判断模块505判断出该高优先级分片已占用的共享缓存的空间大小小于高优先级缓存门限值减去第二预设值,且大于高优先级缓存门限的最小值,则更新模块506将高优先级缓存门限值减去第三预设值作为新的高优先级缓存门限值,同时将任何一个低于该高优先级的缓存门限值加上第三预设值作为新的该低级别优先级的缓存门限值。
其中,预设规则包括该高优先级分片已占用的共享缓存的空间大小小于高优先级缓存门限值减去第二预设值,且大于高优先级缓存门限的最小值。
例如第二预设值可以为160,第三预设值可以为64,若当前共享缓存中H_CNT<H_TH-160并且H_CNT>H_TH_MIN,则把H_GINT分片的缓存门限值减少64,同时把M_GINT分片的缓存门限值增加64或者把L_GINT分片的缓存门限值增加64,即H_TH=H_TH_old-64,M_TH=M_TH_old+64或者L_TH=L_TH_old+64。否则,维持现有数值。
在一种实施方式中,当接收模块501接收到的分片为低优先级分片时,若第二判断模块505判断出高优先级分片已占用的共享缓存的空间大小小于第四预设值,中优先级分片已占用的共享缓存的空间大小小于中优先级缓存门限值减去第五预设值,且大于中优先级缓存门限的最小值,且低优先级分片已占用的共享缓存的空间大小大于低优先级缓存门限值减去第六预设值,则更新模块506将低优先级缓存门限值加上第六预设值作为新的低优先级缓存门限值,同时将中优先级缓存门限值减去第六预设值作为新的中优先级缓存门限值。
其中,预设规则包括高优先级分片已占用的共享缓存的空间大小小于第四预设值,中优先级分片已占用的共享缓存的空间大小小于中优先级缓存门限值减去第五预设值,且大于中优先级缓存门限的最小值,且低优先级分片已占用的共享缓存的空间大小大于低优先级缓存门限值减去第六预设值。
例如第五预设值可以为160,第六预设值可以为64,共享缓存中的H_GINT分片、M_GINT分片数量很少,同时L_GINT分片数量较多,且符合以下条件:M_CNT<M_TH-160且M_TH>M_TH_MIN,且L_CNT>L_TH-64,则把L_GINT分片的缓存门限值按照如下方式提高,同时降低M_GINT分片的缓存门限值:M_TH=M_TH_old-64,L_TH=L_old+64。如果上述条件都不满足,则维持中优先级和低优先级分片的缓存门限值不变。
外发模块507,用于根据先入先出的规则将缓存空间中的待发送分片取出,并外发;
可选的,该FPGA还包括:
获取模块508,用于在存储模块504将该分片存入缓存空间中之后,获取该分片的描述符信息,描述符信息包括优先级信息、大小信息以及缓存地址信息;
大小信息是指该分片的大小,即所占内存大小;
送入模块509,用于将描述符信息送入分片描述符队列;
外发模块507包括:
描述符信息取出子模块5071,用于根据先入先出的规则从分片描述符队列中取出待发送分片的描述符信息;
先进入分片描述符队列的分片先取出,后进入分片描述符队列的分片后取出;
分片取出子模块5072,用于根据描述符信息从缓存空间中取出对应的分片;
封装子模块5073,用于将取出的分片加上物理层封装;
外发子模块5074,用于将封装子模块进行封装后的分片外发。
根据本发明实施例提供的一种FPGA,通过接收分片,分片为来自至少一个数字用户线路端口的以太网包切割而成;从该分片中解析出该分片的优先级信息;根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;若是,则将该分片存入缓存空间中,并根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新;根据先入先出的规则将缓存空间中的待发送分片取出,并外发;采用上述方案,使得DSL设备在上行数据通道发生拥塞时,保证高优先级的分片不丢包,中优先级的分片尽量不丢包,低优先级分片可以丢包,以保证服务质量,同时克服了采用传统的出口QoS方法导致的高低优先级分片的乱序、从而丢包的问题。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (12)
1.一种分片的服务质量保证方法,包括:
接收分片,所述分片为来自至少一个数字用户线路端口的以太网包切割而成;
从该分片中解析出该分片的优先级信息;
根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;
若是,则将该分片存入缓存空间中,并根据预设规则判断是否对优先级的缓存门限值进行更新;
若是,则对优先级的缓存门限值进行更新;
根据先入先出的规则将缓存空间中的待发送分片取出,并外发。
2.如权利要求1所述的分片的服务质量保证方法,其特征在于,所述缓存空间包括高优先级独享缓存空间和共享缓存空间,所述高优先级独享缓存空间用于存储高优先级的分片,所述共享缓存空间用于存储各个优先级的分片;
当接收到的分片为高优先级分片时,优先存入所述高优先级独享缓存空间。
3.如权利要求2所述的分片的服务质量保证方法,其特征在于,
若接收到的分片需要存入共享缓存空间,所述根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新包括:
若该分片对应的优先级已占用的共享缓存的空间大小大于该优先级缓存门限值减去第一预设值,且小于该优先级缓存门限的最大值,则将该优先级缓存门限值加上第一预设值作为新的该优先级缓存门限值,同时将任何一个低于该优先级的缓存门限值减去第一预设值作为新的该低级别优先级的缓存门限值。
4.如权利要求2所述的分片的服务质量保证方法,其特征在于,
若接收到的分片为高优先级分片,且需要存入共享缓存空间,所述根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新包括:
若该高优先级分片已占用的共享缓存的空间大小小于高优先级缓存门限值减去第二预设值,且大于高优先级缓存门限的最小值,则将高优先级缓存门限值减去第三预设值作为新的高优先级缓存门限值,同时将任何一个低于该高优先级的缓存门限值加上第三预设值作为新的该低级别优先级的缓存门限值。
5.如权利要求2所述的分片的服务质量保证方法,其特征在于,
当接收到的分片为低优先级分片时,所述根据预设规则判断是否对优先级的缓存门限值进行更新;若是,则对优先级的缓存门限值进行更新包括:
若高优先级分片已占用的共享缓存的空间大小小于第四预设值,中优先级分片已占用的共享缓存的空间大小小于中优先级缓存门限值减去第五预设值,且大于中优先级缓存门限的最小值,且低优先级分片已占用的共享缓存的空间大小大于低优先级缓存门限值减去第六预设值,则将低优先级缓存门限值加上第六预设值作为新的低优先级缓存门限值,同时将中优先级缓存门限值减去第六预设值作为新的中优先级缓存门限值。
6.如权利要求1至5任一项所述的分片的服务质量保证方法,其特征在于,
在所述将该分片存入缓存空间中之后,还包括:
获取该分片的描述符信息,所述描述符信息包括优先级信息、大小信息以及缓存地址信息;
将所述描述符信息送入分片描述符队列;
所述根据先入先出的规则将缓存空间中的待发送分片取出,并外发包括:
根据先入先出的规则从所述分片描述符队列中取出待发送分片的描述符信息;
根据所述描述符信息从缓存空间中取出对应的分片;
将取出的分片加上物理层封装后外发。
7.一种现场可编程逻辑门阵列,包括:
接收模块,用于接收分片,所述分片为来自至少一个数字用户线路端口的以太网包切割而成;
解析模块,用于从该分片中解析出该分片的优先级信息;
第一判断模块,用于根据该分片的优先级信息、该优先级的分片已占用的缓存空间大小、以及分配给该优先级的缓存门限值,判断是否将该分片存入缓存空间中;
存储模块,用于若所述第一判断模块判断需要将该分片存入缓存空间中,则将该分片存入缓存空间中;
第二判断模块,用于根据预设规则判断是否对优先级的缓存门限值进行更新;
更新模块,用于若所述第二判断模块根据预设规则判断需要对优先级的缓存门限值进行更新,则对优先级的缓存门限值进行更新;
外发模块,用于根据先入先出的规则将缓存空间中的待发送分片取出,并外发。
8.如权利要求7所述的现场可编程逻辑门阵列,其特征在于,所述缓存空间包括高优先级独享缓存空间和共享缓存空间,所述高优先级独享缓存空间用于存储高优先级的分片,所述共享缓存空间用于存储各个优先级的分片;
当所述接收模块接收到的分片为高优先级分片时,所述存储模块将该高优先级分片优先存入所述高优先级独享缓存空间。
9.如权利要求8所述的现场可编程逻辑门阵列,其特征在于,
若所述第一判断模块判断出接收到的分片需要存入共享缓存空间,所述第二判断模块判断出该分片对应的优先级已占用的共享缓存的空间大小大于该优先级缓存门限值减去第一预设值,且小于该优先级缓存门限的最大值,则所述更新模块将该优先级缓存门限值加上第一预设值作为新的该优先级缓存门限值,同时将任何一个低于该优先级的缓存门限值减去第一预设值作为新的该低级别优先级的缓存门限值。
10.如权利要求8所述的现场可编程逻辑门阵列,其特征在于,
若所述接收模块接收到的分片为高优先级分片,且所述第一判断模块判断出该高优先级分片需要存入共享缓存空间,所述第二判断模块判断出该高优先级分片已占用的共享缓存的空间大小小于高优先级缓存门限值减去第二预设值,且大于高优先级缓存门限的最小值,则所述更新模块将高优先级缓存门限值减去第三预设值作为新的高优先级缓存门限值,同时将任何一个低于该高优先级的缓存门限值加上第三预设值作为新的该低级别优先级的缓存门限值。
11.如权利要求8所述的现场可编程逻辑门阵列,其特征在于,
若所述接收模块接收到的分片为低优先级分片,所述第二判断模块判断出高优先级分片已占用的共享缓存的空间大小小于第四预设值,中优先级分片已占用的共享缓存的空间大小小于中优先级缓存门限值减去第五预设值,且大于中优先级缓存门限的最小值,且低优先级分片已占用的共享缓存的空间大小大于低优先级缓存门限值减去第六预设值,则所述更新模块将低优先级缓存门限值加上第六预设值作为新的低优先级缓存门限值,同时将中优先级缓存门限值减去第六预设值作为新的中优先级缓存门限值。
12.如权利要求7至11任一项所述的现场可编程逻辑门阵列,其特征在于,还包括:
获取模块,用于在所述存储模块将该分片存入缓存空间中之后,获取该分片的描述符信息,所述描述符信息包括优先级信息、大小信息以及缓存地址信息;
送入模块,用于将所述描述符信息送入分片描述符队列;
所述外发模块包括:
描述符信息取出子模块,用于根据先入先出的规则从所述分片描述符队列中取出待发送分片的描述符信息;
分片取出子模块,用于根据所述描述符信息从缓存空间中取出对应的分片;
封装子模块,用于将取出的分片加上物理层封装;
外发子模块,用于将所述封装子模块进行封装后的分片外发。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710169735.0A CN108632169A (zh) | 2017-03-21 | 2017-03-21 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
PCT/CN2017/098322 WO2018171115A1 (zh) | 2017-03-21 | 2017-08-21 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710169735.0A CN108632169A (zh) | 2017-03-21 | 2017-03-21 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108632169A true CN108632169A (zh) | 2018-10-09 |
Family
ID=63584849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710169735.0A Withdrawn CN108632169A (zh) | 2017-03-21 | 2017-03-21 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108632169A (zh) |
WO (1) | WO2018171115A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232029A (zh) * | 2019-06-19 | 2019-09-13 | 成都博宇利华科技有限公司 | 一种基于索引的fpga中ddr4包缓存的实现方法 |
CN111355673A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111563060A (zh) * | 2020-07-13 | 2020-08-21 | 南京艾科朗克信息科技有限公司 | 一种基于fpga报单管理的共享缓存方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633835B1 (en) * | 2002-01-10 | 2003-10-14 | Networks Associates Technology, Inc. | Prioritized data capture, classification and filtering in a network monitoring environment |
CN1764147A (zh) * | 2004-10-22 | 2006-04-26 | 中兴通讯股份有限公司 | Dsl系统中对以太网数据包进行分段处理的装置 |
CN102594691A (zh) * | 2012-02-23 | 2012-07-18 | 中兴通讯股份有限公司 | 一种处理报文的方法及装置 |
CN102833159A (zh) * | 2012-08-16 | 2012-12-19 | 中兴通讯股份有限公司 | 报文拥塞处理方法及装置 |
WO2014015498A1 (zh) * | 2012-07-26 | 2014-01-30 | 华为技术有限公司 | 报文发送方法、接收方法、装置及系统 |
CN103581055A (zh) * | 2012-08-08 | 2014-02-12 | 华为技术有限公司 | 报文的保序方法、流量调度芯片及分布式存储系统 |
CN106385386A (zh) * | 2016-08-31 | 2017-02-08 | 成都飞鱼星科技股份有限公司 | 应用随动智能流量控制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938406B (zh) * | 2009-07-02 | 2012-07-04 | 华为技术有限公司 | 微波多通道报文发送方法和装置及传送系统 |
CN102025638A (zh) * | 2010-12-21 | 2011-04-20 | 福建星网锐捷网络有限公司 | 基于优先级的数据传输方法、装置及网络设备 |
CN106027416B (zh) * | 2016-05-23 | 2019-03-01 | 北京邮电大学 | 一种基于时空结合的数据中心网络流量调度方法及系统 |
-
2017
- 2017-03-21 CN CN201710169735.0A patent/CN108632169A/zh not_active Withdrawn
- 2017-08-21 WO PCT/CN2017/098322 patent/WO2018171115A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633835B1 (en) * | 2002-01-10 | 2003-10-14 | Networks Associates Technology, Inc. | Prioritized data capture, classification and filtering in a network monitoring environment |
CN1764147A (zh) * | 2004-10-22 | 2006-04-26 | 中兴通讯股份有限公司 | Dsl系统中对以太网数据包进行分段处理的装置 |
CN102594691A (zh) * | 2012-02-23 | 2012-07-18 | 中兴通讯股份有限公司 | 一种处理报文的方法及装置 |
WO2014015498A1 (zh) * | 2012-07-26 | 2014-01-30 | 华为技术有限公司 | 报文发送方法、接收方法、装置及系统 |
CN103581055A (zh) * | 2012-08-08 | 2014-02-12 | 华为技术有限公司 | 报文的保序方法、流量调度芯片及分布式存储系统 |
CN102833159A (zh) * | 2012-08-16 | 2012-12-19 | 中兴通讯股份有限公司 | 报文拥塞处理方法及装置 |
CN106385386A (zh) * | 2016-08-31 | 2017-02-08 | 成都飞鱼星科技股份有限公司 | 应用随动智能流量控制方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355673A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN110232029A (zh) * | 2019-06-19 | 2019-09-13 | 成都博宇利华科技有限公司 | 一种基于索引的fpga中ddr4包缓存的实现方法 |
CN110232029B (zh) * | 2019-06-19 | 2021-06-29 | 成都博宇利华科技有限公司 | 一种基于索引的fpga中ddr4包缓存的实现方法 |
CN111563060A (zh) * | 2020-07-13 | 2020-08-21 | 南京艾科朗克信息科技有限公司 | 一种基于fpga报单管理的共享缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018171115A1 (zh) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7953002B2 (en) | Buffer management and flow control mechanism including packet-based dynamic thresholding | |
US8218546B2 (en) | Interleaved processing of dropped packets in a network device | |
US7855960B2 (en) | Traffic shaping method and device | |
US6934250B1 (en) | Method and apparatus for an output packet organizer | |
US7474668B2 (en) | Flexible multilevel output traffic control | |
US6882642B1 (en) | Method and apparatus for input rate regulation associated with a packet processing pipeline | |
US9344369B2 (en) | System and methods for distributed quality of service enforcement | |
CN106789729A (zh) | 一种网络设备中的缓存管理方法及装置 | |
CN103179049B (zh) | 分级自适应动态出端口和队列缓冲区管理的系统和方法 | |
US8630199B2 (en) | Network processor unit and a method for a network processor unit | |
CN101151846B (zh) | 对并行排队层级结构中的流量进行整形的方法和系统 | |
CN101299721B (zh) | 交换网报文交换方法和交换装置 | |
US9106574B2 (en) | Supporting quality of service differentiation using a single shared buffer | |
US20150339063A1 (en) | System and method for efficient buffer management for banked shared memory designs | |
US20060235996A1 (en) | Method for operating a packet based data network | |
US8929372B2 (en) | Grid router | |
CN105634985B (zh) | 一种FTTdp多DSL端口ONU业务流的处理方法 | |
CN108632169A (zh) | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 | |
US9769092B2 (en) | Packet buffer comprising a data section and a data description section | |
US20030123455A1 (en) | Switch queue predictive protocol (SQPP) based packet switching method | |
CN102971997B (zh) | 包括数据分段和数据描述分段的分组缓冲器 | |
CN113904997B (zh) | 交换芯片接收端多优先级业务缓存和调度的方法及装置 | |
CN114531488B (zh) | 一种面向以太网交换器的高效缓存管理系统 | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
US8184649B2 (en) | Method for transmitting data available in the form of data packets |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181009 |
|
WW01 | Invention patent application withdrawn after publication |