CN109298931B - 缓冲区按需释放方法及网络设备 - Google Patents
缓冲区按需释放方法及网络设备 Download PDFInfo
- Publication number
- CN109298931B CN109298931B CN201710612789.XA CN201710612789A CN109298931B CN 109298931 B CN109298931 B CN 109298931B CN 201710612789 A CN201710612789 A CN 201710612789A CN 109298931 B CN109298931 B CN 109298931B
- Authority
- CN
- China
- Prior art keywords
- buffer
- message
- releasing
- pointer
- ring
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种缓冲区按需释放方法及网络设备。所述方法应用于网络设备,所述方法包括:根据上层软件需求调用对应的发送函数。根据发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送。当报文发送完成后,清理BD环,并根据BD环对应的数组中是否记录缓冲区决定是否释放缓冲区。由此,有效解决了在一个网络接口上可同时支持释放报文的发送功能及不释放报文的发送功能。可按照需求灵活地对缓存区进行释放,避免由于使用其它复杂方式使实现处理不够优良时导致报文未发送完成缓冲区就被释放、报文缓冲区内存泄漏等问题的发生。
Description
技术领域
本发明涉及通信网络接口驱动技术领域,具体而言,涉及一种缓冲区按需释放方法及网络设备。
背景技术
在正常的应用场景中,比如,以太网卡的应用场景中,报文发送完成后,底层驱动会将报文释放。但在一些特殊的应用场景中,比如,加密卡的应用场景中,加解密报文发送完成后,由于上层业务还要使用已发送的报文,要求底层驱动不对报文进行释放;而当随机数请求报文发送完成后,则要求底层驱动释放报文。由此,如何让同一接口可同时支持释放报文的发送功能及不释放报文的发送功能的是需要解决的技术问题。
为解决上述问题,现有技术方案如下:
1.针对加密卡统一提供不释放报文的发送函数。该种方法缺点在于,若只提供不释放报文的发送函数,则加密卡驱动在发送完随机数请求报文后需要自己去释放报文,增加了加密卡驱动的工作负担,并且,加密卡驱动不知道报文发送完成的准确时间,即不知道确切的释放时机,可能造成报文未发送完成就被释放的问题。
2.支持热插拔的设备,存在各种接口板卡混插的问题,比如,先插的以太网卡需要换为加密卡,或先插的加密卡需要换为以太网卡。现有的操作是:插入以太网卡时,将发送完成后挂在发送BD(Buffer descriptor,缓冲区描述符)环上的报文全部释放。而插入加密卡时,则不释放挂在发送BD环上的报文。这样操作的问题在于,当先插以太网卡,后插加密卡时,加密卡发送报文后以不释放报文的方式处理挂在BD环上的报文,会导致之前以太网卡挂在BD环上应该释放的报文没有释放,出现报文缓冲区内存泄漏。反之,以太网卡发送报文后会使之前加密卡挂在BD环上不应该释放的报文被释放,可能导致上层业务正在使用的报文被释放了,出现未知的问题。
发明内容
为了克服现有技术中的上述不足,本发明提供一种缓冲区按需释放方法及网络设备,其能够有效解决在一个网络接口上同时支持释放报文的发送功能及不释放报文的发送功能,可按照需求灵活地对缓存区进行释放。
本发明的第一目的在于提供一种缓冲区按需释放方法,应用于网络设备,所述方法包括:
根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数;
根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入缓冲区描述符BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送;
当报文发送完成后,清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区。
本发明的第二目的在于提供一种网络设备,所述网络设备包括:
调用模块,用于根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数;
记录模块,用于根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入缓冲区描述符BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送;
清理释放模块,当报文发送完成后,用于清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区。
相对于现有技术而言,本发明具有以下有益效果:
本发明较佳实施例提供一种缓冲区按需释放方法及网络设备。所述缓冲区按需释放方法应用于网络设备,所述方法包括:根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数。根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送。当报文发送完成后,清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区。由此,有效解决了在一个网络接口上可同时支持释放报文的发送功能及不释放报文的发送功能。可按照需求灵活地对缓存区进行释放,避免现有技术中会出现的报文未发送完成缓冲区就被释放、报文缓冲区内存泄漏等问题的发生。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明较佳实施例提供的缓冲区按需释放方法的步骤流程图之一。
图2是本发明较佳实施例提供的缓冲区按需释放方法的步骤流程图之二。
图3是本发明较佳实施例提供的图1所示的步骤S140的子步骤流程图之一。
图4是本发明较佳实施例提供的软件硬件交互模型示意图之一。
图5是本发明较佳实施例提供的图1所示的步骤S140的子步骤流程图之二。
图6是本发明较佳实施例提供的软件硬件交互模型示意图之二。
图7是本发明较佳实施例提供的软件硬件交互模型示意图之三。
图8是本发明较佳实施例提供的图1所示的步骤S150的子步骤流程图。
图9是本发明较佳实施例提供的网络设备的功能模块框图。
图标:100-网络设备;110-配置模块;120-调用模块;130-记录模块;140-清理释放模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本发明提供的网络设备100可以是,但不限于,路由器、移动终端(比如,手机、平板电脑)、交换机及网桥等带网络接口的设备。
第一实施例
请参照图1,图1是本发明较佳实施例提供的缓冲区按需释放方法的步骤流程图之一。所述缓冲区按需释放方法应用于网络设备100,下面对缓冲区按需释放方法的具体流程进行详细阐述。
步骤S130,根据上层软件需求调用对应的发送函数。
在本实施例中,所述上层软件需求包括:发送报文后释放报文缓冲区,以及发送报文后不释放报文缓冲区。所述发送函数包括释放缓冲区函数及不释放缓冲区函数。
在本实施例中,网络设备100中运行的上层软件驱动模块会根据自身不同的需求调用对应的发送函数。例如,有发送报文后释放报文缓冲区需求的上层驱动模块A可调用释放缓冲区函数进行报文发送。有发送报文后不释放报文缓冲区需求的上层驱动模块B可调用不释放缓冲区函数进行报文发送。
在正常的应用场景,比如,以太网卡的应用场景中,或者加密卡发送随机数请求报文的应用场景中,上层驱动模块有发送报文后释放报文缓冲区的需求,上层驱动模块在发送报文之后,不会再对缓存报文的缓冲区进行使用,该上层驱动模块可调用对应的释放缓冲区函数进行报文发送。
在一些特殊的应用场景中,比如,加密卡发送加解密报文的应用场景中,上层驱动模块有发送报文后不释放报文缓冲区的需求,上层驱动模块在报文发送完成后,还需要使用该报文的缓冲区,该上层驱动模块可调用对应的不释放缓冲区函数进行报文发送。
在本实施例中,缓冲区(buffer,简称buf)是在计算机的高速部件与低速部件通讯时,用于暂存高速部件输出的结构,以缓和高速部件与低速部件速度不匹配的矛盾,提高并行性。
步骤S140,根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送。
在本实施例中,驱动软件模块收发报文时,通过BD与硬件进行交互。BD环可以是,但不限于,一种队列结构,BD环可包括多个BD,BD也是一种结构体,可用于保存缓冲区指针,同时,也可用于存储一些与硬件交互相关的标志。
步骤S150,当报文发送完成后,清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区。
在本实施例中,只有在BD环对应的数组中记录了缓冲区指针,才会将对应的缓冲区进行释放。
请参照图2,图2是本发明较佳实施例提供的缓冲区按需释放方法的步骤流程图之二。所述方法还包括:
步骤S110,配置不同上层软件需求对应的发送函数。
在本实施例中,所述发送函数由运行于网络设备100中的底层驱动模块提供。所述底层驱动模块根据不同的上层软件需求提供对应的发送函数。所述底层驱动模块为有发送报文后释放报文缓冲区需求的上层驱动模块配置的发送函数为释放缓冲区函数,为有发送报文后不释放报文缓冲区需求的上层驱动模块配置的发送函数为不释放缓冲区函数。
步骤S120,配置一个与BD环长度相同的用于记录缓冲区指针的指针数组。
在本实施例中,所述底层驱动模块预先配置一与BD环长度相同的指针数组。该数组用于对需要在发送报文后释放报文缓冲区的缓冲区指针进行记录存储。其中,数组的下标与BD环中BD下标一一对应。
下面结合上述描述对图1中的步骤S140进行说明。
请参照图3,图3是本发明较佳实施例提供的图1所示的步骤S140的子步骤流程图之一。所述步骤S140包括子步骤S141及子步骤S142。
在本实施例中,当调用释放缓冲区函数时,执行图3所示的子步骤S141及子步骤S142。
子步骤S141,将缓冲区指针存入到数组下标中。
在本实施例中,若上层驱动模块调用了释放缓冲区函数,运行于网络设备100的底层驱动模块将缓冲区指针存入到数组下标中。
子步骤S142,将所述缓冲区指针存入到与存入该缓冲区指针的数组下标对应的BD环的BD中。
在本实施例中,所述底层驱动模块同时将上述数组下标中存入的缓冲区指针存入与该数组下标对应的BD环的BD中。
请参照图4,图4是本发明较佳实施例提供的软件硬件交互模型示意图之一。
在本实施例中,若上层软件驱动模块调用释放缓冲区函数,该释放缓冲区函数可将上层软件下发的缓冲区指针先记录到数组中,再存入BD环对应的BD中,如图4所示,BD环中记录的缓冲区指针与数组中记录的缓冲区指针一一对应。
在本实施例中,在正常的应用场景中,比如,以太网卡的应用场景,或者加密卡发送随机数请求报文的应用场景中,软件硬件的交互模型如图4所示。
请参照图5,图5是本发明较佳实施例提供的图1所示的步骤S140的子步骤流程图之二。所述步骤S140还可包括子步骤S143。
在本实施例中,当调用不释放缓冲区函数时,执行图5所示的子步骤S143。
子步骤S143,将所述缓冲区指针存入BD环的BD中。
请参照图6,图6是本发明较佳实施例提供的软件硬件交互模型示意图之二。若上层软件驱动模块调用不释放缓冲区函数时,该不释放缓冲区函数直接将所述缓冲区指针存入BD环的BD中,不会进行数组记录的操作。
在本实施例中,在一些特殊的应用场景中,比如,加密卡发送加解密报文的应用场景中,软件硬件的交互模型如图6所示。
此外,请参照图7,图7是本发明较佳实施例提供的软件硬件交互模型示意图之三。当加密卡同时发送加解密报文和随机数请求报文时,数组及BD环的状态如图7所示。发送加解密报文时,调用不释放缓冲区函数,此时数组不记录缓冲区指针;发送随机数请求报文时,调用释放缓冲区函数,数组记录缓冲区指针,且记录该缓冲区指针的数组下标与BD环中存入该缓冲区指针的BD的下标对应。
下面结合上述描述对图1中的步骤S150进行说明。
请参照图8,图8是本发明较佳实施例提供的图1所示的步骤S150的子步骤流程图。所述步骤S150包括子步骤S151、子步骤S152子步骤S153及子步骤S154。
子步骤S151,对BD环中的BD结构进行清理。
在本实施例中,在报文发送完成时后,运行于网络设备100的底层驱动模块需要逐一对BD环中每个BD的BD结构进行清理,以便于下次使用。
子步骤S152,查找当前被清理BD对应的数组下标中是否记录有缓冲区指针。
在本实施例中,在当前BD被清理后,底层驱动模块查找当前被清理BD对应的数组下标中是否记录有缓冲区指针。
若有记录,执行子步骤S153。
子步骤S153,对记录的所述缓冲区指针对应的缓冲区进行释放,完成当前BD清理,以对下一个BD进行清理。
若没有记录,执行子步骤S154。
子步骤S154,完成当前BD清理,以对下一个BD进行清理。
除此之外,本方案还能有效解决支持热插拔设备的网卡混插问题。热插拔即带电插拔,热插拔功能是允许用户在不关闭系统,不切断电源的情况下对硬盘、网卡、接口板卡等部件进行更换,以提高系统的及时恢复能力、扩展性及灵活性。
例如,根据实际需求,需要将先插入的以太网卡换为加密卡时,数组中记录有以太网卡发送报文时保存的缓冲区指针,此时数组及BD环的状态如图4所示。即使当前是加密卡,在报文发送完成后,也同样会根据数组中记录的缓冲区指针进行缓冲区释放,由此,不会出现现有方案中该释放的缓冲区不释放而导致的报文泄漏的问题。
例如,根据实际需求,需要将先插入加密卡换为以太网卡时,数组记录的是加密卡发送报文后的情况,此时数组及BD环的状态如图7所示,在报文发送完成后,同样根据数组中记录的缓冲区指针进行缓冲区释放,不会出现缓冲区释放紊乱的问题。
在本实施例中,本方案针对不同的需求分别提供了对应的发送函数,本方案还提供了数组,调用不同的发送函数可选择对数组进行记录或不记录缓冲区指针的操作。本方案根据数组中记录的缓冲区指针实现对缓存区的按需释放。
第二实施例
请参照图9,图9是本发明较佳实施例提供的网络设备100的功能模块框图。所述网络设备100包括:调用模块120、记录模块130及清理释放模块140。
调用模块120,用于根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数。
在本实施例中,所述调用模块120用于执行图1中的步骤S130,关于所述调用模块120的具体描述可以参照步骤S130的描述。
记录模块130,用于根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入缓冲区描述符BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送。
在本实施例中,所述记录模块130用于执行图1中的步骤S140,关于所述记录模块130的具体描述可以参照步骤S140的描述。
清理释放模块140,当报文发送完成后,用于清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区。
在本实施例中,所述清理释放模块140用于执行图1中的步骤S150,关于所述清理释放模块140的具体描述可以参照步骤S150的描述。
请再次参照图9,所述网络设备100还包括:配置模块110。
配置模块110,用于配置不同上层软件需求对应的发送函数,其中,所述上层软件需求包括:发送报文后释放报文缓冲区及发送报文后不释放报文缓冲区,配置发送报文后释放报文缓冲区需求对应的发送函数为释放缓冲区函数,配置发送报文后不释放报文缓冲区需求对应的发送函数为不释放缓冲区函数。
在本实施例中,所述配置模块110用于执行图2中的步骤S110,关于所述配置模块110的具体描述可以参照步骤S110的描述。
配置模块110,还用于配置一个与BD环长度相同的用于记录缓冲区指针的指针数组,其中,数组的下标与BD环中BD下标一一对应。
在本实施例中,所述配置模块110用于执行图2中的步骤S120,关于所述配置模块110的具体描述可以参照步骤S120的描述。
在本实施例中,上层驱动模块包括所述调用模块120,底层驱动模块包括记录模块130、清理释放模块140及配置模块110。
综上所述,本发明提供一种缓冲区按需释放方法及网络设备。所述缓冲区按需释放方法应用于网络设备,所述方法包括:根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数。根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入缓冲区描述符BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送。当报文发送完成后,清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区。
由此,有效解决了在一个网络接口上可同时支持释放报文的发送功能及不释放报文的发送功能。可按照需求灵活地对缓存区进行释放,避免现有技术中会出现的报文未发送完成缓冲区就被释放、报文缓冲区内存泄漏等问题的发生。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种缓冲区按需释放方法,应用于网络设备,其特征在于,所述方法包括:
根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数;
根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入缓冲区描述符BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送;
当报文发送完成后,清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区;
配置一个与BD环长度相同的用于记录所述缓冲区指针的指针数组,其中,所述指针数组的下标与BD环中BD下标一一对应;
当调用释放缓冲区函数时,所述根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环的步骤包括:
将所述缓冲区指针存入到与存入该缓冲区指针的数组下标对应的BD环的BD中;
当调用不释放缓冲区函数时,所述根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环的步骤包括:
将所述缓冲区指针存入BD环的BD中,数组不记录缓冲区指针。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
配置不同上层软件需求对应的发送函数,其中,所述上层软件需求包括:发送报文后释放报文缓冲区及发送报文后不释放报文缓冲区,配置发送报文后释放报文缓冲区需求对应的发送函数为释放缓冲区函数,配置发送报文后不释放报文缓冲区需求对应的发送函数为不释放缓冲区函数。
3.根据权利要求1所述的方法,其特征在于,所述清理BD环,并根据BD环对应的数组中记录的缓冲区指针选择对应的缓冲区进行释放的步骤包括:
对BD环中的BD结构进行清理;
查找当前被清理BD对应的数组下标中是否记录有缓冲区指针;
若有记录,对记录的所述缓冲区指针对应的缓冲区进行释放,完成当前BD清理,以对下一个BD进行清理;
若没有记录,完成当前BD清理,以对下一个BD进行清理。
4.一种网络设备,其特征在于,所述网络设备包括:
调用模块,用于根据上层软件需求调用对应的发送函数,其中,所述发送函数包括释放缓冲区函数及不释放缓冲区函数;
记录模块,用于根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入缓冲区描述符BD环,以使网络接口芯片根据BD环中存储的缓冲区指针对报文进行发送;
清理释放模块,当报文发送完成后,用于清理BD环,并根据BD环对应的数组中是否记录缓冲区指针决定是否释放缓冲区;
配置模块,用于配置一个与BD环长度相同的用于记录缓冲区指针的指针数组,其中,数组的下标与BD环中BD下标一一对应;
当调用释放缓冲区函数时,所述记录模块根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环的方式包括:
将所述缓冲区指针存入到与存入该缓冲区指针的数组下标对应的BD环的BD中;
当调用不释放缓冲区函数时,所述根据所述发送函数的类型选择是否在数组中对缓冲区指针进行记录,并将缓冲区指针存入BD环的方式包括:
将所述缓冲区指针存入BD环的BD中,数组不记录缓冲区指针。
5.根据权利要求4所述的网络设备,其特征在于,所述配置模块,还用于:
配置不同上层软件需求对应的发送函数,其中,所述上层软件需求包括:发送报文后释放报文缓冲区及发送报文后不释放报文缓冲区,配置发送报文后释放报文缓冲区需求对应的发送函数为释放缓冲区函数,配置发送报文后不释放报文缓冲区需求对应的发送函数为不释放缓冲区函数。
6.根据权利要求4所述的网络设备,其特征在于,所述清理释放模块清理BD环,并根据BD环对应的数组中记录的缓冲区指针选择对应的缓冲区进行释放的方式包括:
对BD环中的BD结构进行清理;
查找当前被清理BD对应的数组下标中是否记录有缓冲区指针;
若有记录,对记录的所述缓冲区指针对应的缓冲区进行释放,完成当前BD清理,以对下一个BD进行清理;
若没有记录,完成当前BD清理,以对下一个BD进行清理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710612789.XA CN109298931B (zh) | 2017-07-25 | 2017-07-25 | 缓冲区按需释放方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710612789.XA CN109298931B (zh) | 2017-07-25 | 2017-07-25 | 缓冲区按需释放方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109298931A CN109298931A (zh) | 2019-02-01 |
CN109298931B true CN109298931B (zh) | 2022-04-08 |
Family
ID=65167394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710612789.XA Active CN109298931B (zh) | 2017-07-25 | 2017-07-25 | 缓冲区按需释放方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109298931B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543367B (zh) * | 2019-08-30 | 2022-07-26 | 联想(北京)有限公司 | 资源处理方法及其装置、电子设备和介质 |
CN111277514B (zh) * | 2020-01-21 | 2023-07-18 | 新华三技术有限公司合肥分公司 | 一种报文队列分配方法、报文转发方法及相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068229A (zh) * | 2007-06-08 | 2007-11-07 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
CN101079015A (zh) * | 2007-06-28 | 2007-11-28 | 杭州华三通信技术有限公司 | 数据传送方法及系统 |
KR20080070143A (ko) * | 2007-01-25 | 2008-07-30 | 삼성전자주식회사 | 네트워크 시스템에서 큐 처리 방법 및 장치 |
CN102255818A (zh) * | 2011-08-26 | 2011-11-23 | 迈普通信技术股份有限公司 | 一种驱动接收报文的方法及装置 |
CN104468404A (zh) * | 2014-11-07 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种缓冲区配置方法及装置 |
JP2016045776A (ja) * | 2014-08-25 | 2016-04-04 | 株式会社沖データ | 情報処理装置 |
CN106357393A (zh) * | 2016-08-27 | 2017-01-25 | 飞天诚信科技股份有限公司 | 一种安全的数据传输方法及装置 |
-
2017
- 2017-07-25 CN CN201710612789.XA patent/CN109298931B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080070143A (ko) * | 2007-01-25 | 2008-07-30 | 삼성전자주식회사 | 네트워크 시스템에서 큐 처리 방법 및 장치 |
CN101068229A (zh) * | 2007-06-08 | 2007-11-07 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
CN101079015A (zh) * | 2007-06-28 | 2007-11-28 | 杭州华三通信技术有限公司 | 数据传送方法及系统 |
CN102255818A (zh) * | 2011-08-26 | 2011-11-23 | 迈普通信技术股份有限公司 | 一种驱动接收报文的方法及装置 |
JP2016045776A (ja) * | 2014-08-25 | 2016-04-04 | 株式会社沖データ | 情報処理装置 |
CN104468404A (zh) * | 2014-11-07 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种缓冲区配置方法及装置 |
CN106357393A (zh) * | 2016-08-27 | 2017-01-25 | 飞天诚信科技股份有限公司 | 一种安全的数据传输方法及装置 |
Non-Patent Citations (2)
Title |
---|
Information Filtering and Array Algorithms for Descriptor Systems Subject to Parameter Uncertainties;Marco Henrique Terra 等;《IEEE Transactions on Signal Processing》;IEEE;20061219;第55卷(第1期);第1-9页 * |
一种稳定高效的加密报文回收设计;秦培斌 等;《通信技术》;万方数据;20150602;第48卷(第4期);第473-477页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109298931A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109660584A (zh) | 一种客户端与服务器建立长连接的方法及通信方法与通信系统 | |
JP7116802B2 (ja) | マスター・スタンドバイコンテナシステム切替 | |
CN113641511A (zh) | 一种消息通信方法和装置 | |
CN109298931B (zh) | 缓冲区按需释放方法及网络设备 | |
CN103164309A (zh) | Sol功能测试方法及系统 | |
CN114285695B (zh) | 通信方法、装置、设备、系统和存储介质 | |
CN105718304A (zh) | 虚拟机管理方法及系统 | |
US6154129A (en) | Operation system for transmission devices and alarm monitoring method | |
CN108512753A (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN106358221A (zh) | 主卡数据的恢复方法和装置 | |
CN115729164B (zh) | 一种工业通信系统管理方法、装置及工业通信系统 | |
CN111225242A (zh) | 视频播放容灾方法、装置及计算机存储介质 | |
CN110995780A (zh) | Api调用方法、装置、存储介质及电子设备 | |
JP3908589B2 (ja) | 通信システム、コネクション管理サーバ装置及びプログラム | |
CN102970191A (zh) | 一种分布式系统中检测协议的实现方法和装置 | |
CN113114522B (zh) | 流量监控设备 | |
CN110688267B (zh) | 一种硬盘端口的修复方法及装置 | |
CN110971696B (zh) | 一种实现虚拟电子卡通讯的系统和方法 | |
CN106547485A (zh) | 数据迁移方法及装置 | |
CN113645156A (zh) | 交换机sai层消息队列调节方法、系统、终端及存储介质 | |
CN112380096A (zh) | 一种基于虚拟串口的串口通信监视系统方法 | |
CN109714186A (zh) | 金融机构间通信方法、装置、设备及计算机可读存储介质 | |
CN107783722B (zh) | 数据传输方法和数据转发装置 | |
CN114356830B (zh) | 总线终端控制方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |