[发明专利]一种基于控制块预分配的分组接收方法和装置有效

专利信息
申请号: 201610034905.X 申请日: 2016-01-20
公开(公告)号: CN105656805B 公开(公告)日: 2018-09-25
发明(设计)人: 孙志刚;严锦立;李韬;吕高锋;韩彪;唐路;徐东来;毛健彪 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: H04L12/861 分类号: H04L12/861;H04L12/879;H04L12/883;H04L12/925;H04L12/741
代理公司: 湖南省国防科技工业局专利中心 43102 代理人: 冯青
地址: 410073 *** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种基于控制块预分配的分组接收方法和装置。通过软件对缓冲区进行预取,下发描述符由硬件管理缓冲区,将报文的控制块和数据块存放在同一块缓冲区中,从而避免了操作系统对报文控制块和数据块的分配开销。通过硬件对报文控制块进行初始化,驱动对报文控制块一些字段进行修改,从而减小报文控制块的赋值开销。通过写寄存器的方式将缓冲区描述符直接回收给硬件进行重利用,不用对缓冲区中数据进行修改,从而避免操作系统对报文的释放开销。解决协议栈处理中报文控制块申请和释放开销大的问题。
搜索关键词: 一种 基于 控制 分配 分组 接收 方法 装置
【主权项】:
1.一种基于控制块预分配的分组接收方法,通过在缓冲区初始化过程中,软件首先预申请报文缓冲区,通过下发描述符的方式由硬件管理这些缓冲区,其特征在于,每个报文缓冲区大小为2KB,依次由32B的描述信息、32B的预留字段headroom、报文数据块、32B的预留字段tailroom和报文控制块组成,基于控制块预分配的分组接收方法的处理流程分为以下几步:A、通过在系统初始化阶段,驱动预先申请报文缓冲区,将报文描述符信息下发给硬件进行管理,从而不需要在软件中构造描述符环进行管理;B、网卡接收到报文,由硬件为报文添加描述信息和报文控制块,请求DMA进行发送,DMA从硬件的描述符池中申请一个报文描述符,将报文写入对应的内存区域中;C、驱动根据报文首地址对报文链进行轮询,对于需要发送到协议栈的报文,驱动会根据报文的相关信息对控制块字段进行修改,然后将报文发送到协议栈;D、协议栈对报文进行处理后,调用驱动的发送函数,驱动通过写寄存器的方式完成报文发送;E、调用驱动的报文释放函数,驱动通过写寄存器的方式进行缓冲区回收;所述步骤B包括:B1、硬件首先构造描述信息,根据报文的相关信息对其进行赋值,并在报文的headroom中设置报文标记;B2、硬件在报文尾部构造报文控制块,并根据报文的相关信息对其中字段进行赋值;所述步骤D包括:D1、软件对网卡接收的报文进行发送时,驱动通过写寄存器的方式告诉硬件报文的描述符,然后DMA根据描述符将对应的FP报文读入网卡中,最后网卡发送报文;FP为Fast Processing Packet;D2、软件对系统构造的报文进行发送时,将报文数据拷贝到软件管理的FP报文缓冲区中,然后驱动通过写寄存器进行发送;所述步骤E包括:E1、软件对网卡接收的报文进行释放时,驱动直接通过写寄存器的方式告诉硬件需要回收的报文的描述符信息,硬件将只对描述符进行回收,而不对报文进行处理,这样只通过一次寄存器写操作,完成报文控制块和数据块的回收;E2、软件对系统构造的报文进行释放时,驱动调用操作系统的释放机制,首先释放报文数据块,然后释放报文控制块。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610034905.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top