一种数据处理方法及网络设备的制造方法

文档序号:9432198阅读:266来源:国知局
一种数据处理方法及网络设备的制造方法
【技术领域】
[0001]本发明实施例涉及通信技术领域,尤其涉及一种数据处理方法及网络设备。
【背景技术】
[0002]随着现代通信网络的飞速发展,人们对网络设备提出了更高的要求,不仅需要保证数据的可靠性和安全性,还要求更加高速的数据处理能力。路由器、交换机、防火墙等网络设备通常通过软件管理内存例如通过软件申请或释放的软件缓冲区buffer,对接收的数据进行处理。高速数据处理能力的要求使得网络设备的数据处理方式扩展为通过硬件管理的内存进行数据处理。
[0003]现有技术中,网络设备从外部设备接收到数据后,通过硬件申请硬件buffer,并通过直接内存存取(Direct Memory Access, DMA)方式将数据存储至硬件buffer对应的内存区域中,该存储过程无需中央处理器(Central Processing Unit,CPU)和软件的参与,仅通过网络设备的硬件部分进行操作。在硬件buffer获取到该数据后,网络设备可以将硬件buffer中的数据拷贝到软件buffer的数据区,从而由硬件buffer转换成软件buffer以使得上层应用模块可以通过软件buffer进行数据处理,并将硬件buffer释放回硬件buffer管理单元。其中的软件buffer满足上层应用模块进行数据处理时需要的数据结构,例如,Iinux系统中需要的sk_buff结构的软件buffer,vxwork系统中需要的m_blk结构的软件buffer等。在上层应用模块完成数据处理或数据转发后,将软件buffer释放回软件buffer池。上述过程可以正确地将硬件buffer释放回硬件buffer管理单元并将软件buffer释放回软件buffer池,从而可以避免软件buffer和硬件buffer的错误释放。
[0004]但是,上述过程将硬件buffer中的数据拷贝到软件buffer的数据区的拷贝动作,增加了网络设备进行数据处理的时间,并且过多地消耗了系统资源,从而降低了系统的运行效率。

【发明内容】

[0005]本发明实施例提供一种数据处理方法及网络设备,能够解决现有技术中由于需要将硬件buffer中的数据拷贝到软件buffer的数据区以供上层应用模块进行处理,从而导致的系统运行效率低的问题。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,提供一种数据处理方法,包括:
[0008]A、从物理接口接收到待处理数据后,获取指向空闲硬件buffer的第一指针,所述第一指针指向的地址为所述硬件buffer的起始地址;
[0009]B、根据所述第一指针将待处理数据存储至所述硬件buffer ;
[0010]C、根据所述第一指针获取第二指针,所述第二指针指向的地址为与所述硬件buffer对应的软件buffer的起始地址,所述软件buffer的数据区与所述硬件buffer对应同一块内存区域;
[0011]D、将所述第二指针指向的所述软件buffer交由上层应用模块进行数据处理。
[0012]结合第一方面,在第一方面的第一种可能的实现方式中,在步骤A之前,所述方法还包括初始化步骤:
[0013]在所述软件buffer中存放指向该软件buffer起始地址的第二指针,所述第二指针的起始存放地址与所述第一指针指向的地址间隔预设字节数。
[0014]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,步骤C中,所述根据所述第一指针获取所述第二指针包括:
[0015]根据预设字节数,将所述第一指针指向的地址进行偏移计算,从计算出的地址中获取存放的软件buffer的起始地址。
[0016]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括如下步骤:
[0017]E、若确定不需要将上层应用模块处理后的数据进行转发,则将所述软件buffer释放至软件buffer池,并按照一定的周期时间将所述软件buffer池中的所有软件buffer的数据区作为空闲硬件buffer进行管理;
[0018]若确定需要将上层应用模块处理后的数据进行转发,则在将上层应用模块处理后的数据发送完成后,若确定待释放buffer为与硬件buffer对应的软件buffer,则将所述待释放软件buffer的数据区作为空闲硬件buffer进行管理。
[0019]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,步骤E中,所述确定待释放buffer为与硬件buffer对应的软件buffer包括:
[0020]判断所述软件buffer中存放的硬件buffer标识符与预设标识符一致,和/或所述软件buffer起始地址的起始存放地址与其数据区的起始地址间隔的字节数与预设字节数一致,则确定所述待释放软件buffer为与硬件buffer对应的软件buffer。
[0021]第二方面,提供一种网络设备,包括:
[0022]硬件buffer管理单元,用于根据buffer处理单元的申请,向buffer处理单元分配指向空闲硬件buffer的第一指针,所述第一指针指向的地址为所述硬件buffer的起始地址;
[0023]buffer处理单元,用于从物理接口接收待处理数据,并将所述待处理数据存储至所述第一指针指向的硬件buffer ;并用于根据所述第一指针获取第二指针,所述第二指针指向的地址为与所述硬件buffer对应的软件buffer的起始地址,所述软件buffer的数据区与所述硬件buffer对应同一块内存区域;并将所述第二指针指向的所述软件buffer交由上层应用模块进行数据处理。
[0024]结合第二方面,在第二方面的第一种可能的实现方式中,所述网络设备还包括:
[0025]初始化单元,用于在软件buffer中存放指向该软件buffer起始地址的第二指针,所述第二指针的起始存放地址与所述第一指针指向的地址间隔预设字节数。
[0026]结合第二方面或第二方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述buffer处理单元还用于:
[0027]根据预设字节数,将所述第一指针指向的地址进行偏移计算,从计算出的地址中获取存放的软件buffer的起始地址。
[0028]结合第二方面或第二方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述buffer处理单元还用于:
[0029]若确定不需要将上层应用模块处理后的数据进行转发,则将所述软件buffer释放至软件buffer池,并按照一定的周期时间将所述软件buffer池中的所有软件buffer的数据区批量释放至硬件buffer管理单元;
[0030]若确定需要将上层应用模块处理后的数据进行转发,则在将上层应用模块处理后的数据发送完成后,若确定待释放buffer为与硬件buffer对应的软件buffer,则将所述待释放软件buffer的数据区释放至硬件buffer管理单元。
[0031]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述buffer处理单元还用于:
[0032]判断所述软件buffer中存放的硬件buffer标识符与预设标识符一致,和/或所述软件buffer起始地址的起始存放地址与其数据区的起始地址间隔的字节数与预设字节数一致,则确定所述待释放软件buffer为与硬件buffer对应的软件buffer,则将所述待释放软件buffer的数据区释放至硬件buffer管理单元。
[0033]本发明实施例提供一种数据处理方法及网络设备,由于硬件buffer与对应的软件buffer的数据区对应同一块内存区域,因而当网络设备根据指向硬件buffer起始地址的第一指针将待处理数据存储至硬件buffer时,相当于同时将待处理数据存储至硬件buffer对应的软件buffer的数据区,从而在网络设备根据第一指针获取到指向软件buffer起始地址的第二指针后,可以将第二指针指向的软件buffer交由上层应用模块进行数据处理,从而可以避免将待处理数据从硬件buffer拷贝到软件buffer的数据区,因此,能够解决现有技术中由于需要将硬件buffer中的数据拷贝到软件buffer的数据区以供上层应用模块进行数据处理,从而导致的系统运行效率低的问题。
【附图说明】
[0034]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1为本发明实施例提供的一种数据处理方法流程图;
[0036]图2为本发明另一实施例提供的一种数据处理方法流程图;
[0037]图3为本发明实施例提供的另一种数据处理方法流程图;
[0038]图4为本发明实施例提供的一种软件buffer的结构示意图;
[0039]图5为本发明另一实施例提供的一种网络设备结构示意图;
[0040]图6为本发明另一实施例提供的一种网络设备结构示意图。
【具体实施方式】
[0041]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]本发明以下实施例中的硬件buffer及其对应的软件buffer的数据区共用一块内存区域,当路由器等网络设备将待处理数据存储至硬件buffer时,同时也将待处理数据存储到了硬件buf的软件buf f er的数据区,从而可以避免现有技术中的拷贝动作,节省资源开销,提高系统运行效率。
[0043]实施例1
[0044]本发明实
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1