【技术实现步骤摘要】
一种队列清空方法以及相关设备
本专利技术涉及通信
,尤其涉及一种队列清空方法以及相关设备。
技术介绍
现代通信设备需要提供大容量的数据包缓存来吸收突发的数据包。缓存在通信设备中的数据包按照数据包的包描述符组成队列进行管理,并按照队列的优先级进行调度发送。为了保证一个用户的数据包不被错发给另一个用户,当一个用户下线时,需要将该用户的数据包对应的包描述符组成的队列清空后才能将该队列重新分配给另一用户。现有的队列清空方式为:向流量管理芯片下发针对需要清空队列的队列清空命令;流量管理芯片接收到该队列清空命令之后,等待该需要清空队列被调度出队;在该需要清空队列出队时,清空该需要清空队列中的所有包描述符。当需要清空的队列数量较多时,优先级较低的队列等待被调度出队的时间较长,导致优先级较低的队列会长时间无法被调度出队,优先级较低的队列的清空完成时间无法得到保证。
技术实现思路
本专利技术实施例公开了一种队列清空方法以及相关设备,可以解决当需要清空的队列数量较多时,清空速度较慢的问题。本专利技术实施例第一方面公开一种队列清空方法,包括:队列清空处理器从队列信息表中扫描有效队列的清空状态,确定清空状态为“将被清空”的目标队列,所述队列信息表用于记录包括所述有效队列的清空状态;所述队列清空处理器将所述目标队列的清空状态修改为“启动清空”;所述队列清空处理器将所述目标队列清空;其中,当所述目标队列被清空后,所述目标队列的清空状态被修改为“清空完成”。本专利技术实施例无需考虑目标队列的优先级,可以同时扫描多个队列并进行清空,实现批量清空队列,保证队列的清空完成时间,进而提高队列 ...
【技术保护点】
一种队列清空方法,其特征在于,包括:队列清空处理器从队列信息表中扫描有效队列的清空状态,确定清空状态为“将被清空”的目标队列,所述队列信息表用于记录所述有效队列的清空状态;所述队列清空处理器将所述目标队列的清空状态修改为“启动清空”;所述队列清空处理器将所述目标队列清空;其中,当所述目标队列被清空后,所述目标队列的清空状态被修改为“清空完成”。
【技术特征摘要】
1.一种队列清空方法,其特征在于,包括:队列清空处理器从队列信息表中扫描有效队列的清空状态,确定清空状态为“将被清空”的目标队列,所述队列信息表用于记录所述有效队列的清空状态;所述队列清空处理器将所述目标队列的清空状态修改为“启动清空”;所述队列清空处理器将所述目标队列清空;其中,当所述目标队列被清空后,所述目标队列的清空状态被修改为“清空完成”。2.根据权利要求1所述的方法,其特征在于,所述队列清空处理器将所述目标队列的清空状态修改为“启动清空”之后,所述方法还包括:所述队列清空处理器判断所述目标队列是否位于调度器的正常队列链表中,所述调度器用于对所述正常队列链表中的队列进行调度;若否,所述队列清空处理器将所述目标队列添加到所述调度器的清空队列链表中,并执行所述将所述目标队列清空的步骤;若是,则执行所述将所述目标队列清空的步骤。3.根据权利要求2所述的方法,其特征在于,所述队列清空处理器将所述目标队列清空包括:所述队列清空处理器读取所述正常队列链表和/或所述清空队列链表中当前已入队的所有队列的队列标识;当所述正常队列链表和/或所述清空队列链表中当前已入队的所述所有队列的对列标识均被所述队列清空处理器读取之后,所述队列清空处理器接收所述出队处理器发送的清空完成指示,所述清空完成指示用于指示所述正常队列链表和/或所述清空队列链表中当前已入队的所有需要清空的队列均被清空。4.根据权利要求3所述的方法,其特征在于,所述队列清空处理器读取所述正常队列链表和/或所述清空队列链表中当前已入队的所有队列的队列标识包括:所述队列清空处理器读取所述正常队列链表和/或所述清空队列链表中第一队列的第一队列标识,向所述出队处理器发送针对所述第一队列标识的清空检查请求,所述清空检查请求用于请求所述出队处理器检查所述第一队列的清空状态,所述第一队列为所述正常队列链表和/或所述清空队列链表中当前已入队的所有队列中的任一个;所述队列清空处理器接收所述出队处理器发送的清空检查结果,所述清空检查结果用于指示所述第一队列是否需要被清空;若所述清空检查结果指示所述第一队列需要被清空并且所述出队处理器有可用清空引擎对所述第一队列进行清空,所述队列清空处理器将所述第一队列从所述正常队列链表和/或所述清空队列链表中出队,并读取所述正常队列链表和/或所述清空队列链表中所述第一队列的下一个队列的队列标识;若所述清空检查结果指示所述第一队列需要被清空并且所述出队处理器没有可用清空引擎对所述第一队列进行清空,所述队列清空处理器将所述第一队列加入所述清空队列链表中,并读取所述正常队列链表和/或所述清空队列链表中所述第一队列的下一个队列的队列标识;若所述清空检查结果指示所述第一队列不需要被清空,所述队列清空处理器读取所述正常队列链表和/或所述清空队列链表中所述第一队列的下一个队列的队列标识。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:所述队列清空处理器接收针对至少一个队列的清空命令,在所述队列信息表中记录所述至少一个队列的清空状态为所述“将被清空”。6.根据权利要求5所述的方法,其特征在于,所述在所述队列信息表中记录所述至少一个队列的清空状态为所述“将被清空”之后,所述方法还包括:当所述至少一个队列中有数据包入队时,所述队列清空处理器将所述数据包丢弃;当接收到针对所述至少一个队列的数据包调度指令时,所述队列清空处理器将所述数据包调度指令丢弃。7.根据权利要求1-6任一项所述的方法,其特征在于,所述队列清空处理器将所述目标队列清空之后,所述方法还包括:所述队列清空处理器扫描所述队列信息表中所述目标队列的清空状态,检查所述目标队列中是否存在清空状态为所述“启动清空”的队列;若是,所述队列清空处理器将所述目标队列中清空状态为所述“启动清空”的队列修改为所述“清空完成”。8.一种队列清空方法,其特征在于,包括:出队处理器接收队列清空处理器发送的针对第一队列标识的清空检查请求;所述出队处理器从队列信息表中读取所述第一队列标识对应的第一队列的清空状态;当所述第一队列的清空状态为“启动清空”时,所述出队处理器向所述队列清空处理器发送清空检查结果,并利用配置的清空引擎将所述第一队列内的包描述符清空并回收,所述清空检查结果用于指示所述第一队列是否需要被清空。9.根据权利要求8所述的方法,其特征在于,所述出队处理器利用配置的清空引擎将所述第一队列内的包描述符清空并回收包括:所述出队处理器利用配置的清空引擎将所述第一队列内的包描述符清空并将所述包描述符从包描述符缓存中回收。10.根据权利要求9所述的方法,其特征在于,所述出队处理器利用配置的清空引擎将所述第一队列内的包描述符清空并将所述包描述符从包描述符缓存中回收之后,所述方法还包括:所述出队处理器将所述第一队列的清空状态修改为所述“清空完成”;当所有需要清空的队列都完成清空之后,所述出队处理器向队列清空处理器发送清空完成指示,所述清空完成指示用于指示所述队列清空处理器所述所有需要清空的队列的清空操作已完成。1...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。