CN103647726A - 一种报文调度方法及装置 - Google Patents
一种报文调度方法及装置 Download PDFInfo
- Publication number
- CN103647726A CN103647726A CN201310673752.XA CN201310673752A CN103647726A CN 103647726 A CN103647726 A CN 103647726A CN 201310673752 A CN201310673752 A CN 201310673752A CN 103647726 A CN103647726 A CN 103647726A
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- team
- descriptor
- joining
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种报文调度方法及装置,涉及通信领域,能够提高数据缓存利用率,节省资源。该方法包括:报文调度装置接收报文并存储在内部包缓存中,提取报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度;根据队列编号从已经存储的队列描述符列表里读取对应的队列描述符;根据队列描述符判断是否发生丢包,如果判断结果为不丢包,根据队列描述符中的队尾报文描述符的数据长度、报文长度及单位空间大小生成第一入队请求响应信息;根据第一入队请求响应信息将报文写入外部存储器,生成入队信息,并根据入队信息对报文进行入队。本发明用于报文调度。
Description
技术领域
本发明涉及通信领域,尤其涉及一种报文调度方法及装置。
背景技术
在目前的数据通信系统中,数据的交换与传输通常以报文为单位,它包含了将要发送的完整的数据信息。
一个典型的报文调度装置包括:入口处理器、数据通道、队列管理器、调度器、外部存储器、出口处理器,还包括:报文数据输入接口、报文数据输出接口、数据写入外置缓存接口、数据读出外置缓存接口、PD(Packet Descriptor,报文描述符)入队接口、PD出队接口、队列状态更新接口、队列调度结果输出接口。
在调度报文的过程中,如果按照满足小包缓存时间的要求设计PD数量,则在调度长包时浪费了PD缓存,而如果按照长包缓存时间的要求设计PD数量,则在调度小包时又会浪费很多数据缓存。
在现有的拼包技术中,将属于同一队列的报文写入同一个PD所对应的数据缓存,当数据缓存利用率达到指定门限后,结束拼包,以此来减少PD数量,提高数据缓存的利用率。
然而,因为报文需要拼包完成后才能生成PD,所以增加了报文处理的时延,比如,连续入队10个小包,那么前9个小包都需要等到最后一个小包写入缓存后才能产生一个PD,这就增加了前9个小包的处理时间。而且,如果存在需要丢弃的报文,只能在进行入队处理的时候将其送入特殊丢弃通道,这样,需要丢弃的报文也占用了数据缓存、数据读写带宽、PD缓存、PD地址分配带宽和PD地址回收带宽等过多的资源。
发明内容
本发明的实施例提供一种报文调度方法及装置,能够提高数据缓存利用率,节省资源。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种报文调度方法,包括:
报文调度装置接收报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度;
根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的报文组成的队列,所述尾丢弃配置参数包括预设丢弃阈值;
根据所述队列数据长度及所述尾丢弃配置参数判断是否发生丢包,如果所述队列数据长度小于所述预设丢弃阈值,则判断结果为不丢包,所述队列描述符还包括队尾报文描述符的地址,根据所述队列描述符中队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,所述单位空间大小为单个报文描述符地址对应的数据缓存空间大小;
根据所述第一入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队。
在第一种可能的实现方式中,结合第一方面,如果所述判断结果为丢包,则所述报文调度装置生成第二入队请求响应信息;
根据所述第二入队请求响应信息将所述报文从所述内部包缓存中删除。
在第二种可能的实现方式中,结合第一方面,所述判断结果为不丢包,根据所述队列描述符中队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,包括:
判断所述队尾报文描述符的数据长度及所述报文长度之和是否小于或等于所述单位空间大小,如果结果为小于或等于,则判断拼包成功;
生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。
在第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,如果所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小,判断拼包成功,所述报文调度装置将所述报文分为报文a及报文b两部分,使得所述报文a的报文长度与所述队尾报文描述符的数据长度之和小于或等于所述一个报文描述符地址代表的数据缓存空间大小;
生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。
在第四种可能的实现方式中,结合第一方面的第二种可能的实现方式,如果所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小,判断拼包不成功;
所述报文调度装置生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包不成功的判断结果。
在第五种可能的实现方式中,结合第一方面的第二种可能的实现方式,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:
所述报文调度装置根据所述第一入队请求响应信息将所述报文写入所述队尾报文描述符的地址对应的所述外部存储器,并生成入队信息,所述入队信息包括所述队尾报文描述符的地址;
根据所述入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文长度之和;
将所述队列数据长度改为所述队列数据长度与所述报文长度之和。
在第六种可能的实现方式中,结合第一方面的第三种可能的实现方式,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:
所述报文调度装置根据所述第一入队请求响应信息将所述报文a写入所述队尾报文描述符的地址对应的所述外部存储器,并生成第一入队信息,所述第一入队信息包括所述队尾报文描述符的地址;
根据所述第一入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文a的报文长度之和;
将所述队列数据长度改为所述队列数据长度与所述报文a的报文长度之和;
根据所述第一入队请求响应信息为所述报文b申请一个新的报文描述符地址,将所述报文b写入所述新的报文描述符地址对应的所述外部存储器,并生成第二入队信息,所述第二入队信息包括所述新的报文描述符地址;
根据所述第二入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;
将所述队尾报文描述符的地址改为所述新的报文描述符地址;
将所述队列数据长度改为所述队列数据长度与所述报文b的报文长度之和;
根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文b的报文长度。
在第七种可能的实现方式中,结合第一方面的第四种可能的实现方式,其特征在于,所述根据所述入队请求响应信息将所述报文写入外部存储器,并生成入队信息,根据所述入队信息对所述报文进行入队,包括:
根据所述第一入队请求响应信息为所述报文申请一个新的报文描述符地址,将所述报文写入所述新的报文描述符地址对应的所述外部存储器,并生成入队信息,所述入队信息包括所述新的报文描述符地址;
根据所述入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;
将所述队尾报文描述符的地址改为所述新的报文描述符地址;
将所述队列数据长度改为所述队列数据长度与所述报文长度之和;
根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文长度。
在第八种可能的实现方式中,结合第一方面或第一方面的任意一种可能的实现方式,所述根据所述入队信息对所述报文进行入队之后,包括:
所述报文调度装置根据所述队列描述符列表生成队列信息,所述队列信息包括所述队列数据长度,根据所述队列信息,选择一个被调度队列,根据被调度队列的队列编号从所述队列描述符列表中读取所述队列编号对应的队列描述符,根据所述队列描述符中队头报文描述符的地址从所述报文描述符列表中读取所述队头报文描述符,生成出队信息,根据所述出队信息将所述队头报文描述符结束拼包,将所述队头报文描述符的地址对应的外部存储器中存储的报文发送出去,将所述队头报文描述符的地址改为所述队头报文描述符的下一跳报文描述符地址,将所述队列数据长度改为所述队列数据长度与所述队头报文描述符的数据长度之差的绝对值。
第二方面,本发明的实施例提供一种报文调度装置,包括数据通道、队列管理器、外部存储器,入口处理器,
所述入口处理器,用于接收报文并将所述报文发送至所述数据通道;
所述数据通道,用于接收所述入口处理器发送的所述报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度,将所述入队请求信息发送至所述队列管理器;
所述队列管理器,用于接收所述数据通道发送的所述入队请求信息,根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的报文组成的队列,所述尾丢弃配置参数包括预设丢弃阈值;
所述队列管理器根据所述队列数据长度及所述尾丢弃配置参数判断是否发生丢包,如果所述队列数据长度小于所述预设丢弃阈值,则判断结果为不丢包,所述队列描述符还包括队尾报文描述符的地址,根据所述队列描述符中的队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,并将所述第一入队请求响应信息发送至所述数据通道,所述单位空间大小为单个报文描述符地址对应的数据缓存空间大小;
所述数据通道,还用于接收所述队列管理器发送的所述第一入队请求响应信息,根据所述第一入队请求响应信息将所述报文发送至所述外部存储器,生成入队信息,并将所述入队信息发送至所述队列管理器;
所述外部存储器,用于接收所述数据通道发送的所述报文;
所述队列管理器,还用于接收所述数据通道发送的所述入队信息,根据所述入队信息对所述报文进行入队。
在第一种可能的实现方式中,结合第二方面,
所述队列管理器,还用于当所述判断结果为丢包时,生成第二入队请求响应信息,并将所述第二入队请求响应信息发送至所述数据通道;
所述数据通道,还用于接收所述队列管理器发送的所述第二入队请求响应信息,根据所述第二入队请求响应信息将所述报文从所述内部包缓存中删除。
在第二种可能的实现方式中,结合第二方面,
所述队列管理器,还用于判断所述队尾报文描述符的数据长度及所述报文长度之和是否小于或等于所述单位空间大小,如果结果为小于或等于,则判断拼包成功,并生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括判断拼包成功的结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。
在第三种可能的实现方式中,结合第二方面的第二种可能的实现方式,
所述队列管理器,还用于当所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小时,判断拼包成功,将所述报文分为报文a及报文b两部分,使得所述报文a的报文长度与所述队尾报文描述符的数据长度之和小于或等于所述一个报文描述符地址代表的数据缓存空间大小,并生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。
在第四种可能的实现方式中,结合第二方面的第二种可能的实现方式,
所述队列管理器,还用于当所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小时,判断拼包不成功,并生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包不成功的判断结果。
在第五种可能的实现方式中,结合第二方面的第二种可能的实现方式,
所述数据通道,还用于根据所述第一入队请求响应信息将所述报文写入所述队尾报文描述符的地址对应的所述外部存储器,生成入队信息并将所述入队信息发送至所述队列管理器,所述入队信息包括所述队尾报文描述符的地址;
所述队列管理器,还用于接收所述数据通道发送的所述入队信息,根据所述入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文长度之和;
将所述队列数据长度改为所述队列数据长度与所述报文长度之和。
在第六种可能的实现方式中,结合第二面的第三种可能的实现方式,
所述数据通道,还用于根据所述第一入队请求响应信息将所述报文a写入所述队尾报文描述符的地址对应的所述外部存储器,生成第一入队信息并将所述第一入队信息发送至所述队列管理器,所述第一入队信息包括所述队尾报文描述符的地址;
所述队列管理器,还用于接收所述数据通道发送的所述第一入队信息,并根据所述第一入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文a的报文长度之和;
将所述队列数据长度改为所述队列数据长度与所述报文a的报文长度之和;
所述数据通道,还用于根据所述第一入队请求响应信息为所述报文b申请一个新的报文描述符地址,将所述报文b写入所述新的报文描述符地址对应的所述外部存储器,生成第二入队信息并将所述第二入队信息发送至所述队列管理器,所述第二入队信息包括所述新的报文描述符地址;
所述队列管理器,还用于接收所述数据通道发送的所述第二入队信息,根据所述第二入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;
将所述队尾报文描述符的地址改为所述新的报文描述符地址;
将所述队列数据长度改为所述队列数据长度与所述报文b的报文长度之和;
根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文b的报文长度。
在第七种可能的实现方式中,结合第二方面的第四种可能的实现方式,
所述数据通道,还用于根据所述第一入队请求响应信息为所述报文申请一个新的报文描述符地址,将所述报文写入所述新的报文描述符地址对应的所述外部存储器,生成入队信息并将所述入队信息发送至所述队列管理器,所述入队信息包括所述新的报文描述符地址;
所述队列管理器,还用于接收所述数据通道发送的所述入队信息,根据所述入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;
将所述队尾报文描述符的地址改为所述新的报文描述符地址;
将所述队列数据长度改为所述队列数据长度与所述报文长度之和;
根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文长度。
在第八种可能的实现方式中,结合第二方面或者第二方面的任意一种可能的实现方式,所述报文调度装置还包括调度器及出口处理器,
所述队列管理器,还用于根据所述队列描述符列表生成队列信息,将所述队列信息发送至所述调度器,所述队列信息包括所述队列数据长度;
所述调度器,用于接收所述队列管理器发送的所述队列信息,根据所述队列信息,选择被调度队列,将所述被调度队列的队列编号发送至所述队列管理器;
所述队列管理器,还用于接收所述调度器发送的所述队列编号,根据所述队列编号,从所述队列描述符列表中读取所述队列编号对应的队列描述符,根据所述队列描述符中队头报文描述符的地址从所述报文描述符列表中读取所述队头报文描述符,生成出队信息,并将所述出队信息发送至所述数据通道;
所述数据通道,还用于接收所述队列管理器发送的所述出队信息,根据所述出队信息将所述队头报文描述符结束拼包,将所述队头报文描述符的地址对应的外部存储器中存储的报文通过出口处理器发送出去;
所述队列管理器,还用于将所述队头报文描述符的地址改为所述队头报文描述符的下一跳报文描述符地址,将所述队列数据长度改为所述队列数据长度与所述队头报文描述符数据长度之差的绝对值。
本发明实施例提供的一种报文调度方法及装置,通过将报文存储在内部包缓存中,提取报文信息生成入队请求信息,根据入队请求信息判断是否发生丢包,如果不丢包,判断拼包是否成功,并根据判断结果将报文丢弃或写入外部存储器,提高了数据缓存利用率,节省了资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明的实施例提供的一种报文调度装置结构示意图;
图2为本发明的实施例提供的一种报文调度方法流程示意图;
图3为本发明的另一实施例提供的一种报文调度方法流程示意图;
图4为本发明的又一实施例提供的一种报文调度方法流程示意图;
图5为本发明的再一实施例提供的一种报文调度方法流程示意图;
图6为本发明的实施例提供的一种报文出队方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
在数据通信系统中基于报文为单位进行处理,本发明的实施例提供的一种报文调度装置,用于处理数据报文,当然该装置可以是路由器、交换机等设备,具体的参照图1所示,该报文调度装置包括:入口处理器101、数据通道102、队列管理器103及外部存储器104,当然在具有以上结构时,该报文调度装置仅能完成数据报文的入队处理,一个完整的调度过程还包括数据报文的出队过程,因此该报文调度装置还包括:出口处理器105及调度器106,其中数据通道102分别与入口处理器101、出口处理器105、外部存储器104及队列管理器103相连,调度器106与队列管理器103相连,具体的,本发明的实施例提供的报文调度装置的各个模块之间可以通过接口进行数据传输,参照图1所示,包括入口处理器101和数据通道102之间的DI(Data Input,数据输入):报文数据输入接口,出口处理器105和数据通道102之间的DO(Data Output,数据输出):报文数据输出接口;数据通道102和外部存储器104之间的DW(Data Write,数据写入):数据写入外置缓存接口,和DR(Data Read,数据读取):数据读出外置缓存接口;数据通道102和队列管理器103之间的EQ(Enqueue):PD入队接口,DQ(Dequeue):PD出队接口,ER(Enqueue Request):入队请求接口,和EG(Enqueue Grant):入队请求响应接口;队列管理器103和调度器106之间的QU(Queue status Update):队列状态更新接口和QS(Queue ID Select):队列调度结果输出接口。
为方便描述,实施例中队列描述符用QD表示,报文描述符用PD表示。
其中在具体的入队过程中:
数据通道102用于通过入口处理器101获取报文并将报文存储在内部包缓存中,提取报文信息生成入队请求信息,将入队请求信息发送至队列管理器103,入队请求信息包含队列编号及报文长度。
该过程中对于接收到的报文,数据通道102先缓存至自身的内部包缓存中,以便对该报文进行后续的处理,这里入队请求REQ通过ER接口传递,REQ包括:QID:队列编号,该队列编号可由报文信息直接提取或者根据与报文信息形成的映射关系获得;Packet Length:报文长度。
队列管理器103,用于接收数据通道102发送的入队请求信息,根据队列编号从已经存储的QD(Queue Descriptor,队列描述符)列表里读取对应的QD,QD包括队列数据长度及尾丢弃配置参数。
这里QD为队列管理器103根据PD生成的,由于该报文调度装置可以同时存储多个报文队列,每个报文队列包含多个报文,因此,每个QD记录了该队列的数据长度及起始PD地址。在新的报文入队之前,QD中保存的是已经存储的报文队列的相关信息。
队列管理器103还用于根据读取出的队列数据长度及尾丢弃配置参数判断是否发生丢包,其中,尾丢弃配置参数包括预设丢弃阈值,如果队列数据长度小于预设丢弃阈值,则判断结果为不丢包,则QD中还包括队尾PD的地址,根据队尾PD的地址从已经存储的PD列表中读取对应的队尾PD并获取队尾PD的数据长度,根据队尾PD的数据长度及报文长度之和与单位空间大小生成第一入队请求响应信息,并将第一入队请求响应信息发送至数据通道102。该单位空间大小为单个PD地址对应的数据缓存空间大小。
这里,第一入队请求响应信息为EG接口信息,具体包括:
Pass:是否要求丢弃报文;
Packing Success:拼包是否成功;
PD address:如果拼包成功,返回的需要拼入的PD地址;
PD Length:拼入的PD地址已经存储的数据长度。
其中,因为拼包的过程是将报文写入队列中队尾PD地址对应的外部存储器104,而且报文入队只能进入队尾,因此,此处PD地址指的是该队列中队尾PD的地址,当然,列举的信息不一定在每一个方案中都全部包含。
数据通道102,还用于接收队列管理器103发送的第一入队请求响应信息,根据第一入队请求响应信息将报文写入外部存储器104,生成入队信息,并将入队信息发送至队列管理器103。
队列管理器103,还用于接收数据通道102发送的入队信息,根据入队信息对报文进行入队。
或者可选的,队列管理器103,还用于当判断结果为丢包时,生成第二入队请求响应信息,并将第二入队请求响应信息发送至数据通道102;
数据通道102,还用于接收队列管理器103发送的第二入队请求响应信息,根据第二入队请求响应信息将报文从内部包缓存中删除。
具体的,若队列管理器103判断结果为不丢包,报文调度装置具体以以下三种方案对报文进行入队处理:
方案一:
队列管理器103判断队尾PD的数据长度及报文长度之和是否小于或等于单位空间大小,如果结果为小于或等于,则判断拼包成功,生成第一入队请求响应信息,将第一入队请求信息发送至数据通道102,其中第一入队请求响应信息包括判断拼包成功的结果、队尾PD的地址及队尾PD的数据长度。
数据通道102接收队列管理器103发送的第一入队请求响应信息,根据第一入队请求响应信息将报文写入队尾PD的地址对应的外部存储器104,生成入队信息并将入队信息发送至队列管理器103,入队信息包括队尾PD的地址。
队列管理器103接收数据通道102发送的入队信息,根据入队信息,将队尾PD的数据长度改为队尾PD的数据长度与报文长度之和,将队列数据长度改为队列数据长度与报文长度之和。
方案二:
队列管理器103,还用于当队尾PD的数据长度及报文长度之和大于单位空间大小时,判断拼包成功,将报文分为报文a及报文b两部分,使得报文a的报文长度与队尾PD的数据长度之和小于或等于一个PD地址代表的数据缓存空间大小,并生成第一入队请求响应信息,将第一入队请求响应信息发送至数据通道102,其中第一入队请求响应信息包括拼包成功的判断结果、队尾PD的地址及队尾PD的数据长度。
数据通道102接收到队列管理器103发送的第一入队请求响应信息,根据第一入队请求响应信息将报文a写入队尾PD的地址对应的外部存储器104,生成第一入队信息并将第一入队信息发送至队列管理器103,第一入队信息包括队尾PD的地址。
队列管理器103接收数据通道102发送的第一入队信息,并根据第一入队信息,将队尾PD的数据长度改为队尾PD的数据长度与报文a的报文长度之和,将队列数据长度改为队列数据长度与报文a的报文长度之和。
数据通道102,还用于根据第一入队请求响应信息为报文b申请一个新的PD地址,将报文b写入新的PD地址对应的外部存储器104,生成第二入队信息并将第二入队信息发送至队列管理器103,第二入队信息包括新的PD地址。
队列管理器103接收数据通道102发送的第二入队信息,根据第二入队信息将队尾PD的下一跳PD地址改为新的PD地址,将队尾PD的地址改为新的PD地址,将队列数据长度改为队列数据长度与报文b的报文长度之和,根据新的PD地址,将PD列表中新的PD地址对应PD的数据长度改为报文b的报文长度。
方案三:
队列管理器103,还用于当队尾PD的数据长度及报文长度之和大于单位空间大小时,判断拼包不成功,并生成第一入队请求响应信息,其中第一入队请求响应信息包括拼包不成功的判断结果。
数据通道102接收队列管理器103发送的第一入队请求响应信息,根据第一入队请求响应信息为报文申请一个新的PD地址,将报文写入新的PD地址对应的外部存储器104,生成入队信息并将入队信息发送至队列管理器103,入队信息包括新的PD地址。
队列管理器103接收数据通道102发送的入队信息,根据入队信息将队尾PD的下一跳PD地址改为新的PD地址,将队尾PD的地址改为新的PD地址,将队列数据长度改为队列数据长度与报文长度之和,根据新的PD地址,将PD列表中新的PD地址对应PD的数据长度改为报文长度。
通过以上所述,该报文调度装置可以完成报文数据入队的操作,参照图1所示,报文调度装置还包括:调度器106和出口处理器105;调度器106与队列管理器103相连,出口处理器105与数据通道102相连。
队列管理器103,还用于根据QD列表生成队列信息,将队列信息发送至调度器106,队列信息包括队列数据长度。
调度器106,用于接收队列管理器103发送的队列信息,根据队列信息,选择被调度队列,将被调度队列的队列编号发送至队列管理器103。
队列管理器103,还用于接收调度器106发送的队列编号,根据队列编号,从QD列表中读取队列编号对应的QD,根据QD中队头PD的地址从PD列表中读取队头PD,生成出队信息,并将出队信息发送至数据通道102。
数据通道102,还用于接收队列管理器103发送的出队信息,根据出队信息将队头PD结束拼包,将队头PD的地址对应的外部存储器104中存储的报文通过出口处理器105发送出去。
队列管理器103,还用于将队头PD的地址改为队头PD的下一跳PD地址,将队列数据长度改为队列数据长度与队头PD的数据长度之差的绝对值。
这样当一个PD既是队尾PD又是队头PD的时候,如果该PD作为队头PD获得调度机会进行出队时,就会结束拼包,也就是将获得调度出队机会作为结束拼包的条件。
当一个PD不是队尾PD时,证明该PD已经结束拼包,因为只有队尾PD才能进行拼包。这也提高了外部存储器104的利用率,保证了在获得调度机会时能迅速出队。
本发明的实施例还提供了以上报文调度装置实施报文调度过程中各个数据结构的基本组成形式:
QD(Queue Descriptor,队列描述符):存储与队列相关的如下信息:
Head Pointer:队头PD的地址,
Tail Pointer:队尾PD的地址,
Queue Length:队列数据长度,
WRED(Weighted Random Early Drop)/尾丢弃配置参数。
PD(Packet Descriptor,队列描述符):存储与报文相关的如下信息:
Next Pointer:下一个PD的地址,
PD Length:当前PD已经存储的数据长度。
REQ(Request Enqueue,入队请求信息):(ER接口信息):
QID(Queue ID entity):队列编号,
Packet Length:报文长度。
GNT(Grant,入队请求响应信息):(EG接口信息):
Pass:是否要求丢弃报文,
Packing Success:拼包是否成功,
PD address:如果拼包成功,则返回需要拼入的PD地址,
PD Length:因为一个PD地址代表一段数据缓存的空间,因此在拼包成功时需要根据之前已经写入相同PD地址的数据长度,决定当前拼入同一个PD的报文应该写入的具体数据缓存空间地址。
ENQ(Enqueue,入队信息):(EQ接口信息):
QID:队列编号,由报文信息提取或映射获得,
Packet Length:报文长度,
Packing Success:拼包是否成功,
PD address:当前报文写入的PD地址。
当然以上各个数据结构中所包含的基本组成部分不一定在每一个方案中都完全包含,以上述各个实施例描述的内容为准,即在对应的方案涉及到时,数据结构中才包含对应的基本组成部分,如,在判断对数据报文丢弃时,入队请求响应信息(第二入队请求响应信息)可以只包括Pass信息。
本发明实施例提供的一种报文调度方法及装置,通过将报文存储在内部包缓存中,提取报文信息生成入队请求信息,根据入队请求信息判断是否发生丢包,如果不丢包,判断拼包是否成功,并根据判断结果将报文丢弃或写入外部存储器,提高了数据缓存利用率,节省了资源。
参照图2所示,本发明的实施例提供一种报文调度方法,包括以下步骤:
201、报文调度装置接收报文,将报文存储在内部包缓存中,提取报文的报文信息生成入队请求信息,入队请求信息包括队列编号及报文长度。
202、报文调度装置根据队列编号从已经存储的QD列表里读取对应的QD。
其中,QD包括队列数据长度及尾丢弃配置参数,尾丢弃配置参数包括预设丢弃阈值。
可选的,该QD还包括队尾PD的地址。
203、报文调度装置根据队列数据长度及尾丢弃配置参数判断是否发生丢包,如果判断结果为不丢包,则根据队尾PD的地址从已经存储的PD列表中读取对应的队尾PD并获取队尾PD的数据长度,根据队尾PD的数据长度及报文长度之和与单位空间大小生成第一入队请求响应信息。
其中,该单位空间大小为单个PD地址对应的数据缓存空间大小。
具体的,如果队列数据长度小于预设丢弃阈值,则判断为不丢包。
204、报文调度装置根据第一入队请求响应信息将报文写入外部存储器,并生成入队信息,根据入队信息对报文进行入队。
可选的,该报文调度方法还包括:
205、如果判断结果为丢包,报文调度装置生成第二入队请求响应信息。
205、报文调度装置根据第二入队请求响应信息将报文从内部包缓存中删除。
本发明实施例提供的一种报文调度方法及装置,通过将报文存储在内部包缓存中,提取报文信息生成入队请求信息,根据入队请求信息判断是否发生丢包,如果不丢包,判断拼包是否成功,并根据判断结果将报文丢弃或写入外部存储器,提高了数据缓存利用率,节省了资源。
参照图3所示,本发明的另一实施例提供一种报文调度方法,包括:
301、报文调度装置接收报文,将报文存储在内部包缓存中,提取报文的报文信息生成入队请求信息,入队请求信息包括队列编号及报文长度。
302、报文调度装置根据队列编号从已经存储的QD列表里读取对应的QD。
其中,QD包括队列数据长度及尾丢弃配置参数,尾丢弃配置参数包括预设丢弃阈值。
可选的,该QD还包括队尾PD的地址。
303、报文调度装置根据队列数据长度及尾丢弃配置参数判断是否发生丢包,如果判断结果为不丢包,则根据QD中队尾PD的地址从已经存储的PD列表中读取对应的队尾PD并获取队尾PD的数据长度。
具体的,如果队列数据长度小于预设丢弃阈值,则判断为不丢包。
304、报文调度装置判断队尾PD的数据长度及报文长度之和是否小于或等于单位空间大小,如果结果为小于或等于,则判断拼包成功。
其中,该单位空间大小为单个PD地址对应的数据缓存空间大小。
305、报文调度装置生成第一入队请求响应信息,其中第一入队请求响应信息包括拼包成功的判断结果、队尾PD的地址及队尾PD的数据长度。
306、报文调度装置根据第一入队请求响应信息将报文写入队尾PD的地址对应的外部存储器,并生成入队信息,入队信息包括队尾PD的地址。
307、报文调度装置根据入队信息,将队尾PD的数据长度改为队尾PD的数据长度与报文长度之和,将队列数据长度改为队列数据长度与报文长度之和。
本发明实施例提供的一种报文调度方法及装置,通过将报文存储在内部包缓存中,提取报文信息生成入队请求信息,根据入队请求信息判断是否发生丢包,如果不丢包,判断拼包是否成功,并根据判断结果将报文丢弃或写入外部存储器,提高了数据缓存利用率,节省了资源。
参照图4所示,本发明的又一实施例提供一种报文调度方法,包括:
401、报文调度装置接收报文,将报文存储在内部包缓存中,提取报文的报文信息生成入队请求信息,入队请求信息包括队列编号及报文长度。
402、报文调度装置根据队列编号从已经存储的QD列表里读取对应的QD。
其中,QD包括队列数据长度及尾丢弃配置参数,尾丢弃配置参数包括预设丢弃阈值。
可选的,该QD还包括队尾PD的地址。
403、报文调度装置根据队列数据长度及尾丢弃配置参数判断是否发生丢包,如果判断结果为不丢包,则根据QD中队尾PD的地址从已经存储的PD列表中读取对应的队尾PD并获取队尾PD的数据长度。
具体的,如果队列数据长度小于预设丢弃阈值,则判断为不丢包。
404、报文调度装置判断队尾PD的数据长度及报文长度之和是否小于或等于单位空间大小,如果结果为大于,判断拼包成功。
其中,该单位空间大小为单个PD地址对应的数据缓存空间大小。
405、报文调度装置将报文分为报文a及报文b两部分,使得报文a的报文长度与队尾PD的数据长度之和小于或等于一个PD地址代表的数据缓存空间大小,生成第一入队请求响应信息,其中第一入队请求响应信息包括拼包成功的判断结果、队尾PD的地址及队尾PD的数据长度。
406、报文调度装置根据第一入队请求响应信息将报文a写入队尾PD的地址对应的外部存储器,并生成第一入队信息,第一入队信息包括队尾PD的地址。
407、报文调度装置根据第一入队信息,将队尾PD的数据长度改为队尾PD的数据长度与报文a的报文长度之和,将队列数据长度改为队列数据长度与报文a的报文长度之和。
408、报文调度装置根据第一入队请求响应信息为报文b申请一个新的PD地址,将报文b写入新的PD地址对应的外部存储器,并生成第二入队信息,第二入队信息包括新的PD地址。
409、报文调度装置根据第二入队信息将队尾PD的下一跳PD地址改为新的PD地址。将队尾PD的地址改为新的PD地址,将队列数据长度改为队列数据长度与报文b的报文长度之和,根据新的PD地址,将PD列表中新的PD地址对应PD的数据长度改为报文b的报文长度。
本发明实施例提供的一种报文调度方法及装置,通过将报文存储在内部包缓存中,提取报文信息生成入队请求信息,根据入队请求信息判断是否发生丢包,如果不丢包,判断拼包是否成功,并根据判断结果将报文丢弃或写入外部存储器,提高了数据缓存利用率,节省了资源。
参照图5所示,本发明的另一实施例提供一种报文调度方法,包括:
501、报文调度装置接收报文,将报文存储在内部包缓存中,提取报文的报文信息生成入队请求信息,入队请求信息包括队列编号及报文长度。
502、报文调度装置根据队列编号从已经存储的QD列表里读取对应的QD。
其中,QD包括队列数据长度及尾丢弃配置参数,尾丢弃配置参数包括预设丢弃阈值。
可选的,该QD还包括队尾PD的地址。
503、报文调度装置根据队列数据长度及尾丢弃配置参数判断是否发生丢包,如果判断结果为不丢包,则根据QD中的队尾PD的地址从已经存储的PD列表中读取对应的队尾PD并获取队尾PD的数据长度。
具体的,如果队列数据长度小于预设丢弃阈值,则判断为不丢包。
504、报文调度装置判断队尾PD的数据长度及报文长度之和是否小于或等于单位空间大小,如果结果为大于,判断拼包不成功。
其中,该单位空间大小为单个PD地址对应的数据缓存空间大小。
505、报文调度装置生成第一入队请求响应信息,其中第一入队请求响应信息包括拼包不成功的判断结果。
506、报文调度装置根据第一入队请求响应信息为报文申请一个新的PD地址,将报文写入新的PD地址对应的外部存储器,并生成入队信息,入队信息包括新的PD地址。
507、报文调度装置根据入队信息将队尾PD的下一跳PD地址改为新的PD地址。将队尾PD的地址改为新的PD地址,将队列数据长度改为队列数据长度与报文的报文长度之和,根据新的PD地址,将PD列表中新的PD地址对应PD的数据长度改为报文的报文长度。
本发明实施例提供的一种报文调度方法及装置,通过将报文存储在内部包缓存中,提取报文信息生成入队请求信息,根据入队请求信息判断是否发生丢包,如果不丢包,判断拼包是否成功,并根据判断结果将报文丢弃或写入外部存储器,提高了数据缓存利用率,节省了资源。
以上方法实施例提供了数据报文的入队方法,当队列中的数据报文被调出时还包括以下方法:
601、报文调度装置根据QD列表生成队列信息。
602、报文调度装置根据队列信息选择一个被调度队列。
603、报文调度装置根据被调度队列的队列编号从QD列表中读取队列编号对应的QD,根据QD中队头PD的地址从PD列表中读取队头PD,生成出队信息。
604、报文调度装置根据出队信息将队头PD结束拼包,将队头PD的地址对应的外部存储器中存储的报文发送出去。
605、将队头PD的地址改为队头PD的下一跳PD地址,将队列数据长度改为队列数据长度与队头PD的数据长度之差的绝对值。
这样当一个PD既是队尾PD又是队头PD的时候,如果该PD作为队头PD获得调度机会进行出队时,就会结束拼包,也就是将获得调度出队机会作为结束拼包的条件。
当一个PD不是队尾PD时,证明该PD已经结束拼包,因为只有队尾PD才能进行拼包。这也提高了外部存储单元104的利用率,保证了在获得调度机会时能迅速出队。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
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.一种报文调度装置,包括数据通道、队列管理器、外部存储器,入口处理器,其特征在于,
所述入口处理器,用于接收报文并将所述报文发送至所述数据通道;
所述数据通道,用于接收所述入口处理器发送的所述报文,将所述报文存储在内部包缓存中,提取所述报文的报文信息生成入队请求信息,所述入队请求信息包括队列编号及报文长度,将所述入队请求信息发送至所述队列管理器;
所述队列管理器,用于接收所述数据通道发送的所述入队请求信息,根据所述队列编号从已经存储的队列描述符列表里读取对应的队列描述符,所述队列描述符包括队列数据长度及尾丢弃配置参数,所述队列为所述报文调度装置中的报文组成的队列,所述尾丢弃配置参数包括预设丢弃阈值;
所述队列管理器根据所述队列数据长度及所述尾丢弃配置参数判断是否发生丢包,如果所述队列数据长度小于所述预设丢弃阈值,则判断结果为不丢包,所述队列描述符还包括队尾报文描述符的地址,根据所述队列描述符中的队尾报文描述符的地址从已经存储的报文描述符列表中读取对应的队尾报文描述符并获取所述队尾报文描述符的数据长度,根据所述队尾报文描述符的数据长度及所述报文长度之和与单位空间大小生成第一入队请求响应信息,并将所述第一入队请求响应信息发送至所述数据通道,所述单位空间大小为单个报文描述符地址对应的数据缓存空间大小;
所述数据通道,还用于接收所述队列管理器发送的所述第一入队请求响应信息,根据所述第一入队请求响应信息将所述报文发送至所述外部存储器,生成入队信息,并将所述入队信息发送至所述队列管理器;
所述外部存储器,用于接收所述数据通道发送的所述报文;
所述队列管理器,还用于接收所述数据通道发送的所述入队信息,根据所述入队信息对所述报文进行入队。
11.根据权利要求10所述的装置,其特征在于,
所述队列管理器,还用于当所述判断结果为丢包时,生成第二入队请求响应信息,并将所述第二入队请求响应信息发送至所述数据通道;
所述数据通道,还用于接收所述队列管理器发送的所述第二入队请求响应信息,根据所述第二入队请求响应信息将所述报文从所述内部包缓存中删除。
12.根据权利要求10所述的装置,其特征在于,
所述队列管理器,还用于判断所述队尾报文描述符的数据长度及所述报文长度之和是否小于或等于单位空间大小,如果结果为小于或等于,则判断拼包成功,并生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括判断拼包成功的结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。
13.根据权利要求12所述的装置,其特征在于,
所述队列管理器,还用于当所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小时,判断拼包成功,将所述报文分为报文a及报文b两部分,使得所述报文a的报文长度与所述队尾报文描述符的数据长度之和小于或等于所述一个报文描述符地址代表的数据缓存空间大小,并生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包成功的判断结果、所述队尾报文描述符的地址及所述队尾报文描述符的数据长度。
14.根据权利要求12所述的装置,其特征在于,
所述队列管理器,还用于当所述队尾报文描述符的数据长度及所述报文长度之和大于所述单位空间大小时,判断拼包不成功,并生成所述第一入队请求响应信息,其中所述第一入队请求响应信息包括拼包不成功的判断结果。
15.根据权利要求12所述的装置,其特征在于,
所述数据通道,还用于根据所述第一入队请求响应信息将所述报文写入所述队尾报文描述符的地址对应的所述外部存储器,生成入队信息并将所述入队信息发送至所述队列管理器,所述入队信息包括所述队尾报文描述符的地址;
所述队列管理器,还用于接收所述数据通道发送的所述入队信息,根据所述入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文长度之和;
将所述队列数据长度改为所述队列数据长度与所述报文长度之和。
16.根据权利要求13所述的装置,其特征在于,
所述数据通道,还用于根据所述第一入队请求响应信息将所述报文a写入所述队尾报文描述符的地址对应的所述外部存储器,生成第一入队信息并将所述第一入队信息发送至所述队列管理器,所述第一入队信息包括所述队尾报文描述符的地址;
所述队列管理器,还用于接收所述数据通道发送的所述第一入队信息,并根据所述第一入队信息,将所述队尾报文描述符的数据长度改为所述队尾报文描述符的数据长度与所述报文a的报文长度之和;
将所述队列数据长度改为所述队列数据长度与所述报文a的报文长度之和;
所述数据通道,还用于根据所述第一入队请求响应信息为所述报文b申请一个新的报文描述符地址,将所述报文b写入所述新的报文描述符地址对应的所述外部存储器,生成第二入队信息并将所述第二入队信息发送至所述队列管理器,所述第二入队信息包括所述新的报文描述符地址;
所述队列管理器,还用于接收所述数据通道发送的所述第二入队信息,根据所述第二入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;
将所述队尾报文描述符的地址改为所述新的报文描述符地址;
将所述队列数据长度改为所述队列数据长度与所述报文b的报文长度之和;
根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文b的报文长度。
17.根据权利要求14所述的装置,其特征在于,
所述数据通道,还用于根据所述第一入队请求响应信息为所述报文申请一个新的报文描述符地址,将所述报文写入所述新的报文描述符地址对应的所述外部存储器,生成入队信息并将所述入队信息发送至所述队列管理器,所述入队信息包括所述新的报文描述符地址;
所述队列管理器,还用于接收所述数据通道发送的所述入队信息,根据所述入队信息将所述队尾报文描述符的下一跳报文描述符地址改为所述新的报文描述符地址;
将所述队尾报文描述符的地址改为所述新的报文描述符地址;
将所述队列数据长度改为所述队列数据长度与所述报文长度之和;
根据所述新的报文描述符地址,将所述报文描述符列表中所述新的报文描述符地址对应报文描述符的数据长度改为所述报文长度。
18.根据权利要求10~17任一项所述的装置,其特征在于,所述报文调度装置还包括调度器及出口处理器,
所述队列管理器,还用于根据所述队列描述符列表生成队列信息,将所述队列信息发送至所述调度器,所述队列信息包括所述队列数据长度;
所述调度器,用于接收所述队列管理器发送的所述队列信息,根据所述队列信息,选择被调度队列,将所述被调度队列的队列编号发送至所述队列管理器;
所述队列管理器,还用于接收所述调度器发送的所述队列编号,根据所述队列编号从所述队列描述符列表中读取所述队列编号对应的队列描述符,根据所述队列描述符中队头报文描述符的地址从所述报文描述符列表中读取所述队头报文描述符,生成出队信息,并将所述出队信息发送至所述数据通道;
所述数据通道,还用于接收所述队列管理器发送的所述出队信息,根据所述出队信息将所述队头报文描述符结束拼包,将所述队头报文描述符的地址对应的外部存储器中存储的报文通过出口处理器发送出去;
所述队列管理器,还用于将所述队头报文描述符的地址改为所述队头报文描述符的下一跳报文描述符地址,将所述队列数据长度改为所述队列数据长度与所述队头报文描述符的数据长度之差的绝对值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310673752.XA CN103647726B (zh) | 2013-12-11 | 2013-12-11 | 一种报文调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310673752.XA CN103647726B (zh) | 2013-12-11 | 2013-12-11 | 一种报文调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103647726A true CN103647726A (zh) | 2014-03-19 |
CN103647726B CN103647726B (zh) | 2017-01-11 |
Family
ID=50252884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310673752.XA Active CN103647726B (zh) | 2013-12-11 | 2013-12-11 | 一种报文调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103647726B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245471A (zh) * | 2015-09-25 | 2016-01-13 | 京信通信技术(广州)有限公司 | 报文发送方法及报文发送装置 |
WO2016019554A1 (zh) * | 2014-08-07 | 2016-02-11 | 华为技术有限公司 | 一种队列管理的方法和装置 |
CN106130930A (zh) * | 2016-06-24 | 2016-11-16 | 西安电子科技大学 | 一种数据帧预入队处理的装置及方法 |
CN106713172A (zh) * | 2015-11-16 | 2017-05-24 | 华为数字技术(苏州)有限公司 | 一种调度报文的方法和装置 |
WO2017088180A1 (zh) * | 2015-11-27 | 2017-06-01 | 华为技术有限公司 | 向队列存储数据的方法、装置及设备 |
CN107342954A (zh) * | 2017-06-29 | 2017-11-10 | 北京东土军悦科技有限公司 | 一种报文的调度方法及装置 |
CN107911317A (zh) * | 2017-11-30 | 2018-04-13 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
WO2019095942A1 (zh) * | 2017-11-17 | 2019-05-23 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
CN111107017A (zh) * | 2019-12-06 | 2020-05-05 | 苏州浪潮智能科技有限公司 | 一种交换机报文拥塞的处理方法、设备以及存储介质 |
CN112134757A (zh) * | 2020-09-21 | 2020-12-25 | 北京信而泰科技股份有限公司 | 一种报文生成方法及装置 |
CN113454957A (zh) * | 2019-02-22 | 2021-09-28 | 华为技术有限公司 | 一种存储器的管理方法及装置 |
CN114301812A (zh) * | 2021-12-29 | 2022-04-08 | 北京物芯科技有限责任公司 | 报文处理结果的监控方法、装置、设备以及存储介质 |
CN114338523A (zh) * | 2014-12-30 | 2022-04-12 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN115914130A (zh) * | 2022-11-14 | 2023-04-04 | 天翼云科技有限公司 | 智能网卡的数据流量处理方法及装置 |
CN118138547A (zh) * | 2024-05-07 | 2024-06-04 | 珠海星云智联科技有限公司 | 用于发包描述符获取的方法、计算机设备及介质 |
CN118677859A (zh) * | 2024-08-21 | 2024-09-20 | 格创通信(浙江)有限公司 | 一种报文入队方法、装置、网络芯片及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035719B (zh) * | 2009-09-29 | 2013-04-24 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN102308537A (zh) * | 2011-07-19 | 2012-01-04 | 华为技术有限公司 | 一种队列管理方法、装置及系统 |
-
2013
- 2013-12-11 CN CN201310673752.XA patent/CN103647726B/zh active Active
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016019554A1 (zh) * | 2014-08-07 | 2016-02-11 | 华为技术有限公司 | 一种队列管理的方法和装置 |
CN106537858A (zh) * | 2014-08-07 | 2017-03-22 | 华为技术有限公司 | 一种队列管理的方法和装置 |
CN106537858B (zh) * | 2014-08-07 | 2019-07-19 | 华为技术有限公司 | 一种队列管理的方法和装置 |
US10248350B2 (en) | 2014-08-07 | 2019-04-02 | Huawei Technologies Co., Ltd | Queue management method and apparatus |
CN114338523A (zh) * | 2014-12-30 | 2022-04-12 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN105245471A (zh) * | 2015-09-25 | 2016-01-13 | 京信通信技术(广州)有限公司 | 报文发送方法及报文发送装置 |
CN106713172A (zh) * | 2015-11-16 | 2017-05-24 | 华为数字技术(苏州)有限公司 | 一种调度报文的方法和装置 |
CN106713172B (zh) * | 2015-11-16 | 2019-06-18 | 华为数字技术(苏州)有限公司 | 一种调度报文的方法和装置 |
WO2017088180A1 (zh) * | 2015-11-27 | 2017-06-01 | 华为技术有限公司 | 向队列存储数据的方法、装置及设备 |
CN106130930B (zh) * | 2016-06-24 | 2019-04-19 | 西安电子科技大学 | 一种数据帧预入队处理的装置及方法 |
CN106130930A (zh) * | 2016-06-24 | 2016-11-16 | 西安电子科技大学 | 一种数据帧预入队处理的装置及方法 |
CN107342954A (zh) * | 2017-06-29 | 2017-11-10 | 北京东土军悦科技有限公司 | 一种报文的调度方法及装置 |
CN107342954B (zh) * | 2017-06-29 | 2019-11-22 | 北京东土军悦科技有限公司 | 一种报文的调度方法及装置 |
WO2019095942A1 (zh) * | 2017-11-17 | 2019-05-23 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
CN109802897A (zh) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
CN109802897B (zh) * | 2017-11-17 | 2020-12-01 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
US11297011B2 (en) | 2017-11-17 | 2022-04-05 | Huawei Technologies Co., Ltd. | Data transmission method and communications device |
CN107911317A (zh) * | 2017-11-30 | 2018-04-13 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
CN107911317B (zh) * | 2017-11-30 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
CN113454957A (zh) * | 2019-02-22 | 2021-09-28 | 华为技术有限公司 | 一种存储器的管理方法及装置 |
CN113454957B (zh) * | 2019-02-22 | 2023-04-25 | 华为技术有限公司 | 一种存储器的管理方法及装置 |
US11695710B2 (en) | 2019-02-22 | 2023-07-04 | Huawei Technologies Co., Ltd. | Buffer management method and apparatus |
CN111107017A (zh) * | 2019-12-06 | 2020-05-05 | 苏州浪潮智能科技有限公司 | 一种交换机报文拥塞的处理方法、设备以及存储介质 |
CN112134757A (zh) * | 2020-09-21 | 2020-12-25 | 北京信而泰科技股份有限公司 | 一种报文生成方法及装置 |
CN114301812A (zh) * | 2021-12-29 | 2022-04-08 | 北京物芯科技有限责任公司 | 报文处理结果的监控方法、装置、设备以及存储介质 |
CN115914130A (zh) * | 2022-11-14 | 2023-04-04 | 天翼云科技有限公司 | 智能网卡的数据流量处理方法及装置 |
CN115914130B (zh) * | 2022-11-14 | 2024-10-22 | 天翼云科技有限公司 | 智能网卡的数据流量处理方法及装置 |
CN118138547A (zh) * | 2024-05-07 | 2024-06-04 | 珠海星云智联科技有限公司 | 用于发包描述符获取的方法、计算机设备及介质 |
CN118138547B (zh) * | 2024-05-07 | 2024-07-23 | 珠海星云智联科技有限公司 | 用于发包描述符获取的方法、计算机设备及介质 |
CN118677859A (zh) * | 2024-08-21 | 2024-09-20 | 格创通信(浙江)有限公司 | 一种报文入队方法、装置、网络芯片及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103647726B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103647726A (zh) | 一种报文调度方法及装置 | |
CN107391271A (zh) | 一种基于消息队列系统的延时任务触发方法和装置 | |
US20150189030A1 (en) | Message processing method, device and system for Internet of Things | |
CN101242360B (zh) | 一种基于优先级队列的网络地址转换方法及系统 | |
JP7074839B2 (ja) | パケット処理 | |
US7123614B2 (en) | Method and device for communicating between a first and a second network | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
KR101663412B1 (ko) | 사물 인터넷에서 dds 기반 사물 품질의 설정 방법 | |
US20100150150A1 (en) | Optimizing Throughput of Data in a Communications Network | |
CN108462649A (zh) | 降低onu中拥塞状态下高优先级数据传输时延的方法和装置 | |
CN114710571B (zh) | 数据包处理系统 | |
CN102118361A (zh) | 一种基于网络协议的数据传输控制方法和装置 | |
CN102143053B (zh) | 传输数据的方法、装置和系统 | |
CN112202781B (zh) | 一种电商大数据量回执报文处理方法、装置和系统 | |
CN102546423A (zh) | 队列调度方法、装置及网络设备 | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN1829231B (zh) | 直接接收入站数据的方法和装置 | |
KR20220027715A (ko) | 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스를 제공하는 프로그램 | |
CN102299861B (zh) | 一种报文流量控制方法 | |
WO2019095942A1 (zh) | 一种数据传输方法及通信设备 | |
CN115955441A (zh) | 一种基于tsn队列的管理调度方法、装置 | |
US9338219B2 (en) | Direct push operations and gather operations | |
CN113992609B (zh) | 一种处理多链路业务数据乱序的方法及系统 | |
US10250515B2 (en) | Method and device for forwarding data messages | |
CN112491620B (zh) | 一种基于srio的多通道数据传输控制器及调整方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |