一种报文调度方法及装置制造方法及图纸

技术编号:9796230 阅读:75 留言:0更新日期:2014-03-22 02:51
本发明专利技术实施例公开了一种报文调度方法及装置,涉及通信领域,能够提高数据缓存利用率,节省资源。该方法包括:报文调度装置接收报文并存储在内部包缓存中,提取报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度;根据队列编号从已经存储的队列描述符列表里读取对应的队列描述符;根据队列描述符判断是否发生丢包,如果判断结果为不丢包,根据队列描述符中的队尾报文描述符的数据长度、报文长度及单位空间大小生成第一入队请求响应信息;根据第一入队请求响应信息将报文写入外部存储器,生成入队信息,并根据入队信息对报文进行入队。本发明专利技术用于报文调度。

【技术实现步骤摘要】
一种报文调度方法及装置
本专利技术涉及通信领域,尤其涉及一种报文调度方法及装置。
技术介绍
在目前的数据通信系统中,数据的交换与传输通常以报文为单位,它包含了将要发送的完整的数据信息。一个典型的报文调度装置包括:入口处理器、数据通道、队列管理器、调度器、外部存储器、出口处理器,还包括:报文数据输入接口、报文数据输出接口、数据写入外置缓存接口、数据读出外置缓存接口、PD(PacketDescriptor,报文描述符)入队接口、PD出队接口、队列状态更新接口、队列调度结果输出接口。在调度报文的过程中,如果按照满足小包缓存时间的要求设计PD数量,则在调度长包时浪费了PD缓存,而如果按照长包缓存时间的要求设计PD数量,则在调度小包时又会浪费很多数据缓存。在现有的拼包技术中,将属于同一队列的报文写入同一个PD所对应的数据缓存,当数据缓存利用率达到指定门限后,结束拼包,以此来减少PD数量,提高数据缓存的利用率。然而,因为报文需要拼包完成后才能生成PD,所以增加了报文处理的时延,比如,连续入队10个小包,那么前9个小包都需要等到最后一个小包写入缓存后才能产生一个PD,这就增加了前9个小包的处理时间。而且,如果存在需要丢弃的报文,只能在进行入队处理的时候将其送入特殊丢弃通道,这样,需要丢弃的报文也占用了数据缓存、数据读写带宽、PD缓存、PD地址分配带宽和PD地址回收带宽等过多的资源。
技术实现思路
本专利技术的实施例提供一种报文调度方法及装置,能够提高数据缓存利用率,节省资源。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术的实施例提供一种报文调度方法,包括:报文调度装置接收报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度;根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的报文组成的队列,所述尾丢弃配置参数包括预设丢弃阈值;根据所述队列数据长度及所述尾丢弃配置参数判断是否发生丢包,如果所述队列数据长度小于所述预设丢弃阈值,则判断结果为不丢包,所述队列描述符还包括队尾报文描述符的地址,根据所述队列描述符中队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,所述单位空间大小为单个报文描述符地址对应的数据缓存空间大小;根据所述第一入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队。在第一种可能的实现方式中,结合第一方面,如果所述判断结果为丢包,则所述报文调度装置生成第二入队请求响应信息;根据所述第二入队请求响应信息将所述报文从所述内部包缓存中删除。在第二种可能的实现方式中,结合第一方面,所述判断结果为不丢包,根据所述队列描述符中队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,包括:判断所述队尾报文描述符的数据长度及所述报文长度之和是否小于或等于所述单位空间大小,如果结果为小于或等于,则判断拼包成功;生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。在第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,如果所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小,判断拼包成功,所述报文调度装置将所述报文分为报文a及报文b两部分,使得所述报文a的报文长度与所述队尾报文描述符的数据长度之和小于或等于所述一个报文描述符地址代表的数据缓存空间大小;生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。在第四种可能的实现方式中,结合第一方面的第二种可能的实现方式,如果所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小,判断拼包不成功;所述报文调度装置生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包不成功的判断结果。在第五种可能的实现方式中,结合第一方面的第二种可能的实现方式,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:所述报文调度装置根据所述第一入队请求响应信息将所述报文写入所述队尾报文描述符的地址对应的所述外部存储器,并生成入队信息,所述入队信息包括所述队尾报文描述符的地址;根据所述入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文长度之和;将所述队列数据长度改为所述队列数据长度与所述报文长度之和。在第六种可能的实现方式中,结合第一方面的第三种可能的实现方式,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:所述报文调度装置根据所述第一入队请求响应信息将所述报文a写入所述队尾报文描述符的地址对应的所述外部存储器,并生成第一入队信息,所述第一入队信息包括所述队尾报文描述符的地址;根据所述第一入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文a的报文长度之和;将所述队列数据长度改为所述队列数据长度与所述报文a的报文长度之和;根据所述第一入队请求响应信息为所述报文b申请一个新的报文描述符地址,将所述报文b写入所述新的报文描述符地址对应的所述外部存储器,并生成第二入队信息,所述第二入队信息包括所述新的报文描述符地址;根据所述第二入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;将所述队尾报文描述符的地址改为所述新的报文描述符地址;将所述队列数据长度改为所述队列数据长度与所述报文b的报文长度之和;根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文b的报文长度。在第七种可能的实现方式中,结合第一方面的第四种可能的实现方式,其特征在于,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:根据所述第一入队请求响应信息为所述报文申请一个新的报文描述符地址,将所述报文写入所述新的报文描述符地址对应的所述外部存储器,并生成入队信息,所述入队信息包括所述新的报文描述符地址;根据所述入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;将所述队尾报文描述符的地址改为所述新的报文描述符地址;将所述队列数据长度改为所述队列数据长度与所述报文长度之和;根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文长度。在第八种可能的实现方式中,结合第一方面或第一方面的任意一种可能的实现方式,所述根据所述入队信息对所述报文本文档来自技高网...
一种报文调度方法及装置

【技术保护点】
一种报文调度方法,其特征在于,包括:报文调度装置接收报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度;根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的报文组成的队列,所述尾丢弃配置参数包括预设丢弃阈值;根据所述队列数据长度及所述尾丢弃配置参数判断是否发生丢包,如果所述队列数据长度小于所述预设丢弃阈值,则判断结果为不丢包,所述队列描述符还包括队尾报文描述符的地址,根据所述队列描述符中队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,所述单位空间大小为单个报文描述符地址对应的数据缓存空间大小;根据所述第一入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队。

【技术特征摘要】
1.一种报文调度方法,其特征在于,包括:报文调度装置接收报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度;根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的报文组成的队列,所述尾丢弃配置参数包括预设丢弃阈值;根据所述队列数据长度及所述尾丢弃配置参数判断是否发生丢包,如果所述队列数据长度小于所述预设丢弃阈值,则判断结果为不丢包,所述队列描述符还包括队尾报文描述符的地址,根据所述队列描述符中队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,判断所述队尾报文描述符的数据长度及所述报文长度之和是否小于或等于单位空间大小,如果结果为小于或等于,则判断拼包成功,所述单位空间大小为单个报文描述符地址对应的数据缓存空间大小;生成第一入队请求响应信息,所述第一入队请求响应信息包括拼包成功的判断结果;根据所述第一入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队。2.根据权利要求1所述的报文调度方法,其特征在于,如果所述判断结果为丢包,则所述报文调度装置生成第二入队请求响应信息;根据所述第二入队请求响应信息将所述报文从所述内部包缓存中删除。3.根据权利要求1所述的报文调度方法,其特征在于,所述第一入队请求响应信息还包括所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。4.根据权利要求3所述的方法,其特征在于,如果所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小,判断拼包成功,所述报文调度装置将所述报文分为报文a及报文b两部分,使得所述报文a的报文长度与所述队尾报文描述符的数据长度之和小于或等于所述一个报文描述符地址代表的数据缓存空间大小;生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。5.根据权利要求3所述的方法,其特征在于,如果所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小,判断拼包不成功;所述报文调度装置生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包不成功的判断结果。6.根据权利要求3所述的方法,其特征在于,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:所述报文调度装置根据所述第一入队请求响应信息将所述报文写入所述队尾报文描述符的地址对应的所述外部存储器,并生成入队信息,所述入队信息包括所述队尾报文描述符的地址;根据所述入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文长度之和;将所述队列数据长度改为所述队列数据长度与所述报文长度之和。7.根据权利要求4所述的方法,其特征在于,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:所述报文调度装置根据所述第一入队请求响应信息将所述报文a写入所述队尾报文描述符的地址对应的所述外部存储器,并生成第一入队信息,所述第一入队信息包括所述队尾报文描述符的地址;根据所述第一入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文a的报文长度之和;将所述队列数据长度改为所述队列数据长度与所述报文a的报文长度之和;根据所述第一入队请求响应信息为所述报文b申请一个新的报文描述符地址,将所述报文b写入所述新的报文描述符地址对应的所述外部存储器,并生成第二入队信息,所述第二入队信息包括所述新的报文描述符地址;根据所述第二入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;将所述队尾报文描述符的地址改为所述新的报文描述符地址;将所述队列数据长度改为所述队列数据长度与所述报文b的报文长度之和;根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文b的报文长度。8.根据权利要求5所述的方法,其特征在于,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:根据所述第一入队请求响应信息为所述报文申请一个新的报文描述符地址,将所述报文写入所述新的报文描述符地址对应的所述外部存储器,并生成入队信息,所述入队信息包括所述新的报文描述符地址;根据所述入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;将所述队尾报文描述符的地址改为所述新的报文描述符地址;将所述队列数据长度改为所述队列数据长度与所述报文长度之和;根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文长度。9.根据权利要求1~8任一项所述的方法,其特征在于,所述根据所述入队信息对所述报文进行入队之后,包括:所述报文调度装置根据所述队列描述符列表生成队列信息,所述队列信息包括所述队列数据长度,根据所述队列信息,选择一个被调度队列,根据被调度队列的队列编号从所述队列描述符列表中读取所述队列编号对应的队列描述符,根据所述队列描述符中队头报文描述符的地址从所述报文描述符列表中读取所述队头报文描述符,生成出队信息,根据所述出队信息将所述队头报文描述符结束拼包,将所述队头报文描述符的地址对应的外部存储器中存储的报文发送出去,将所述队头报文描述符的地址改为所述队头报文描述符的下一跳报文描述符地址,将所述队列数据长度改为所述队列数据长度与所述队头报文描述符的数据长度之差的绝对值。10.一种报文调度装置,包括数据通道、队列管理器、外部存储器,入口处理器,其特征在于,所述入口处理器,用于接收报文并将所述报文发送至所述数据通道;所述数据通道,用于接收所述入口处理器发送的所述报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度,将所述入队请求信息发送至所述队列管理器;所述队列管理器,用于接收所述数据通道发送的所述入队请求信息,根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的...

【专利技术属性】
技术研发人员:杜文华郑勤屈仁杰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1