CN102469007A - Onu计算上行队列的上报长度的方法 - Google Patents
Onu计算上行队列的上报长度的方法 Download PDFInfo
- Publication number
- CN102469007A CN102469007A CN2010105348215A CN201010534821A CN102469007A CN 102469007 A CN102469007 A CN 102469007A CN 2010105348215 A CN2010105348215 A CN 2010105348215A CN 201010534821 A CN201010534821 A CN 201010534821A CN 102469007 A CN102469007 A CN 102469007A
- Authority
- CN
- China
- Prior art keywords
- queue
- upstream
- length
- bag
- onu
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种ONU计算上行队列的上报长度的方法,ONU为每个上行队列创建一个入口包长队列和一个出口包长队列,分别存储在SRAM和DRAM中;ONU的每个上行队列有新的上行数据包加入时,该上行数据包的长度记录在该上行队列对应的入口包长队列之中;当入口包长队列存储的数据长度达到Unit_dram时,该部分数据转存至该上行队列对应的出口包长队列之中;ONU还为每个上行队列创建n个上报队列,均存储在ONU芯片内部的SRAM中。本发明ONU计算上行队列的上报长度的方法仅需占用SRAM的部分存储空间,却充分利用了DRAM的存储空间,并具有读写速度快、效率高的优点。
Description
技术领域
本发明涉及一种EPON(Ethernet Passive Optical Network,以太网无源光网络)网络中report(报告消息)消息的形成方法。
背景技术
EPON网络是一个点对多点网络,一个OLT(Optical Line Terminal,光纤线路终端)通过光纤和POS(Passive Optical Splitter,无源光分路器)连接多个ONU(Optical Network Unit,光纤网络单元)。从ONU到OLT的通讯方向为上行方向,EPON网络中每个ONU向OLT发送report消息报告上行通讯需求,OLT据此向每个ONU发送gate(门消息)消息为每个ONU分配上行带宽或上行传输时间。
每个ONU都具有多个上行队列,每个上行队列按照FIFO(first in firstout,先进先出)原则排列有多个上行数据包。OLT为每个ONU的每个上行队列设置有多个阈值(threshold),ONU在形成report消息时需要根据OLT设置的多个阈值计算每个上行队列的上报长度。对于ONU的每个上行队列,如果OLT设置了n个阈值,则该ONU需要为该上行队列计算n个上报长度。其中上报长度x是小于或等于阈值x的前提下该上行队列从头开始最大数量的完整数据包长度,x为小于或等于n的自然数。
请参阅图1,这是一个ONU的一个上行队列的示意图,该上行队列从头开始排列有数据包A、B、C、D、E,长度分别为400、800、200、600、400个字节。OLT为该ONU的该上行队列设置了2个阈值,阈值1为1000字节,阈值2为2000字节。该ONU在形成report消息时需要为该上行队列计算2个上报长度,其中上报长度1是小于或等于1000字节的前提下该上行队列从头开始最大数量的完整数据包长度,上报长度2是小于或等于2000字节的前提下该上行队列从头开始最大数量的完整数据包长度。显然在图1中,上报长度1为数据包A的长度即400个字节。上报长度2为数据包A、B、C、D的长度即2000个字节。
为了便于在形成report消息时计算每个上行队列的多个上报长度,需要将每个上行队列的每个上行数据包长度存储起来。ONU设备的MAC(MediaAccess Control,介质访问控制)芯片(简称为ONU芯片)内具有SRAM(staticrandom access memory,静态随机存储器),芯片外具有DRAM(dynamic randomaccess memory,动态随机存储器)。将每个上行数据包长度存储在所述SRAM无疑是最方便的快速的,可是所述SRAM存储空间有限,如果需要存储大量数据则所述SRAM将占据很大的芯片面积。而将每个上行数据包长度存储在所述DRAM则对于DRAM带宽要求极大而且DRAM的延迟会造成计算效率不足。
发明内容
本发明所要解决的技术问题是提供一种EPON网络中ONU计算上行队列的上报长度的方法,该方法综合利用ONU芯片内外的存储资源,并具有较快的计算速度。
为解决上述技术问题,本发明ONU计算上行队列的上报长度的方法为:
ONU为每个上行队列创建一个入口包长队列和一个出口包长队列;所述入口包长队列和出口包长队列的每个元素都是该上行队列中的一个上行数据包的长度,所述入口包长队列和出口包长队列的总和记载了该上行队列中所有上行数据包的长度;
ONU的每个上行队列有新的上行数据包加入时,该上行数据包的长度记录在该上行队列对应的入口包长队列之中;
当入口包长队列存储的数据长度达到Unit_dram时,ONU将所述入口包长队列中长度为Unit_dram的数据存储至该上行队列对应的出口包长队列之中,然后将所述长度为Unit_dram的数据从所述入口包长队列中删除;
所述Unit_dram是所述DRAM的最小读取或写入单位;
ONU的每个上行队列有上行数据包发出时,所述发出的上行数据包的长度从该上行队列对应的出口包长队列或入口包长队列之中删除掉;
ONU还为每个上行队列创建n个上报队列,其中n为OLT为该ONU的该上行队列设置的阈值的数量;每个上报队列均为所述出口包长队列的一部分,每个上报队列中均包括一个截止元素;第x个截止元素表示其所对应的上行数据包是不大于第x个阈值的前提下该上行队列所包含的最大数量的完整的上行数据包中的最后一个上行数据包,x为小于或等于n的自然数;
所述入口包长队列以及n个上报队列存储在ONU芯片内部的SRAM中;所述出口包长队列存储在ONU芯片外部的DRAM中;
第x个上报长度就是该上行队列的第1个上行数据包到第x个截止元素所对应的上行数据包的长度总和。
本发明ONU计算上行队列的上报长度的方法仅需占用SRAM的部分存储空间,却充分利用了DRAM的存储空间,并具有读写速度快、效率高的优点。
附图说明
图1是ONU计算上行队列的上报长度的规则示意图;
图2是本发明ONU计算上行队列的上报长度的示意图。
具体实施方式
请参阅图2,本发明ONU计算上行队列的上报长度的方法为:
ONU为每个上行队列创建一个入口包长队列和一个出口包长队列。所述入口包长队列和出口包长队列的每个元素都是该上行队列中的一个上行数据包的长度,所述入口包长队列和出口包长队列的总和记载了该上行队列中所有上行数据包的长度。
ONU的每个上行队列有新的上行数据包加入时,该上行数据包的长度先记录在该上行队列对应的入口包长队列之中。当入口包长队列存储的数据长度达到Unit_dram时,ONU将所述入口包长队列中长度为Unit_dram的数据存储至该上行队列对应的出口包长队列之中,然后将所述长度为Unit_dram的数据从所述入口包长队列中删除。
所述Unit_dram是所述DRAM的最小读取或写入单位,也称为所述DRAM的有效存储单位。
ONU的每个上行队列有上行数据包发出时,该上行数据包的长度就从该上行队列对应的出口包长队列或入口包长队列之中删除掉。
如果将入口包长队列和出口包长队列相串联即可发现,新加入的上行数据包长度总是记录在入口包长队列中。这里区分两种情况:第一种情况是入口包长队列所记载的数据长度曾经达到过Unit_dram,则此时该上行队列中最早的上行数据包长度必然已经转存到出口包长队列中。第二种情况是入口包长队列所记载的数据长度从未达到过Unit_dram,则此时该上行队列中最早的上行数据包长度仍在入口包长队列中。
ONU还为每个上行队列创建n个上报队列。所述n是OLT为该ONU的该上行队列设置的阈值的数量,n为自然数。每个上报队列均为所述出口包长队列或入口包长队列的一部分,并且每个上报队列中均包括一个截止元素。每个截止元素均表示该上行队列中的一个上行数据包的长度。这样,所述出口包长队列和入口包长队列的串联队列中就包括n个截止元素,按照截止元素所对应的上行数据包的先后分别称为第1个截止元素、第2个截止元素、……、第n个截止元素。显然,第x个上报队列中包括第x个截止元素,x为小于或等于n的自然数。
第x个截止元素是这样定义的:该上行队列的第1个上行数据包到第x个截止元素所对应的上行数据包的长度总和小于或等于第x个阈值,该上行队列的第1个上行数据包到第x个截止元素所对应的上行数据包之后的一个数据包的长度总和大于第x个阈值。换而言之,第x个截止元素所对应的上行数据包表示在不大于第x个阈值的前提下该上行队列所包含的最大数量的完整的上行数据包中的最后一个上行数据包。
第x个上报长度就是该上行队列的第1个上行数据包到第x个截止元素所对应的上行数据包的长度总和。
所述入口包长队列以及n个上报队列存储在ONU芯片内部的SRAM中。所述出口包长队列存储在ONU芯片外部的DRAM中。
设所述入口包长队列的长度为Length_in,所述出口包长队列的长度为Length_out,每个上报队列的长度均为Length_report,每个上行队列所能包含的上行数据包的最大数量为PacketNum_max,每个上行数据包长度的存储空间为PacketLength,则:
Unit_dram≤Length_in≤2×Unit_dram;
Length_out=PacketNum_max×PacketLength+Unit_dram;
Length_report=Unit_dram;
所述入口包长队列的长度为1~2倍的DRAM有效存储单位之间,在该有限空间内只能记录对应的上行队列中最后进入的上行数据包的长度,其余较早进入的上行数据包的长度全部记载在出口包长队列之中。通常Length_out远大于Length_in。值得注意的是,所述出口包长队列的长度不仅能记录对应上行队列的所有上行数据包长度,还具有一个Unit_dram的余量,该余量是为入口包长队列的数据转存而准备的。
一个上行队列中每个上行数据包的长度是不同的,但记录每个上行数据包长度的存储空间PacketLength是相同的。PacketLength是所述入口包长队列、出口包长队列和n个上报队列的存储单元。
本发明中每个上报队列的长度均为固定的,每个上报队列可视为出口包长队列或入口包长队列的一个局部镜像。设k=Unit_dram/PacketLength,k为自然数,则每个上报队列包括k个元素,即记载了k个上行数据包的长度。
以第x个上报队列为例,每个上报队列是这样形成的:首先第x个上报队列取该上行队列的第一个上行数据包长度到第k个上行数据包长度,然后ONU计算这k个上行数据包长度(即k个元素)中是否包括第x个截止元素。如果这k个元素中不包括第x个截止元素,则该第x个上报队列接着取该上行队列的第k+1个上行数据包长度到第2k个上行数据包长度,然后ONU计算这k个元素中是否包括第x个截止元素;如果这k个元素中仍不包括第x个截止元素,则该第x个上报队列接着取该上行队列的第2k+1个上行数据包长度到第3k个上行数据包长度,然后ONU计算这k个元素中是否包括第x个截止元素……以此类推,直至第x个上报队列中的k个元素中包括了第x个截止元素,则第x个上报队列成形。
当ONU的每个上行队列中有上行数据包发出时,该上行队列所对应的出口包长队列或入口包长队列就将已发出的数据包长度删除掉,此时需要重新计算n个截止元素。
当ONU的一个或多个上行队列中有阈值的数量或阈值的取值发生变化时,也需要重新计算n个截止元素。
重新计算的截止元素就是是根据更新后的最早的上行数据包、或者更新后的阈值而确定的在不大于第x个阈值的前提下该上行队列所包含的最大数量的完整的上行数据包中的最后一个上行数据包所对应的长度元素。根据n个新的截止元素,每个上行队列需要重新形成。
每个上行队列重新形成的方法为:第x个上行队列判断现有的k个元素中是否包括新的第x个截止元素;如果不包括新的第x个截止元素,则该第x个上报队列接着取现有k个元素之后的k个元素,然后再判断这k个元素中是否包括新的第x个截止元素……以此类推,直至该第x个上报队列中包括了新的第x个截止元素为止。
第x个新的上报长度就是该上行队列的第1个上行数据包到第x个新的截止元素所对应的上行数据包的长度总和。
本发明为每个上行队列引入了n个上报队列,每个上报队列专门用于计算一个上报长度,因而计算n个上报长度可同时在SRAM中进行,因而计算速度很快,并且占用很少的SRAM存储空间。
Claims (4)
1.一种ONU计算上行队列的上报长度的方法,其特征是:
ONU为每个上行队列创建一个入口包长队列和一个出口包长队列;所述入口包长队列和出口包长队列的每个元素都是该上行队列中的一个上行数据包的长度,所述入口包长队列和出口包长队列的总和记载了该上行队列中所有上行数据包的长度;
ONU的每个上行队列有新的上行数据包加入时,该上行数据包的长度记录在该上行队列对应的入口包长队列之中;
当入口包长队列存储的数据长度达到Unit_dram时,ONU将所述入口包长队列中长度为Unit_dram的数据存储至该上行队列对应的出口包长队列之中,然后将所述长度为Unit_dram的数据从所述入口包长队列中删除;
所述Unit_dram是所述DRAM的最小读取或写入单位;
ONU的每个上行队列有上行数据包发出时,所述发出的上行数据包的长度从该上行队列对应的出口包长队列或入口包长队列之中删除掉;
ONU还为每个上行队列创建n个上报队列,其中n为OLT为该ONU的该上行队列设置的阈值的数量;每个上报队列均为所述出口包长队列的一部分,每个上报队列中均包括一个截止元素;第x个截止元素表示其所对应的上行数据包是不大于第x个阈值的前提下该上行队列所包含的最大数量的完整的上行数据包中的最后一个上行数据包;
第x个上报长度就是该上行队列的第1个上行数据包到第x个截止元素所对应的上行数据包的长度总和;
所述x为小于或等于n的自然数;
所述入口包长队列以及n个上报队列存储在ONU芯片内部的SRAM中;所述出口包长队列存储在ONU芯片外部的DRAM中。
2.根据权利要求1所述的ONU计算上行队列的上报长度的方法,其特征是,设所述入口包长队列的长度为Length_in,所述出口包长队列的长度为Length_out,每个上报队列的长度均为Length_report,每个上行队列所能包含的上行数据包的最大数量为PacketNum_max,每个上行数据包长度的存储空间为PacketLength,则:
Unit_dram≤Length_in≤2×Unit_dram;
Length_out=PacketNum_max×PacketLength+Unit_dram;
Length_report=Unit_dram。
3.根据权利要求2所述的ONU计算上行队列的上报长度的方法,其特征是,每个上报队列是这样形成的:首先第x个上报队列取该上行队列的第一个上行数据包长度到第k个上行数据包长度,然后ONU计算这k个元素中是否包括第x个截止元素;
所述k=Unit_dram/PacketLength,k为自然数;
如果这k个元素中不包括第x个截止元素,则该第x个上报队列接着取该上行队列的第k+1个上行数据包长度到第2k个上行数据包长度,然后ONU计算这k个元素中是否包括第x个截止元素;
如果这k个元素中仍不包括第x个截止元素,则该第x个上报队列接着取该上行队列的第2k+1个上行数据包长度到第3k个上行数据包长度,然后ONU计算这k个元素中是否包括第x个截止元素……
以此类推,直至第x个上报队列的k个元素中包括了第x个截止元素,则第x个上报队列成形。
4.根据权利要求2所述的ONU计算上行队列的上报长度的方法,其特征是,当ONU的每个上行队列中有上行数据包发出时,或者当ONU的一个或多个上行队列中有阈值的数量或阈值的取值发生变化时,则该上行队列重新计算n个截止元素;
重新计算的截止元素就是是根据更新后的最早的上行数据包、或者更新后的阈值而确定的在不大于第x个阈值的前提下该上行队列所包含的最大数量的完整的上行数据包中的最后一个上行数据包所对应的长度元素;
根据n个新的截止元素,每个上行队列需要重新形成,其方法为:第x个上行队列判断现有的k个元素中是否包括新的第x个截止元素;
所述k=Unit_dram/PacketLength,k为自然数;
如果不包括新的第x个截止元素,则该第x个上报队列接着取现有k个元素之后的k个元素,然后再判断这k个元素中是否包括新的第x个截止元素……
以此类推,直至该第x个上报队列中包括了新的第x个截止元素为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105348215A CN102469007A (zh) | 2010-11-08 | 2010-11-08 | Onu计算上行队列的上报长度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105348215A CN102469007A (zh) | 2010-11-08 | 2010-11-08 | Onu计算上行队列的上报长度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102469007A true CN102469007A (zh) | 2012-05-23 |
Family
ID=46072207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105348215A Pending CN102469007A (zh) | 2010-11-08 | 2010-11-08 | Onu计算上行队列的上报长度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102469007A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560936A (zh) * | 2013-11-22 | 2014-02-05 | 烽火通信科技股份有限公司 | 一种pon系统中计算onu平均队列长度的方法 |
CN103618722A (zh) * | 2013-11-29 | 2014-03-05 | 东软集团股份有限公司 | 基于vfs扫描网络传输数据的方法及系统 |
US8971699B2 (en) | 2012-12-07 | 2015-03-03 | Industrial Technology Research Institute | Optical network failure recovery method |
CN104426684A (zh) * | 2013-08-20 | 2015-03-18 | 上海斐讯数据通信技术有限公司 | Pon系统及其状态更新方法 |
CN109413122A (zh) * | 2017-08-16 | 2019-03-01 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、网络处理器及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025903A2 (en) * | 2002-09-13 | 2004-03-25 | Passave Ltd. | Methods for dynamic bandwidth allocation and queue management in ethernet passive optical networks |
CN1897760A (zh) * | 2006-04-10 | 2007-01-17 | 中国电信股份有限公司 | 基于定时器的动态带宽分配能力发现和参数配置方法 |
CN101150516A (zh) * | 2007-09-28 | 2008-03-26 | 杭州华三通信技术有限公司 | 一种分配带宽的方法、设备和系统 |
CN101534254A (zh) * | 2009-04-21 | 2009-09-16 | 华为技术有限公司 | 一种队列报告方法、装置和无源光网络系统 |
-
2010
- 2010-11-08 CN CN2010105348215A patent/CN102469007A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025903A2 (en) * | 2002-09-13 | 2004-03-25 | Passave Ltd. | Methods for dynamic bandwidth allocation and queue management in ethernet passive optical networks |
CN1897760A (zh) * | 2006-04-10 | 2007-01-17 | 中国电信股份有限公司 | 基于定时器的动态带宽分配能力发现和参数配置方法 |
CN101150516A (zh) * | 2007-09-28 | 2008-03-26 | 杭州华三通信技术有限公司 | 一种分配带宽的方法、设备和系统 |
CN101534254A (zh) * | 2009-04-21 | 2009-09-16 | 华为技术有限公司 | 一种队列报告方法、装置和无源光网络系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971699B2 (en) | 2012-12-07 | 2015-03-03 | Industrial Technology Research Institute | Optical network failure recovery method |
CN104426684A (zh) * | 2013-08-20 | 2015-03-18 | 上海斐讯数据通信技术有限公司 | Pon系统及其状态更新方法 |
CN104426684B (zh) * | 2013-08-20 | 2018-10-12 | 上海斐讯数据通信技术有限公司 | Pon系统及其状态更新方法 |
CN103560936A (zh) * | 2013-11-22 | 2014-02-05 | 烽火通信科技股份有限公司 | 一种pon系统中计算onu平均队列长度的方法 |
CN103560936B (zh) * | 2013-11-22 | 2016-08-17 | 烽火通信科技股份有限公司 | 一种pon系统中计算onu平均队列长度的方法 |
CN103618722A (zh) * | 2013-11-29 | 2014-03-05 | 东软集团股份有限公司 | 基于vfs扫描网络传输数据的方法及系统 |
CN103618722B (zh) * | 2013-11-29 | 2016-08-24 | 东软集团股份有限公司 | 基于vfs扫描网络传输数据的方法及系统 |
CN109413122A (zh) * | 2017-08-16 | 2019-03-01 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、网络处理器及计算机存储介质 |
CN109413122B (zh) * | 2017-08-16 | 2022-05-13 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、网络处理器及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102469007A (zh) | Onu计算上行队列的上报长度的方法 | |
JP6077125B2 (ja) | データ処理方法及び装置 | |
CN100591047C (zh) | 一种多级交换网的反压方法、系统及交换节点 | |
CN108462652B (zh) | 一种报文处理方法、装置和网络设备 | |
US20110040923A1 (en) | Data packet access control apparatus and method thereof | |
CN101635682B (zh) | 一种存储管理的方法和系统 | |
EP4319055A1 (en) | Message transmission method and apparatus | |
CN104796212B (zh) | 一种光突发传送网、节点和传输方法 | |
CN102549552A (zh) | 用于处理流感知网络节点中的数据分组的方法 | |
CN103581055B (zh) | 报文的保序方法、流量调度芯片及分布式存储系统 | |
CN105573711B (zh) | 一种数据缓存方法及装置 | |
CN102387076B (zh) | 一种结合整形的分级式队列调度方法 | |
CN102447610A (zh) | 实现报文缓存资源共享的方法和装置 | |
CN101257442B (zh) | 基于时间压力的时间确定性数据交换方法 | |
TWI526927B (zh) | 資料緩衝器記憶體、資料緩衝器記憶體系統及其資料儲存方法 | |
CN105656807A (zh) | 一种网络芯片多通道数据传输方法及传输装置 | |
CN102946443B (zh) | 一种实现大规模数据传输的多任务调度方法 | |
CN103701721A (zh) | 报文传输方法及装置 | |
CN106209683B (zh) | 基于数据中心广域网的数据传输方法及系统 | |
CN102932265A (zh) | 数据缓存管理装置和方法 | |
JP7506038B2 (ja) | ワイヤレスメッシュネットワークにおけるデータ収集の方法、及びその実行のためのデバイス | |
CN101674502B (zh) | 一种gpon系统中数据帧重组的方法 | |
CN102571535B (zh) | 一种数据延迟装置、方法及通信系统 | |
CN108365886A (zh) | 一种时分复用星间网络数据存储转发方法 | |
JP5924208B2 (ja) | セル多重化装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20120523 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |