CN102984166A - 一种ip数据包过滤器 - Google Patents
一种ip数据包过滤器 Download PDFInfo
- Publication number
- CN102984166A CN102984166A CN2012105242347A CN201210524234A CN102984166A CN 102984166 A CN102984166 A CN 102984166A CN 2012105242347 A CN2012105242347 A CN 2012105242347A CN 201210524234 A CN201210524234 A CN 201210524234A CN 102984166 A CN102984166 A CN 102984166A
- Authority
- CN
- China
- Prior art keywords
- packet
- filtering
- engine
- filter
- dma engine
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种IP数据包过滤器,包括:DMA引擎,用于对通过以太网接收的IP数据包的描述信息进行解析,根据解析后的描述信息从外部存储器中读取IP数据包并将其传送给过滤器引擎;过滤器引擎,用于根据预先配置的过滤规则和过滤参数对读取的IP数据包进行过滤,并且将过滤后的IP数据包传送到DMA引擎;所述DMA引擎还用于将过滤后的IP数据包写入所述外部存储器。本发明通过DMA引擎、过滤器引擎和存储器来处理IP数据包的过滤,CPU只需配置过滤器而不参与数据计算,提升了吞吐量和读取速度、提高了过滤速率和效率,极大降低了对CPU资源的占用。
Description
技术领域
本发明涉及通信领域,尤其涉及一种IP数据包过滤器。
背景技术
为了方便对局域网中的计算机进行进一步的管理,可以通过数据包过滤功能来控制局域网中计算机对互联网中某些网站的访问。IP地址功能
现有的IP地址过滤技术通常使用软件程序进行处理,需要占用大量CPU运算资源,CPU参与运算导致功耗上升。这种IP地址过滤技术的数据吞吐量小,效率较低且速度较慢,而且要依靠CPU接口总线。
因此,需要一种能够克服上述缺陷的IP数据包过滤器。
发明内容
本发明的目的是提供一种能够克服上述缺陷的IP数据包过滤器。
在第一方面,本发明提供了一种IP数据包过滤器,包括:DMA引擎,用于对通过以太网接收的IP数据包的描述信息进行解析,根据解析后的描述信息从外部存储器中读取IP数据包并将其传送给过滤器引擎;过滤器引擎,用于根据预先配置的过滤规则和过滤参数对读取的IP数据包进行过滤,并且将过滤后的IP数据包传送到DMA引擎;所述DMA引擎还用于将过滤后的IP数据包写入所述外部存储器。
优选地,所述IP数据包过滤器还包括:第一AXI从接口,用于所述DMA引擎从以太网接收IP数据包的描述信息;第二AXI从接口,用于接收所述预先配置的过滤规则和过滤参数;AXI主接口,用于所述DMA引擎从内存中读取未过滤的IP数据包以及将过滤后的IP数据包写入外部存储器。
优选地,所述IP数据包过滤器还包括:总线监视器,用于监视AXI总线以便在以太网接收到IP数据包的情况下通知所述DMA引擎接收IP数据包的描述信息。
优选地,所述IP数据包过滤器还包括:第一存储器,用于存储IP数据包的描述信息;第二存储器,用于存储所述过滤参数;以及第三存储器,用于存储未过滤的IP数据包和过滤后的IP数据包。
优选地,所述IP数据包过滤器还包括:存储器映射寄存器,用于存储所述过滤参数。
优选地,所述IP数据包过滤器还包括:握手同步模块,用于将IP数据包过滤器发出的中断请求信号以及接收的中断响应信号进行时钟域同步。
优选地,所述DMA引擎包括:先入先出存储器,用于存储所述IP数据包的描述信息的基础描述片段,其中,所述DMA引擎根据所述基础描述片段从第一存储器中读取IP数据包的描述信息。
在第二方面,本发明提供了一种移动终端,包括IP数据包过滤器,所述IP数据包过滤器包括DMA引擎,用于对通过以太网接收的IP数据包的描述信息进行解析,根据解析后的描述信息从外部存储器中读取IP数据包并将其传送给过滤器引擎;过滤器引擎,用于根据预先配置的过滤规则和过滤参数对读取的IP数据包进行过滤,并且将过滤后的IP数据包传送到DMA引擎;所述DMA引擎还用于将过滤后的IP数据包写入所述外部存储器;所述移动终端还包括配置模块和所述外部存储器,所述配置模块用于将过滤规则和过滤参数写入IP数据包过滤器,所述外部存储器用于存储未过滤的IP数据包和过滤后的IP数据包。
本发明通过DMA引擎、过滤器引擎和存储器来处理IP数据包的过滤,CPU只需配置过滤器而不参与数据计算,提升了吞吐量和读取速度、提高了过滤速率和效率,极大降低了对CPU资源的占用。
附图说明
图1是根据本发明实施例的IP数据包过滤器的基本流程图;
图2是根据本发明实施例的IP数据包过滤的详细流程图;以及
图3是根据本发明实施例的IP数据包过滤器的工作和结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明的IP地址过滤器采用32位AXI总线与外部连接,其中,一个AXIs lave总线接受CPU配置寄存器,写入过滤参数;另一个AXI slave总线接受GMAC送入的数据描述信息;AXI master总线用于读取DDR中未处理的数据,并将处理完的数据写入该DDR中指定的位置。本发明的IP地址过滤器(IPfilter)支持12条输出数据通道,并将其映射到对应的EPS Bearer,同时在DDR中维护数据包的起始地址和数据包长度。内部使用DMA搬运数据,极大地提高了存取数据的效率。
图1是根据本发明实施例的IP数据包过滤器的基本流程图。
经由一个AXI slave(S)接口,将通过以太网(Ethernet)接收到的IP数据包存储到DDR中,同时将其DMA的接收描述符存储到IP过滤器(IPFilter)内部的存储器中。
经由AXI master(M)接口,IP Filter从内存(DDR)中将接收到的IP数据包搬运到其内部的存储器中,经由另一个AXI slave(S)接收存储器映射寄存器和参数存储器中的过滤规则和过滤参数,根据规则和参数对外部存储器(DDR)中的IP数据包进行过滤,并且确定过滤后的IP数据包所对应的传输承载(EPS BEARER)。
经由AXI master接口,IP Filter将外部存储器中的IP数据包搬运到相应BEARER在DDR中的存储空间中。
图2是根据本发明实施例的IP数据包过滤的详细流程图。
在步骤101,配置IP filter的过滤规则和过滤参数,然后启动IP filter。
在步骤102,IP filter启动以后等待GMAC送来IP包的描述信息,然后IP filter读取对应的描述信息并进行解析,然后根据解析后的信息从DDR中读取对应的IP数据包。
在步骤103,判断是否有所述描述信息。如果有,则流程进行到步骤104;否则流程回到步骤102。
在步骤104,IP filter根据解析后的信息从内存DDR中读取IP数据包,并且根据所述过滤规则和过滤参数对其进行过滤。
在步骤105,将过滤后的IP数据包写入到对应的DDR通道,通道可以包括1个控制承载(control bearer)和11个(演进分组系统承载)EPS bearer,每个承载(bearer)都分配有数据空间和索引空间。
在步骤106,判断对应的DDR通道是否存在数据溢出,DDR中的数据会被定期查看和读取。如果在写入过程中发现通道中数据已满,如果发现有数据溢出,则流程进行到步骤107;否则流程回到步骤102。
在步骤107,中断写入并且等待DDR通道中的数据被取走。在DDR通道中的数据被取走之后,步骤回到105,继续将数据写入对应的DDR通道。
图3是根据本发明实施例的IP数据包过滤器的工作和结构示意图。
图3所示的IP filter包括三个AXI接口,分别为一个AXI主(master)接口和两个AXI从(slave)接口。一个AXI slave接口用于软件通过CPU内核core来配置IP过滤器中的DMA引擎和过滤器引擎,另一个用于将通过以太网(Ethernet)接收的IP数据包的DMA描述信息(DMA receive descriptor)传递给内置的DMA引擎,AXI master接口用于DMA读写内存DDR。
整体的数据处理过程为:配置模块对DMA引擎和过滤器引擎进行配置,以太网接收到IP数据包并存到内存DDR后,将与IP数据包相关的信息传递给内置DMA引擎,DMA引擎将DDR上的IP数据包交给内置过滤器引擎处理,处理结束后仍然由DMA将过滤后的IP数据包搬运到DDR上的指定位置。
IP过滤器的详细的工作流程如下所述(序号与图3中对应):
①配置模块通过一个AXI slave接口连接到存储器映射寄存器(MMR),以用于将配置信息存入DMA引擎(DMA Engine)和Filter引擎(Filter engine)中的寄存器,针对过滤器引擎的配置信息中还包含有过滤规则。
②同时,配置模块通过该AXI slave接口连接到参数存储器(para ram),以用于将Filter引擎的过滤参数存入该参数存储器。参数存储器(Para ram)用于存储针对IP数据包过滤的过滤参数(Filter参数)。例如,参数存储器可以采用单端口S存储器,大小4KB,32-bit宽。
③将通过以太网(Ethernet)将接收到的IP数据包存储到存储器DDR中。
④同时,经由另一个AXI slave接口,通过Ethernet将IP数据包的描述符(DMA receive descriptor)存储到DES存储器中,DES存储器的大小可以为1KB。
⑤GMAC_IF中的总线监视器(bus monitor)监测通过以太网接收的IP数据包。每接收到一个IP数据包,其对应的描述符的基础描述片段被写入DMA引擎中的缓存。该缓存可以是采用先入先出(FIFO)方式的存储器,在存储空间为1KB的情况下可容纳64个基础描述片段。
⑥当FIFO为空时,DMA引擎的主状态机处于初始状态。只要FIFO非空,则进入DMA读状态。DMA引擎从FIFO中读取当前最先存入的IP数据包对应的基础描述片段,然后根据该读取的基础描述片段从DES存储器的GIF接口输出中读取对应的IP数据包的描述符,其中包括帧长度及其在DDR中的存储地址等信息。
⑦DMA引擎通过AXI master接口,根据描述符从DDR中依次读取IP数据包的数据到PKT存储器中。当一个I P数据包的数据读取完毕后,DMA引擎向过滤器引擎发送读取完毕(read_done)信号,该信号用于通知Filter引擎待过滤的IP数据包已经搬运完毕,可以开始过滤工作了。此时,过滤器引擎将PKT存储器中待过滤的IP数据包读入,并开始过滤工作。
⑧过滤器引擎根据其寄存器中的过滤规则,从参数存储器中读取过滤参数,对IP数据包进行过滤。然后,将过滤后的IP数据包存入PKT存储器中。过滤器引擎向DMA引擎发送过滤完成(filter_done)信号,该信号用于通知DMA引擎已经过滤完毕。⑨DMA引擎通过AXI master接口,将过滤后的IP数据包从PKT存储器中读出,然后搬运到DDR中其对应EPS承载(EPS Bearer)的存储空间,并管理此EPS Bearer存储空间中IP数据包存储的索引信息。(该处采用了对PKT存储器进行预读取与对AXI Mas ter进行预请求的方式,加快了搬移的速度)。⑩另外,IP过滤器的中断请求信号(int_req)由存储器映射寄存器MMR发出,经由握手同步模块与IP过滤器外部的中断控制器的时钟域同步。中断控制器返回的中断响应信号(int_ack)同样经过握手同步模块与MMR的时钟域同步后,返回给存储器映射寄存器MMR。这样,在DDR通道中发现数据溢出的情况下完成中断处理。
如图3中所示,还可见三个协议转换桥,用于将AXI总线协议转换成内部的较简单的协议。其中包括两个AXI转GIF桥和一个GIF转AXI桥。一个AXI转GIF桥连接到所述第一AXI从接口,用于将AXI总线协议转换成第二协议;一个AXI转GIF桥连接到所述第二AXI从接口,用于将AXI总线协议转换成第二协议;以及GIF转AXI桥连接到所述AXI主接口,用于将所述第二协议转换成AXI总线协议。应当理解,也可以将AXI总线协议转换成其他协议以在IP数据包过滤器内部执行。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种IP数据包过滤器,包括:
DMA引擎,用于对通过以太网接收的IP数据包的描述信息进行解析,根据解析后的描述信息从外部存储器中读取IP数据包并将其传送给过滤器引擎;过滤器引擎,用于根据预先配置的过滤规则和过滤参数对读取的IP数据包进行过滤,并且将过滤后的IP数据包传送到DMA引擎;所述DMA引擎还用于将过滤后的IP数据包写入所述外部存储器。
2.根据权利要求1所述的IP数据包过滤器,还包括:
第一AXI从接口,用于所述DMA引擎从以太网接收IP数据包的描述信息;
第二AXI从接口,用于接收所述预先配置的过滤规则和过滤参数;
AXI主接口,用于所述DMA引擎从内存中读取未过滤的I P数据包以及将过滤后的IP数据包写入外部存储器。
3.根据权利要求1所述的IP数据包过滤器,还包括:
总线监视器,用于监视AXI总线以便在以太网接收到IP数据包的情况下通知所述DMA引擎接收IP数据包的描述信息。
4.根据权利要求1所述的IP数据包过滤器,还包括:
第一存储器,用于存储IP数据包的描述信息;
第二存储器,用于存储所述过滤参数;以及
第三存储器,用于存储未过滤的IP数据包和过滤后的IP数据包。
5.根据权利要求1所述的IP数据包过滤器,还包括:
存储器映射寄存器,用于存储所述过滤参数。
6.根据权利要求1所述的IP数据包过滤器,还包括:
握手同步模块,用于将IP数据包过滤器发出的中断请求信号以及接收的中断响应信号进行时钟域同步。
7.根据权利要求4所述的IP数据包过滤器,其中,所述DMA引擎包括:先入先出存储器,用于存储所述IP数据包的描述信息的基础描述片段,其中,所述DMA引擎根据所述基础描述片段从第一存储器中读取IP数据包的描述信息。
8.一种移动终端,包括如权利要求1-7之一所述的IP数据包过滤器、配置模块和所述外部存储器,所述配置模块用于将过滤规则和过滤参数写入IP数据包过滤器,所述外部存储器用于存储未过滤的IP数据包和过滤后的IP数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210524234.7A CN102984166B (zh) | 2012-12-07 | 2012-12-07 | 一种ip数据包过滤器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210524234.7A CN102984166B (zh) | 2012-12-07 | 2012-12-07 | 一种ip数据包过滤器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984166A true CN102984166A (zh) | 2013-03-20 |
CN102984166B CN102984166B (zh) | 2015-10-07 |
Family
ID=47857909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210524234.7A Active CN102984166B (zh) | 2012-12-07 | 2012-12-07 | 一种ip数据包过滤器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102984166B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105813139A (zh) * | 2014-12-30 | 2016-07-27 | 苏州简约纳电子有限公司 | Lte系统中上行多个数据承载的数据缓存区域的动态管理系统及方法 |
WO2016180959A1 (en) * | 2015-05-13 | 2016-11-17 | Lantiq Beteiligungs-GmbH & Co. KG | Packet descriptor management |
CN110445585A (zh) * | 2019-08-13 | 2019-11-12 | 北京简约纳电子有限公司 | 基于ppp数据帧组帧和解帧硬件加速器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007054012A1 (fr) * | 2005-11-11 | 2007-05-18 | Huawei Technologies Co., Ltd. | Procede de commutation logicielle pour passerelle media |
US20080101222A1 (en) * | 2006-10-30 | 2008-05-01 | David Alan Christenson | Lightweight, Time/Space Efficient Packet Filtering |
CN101702723A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | Ip报文的过滤方法和装置 |
CN102404323A (zh) * | 2011-11-18 | 2012-04-04 | 深圳中兴网信科技有限公司 | 一种网络攻击ip自动拒绝方法 |
-
2012
- 2012-12-07 CN CN201210524234.7A patent/CN102984166B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007054012A1 (fr) * | 2005-11-11 | 2007-05-18 | Huawei Technologies Co., Ltd. | Procede de commutation logicielle pour passerelle media |
US20080101222A1 (en) * | 2006-10-30 | 2008-05-01 | David Alan Christenson | Lightweight, Time/Space Efficient Packet Filtering |
CN101702723A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | Ip报文的过滤方法和装置 |
CN102404323A (zh) * | 2011-11-18 | 2012-04-04 | 深圳中兴网信科技有限公司 | 一种网络攻击ip自动拒绝方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105813139A (zh) * | 2014-12-30 | 2016-07-27 | 苏州简约纳电子有限公司 | Lte系统中上行多个数据承载的数据缓存区域的动态管理系统及方法 |
WO2016180959A1 (en) * | 2015-05-13 | 2016-11-17 | Lantiq Beteiligungs-GmbH & Co. KG | Packet descriptor management |
CN110445585A (zh) * | 2019-08-13 | 2019-11-12 | 北京简约纳电子有限公司 | 基于ppp数据帧组帧和解帧硬件加速器 |
Also Published As
Publication number | Publication date |
---|---|
CN102984166B (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101267361B (zh) | 一种基于零拷贝技术的高速网络数据包捕获方法 | |
JP6287864B2 (ja) | QoS制御システム、QoS制御方法及びプログラム | |
US11875183B2 (en) | Real-time arbitration of shared resources in a multi-master communication and control system | |
US9037810B2 (en) | Pre-fetching of data packets | |
JP5853211B2 (ja) | バスインタフェース装置、中継装置、およびそれらを備えたバスシステム | |
WO2016011811A1 (zh) | 一种内存管理方法、装置及存储介质 | |
CN111049762A (zh) | 数据采集方法、装置、存储介质及交换机 | |
CN103092798B (zh) | 片上系统及总线下的访问设备的方法 | |
AU2008203261A1 (en) | Data processing apparatus and data transfer method | |
CN103064805A (zh) | Spi控制器及通信方法 | |
CN103353851A (zh) | 一种管理任务的方法和设备 | |
CN102984166A (zh) | 一种ip数据包过滤器 | |
CN112650558A (zh) | 数据处理方法、装置、可读介质和电子设备 | |
US20190155645A1 (en) | Distribution of network traffic to processor cores | |
CN104461979A (zh) | 基于环形总线的多核片上通信网络实现方法 | |
CN107025146B (zh) | 一种文件生成方法、装置和系统 | |
CN102932262A (zh) | 网络处理器镜像实现方法及网络处理器 | |
CN103731364B (zh) | 基于x86平台实现万兆大流量快速收包的方法 | |
CN105579952B (zh) | 利用伪停顿的高速通道上的emi抑制 | |
CN106549869A (zh) | 数据包处理方法及装置 | |
CN102750245A (zh) | 报文接收方法、报文接收模块、装置及系统 | |
US10255213B1 (en) | Adapter device for large address spaces | |
KR101736460B1 (ko) | 크로스-다이 인터페이스 스누프 또는 글로벌 관측 메시지 오더링 | |
US20160085683A1 (en) | Data receiving device and data receiving method | |
JP5987560B2 (ja) | データ転送装置、データ転送方法およびデータ転送プログラム |
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 |