发明名称 维护多播计数器的计数值的方法及装置
摘要 本发明实施例提供了一种维护多播计数器的计数值的方法和装置。该方法主要包括:获得待出队的多播报文,为所述待出队的多播报文分配引擎,并记录操作值,所述操作值用于记录多播报文的出队的数量信息。根据其它的多播报文的出队情况更新所述操作值,根据所述操作值更新多播计数器的计数值。利用本发明,可以在一定程度上缓解数量大、速率快的多播报文对QDR、DDR等通用高速存储器带宽的冲击,并且能够保证系统的报文转发性能。
申请公布号 CN101848150B 申请公布日期 2011.12.28
申请号 CN201010158691.X 申请日期 2010.04.26
申请人 华为技术有限公司 发明人 卞云峰;罗海燕;郑勤;段有杰;程柏;罗柳柱;王磊
分类号 H04L12/56(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 北京凯特来知识产权代理有限公司 11260 代理人 郑立明;焦丽
主权项 一种维护多播计数器的计数值的方法,其特征在于,包括:在通信设备的内部设置内容可寻址的寄存器,该寄存器中设置一定数量的引擎,获得待出队的多播报文,给所述待出队的多播报文分配一个引擎后,在所述寄存器中保存所述待出队的多播报文的指针和所述分配的引擎的引擎号的对应信息,并且,在所述寄存器中的引擎缓存中以所述分配的引擎的引擎号标记一个地址,在该地址上保存所述待出队的多播报文对多播计数器的计数值的操作值;当其它的多播报文需要出队时,判断所述寄存器中保存的所述对应信息中是否包含所述其它的多播报文的指针,如果没有包含,给所述其它的多播报文分配一个引擎,在所述寄存器中保存所述其它的多播报文的指针和所述分配的引擎的引擎号的对应信息,在所述寄存器中以所述分配的引擎的引擎号标记一个地址,在该地址上保存所述其它的多播报文对多播计数器的计数值的操作值;如果已经包含,则根据所述其它的多播报文的指针对应的引擎的引擎号所标记的地址查询引擎缓存,获取相应的操作值,将该操作值加上所述其它的多播报文对多播计数器的计数值的操作值,将获得的结果再写回到所述引擎缓存中的所述其它的多播报文的指针对应的引擎的引擎号所标记的地址上;将给所述待出队的多播报文分配的引擎的引擎号携带在所述待出队的多播报文中后,将所述待出队的多播报文从通信设备发送给保存多播计数器的片外存储器,接收到所述片外存储器返回的所述待出队的多播报文后,从所述返回的待出队的多播报文的报文描述符中提取出多播计数器的计数值;根据所述待出队的多播报文中携带的引擎的引擎号所标记的地址查询引 擎缓存,获取相应的操作值,将该操作值和所述多播计数器的计数值相加,将获得的结果再写入到所述引擎缓存中的所述待出队的多播报文的指针对应的引擎的引擎号所标记的地址上;向通信设备中的仲裁模块发出修改多播计数器的计数值的写请求,在该写请求被仲裁模块响应以后,根据所述待出队的多播报文中携带的引擎的引擎号所标记的地址查询引擎缓存,获取相应的操作值,将该操作值写入到片外存储器中的多播计数器中,作为多播计数器的新的计数值;将所述待出队的多播报文出队,在引擎缓存中清除掉保存的所述待出队的多播报文的指针和引擎的对应信息,清除掉为所述待出队的多播报文中携带的引擎保存的操作值。
地址 518129 广东省深圳市龙岗区坂田华为总部办公楼