CN103391256B - 一种基于Linux***的基站用户面数据处理优化方法 - Google Patents

一种基于Linux***的基站用户面数据处理优化方法 Download PDF

Info

Publication number
CN103391256B
CN103391256B CN201310315568.8A CN201310315568A CN103391256B CN 103391256 B CN103391256 B CN 103391256B CN 201310315568 A CN201310315568 A CN 201310315568A CN 103391256 B CN103391256 B CN 103391256B
Authority
CN
China
Prior art keywords
message
packet receiving
buffer
base station
buffering area
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
Application number
CN201310315568.8A
Other languages
English (en)
Other versions
CN103391256A (zh
Inventor
姜炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Research Institute of Posts and Telecommunications Co Ltd
Original Assignee
Wuhan Research Institute of Posts and Telecommunications Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Research Institute of Posts and Telecommunications Co Ltd filed Critical Wuhan Research Institute of Posts and Telecommunications Co Ltd
Priority to CN201310315568.8A priority Critical patent/CN103391256B/zh
Publication of CN103391256A publication Critical patent/CN103391256A/zh
Application granted granted Critical
Publication of CN103391256B publication Critical patent/CN103391256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提出了一种基于Linux***的基站用户面数据处理优化方法,包括采用包处理加速模块完成包分类,利用中断轮询智能切换方式减少收包中断,利用内核空间-用户空间内存映射技术避免内存拷贝,利用无锁队列技术减少内核态和用户态的上下文切换,从而显著的提高基站用户面数据处理的性能。

Description

一种基于Linux***的基站用户面数据处理优化方法
技术领域
本发明涉及无线通信技术领域,尤其是涉及一种基于Linux***的基站用户面数据处理优化方法。
背景技术
随着无线通信技术的进步,对于LTE(3GPP长期演进技术)基站用户面数据处理,特别是下行方向的要求越来越高。LTE基站用户面数据主要是承载于UDP(用户数据报协议)之上的GTPU(隧道协议)业务,传统的处理方式是利用网卡收取报文,网卡通过中断形式通知Linux内核,Linux内核再经过网络协议栈的层层处理,对于GTPU业务来说,包括以太层、IP(网络互连协议)层、UDP层、Socket(网络插口)层,唤醒用户态程序并将GTPU报文拷贝到用户空间。
传统方法的弊端包括:
拷贝过多:每个GTPU报文,经过Linux内核的处理后,需要从内核空间拷贝到用户空间。
上下文切换过多:GTPU收包socket采用阻塞式输入方式,每调用一次接收函数接收一个UDP报文都有一次***调用的过程,即内核态和用户态上下文切换的过程。
中断过多:在较高网络负载情况下,网卡收包中断过多。过多的中断会严重降低Linux***的实时性。
发明内容
本发明提出了一种基于Linux***的基站用户面数据处理优化方法,其目的是在LTE基站用户面数据处理过程中,减少上下文切换,中断以及拷贝。
本发明的技术方案为一种基于Linux***的基站用户面数据处理优化方法,采用包处理加速模块进行用户面数据处理,所述包处理加速模块包括缓冲区管理单元、网络数据帧管理单元和队列管理单元,网络数据帧管理单元中包括包分类器,包括初始化过程和数据传输过程,
所述初始化过程包括以下子步骤,
步骤1.1,定义包处理加速模块的包分类器的包分类规则,所述包分类规则是分类区分出基站的用户面数据的规则,所述用户面数据为GTPU报文,GTPU表示隧道协议;
步骤1.2,建立缓冲区管理单元的缓冲区,包括在内核初始化时,预留内存块作为缓冲区管理单元的缓冲区,将一个内存块切分为多个大小相等的格子,将每个格子的物理地址和大小通知给缓冲区管理单元;
步骤1.3,在内核的设备树文件中,将LTE基站与核心网相连的网络数据帧管理单元端口和步骤1.2中所建立缓冲区管理单元的缓冲区关联在一起;
步骤1.4,建立环形缓冲区,包括在驱动初始化时,预留一个内存块,将内存块切分为多个大小相等的格子,用来存储报文描述符,所述报文描述符中的信息包括GTPU报文的数据包的地址偏移和长度;内存块的头结构中保存控制环形缓冲区的读指针和写指针,所述写指针是内核向环形缓冲区填写数据的相应格子的编号,读指针是用户态收包进程从环形缓冲区读取数据的相应格子的编号;所述用户态收包进程,是根据从环形缓冲区读取的报文描述符中的信息直接访问缓冲区管理单元的缓冲区,将读出的GTPU报文中数据部分再组成消息递交给其它业务模块处理的进程;
步骤1.5,用户态收包进程初始化时,将步骤1.2所建立缓冲区管理单元的缓冲区和步骤1.4所建立环形缓冲区所在的物理地址空间映射到用户空间;
所述数据传输过程包括以下子步骤,
步骤2.1,包处理加速模块的包分类器区分出基站用户面数据,将基站用户面数据存放在缓冲区管理单元的缓冲区中,并将相应的报文描述符入队到网络数据帧管理单元的相应队列,产生中断通知内核收包;
步骤2.2,进行内核收包,由QMAN的收包中断处理回调函数完成,所述收包中断处理回调函数首先关闭收包中断,进入轮询状态,将报文描述符中的信息填写到环形缓冲区中,递增环形缓冲区的写指针,唤醒用户态收包进程;收包中断处理回调函数在每一次轮询中,统计此次轮询中收到的隧道协议数据的报文个数,如果个数小于预设阈值则结束轮询状态,重新开启收包中断;收包中断时,用户态收包进程睡眠在环形缓冲区驱动定义的等待队列上;
步骤2.3,睡眠在环形缓冲区驱动定义的等待队列上的用户态收包进程被唤醒后,根据报文描述符中的信息直接访问缓冲区管理单元的缓冲区,略过其他信息将GTPU报文的数据部分再组成消息递交给其它业务模块处理。
而且,步骤2.3中,用户态收包进程通过剥去以太网头部、VLAN头部、IP头部以及UDP头部信息,将GTPU报文中的数据部分,组装成消息递交给其他业务模块。
而且,在环形缓冲区的每个格子中对格子是否使用加以标记。
而且,对于不经过协议栈处理的GTPU报文,当网口进入混杂模式时,拷贝一份数据包至协议栈,并在报文中做相应标记,避免上层重复处理。
而且,步骤2.2中,如果环形缓冲区已满,则将新收到的报文描述符丢弃,并释放该报文描述符所对应缓冲区管理单元的缓冲区内单元格。
而且,步骤1.2中,建立缓冲区管理单元的缓冲区时,预留一块以上内存块作为缓冲区管理单元的缓冲区,各内存块按不同大小切分格子。
本发明对比传统LTE用户面数据处理技术有以下创新点:
1.利用包分类技术,区分出可以略去标准协议栈处理,即需要优化处理的LTE用户面数据,而需要标准协议栈处理的报文,如ICMP(互联网控制报文协议)、ARP(地址解析协议)等报文,此类报文数量少且对性能要求不高,仍然递交给Linux协议栈处理,从而避免了一般优化技术必须实现整个用户态协议栈的“一刀切”方式。
2.利用中断轮询智能切换技术,使得硬件中断数目大幅下降,避免硬中断过多导致实时业务任务的实时性;中断轮询智能切换技术依据报文进入的速率智能的在中断方式和轮询方式之间切换,一方面能保证在高速率报文进入时的处理效率,另一方面也能保证在低速率报文进入时的低延时。
3.利用无锁队列技术,完成单生产者和单消费者的同步,避免频繁的***调用。
4.利用内核-用户空间内存映射技术,避免内存拷贝。
附图说明
图1为本发明实施例中BMAN缓冲区的结构图。
图2为本发明实施例中环形缓冲区的操作原理示意图。
图3为本发明实施例中环形缓冲区为空的示意图。
图4为本发明实施例中环形缓冲区为满的示意图。
图5为本发明实施例中BMAN缓冲区与环形缓冲区的交互图。
图6为本发明实施例中包分类器的分类逻辑图。
具体实施方式
本发明主要针对LTE基站用户面数据处理的优化,适用但并不限于LTE基站,本方案同样适用于其它需要在嵌入式Linux***中实现高效用户面数据处理的***。该方案能满足无线通信基站建设中高速数据传输的需求,有效减少***资源的占用,本设计充分利用包分类技术、中断轮询智能切换技术,无锁队列技术以及内存映射技术等一系列前沿技术,能有效减少中断数、减少进程上下文切换以及完全避免了数据拷贝。
以下结合附图和实施例详细说明本发明技术方案。
初始化过程包括依次执行如下子步骤:
步骤1.1,定义包处理加速模块的包分类器的包分类规则,区分出基站的用户面数据(即GTPU报文,其特征是UDP目的端口号为2152)。
具体实施时,本步骤可根据具体实现包处理加速模块使用的CPU中的协处理器实现。实施例中,采用现有技术中的飞思卡尔PowerPC,飞思卡尔PowerPC采用DPAA(数据路径加速架构)实现包处理加速模块,其中提供了网络数据帧管理单元,缓冲区管理单元,队列管理单元,一般分别简称为FMAN、BMAN、QMAN,网络数据帧管理单元中设有包分类器。定义飞思卡尔PowerPC的包分类器的分类规则,并配置到硬件中去。
此步骤的目的是区分出需要优化处理的报文。需要优化处理的报文将不再经过Linux的网络协议栈的繁杂处理,对于LTE用户面数据来讲,此类报文即为GTPU报文(UDP目的端口号为2152);不需要优化处理的报文,即需要TCP/IP协议栈处理的报文,例如ICMP报文、ARP报文等。可根据GTPU报文特征是UDP目的端口号为2152设定包分类规则,后续数据传输过程按包分类规则将两种报文分别入队到不同的队列中。
步骤1.2,建立BMAN缓冲区,包括在内核初始化时,通过分配内核内存预留内存块,将一个内存块切分为多个大小相等的格子,并将每个格子的物理地址和大小通知给DPAA模块的BMAN(缓冲区管理)单元。为满足以太网标准MTU(最大传输单元)要求,格子大小一般设定为约2K字节。
实施例中,内核初始化时,预留一个内存块作为BMAN缓冲区。如图1所示,将内存块切分为多个大小相等,每个大小为2112字节的单元格,一个4兆字节的内存块可分为1985个单元格,如图中0、2112、2112*2…2112*1984,计算机领域一般采用*表示乘以×。2112字节为64字节的奇数倍,这个大小的选择可以容纳1500字节的标准MTU,并允许硬件添加一些附件信息,且能均匀利用PowerPC4080的两个三级缓存,分格完成后,将每个格子的物理地址和大小通知给DPAA模块的BMAN单元。为避免浪费物理内存,也可以预留多个内存块,每个内存块作为不同的BMAN缓冲区,每块内存中的单元格大小不一,如64字节,172字节,320字节等,DPAA硬件模块会根据网络报文帧的大小智能选择最合适的大小,如173字节会选择320字节大小的BMAN缓冲区,100字节会选择172字节大小的BMAN缓冲区。
步骤1.3,FMAN(网络数据帧管理单元)端口与BMAN缓冲区的关联,需要在内核的DTS(设备树)文件中,将LTE基站与核心网相连的FMAN端口和步骤1.2中所建立的BMAN缓冲区关联在一起,若分配了多个BMAN缓冲区,也可以将多个BMAN缓冲区与此端口绑定在一起。
步骤1.4,建立环形缓冲区,包括在驱动初始化时,通过分配内核内存预留一个内存块,将内存块切分为多个大小相等的格子,用来存储GTPU报文的数据包的地址偏移和长度,所有的格子共有一个头结构,头结构中再保存控制环形缓冲区的读写指针,完成内核(生产者)和用户态收包进程(消费者)之间的同步。头结构中的写指针,代表生产者填数据的格子的编号,读指针,代表消费者读取数据的格子的编号。具体实施时,环形缓冲区的大小定义为2的幂有利于提高读写指针操作的效率。
实施例中,环形缓冲区的同步操作示意图见图2,利用环形缓冲区,将不再需要传统的互斥锁结构。初始时,环形缓冲区读指针和写指针都为零。生产者每生产一个数据后,即内核驱动收到一个GTPU报文后,需递增写指针,当写指针递增超过环形缓冲区中格子的总数后,需将递增后的写指针以格子总数取余。例如,假定环形缓冲区中格子总数为256,以0到255编号。递增前写指针为255,写指针递增后为256,以256取余,变为0,即写指针回绕到0,重新指向环形缓冲区中的第一个格子。将上述操作用NEXT表示,故NEXT(X)=(X+1)%N,其中X为写指针,N为环形缓冲区中格子的个数。同理,当消费者每取走一个数据后,即用户态收包进程处理完一个GTPU报文后,也需要用上述方法改写读指针。如图3所示,当读指针和写指针相等时,代表生产者生产的数据已经被消费者全部取走,且生产者还未能生产新的数据,此时用户态程序需睡眠,以等待生产者生产更多的数据。如图4所示,当写指针用上述的NEXT操作处理后结果等于读指针时,代表缓冲区满,生产者需要主动丢弃后续收到的GTPU报文,环形缓冲区中的格子的个数代表***可以容忍的生产者和消费者处理速率的差异程度。驱动还需要提供内存映射函数的实现,作为桥梁完成BMAN缓冲区内存与用户空间虚拟地址空间之间的映射。
实施例提供了用户态收包进程,该进程用于根据从环形缓冲区读取的报文描述符中的信息直接访问BMAN内存,将GTPU报文再组成消息递交给其它业务模块处理。
步骤1.5,用户态收包进程初始化时,将步骤1.2和步骤1.4中分配的内核内存,映射到用户空间。
实施例中,用户态收包进程初始化时,将步骤1.2所建立BMAN缓冲区和步骤1.4所建立环形缓冲区所在的物理地址空间映射到用户空间,即从内核空间的一段映射到用户空间的一段,从而能避免网络数据从内核态到用户态的拷贝。
使用过程包括依次执行如下子步骤::
步骤2.1,DPAA包分类器区分出基站用户面数据,将其存放在DPAA的BMAN缓冲器中,并将相应的报文描述符(描述报文的存储地址和大小)入队到DPAA的QMAN(队列管理)单元中相应队列,QMAN单元产生中断通知内核收包。
实施例中,LTE基站的网络接口收到核心网侧发来的报文后,DPAA模块中的硬件包分类器依据初始化时步骤1.1定义的包分类语法对报文进行包分类,将UDP目的端口号为2152的GTPU报文描述符入队到一个队列,而将其他所有报文描述符入队到另外一个队列,具体实施时可以由预设队列编号,可在0x1到0xFFFF之间分别任意取值。包分类逻辑如图6所示:报文进入包分类器,包分类器判断是否是IP分片,是则入队到0x2000队列,否则继续判断目的端口是否是2152,是2152则入队到0x2001队列,否则仍入队到0x2000队列,包分类结束。报文描述符记录的信息包含初始化时BMAN缓冲区中每个单元格的起始物理地址以及报文的大小,硬件将报文描述符入队后,会产生相应的硬件中断。
步骤2.2,进行内核收包,内核收包由QMAN的收包中断处理回调函数完成。收包中断时,用户态收包进程睡眠在环形缓冲区驱动定义的等待队列上。所述收包中断处理回调函数的内容包括首先关闭收包中断,进入轮询模式,将报文描述符中的信息填写到环形缓冲区中,递增环形缓冲区的写指针,唤醒用户态收包进程。收包中断处理回调函数在一次轮询中,会统计此次轮询中收到的GTPU报文个数,如果个数小于预设阈值(预设阈值可由本领域技术人员预先自定义,如可设置为64)将重新开启中断,即由轮询模式又回到了中断模式,如果一次轮询中收到的GTPU报文个数不小于预算,则不会重新开启中断,即保持在轮询状态。
实施例中,内核收包由QMAN的收包中断处理回调函数完成。首先关闭收包中断,进入轮询状态。由于步骤2.1中已经将GTPU报文和非GTPU报文入队到不同的队列中,因此可以根据队列序号的不同做出不同的处理。如果是GTPU报文,则将报文描述符中的信息填写到环形缓冲区中,BMAN缓冲区与环形缓冲区的交互如图5所示,图中内核-用户空间映射内存即为内核分配出的BMAN缓冲区,X代表此区域的起始地址,X+2112、X+2112×2等代表缓冲区中每个格子的起始地址,可见每个格子的长度为2112字节。用户态收包进程将此段地址映射到自己的虚拟地址空间。当一个GTPU报文进入时,DPAA硬件模块会将此报文放置在BMAN缓冲区中某个单元格中,假定放置在X+2112×4到X+2112×5这段物理地址空间,内核驱动此单元格在内核-用户空间映射内存中的地址偏移2112×4以及GTPU报文的实际长度填写到环形缓冲区中当前写指针指向的环形缓冲区单元格中,并递增环形缓冲区的写指针,然后唤醒等待在环形缓冲区定义的等待队列上的用户态收包进程。内核驱动收包时,如果环形缓冲区已满,则将报文描述符丢弃,并释放该报文描述符对应的BMAN缓冲区内存的单元格。当递增写指针后,其实就可以释放写指针所指向的BMAN缓冲区单元格了,但由于一次BMAN缓冲区内单元格释放对应的硬件操作最多可以释放8个BMAN缓冲区单元格,而一次硬件操作调用开销较大,故为提高效率,可将写指针指向的单元格地址缓存起来,累计到8个以后一次释放相应BMAN缓冲区内存的单元格。由于释放时,需要提取环形缓冲区中保存的单元格地址以及大小等信息,故需要设置一个变量用来判断是否该单元格已经被使用过一次,即被填充过一次BMAN缓冲区单元格的地址。可以在环形缓冲区的每个单元格中对单元格是否使用加以标记(key值),以避免释放没有填充过的缓冲区。
另外,由于调试网络问题时,最常见的方法就是通过TCPDUMP(网络抓包工具)将报文抓取出来,而由于GTPU报文此时旁路了Linux网络协议栈,因此,当网络接口进入混杂模式时,即TCPDUMP开启时,可以将GTPU报文拷贝到sk_buff(Linux网络协议栈中描述报文的数据结构)中去,并在sk_buff结构体中做特殊标记,再递交协议栈,一方面满足调试的需求,一方面特殊标记可以让协议栈不再重复的将此类报文递交给上层用户态处理程序。如果不是GTPU报文,意味着此类报文是需要Linux的网络协议栈处理的报文,由于网络协议栈必须使用sk_buff结构,回调函数中将报文描述符中描述的报文拷贝到内核内存管理分配器动态分配出来的sk_buff以及其辅助结构体中,调用相关函数交由协议栈处理,由于已经拷贝过了,因此BMAN缓冲区单元格可以立即释放,而sk_buff相关内存则交由网络协议栈释放。
收包回调在一次轮询中,如果处理的报文数目小于预算,说明此时网络报文进入***较慢,可能是收包回调在处理多次后,BMAN缓冲区中已经没有数据进入,则重新开启收包中断,即由轮询模式又回到了中断模式,可见收包处理可以根据网络报文进入***的快慢动态的在中断和轮询两种方式智能切换。
步骤2.3,睡眠在环形缓冲区驱动定义的等待队列上的用户态收包进程由步骤2.2唤醒后,根据报文描述符中的信息直接访问BMAN内存,将以太网头部,VLAN头部,IP头部以及UDP头部等信息略过,将GTPU报文再组成消息递交给其它业务模块处理。
用户态收包进程被唤醒后,根据环形缓冲区中当前读指针所指向的环形缓冲区单元格中填写的报文地址偏移以及报文大小,就可以无拷贝的访问BMAN缓冲区中对应的GTPU报文了。实施例中,用户态收包进程启动后,会睡眠在环形缓冲区驱动定义的等待队列上,由步骤2.2唤醒后,由于已经将BMAN缓冲区映射到了自己的用户地址空间,故可以根据报文描述符中的信息(描述符中包含了报文的物理地址偏移以及报文大小等信息)直接访问BMAN缓冲区根据组网模型的不同,如是否有VLAN标签,IP版本是IPv4或者IPv6,用户程序需要将以太网头部,VLAN头部,IP头部以及UDP头部等信息略过,将GTPU报文再组成消息递交给其它业务模块处理。
由于PowerPC4080的包分类器的限制,当报文发送方发送的GTPU报文为IP分片时,由于只有第一个IP分片含有UDP首部,而分类器的分类规则实际上是简单判断一个IP报文的UDP目的端口号,故会将其它IP分片递交给Linux网络协议栈处理,但由于第一个分片没有递交给协议栈,故协议栈的IP重组会失败。实施中,为避免此类问题的发生,可将此类报文归为非GTPU报文,PowerPC系列更高端的CPU中的包分类器没有此类问题。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (6)

1.一种基于Linux***的基站用户面数据处理优化方法,采用包处理加速模块进行用户面数据处理,所述包处理加速模块包括缓冲区管理单元、网络数据帧管理单元和队列管理单元,网络数据帧管理单元中包括包分类器,其特征在于:包括初始化过程和数据传输过程,
所述初始化过程包括以下子步骤,
步骤1.1,定义包处理加速模块的包分类器的包分类规则,所述包分类规则是分类区分出基站的用户面数据的规则,所述用户面数据为GTPU报文,GTPU表示隧道协议;
步骤1.2,建立缓冲区管理单元的缓冲区,包括在内核初始化时,预留内存块作为缓冲区管理单元的缓冲区,将一个内存块切分为多个大小相等的格子,将每个格子的物理地址和大小通知给缓冲区管理单元;
步骤1.3,在内核的设备树文件中,将LTE基站与核心网相连的网络数据帧管理单元端口和步骤1.2中所建立缓冲区管理单元的缓冲区关联在一起;
步骤1.4,建立环形缓冲区,包括在驱动初始化时,预留一个内存块,将内存块切分为多个大小相等的格子,用来存储报文描述符,所述报文描述符中的信息包括GTPU报文的数据包的地址偏移和长度;内存块的头结构中保存控制环形缓冲区的读指针和写指针,所述写指针是内核向环形缓冲区填写数据的相应格子的编号,读指针是用户态收包进程从环形缓冲区读取数据的相应格子的编号;所述用户态收包进程,是根据从环形缓冲区读取的报文描述符中的信息直接访问缓冲区管理单元的缓冲区,将读出的GTPU报文中数据部分再组成消息递交给其它业务模块处理的进程;
步骤1.5,用户态收包进程初始化时,将步骤1.2所建立缓冲区管理单元的缓冲区和步骤1.4所建立环形缓冲区所在的物理地址空间映射到用户空间;
所述数据传输过程包括以下子步骤,
步骤2.1,包处理加速模块的包分类器区分出基站用户面数据,将基站用户面数据存放在缓冲区管理单元的缓冲区中,并将相应的报文描述符入队到网络数据帧管理单元的相应队列,产生中断通知内核收包;
步骤2.2,进行内核收包,由QMAN的收包中断处理回调函数完成,所述QMAN为队列管理单元,所述收包中断处理回调函数首先关闭收包中断,进入轮询状态,将报文描述符中的信息填写到环形缓冲区中,递增环形缓冲区的写指针,唤醒用户态收包进程;收包中断处理回调函数在每一次轮询中,统计此次轮询中收到的隧道协议数据的报文个数,如果个数小于预设阈值则结束轮询状态,重新开启收包中断;收包中断时,用户态收包进程睡眠在环形缓冲区驱动定义的等待队列上;
步骤2.3,睡眠在环形缓冲区驱动定义的等待队列上的用户态收包进程被唤醒后,根据报文描述符中的信息直接访问缓冲区管理单元的缓冲区,略过其他信息将GTPU报文的数据部分再组成消息递交给其它业务模块处理。
2.根据权利要求1所述基于Linux***的基站用户面数据处理优化方法,其特征在于:步骤2.3中,用户态收包进程通过剥去以太网头部、VLAN头部、IP头部以及UDP头部信息,将GTPU报文中的数据部分,组装成消息递交给其他业务模块。
3.根据权利要求1所述基于Linux***的基站用户面数据处理优化方法,其特征在于:在环形缓冲区的每个格子中对格子是否使用加以标记。
4.根据权利要求1所述基于Linux***的基站用户面数据处理优化方法,其特征在于:对于不经过协议栈处理的GTPU报文,当网口进入混杂模式时,拷贝一份数据包至协议栈,并在报文中做相应标记,避免上层重复处理。
5.根据权利要求1所述基于Linux***的基站用户面数据处理优化方法,其特征在于:步骤2.2中,如果环形缓冲区已满,则将新收到的报文描述符丢弃,并释放该报文描述符所对应缓冲区管理单元的缓冲区内单元格。
6.根据权利要求1或2或3或4或5所述基于Linux***的基站用户面数据处理优化方法,其特征在于:步骤1.2中,建立缓冲区管理单元的缓冲区时,预留一块以上内存块作为缓冲区管理单元的缓冲区,各内存块按不同大小切分格子。
CN201310315568.8A 2013-07-25 2013-07-25 一种基于Linux***的基站用户面数据处理优化方法 Active CN103391256B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310315568.8A CN103391256B (zh) 2013-07-25 2013-07-25 一种基于Linux***的基站用户面数据处理优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310315568.8A CN103391256B (zh) 2013-07-25 2013-07-25 一种基于Linux***的基站用户面数据处理优化方法

Publications (2)

Publication Number Publication Date
CN103391256A CN103391256A (zh) 2013-11-13
CN103391256B true CN103391256B (zh) 2016-01-13

Family

ID=49535417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310315568.8A Active CN103391256B (zh) 2013-07-25 2013-07-25 一种基于Linux***的基站用户面数据处理优化方法

Country Status (1)

Country Link
CN (1) CN103391256B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731711A (zh) * 2013-12-23 2015-06-24 中兴通讯股份有限公司 一种网络设备写表方法及装置
CN104811391B (zh) * 2014-01-24 2020-04-21 中兴通讯股份有限公司 数据包的处理方法、装置及服务器
CN103945456B (zh) * 2014-05-12 2017-06-27 武汉邮电科学研究院 一种基于Linux***的LTE基站用户面高效UDP数据发送优化方法
CN105830038B (zh) * 2014-06-30 2019-03-05 华为技术有限公司 一种访问存储设备的方法和主机
CN104102494B (zh) * 2014-07-31 2017-07-25 武汉邮电科学研究院 无线通信基站空口数据cipher加速方法
CN105635045B (zh) * 2014-10-28 2019-12-13 北京启明星辰信息安全技术有限公司 一种基于驱动零拷贝模式***下的tcpdump抓包实现方法和装置
CN105873038A (zh) * 2016-06-07 2016-08-17 武汉邮电科学研究院 一种lte基站用户面数据安全处理方法
CN106161110B (zh) * 2016-08-31 2019-05-17 东软集团股份有限公司 一种网络设备中的数据处理方法及***
CN106411778B (zh) * 2016-10-27 2019-07-19 东软集团股份有限公司 数据转发的方法及装置
CN106844242B (zh) * 2016-12-30 2019-07-05 ***通信集团江苏有限公司 一种数据交换方法和***
CN107086948B (zh) * 2017-04-14 2019-11-12 重庆邮电大学 一种在sdwn下提升虚拟化网络性能的数据处理方法
CN107809366B (zh) * 2017-10-27 2020-10-20 浙江宇视科技有限公司 一种unp隧道安全共用的方法及***
CN107908365A (zh) * 2017-11-14 2018-04-13 郑州云海信息技术有限公司 用户态存储***数据交互的方法、装置及设备
CN109936502B (zh) * 2017-12-15 2022-05-17 迈普通信技术股份有限公司 数据接收方法及数据传输设备
CN109120665B (zh) * 2018-06-20 2020-05-29 中国科学院信息工程研究所 高速数据包采集方法及装置
CN110134439B (zh) * 2019-03-30 2021-09-28 北京百卓网络技术有限公司 无锁化的数据结构构建方法和写入数据、读取数据的方法
CN110167197B (zh) * 2019-04-16 2021-01-26 中信科移动通信技术有限公司 Gtp下行数据传输优化方法及装置
CN110083311B (zh) * 2019-04-26 2022-03-29 深圳忆联信息***有限公司 一种基于ssd描述符下发软硬件交互的方法及其***
CN110138797B (zh) * 2019-05-27 2021-12-14 北京知道创宇信息技术股份有限公司 一种报文处理方法及装置
CN110602225A (zh) * 2019-09-19 2019-12-20 北京天地和兴科技有限公司 一种适用于工控环境的linux***高效收发包方法
CN111211942A (zh) * 2020-01-03 2020-05-29 山东超越数控电子股份有限公司 一种数据包的收发方法、设备及介质
CN112491979B (zh) 2020-11-12 2022-12-02 苏州浪潮智能科技有限公司 一种网卡数据包缓存管理方法、装置、终端及存储介质
CN113596171B (zh) * 2021-08-04 2024-02-20 杭州网易数之帆科技有限公司 云计算数据交互方法、***、电子设备及存储介质
CN117579386B (zh) * 2024-01-16 2024-04-12 麒麟软件有限公司 网络流量安全管控方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594307A (zh) * 2009-06-30 2009-12-02 中兴通讯股份有限公司 基于多级队列的调度方法和***
US7953002B2 (en) * 2005-11-10 2011-05-31 Broadcom Corporation Buffer management and flow control mechanism including packet-based dynamic thresholding
CN102740369A (zh) * 2011-03-31 2012-10-17 北京新岸线无线技术有限公司 一种数据处理方法、装置及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7787463B2 (en) * 2006-01-26 2010-08-31 Broadcom Corporation Content aware apparatus and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953002B2 (en) * 2005-11-10 2011-05-31 Broadcom Corporation Buffer management and flow control mechanism including packet-based dynamic thresholding
CN101594307A (zh) * 2009-06-30 2009-12-02 中兴通讯股份有限公司 基于多级队列的调度方法和***
CN102740369A (zh) * 2011-03-31 2012-10-17 北京新岸线无线技术有限公司 一种数据处理方法、装置及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多核处理器的普适性报文捕获技术研究;孙江;《中国优秀硕士学位论文全文数据库信息科技辑》;20120731;全文 *

Also Published As

Publication number Publication date
CN103391256A (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
CN103391256B (zh) 一种基于Linux***的基站用户面数据处理优化方法
US11916781B2 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC)
KR102337092B1 (ko) 트래픽 측정 방법, 장치, 및 시스템
CN108833299B (zh) 一种基于可重构交换芯片架构的大规模网络数据处理方法
US7756990B2 (en) Configurable protocol engine
CN103945456B (zh) 一种基于Linux***的LTE基站用户面高效UDP数据发送优化方法
CN103888386B (zh) 可扩展虚拟局域网报文的传输方法及装置、***
CN103069757B (zh) 一种报文重组重排序方法、装置和***
US7324540B2 (en) Network protocol off-load engines
US20050021558A1 (en) Network protocol off-load engine memory management
CN107659515A (zh) 报文处理方法、装置、报文处理芯片及服务器
CN103731409B (zh) 用于具有tcp加速的嵌入式汽车采集设备的分布式测量装置
CN103986585A (zh) 报文预处理方法及其装置
CN110167197A (zh) Gtp下行数据传输优化方法及装置
CN104350488A (zh) 用于资源受限主机的选择性数据冗余消除的***和方法
CN107204924A (zh) 链路发现方法及装置
CN104584492A (zh) 报文处理方法、设备及***
CN101964751B (zh) 数据包的传输方法及装置
CN105512075A (zh) 高速输出、输入接口电路及数据传输方法
CN101938399A (zh) 一种路由方法、装置
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
CN103200086B (zh) 一种ForCES***中路由协议的信息交互方法
Dai et al. Design of remote upgrade of equipment monitoring system software
CN116193000B (zh) 一种基于fpga的智能组包快速转发***及转发方法
CN109922001A (zh) 一种流量处理方法、设备、装置及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 430074, No. 88, postal academy road, Hongshan District, Hubei, Wuhan

Patentee after: Wuhan post and Telecommunications Science Research Institute Co., Ltd.

Address before: 430074, No. 88, postal academy road, Hongshan District, Hubei, Wuhan

Patentee before: Wuhan Inst. of Post & Telecom Science