CN106210172A - 以太网络数据ip地址高速分类装置 - Google Patents

以太网络数据ip地址高速分类装置 Download PDF

Info

Publication number
CN106210172A
CN106210172A CN201610589941.2A CN201610589941A CN106210172A CN 106210172 A CN106210172 A CN 106210172A CN 201610589941 A CN201610589941 A CN 201610589941A CN 106210172 A CN106210172 A CN 106210172A
Authority
CN
China
Prior art keywords
data
address
network packet
descriptor
packet accelerator
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
Application number
CN201610589941.2A
Other languages
English (en)
Other versions
CN106210172B (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.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
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 Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201610589941.2A priority Critical patent/CN106210172B/zh
Publication of CN106210172A publication Critical patent/CN106210172A/zh
Application granted granted Critical
Publication of CN106210172B publication Critical patent/CN106210172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

以太网络数据IP地址高速分类装置,涉及一种网络数据按照IP地址进行分类的装置。为了解决现有数据分类装置稳定性和可配置性差的问题。本发明以66AK2E05芯片为基础,包括数据链路层以太网端口、DMA传输装置、网络数据包加速器和DSP配置程序,通过DSP配置程序的控制,数据链路层以太网端口负责嗅探包含所有MAC地址、IP地址在内的应用系统全体数据帧,DMA传输装置负责优化数据传输的速度,网络数据包加速器负责按照用户配置的IP地址分类信息将接收到的应用系统全体数据分类成各条包含不同IP地址的数据流和一条不包含所有指定IP地址的数据流。本发明用于对网络系统的数据进行分类,减小各个输出网口的数据吞吐率。

Description

以太网络数据IP地址高速分类装置
技术领域
本发明涉及一种网络数据按照IP地址进行分类的装置,特别涉及一种以太网络数据IP地址高速分类装置。
背景技术
某网络系统由数十台设备组成,设备之间采用千兆以太网互联通讯。设备间数据传递通过支持端口镜像的交换机实现,系统所有数据都会被镜像到交换机监测口,其传输吞吐率峰值达到200Mb/s。在该系统研制阶段的联试联调过程中,需从监测口中对系统数据进行野报文检查、非法报文检查和正常报文解析。由于该系统吞吐率大,单台计算机无法实现数据监测,常产生丢包。因此,需开发网络分类装置,根据数据包的IP地址信息,将一个监测口数据分类,通过多个网口输出,从而大大减小各个输出网口的数据吞吐率,通过多台计算机对系统进行监测,这样就能解决数据监测时丢包率高的问题。
将网络数据按照IP地址进行分类,这一项技术发展至今可总结为以下三种方案。
方案一:在Linux系统中由设计者编写软件设计实现。这种方案实现IP地址高速分类模块主要利用了Linux系统内核中现有的BPF过滤器和零拷贝技术。BPF过滤器直接从Linux系统的网络设备驱动中收集所有网络数据到内核缓存中,然后通过基于寄存器的过滤机制将网络数据按照IP地址分类出来。零拷贝技术不仅将DMA技术用于网络数据的传输,还将内核中的缓存空间映射到Linux系统用户应用层空间里面,这样设计者就可以直接对网络数据进行操作,而且减少了一次数据的复制次数,使得方案能处理的网络数据速度大幅度升高。此方案可配置性和灵活度较高,开发周期短,对于接收的网络数据速度也可达到千兆以太网的标准。但由于修改了Linux系统内核,此方案在稳定性上存在很大的隐患。
方案二:开发专门的硬件电路及芯片及来实现。这种方案可以先通过FPGA编写门电路,然后再以此为基础开发专门的ASIC芯片,或者可以与现有的网络协议芯片进行芯片组设计。此方案对于接收的网络数据速度可高达万兆以太网甚至十万兆以太网的标准,所有的网络数据都可以线速转发,稳定性极高。但无论是在FPGA中移植TCP/IP协议开发ASIC芯片还是设计出芯片间能稳定传输的芯片组,其开发周期都是相当漫长的,而且此方案不具有可编程性,所以此方案可配置性较差。
表1方案参数及性能对比
如表1所示,方案一和方案二各有自己的优点和缺点,无法同时实现可配置性强和稳定性强的优点。
发明内容
本发明为了解决上述问题,本发明提供一种稳定性强和可配置性强的以太网络数据IP地址高速分类装置。
本发明的以太网络数据IP地址高速分类装置,所述装置基于66AK2E05芯片实现,包括DSP配置程序、数据链路层以太网端口、DMA传输装置和网络数据包加速器;
数据链路层以太网端口,用于接收应用系统全体数据,还用于发送网络数据包加速器分类后的数据;
DMA传输装置,用于数据链路层以太网端口与网络数据包加速器的数据传输;
网络数据包加速器,将接收到的全体数据按照用户配置的IP地址分类信息进行分类;
DSP配置程序,用于控制数据链路层以太网端口、DMA传输装置和网络数据包加速器,实现相应功能。
优选的,所述装置还包括ARM,用于对用户配置信息处理,获得用户配置的IP地址分类信息。
优选的,所述数据链路层以太网端口包括连接着外部PHY芯片的SGMII接口和媒体访问操控器MAC;
外部PHY芯片,用于实现物理层的功能;
媒体访问操控器MAC,用于实现数据链路层的功能;
SGMII接口,为连接物理层和数据链路层的媒体独立接口。
优选的,所述SGMII接口包括PHY芯片初始化模块、选择连接模块、SERDES串并转换模块和编码译码模块;
所述DSP配置程序控制数据链路层以太网端口实现相应功能的流程包括如下:
步骤一:控制PHY芯片初始化模块初始化PHY芯片;
步骤二:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤三,若否,进行强制连接,转入步骤三;
步骤三:打开媒体访问操控器MAC的ALE功能,等待,执行步骤四或步骤五;
步骤四:当PHY芯片接收应用系统全体数据后,发送给SERDES串/并转换模块、进行串并转换,转换后的并行数据再经译码编码模块进行译码输出至媒体访问操控器MAC,媒体访问操控器MAC利用ALE功能接收到应用系统全体数据;
步骤五:当媒体访问操控器MAC利用ALE功能接收到分类后的数据时,将分类后的数据经译码编码模块进行解码,解码后的数据经SERDES串/并转换模块进行并串转换,转换后的串行数据经PHY芯片发送。
优选的,所述译码编码模块为8B/10B译码编码模块。
优选的,所述DMA传输装置包括接收通道FOFO、发送通道FIFO和DMA控制器;
所述DSP配置程序控制DMA传输装置接收数据的过程包括:
建立接收队列和接收空闲队列,在接收空闲队列内配置多个首尾相连的描述符,对描述符进行相应配置,及自动为每个描述符分配相应的网络数据包加速器的缓冲区;
当DMA控制器接收到数据链路层以太网端口的接收信号时,接收空闲队列弹出一个描述符给DMA控制器,DMA控制器根据描述符,控制接收通道FOFO将应用系统全体数据从数据链路层以太网端口传输到网络数据包加速器的相应缓冲区;
所述DSP配置程序控制DMA传输装置发送数据的过程包括:
建立发送队列和发送空闲队列,在发送空闲队列内配置多个首尾相连的描述符;发送空闲队列弹出一个描述符给DMA控制器,对描述符进行配置后,DMA控制器根据描述符,控制发送通道FOFO将分类后的数据从网络数据包加速器的相应缓冲区传输至数据链路层以太网端口。
优选的,所述DSP配置程序控制网络数据包加速器实现相应功能的流程包括:
步骤1:DSP配置程序接收IP地址分类信息,将IP地址分类信息处理成多条IP地址分类指令:包括各条包含不同IP地址的分类指令和一条不包含所有指定的IP地址的分类指令;
步骤2:每次发送一条IP地址分类指令,直至全部发送,每次的发送流程如下:
DSP配置程序利用网络数据包加速器LLD从网络数据包加速器的发送空闲队列中弹出一个空描述符;
网络数据包加速器LLD表示网络数据包加速器的底层驱动;
配置该空描述符类型为指令传递,并将一条IP地址分类指令和自定义的确认信息添加到空描述符中;
利用网络数据包加速器LLD将带有IP地址分类指令和确认信息的描述符推进到网络数据包加速器的指令接收队列中,网络数据包加速器将指令接收队列中描述符的确认信息复制到指令确认队列中描述符对应的位置;
通过网络数据包加速器LLD从网络数据包加速器的指令确认队列弹出一个描述符,若该描述符上的确认信息与所述自定义的确认信息吻合,则确定网络数据加速器指令接收成功;
步骤3:网络数据包加速器按照步骤二,将从DMA传输装置接收来的数据分类成各条包含不同IP地址的数据流和一条不包含所有指定IP地址的数据流。
优选的,所述IP地址分类信息的结构和参数:
其中,数量:表示IP地址分类信息内一共包含的用户指定IP地址分类条件的数量;
序号:作为每个IP地址分类条件的分隔符,表示是第几个IP地址分类条件;
匹配目的地:当应用系统数据包含该IP地址时,应用系统数据被送达的地方;
匹配目的地之后的备注:当以以太网端口为有效匹配目的地时,用于指定应用系统数据被送达哪个以太网端口;
不匹配目的地:当应用系统数据不包含所有指定IP地址时,应用系统数据被送达的地方;
不匹配目的地之后的备注:不包含所有指定IP地址的应用系统数据被送达哪个以太网端口。
本发明的有益效果在于,本发明选择以TI公司66AK2E05网络处理器芯片为基础来实现IP地址高速分类装置,包括数据链路层以太网端口、DMA传输装置、网络数据包加速器和DSP配置程序,通过DSP配置程序的控制,数据链路层以太网端口负责嗅探包含所有MAC地址、IP地址在内的应用系统全体数据帧,DMA传输装置负责优化数据传输的速度,网络数据包加速器负责按照用户配置的IP地址分类信息将接收到的应用系统全体数据分类成各条包含不同IP地址的数据流和一条不包含所有指定IP地址的数据流。实验验证,本发明接收的网络数据速度为103-104Mb/s,且与方案一和方案二对比,稳定性和可配置性都强很多,且开发周期处于方案一和方案之间。
附图说明
图1为本发明的以太网络数据IP地址高速分类装置的原理示意图;
图2为TCP/IP协议四层结构参考模型的原理示意图;
图3为数据链路层以太网端口的原理示意图;
图4为用于数据传输的描述符的结构和数据传输参数;
图5为本发明DMA传输装置接收数据原理示意图;
图6为本发明DMA传输装置发送数据原理示意图;
图7为本发明DSP配置程序控制网络数据包加速器的原理示意图;
图8为本发明中IP地址分类信息的结构和参数;
图9为本发明中用于指令传递的描述符的结构和参数。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
选择对合适型号的网络处理器是实现以太网络数据IP地址高速分类装置乃至整个高速网络数据监测设备的重要前提,所以要先对网络处理器进行分析及选择。目前,使用的网络处理器大多是Intel公司的IXP系列网络处理器。该处理器性能出众,且Intel公司为其提供专门的NFM开发软件使其能与上位机的Intel通用X86CPU耦合,从而获得更好的应用。但考虑到此系列芯片并不能在芯片内移植Linux操作系统,这样使得要在芯片内开发基于应用系统接口协议的协议转SDO模块较为困难。所以对比Intel公司IXP系列的网络处理器,TI公司Keystone II系列的网络处理器66AK2E05显得更适合以太网络数据IP地址高速分类装置的开发。本发明将采用66AK2E05芯片实现以太网络数据IP地址高速分类装置;
66AK2E05芯片具有与IP地址高速分类相关的性能及参数如下所示:
1)1个ARM Cortex-A15CorePac,可移植Linux操作系统。其包含4个ARM Cortex-A15处理器内核,处理速度高达1.4GHz。
2)1个TMS320C66x数字信号处理器DSP内核子系统(C66x CorePac),可移植TI的SYS/BIOS操作系统。内核工作在1.2GHz时,定点运算速度达38.4GMacs,浮点运算速度达19.2GFlops。
3)8个支持千兆以太网的数据链路层以太网端口。
4)基于描述符的DMA传输。
5)1个网络数据包加速器,可对符合TCP/IP协议的网络数据包进行包含IP地址分类在内的协议首部分类。
根据上述66AK2E05芯片的性能及参数,本实施方式的IP地址高速分类装置的原理示意图如图1所示,包括DSP配置程序、数据链路层以太网端口、DMA传输装置和网络数据包加速器;
数据链路层以太网端口,用于接收应用系统全体数据,还用于发送网络数据包加速器分类后的数据;
网络数据包加速器可以同时连接多个数据链路层以太网端口,如图1所示,本实施方式采用一个数据链路层以太网端口输入数据,其余多个数据链路层以太网端口输出数据,提高传输速率,当然也可以采用其他组合方式,例如一个数据链路层以太网端口作为输入,一个数据链路层以太网端口作为输出,可以根据实际情况进行配置。
DMA传输装置,用于数据链路层以太网端口与网络数据包加速器的数据传输;
网络数据包加速器,将接收到的全体数据按照用户配置的IP地址分类信息进行分类;
66AK2E05芯片的DSP配置程序,用于控制数据链路层以太网端口、DMA传输装置和网络数据包加速器,实现相应功能。
进一步地,采用66AK2E05芯片的ARM,用于对用户配置信息处理,获得用户配置的IP地址分类信息;
要想通过数据链路层以太网端口成功接收到应用系统全体数据,首先得了解TCP/IP协议四层结构的参考模型及以太网数据嗅探的基本原理。
TCP/IP协议的参考模型采用四层结构,分别是网络接口层、网络层、传输层和应用层,其示意图如图2所示。网络接口层可细分为物理层和数据链路层,物理层负责定义网络传输时物理介质的特征,决定网络传输是使用电缆、光纤或者其他物理介质,然后实现电缆里的电信号或光纤里的光信号与上层数据链路层流通的数据帧相互转换;数据帧指的是在数据链路层流通的信号,其首部主要包含目的MAC地址和源MAC地址,MAC地址也被称为物理地址,每一台网络设备都具有自己独特的MAC地址,来使其他设备找到自己所在的真实位置。
将数据链路层数据帧首部和尾部去掉之后就可以得到数据包,数据包指的是在网络层里流通的信号,其首部主要包含目的IP地址和源IP地址,IP地址也被称为逻辑地址,每一台网络设备在一个局域网里具有自己独特的IP地址,但不同局域网的网络设备可以具有相同的IP地址,IP地址的作用是使同一局域网的其他设备找到自己。
将网络层数据包首部去掉之后,若是传输层协议为TCP协议则得到的是数据段,若是传输层协议为UDP协议则得到的是数据报。无论是数据段还是数据报,其首部主要包含的都是目的端口号和源端口号。将数据段或者数据报去掉首部之后,就是应用层中用户要真正传输的信息了。
从TCP/IP协议四层结构的参考模型中可以看出,正常情况下,用户得到的数据都是应用层中信息,所以如果要想嗅探包含MAC地址及IP地址在内的以太网数据,用户需要直接从数据链路层中获取数据帧。但在这种情况下,用户需要抛弃系统内核协议栈提供的功能,自己编写底层驱动去访问数据链路层,而且这种情况数据链路层又只会接收符合本实施方式IP地址高速分类装置MAC地址的数据帧。为了解决这一系列问题,本实施方式需要使用数据链路层以太网端口。
根据上述IP地址高速分类装置的原理示意图,优选实施例中,数据链路层以太网端口包括连接着外部PHY芯片的SGMII接口和媒体访问操控器MAC,如图3所示;
外部PHY芯片实现物理层的功能,媒体访问操控器MAC实现数据链路层的功能,而SGMII接口则是连接物理层和数据链路层的媒体独立接口。
优选实施例中,SGMII接口包括PHY芯片初始化模块、选择连接模块、SERDES串并转换模块和编码译码模块;
媒体独立接口指的是在不对MAC进行任何改动的情况下,更换任何型号的PHY芯片都不影响媒体访问操控器MAC的工作,这就需要在媒体独立接口对PHY芯片进行初始化。
媒体独立接口类型有很多种,常见的有MII接口、RMII接口、GMII接口、RGMII接口以及SGMII接口,前两种用于百兆以太网,后三种用于千兆以太网。本实施方式使用的是SGMII接口,因为SGMII接口使用的是串行传输,相比于GMII接口和RGMII接口的并行传输,经过SERDES串并转换模块串并转换之后的SGMII接口能在传输高速网络数据时保持更高的稳定性。
为了减少传输线的数量,SGMII接口只有数据线,没有时钟线,所以PHY芯片的信号传输给媒体访问操控器MAC前除了经过SERDES串并转换模块串并转换,还需经过编码译码模块译码,编码译码模块译码通过与外部参考时钟的比较,从数据接收端中恢复出同步时钟。
优选实施例中,译码编码模块为8B/10B译码编码模块。
然而,在数据正式开始传输之前,需传输数据的双方先进行自动协商连接或者强制连接,这也是SGMII接口的一个功能。自动协商连接,指的是需传输数据的双方互相告诉对方自己所具有的最高传输速度及传输方式,然后选择双方都支持的最高传输速度及传输方式进行传输。强制连接,指的是需传输数据的一方直接告诉对方这次传输的传输速度及传输方式,然后要求对方配合。本实施方式最高传输速度为1000Mb/s,传输方式支持半双工及全双工。
至于数据链路层只接收符合本实施方式MAC地址数据帧的问题,66AK2E05芯片的媒体访问操控器MAC具有ALE功能,使用这一功能就能接收到应用系统全体数据帧。
根据上述分析,本实施方式中,DSP配置程序控制向数据链路层以太网端口输入数据的流程如下:
步骤1a:控制PHY芯片初始化模块初始化PHY芯片;
步骤1b:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤1c,若否,进行强制连接,转入步骤1c;
步骤1c:打开媒体访问操控器MAC的ALE功能,等待,执行步骤1d;
步骤1d:PHY芯片接收应用系统全体数据后,发送给SERDES串/并转换模块、进行串并转换,转换后的并行数据再经译码编码模块进行译码输出至媒体访问操控器MAC,媒体访问操控器MAC利用ALE功能接收到应用系统全体数据;
根据上述分析,本实施方式中,DSP配置程序控制数据链路层以太网端口输出数据的流程如下:
步骤2a:控制PHY芯片初始化模块初始化PHY芯片;
步骤2b:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤2c,若否,进行强制连接,转入步骤2c;
步骤2c:打开媒体访问操控器MAC的ALE功能,等待,执行步骤2d;
步骤2d:媒体访问操控器MAC利用ALE功能接收到分类后的数据时,将分类后的数据经译码编码模块进行解码,解码后的数据经SERDES串/并转换模块进行并串转换,转换后的串行数据经PHY芯片发送。
DMA传输是提高高速数据传输效率的重要工具,它能大幅度减少CPU的中断响应次数,取代CPU管理传输总线中的数据。传统的DMA传输是基于寄存器的,DMA具有四种寄存器:数据寄存器、地址寄存器、字符计数寄存器以及状态寄存器。在DMA正式进行传输之前,CPU需要对DMA进行初始化。首先CPU对DMA进行复位操作,复位后DMA处于未初始化状态。接着CPU把数据存储地址目的地址和源地址写入地址寄存器,并将需要接收的数据块长度写入字符计数寄存器。然后将状态寄存器切换至工作状态,DMA接管总线,等待着数据的到来。数据到来后,DMA通过数据寄存器从源地址将数据传输到目的地址,这种状态一直保持到字符计数寄存器降至0为止。至此,DMA完成一次完整的传输,并向CPU产生中断,将总线控制权归还CPU,让CPU处理接收到的数据。
由DMA传输的机制可以看出,传统的DMA传输适用于数据块的传输,但对于网络数据这种以数据包为单位,而且每个数据包的长度不是一致的数据,使用传统的DMA传输网络数据会使得多个数据包首尾相连地存储在一块地址连续的内存块中,这样在CPU处理这些数据时,CPU只能通过之前设定的目的地址找到接收的第一个数据包的首地址,而不能找到之后的数据包的首地址。而且这种内存分配方式只能选定一大块地址连续的内存块来缓存数据,这不利于芯片内的内存管理。针对传统基于寄存器的DMA传输装置并不适用于网络数据包传输的问题。
针对传统基于寄存器的DMA传输装置并不适用于网络数据包传输的问题,本实施方式提供一种基于描述符的DMA传输装置;
描述符(descriptor),是以类似于链表的数据格式存在的。图4展示了描述符的结构和一些与数据传输有关的参数;
每个描述符都有一个自己独特的ID,描述符ID之后是描述符长度,代表的是整个描述符的长度,描述符长度后面还有描述符类型,代表本描述符是用于数据传输还是指令传递。目的模块和源模块类似于传统DMA的目的地址和源地址,但它们并不直接指出需要接收的数据所在的地址和接收后存储的地址,它们只是指出需要接收的数据所在的模块和接收后存储的模块而已,接收的数据真正存储的地址为描述符中缓冲区指针所指向的地址,而缓冲区的地址可以自己设定,也可以告诉系统缓冲区长度由系统自动分配。描述符都存储在队列里,每个队列里都有多个描述符,描述符完成一次传输后会根据返回队列的数值返回到对应的队列中。每个描述符最后都会有下一个描述符指针指向当前队列中下一个描述符的首地址,当下一个描述符为空时说明当前队列描述符已经使用完了,需要设计者重新配置新的描述符进入队列中。
在优选实施例中,本实施方式的DMA传输装置包括接收通道FIFO、发送通道FIFO和DMA控制器;
本实施方式中,以DSP配置程序控制DMA传输装置接收媒体访问操控器MAC的数据,再经过DMA传输装置传输到网络数据包加速器为例来说明DMA传输装置的一次的完整过程。
如图5所示,在应用系统数据正式被接收前,需要做一些准备工作。首先需要建立两个队列——接收队列和接收空闲队列,并在接收空闲队列中放置多个首尾相连的描述符。每个描述符都已被预先配置过,描述符类型为数据传输,目的模块设定为网络数据包加速器,源模块设定为数据链路层以太网端口中的媒体访问操控器MAC,返回队列为接收队列,而且每个描述符都被系统自动分配了自己的缓冲区,每个缓冲区之间地址不需要连续。
这些准备工作完成后,DMA传输装置可正式进行应用系统数据的接收。当媒体访问操控器MAC中有数据到达时,它会产生一个接收信号到DMA传输装置中的DMA控制器。DMA控制器收到接收信号时,它会从接收空闲队列弹出一个描述符1,然后读取描述符1中的信息。在确定源模块正确之后,DMA控制器根据描述符1中的信息控制接收通道FIFO将应用系统全体数据从数据链路层以太网端口中的媒体访问操控器MAC传输到网络数据包加速器的相应缓冲区1。接收通道FIFO传输完成后,DMA控制器将描述符1推进接收队列。
DMA传输装置传输至此已完成一次传输,但为了保证接收空闲队列不会变空,保持以后的DMA传输装置传输能正常工作,网络数据包加速器还需要做一些后续工作。当网络数据包加速器需要对数据处理时,它会从接收队列弹出描述符1,并根据缓冲区指针找到缓冲区1中的数据,之后它会把描述符1推进接收空闲队列。上述后续工作都是由网络数据包加速器自动进行的,所以不需要去过分考虑,但有些DMA传输装置传输,比如网络数据包加速器传输数据到DSP核的协议类型分类模块时,在对数据进行处理之后需要清空该缓冲区,并将指向该缓冲区的描述符推进对应的空闲队列中。
如图6所示,DSP配置程序控制DMA传输装置传输到网络数据包加速器的过程为:
建立发送队列和发送空闲队列,在发送空闲队列内配置多个首尾相连的描述符;发送空闲队列弹出一个描述符给DMA控制器,对描述符进行配置后,DMA控制器根据描述符,控制发送通道FOFO将分类后的数据从网络数据包加速器的相应缓冲区传输至数据链路层以太网端口;
DMA传输装置的发送过程与接收过程基本类似,除了以下三点不一样:
1)预备工作时,不需要预先对发送空闲队列中的描述符进行配置,而是从发送空闲队列中弹出空的描述符进行配置然后再推进发送队列。
2)DMA控制器只要检测到发送队列有描述符推进就开始传输,而不需要像接收过程中那样收到媒体访问操控器MAC发出的接收信号才开始传输。
3)发送队列中的描述符缓冲区指针指向的缓冲区是设定的,而不是系统自动分配的。
网络数据包加速器是实现IP地址高速分类模块核心功能的关键所在,它在66AK2E05芯片中是以硬件的形式存在的,所以并不需要知道其内部结构或工作原理,只需要向它发出相关指令使其能按照配置的IP地址对网络数据包进行分类即可。在本实施方式中,网络数据包加速器由DSP配置程序控制,其示意图如图7所示。
在DSP配置程序发送IP地址分类信息控制网络数据包加速器前,DSP配置程序首先得接收用户配置的IP地址分类信息,并将它处理为网络数据包加速器能接收的描述符。图8和图9分别描绘了用户配置的IP地址分类信息及用于指令传输的描述符的结构和相关参数。
如图8所示,IP地址分类信息第一个参数为数量,指的是这个信息内一共包含的用户指定IP地址分类条件的数量,之后的序号作为每个IP地址分类条件的分隔符,说明这是第几个分类条件。每个IP地址分类条件都会包含目的IP地址、源IP地址和匹配目的地及备注。目的IP地址和源IP地址不一定都需要配置,如不需对源IP地址进行分类时,可将源IP地址配置为0。匹配目的地指的是当应用系统数据包含该IP地址时,应用系统数据被送达的地方,匹配目的地的选择如表2所示,匹配目的地后面的备注只在匹配目的地为以太网端口时有效,它指的是匹配的数据被送达哪个以太网端口。IP地址分类信息最后的不匹配目的地指的是不包含所以指定的IP地址的应用系统数据被送达的地方。
表2IP地址分类信息匹配目的地选择表
匹配目的地 以太网端口 DSP核 丢弃
数值 1 2 0
图9中描述符的结构与图4大致一样,不同的是图4中的缓冲区指针改为了指令结构体指针,该指针指向包含目的IP地址、源IP地址、匹配目的地及备注和不匹配目的地及备注在内的指令结构体。图9的描述符还多出一个确认信息的参数,它是DSP配置程序中自定义的一个32位无符号整型数组,用于确认指令传递是否成功。
对比图8和图9可以看出,DSP配置程序中对IP地址分类信息的处理主要就是把IP地址分类信息拆分为一条条IP地址分类条件,并将其中的目的IP地址、源IP地址、匹配目的地及备注和不匹配目的地及备注存入描述符的指令结构体中。
为控制网络数据包加速器,DSP芯片内部提供了一个网络数据包加速器LLD(lowlevel driver,底层驱动)来控制它。在向网络数据包加速器发出指令前,DSP配置程序需要先对网络数据包加速器进行初始化,初始化完成后,网络数据包加速器内会建立两个队列——指令接收队列和指令确认队列。
DSP配置程序控制网络数据包加速器将接收到的全体数据按照用户配置的IP地址分类信息进行分类的流程包括:
步骤3a:DSP配置程序接收IP地址分类信息,将IP地址分类信息处理成多条IP地址分类指令:包括各条包含不同IP地址的分类指令和一条不包含所有指定的IP地址的分类指令;
步骤3b:每次发送一条IP地址分类指令,直至全部发送,每次的发送流程如下:
DSP配置程序利用网络数据包加速器LLD从网络数据包加速器的发送空闲队列中弹出一个空描述符;
网络数据包加速器LLD表示网络数据包加速器的底层驱动;
配置该空描述符类型为指令传递,并将一条IP地址分类指令和自定义的确认信息添加到空描述符中;
DSP配置程序利用网络数据包加速器LLD将带有IP地址分类指令和确认信息的描述符推进到网络数据包加速器的指令接收队列中,网络数据包加速器将指令接收队列中描述符的确认信息复制到指令确认队列中描述符对应的位置;
通过网络数据包加速器LLD从网络数据包加速器的指令确认队列弹出一个描述符,若该描述符上的确认信息与所述自定义的确认信息吻合,则确定网络数据加速器指令接收成功;
网络数据包加速器控制程序会多次重复上述发送指令的过程,重复次数与IP地址分类指令数量一致。
步骤3c:网络数据包加速器按照步骤二,将从DMA传输装置接收来的数据分类成各条包含不同IP地址的数据流和一条不包含所有指定IP地址的数据流。

Claims (8)

1.一种以太网络数据IP地址高速分类装置,其特征在于,所述装置基于66AK2E05芯片实现,包括DSP配置程序、数据链路层以太网端口、DMA传输装置和网络数据包加速器;
数据链路层以太网端口,用于接收应用系统全体数据,还用于发送网络数据包加速器分类后的数据;
DMA传输装置,用于数据链路层以太网端口与网络数据包加速器的数据传输;
网络数据包加速器,将接收到的全体数据按照用户配置的IP地址分类信息进行分类;
DSP配置程序,用于控制数据链路层以太网端口、DMA传输装置和网络数据包加速器,实现相应功能。
2.根据权利要求1所述的以太网络数据IP地址高速分类装置,其特征在于,所述装置还包括ARM,用于对用户配置信息处理,获得用户配置的IP地址分类信息。
3.根据权利要求1所述的以太网络数据IP地址高速分类装置,其特征在于,所述数据链路层以太网端口包括连接着外部PHY芯片的SGMII接口和媒体访问操控器MAC;
外部PHY芯片,用于实现物理层的功能;
媒体访问操控器MAC,用于实现数据链路层的功能;
SGMII接口,为连接物理层和数据链路层的媒体独立接口。
4.根据权利要求3所述的以太网络数据IP地址高速分类装置,其特征在于,所述SGMII接口包括PHY芯片初始化模块、选择连接模块、SERDES串并转换模块和编码译码模块;
所述DSP配置程序控制数据链路层以太网端口实现相应功能的流程包括如下:
步骤一:控制PHY芯片初始化模块初始化PHY芯片;
步骤二:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤三,若否,进行强制连接,转入步骤三;
步骤三:打开媒体访问操控器MAC的ALE功能,等待,执行步骤四或步骤五;
步骤四:当PHY芯片接收应用系统全体数据后,发送给SERDES串/并转换模块、进行串并转换,转换后的并行数据再经译码编码模块进行译码输出至媒体访问操控器MAC,媒体访问操控器MAC利用ALE功能接收到应用系统全体数据;
步骤五:当媒体访问操控器MAC利用ALE功能接收到分类后的数据时,将分类后的数据经译码编码模块进行解码,解码后的数据经SERDES串/并转换模块进行并串转换,转换后的串行数据经PHY芯片发送。
5.根据权利要求4所述的以太网络数据IP地址高速分类装置,其特征在于,所述译码编码模块为8B/10B译码编码模块。
6.根据权利要求1或4所述的以太网络数据IP地址高速分类装置,其特征在于,所述DMA传输装置包括接收通道FOFO、发送通道FIFO和DMA控制器;
所述DSP配置程序控制DMA传输装置接收数据的过程包括:
建立接收队列和接收空闲队列,在接收空闲队列内配置多个首尾相连的描述符,对描述符进行相应配置,及自动为每个描述符分配相应的网络数据包加速器的缓冲区;
当DMA控制器接收到数据链路层以太网端口的接收信号时,接收空闲队列弹出一个描述符给DMA控制器,DMA控制器根据描述符,控制接收通道FOFO将应用系统全体数据从数据链路层以太网端口传输到网络数据包加速器的相应缓冲区;
所述DSP配置程序控制DMA传输装置发送数据的过程包括:
建立发送队列和发送空闲队列,在发送空闲队列内配置多个首尾相连的描述符;发送空闲队列弹出一个描述符给DMA控制器,对描述符进行配置后,DMA控制器根据描述符,控制发送通道FOFO将分类后的数据从网络数据包加速器的相应缓冲区传输至数据链路层以太网端口。
7.根据权利要求6所述的以太网络数据IP地址高速分类装置,其特征在于,所述DSP配置程序控制网络数据包加速器实现相应功能的流程包括:
步骤1:DSP配置程序接收IP地址分类信息,将IP地址分类信息处理成多条IP地址分类指令:包括各条包含不同IP地址的分类指令和一条不包含所有指定的IP地址的分类指令;
步骤2:每次发送一条IP地址分类指令,直至全部发送,每次的发送流程如下:
DSP配置程序利用网络数据包加速器LLD从网络数据包加速器的发送空闲队列中弹出一个空描述符;
网络数据包加速器LLD表示网络数据包加速器的底层驱动;
配置该空描述符类型为指令传递,并将一条IP地址分类指令和自定义的确认信息添加到空描述符中;
利用网络数据包加速器LLD将带有IP地址分类指令和确认信息的描述符推进到网络数据包加速器的指令接收队列中,网络数据包加速器将指令接收队列中描述符的确认信息复制到指令确认队列中描述符对应的位置;
通过网络数据包加速器LLD从网络数据包加速器的指令确认队列弹出一个描述符,若该描述符上的确认信息与所述自定义的确认信息吻合,则确定网络数据加速器指令接收成功;
步骤3:网络数据包加速器按照步骤二,将从DMA传输装置接收来的数据分类成各条包含不同IP地址的数据流和一条不包含所有指定IP地址的数据流。
8.根据权利要求7所述的以太网络数据IP地址高速分类装置,其特征在于,所述IP地址分类信息的结构和参数:
其中,数量:表示IP地址分类信息内一共包含的用户指定IP地址分类条件的数量;
序号:作为每个IP地址分类条件的分隔符,表示是第几个IP地址分类条件;
匹配目的地:当应用系统数据包含该IP地址时,应用系统数据被送达的地方;
匹配目的地之后的备注:当以以太网端口为有效匹配目的地时,用于指定应用系统数据被送达哪个以太网端口;
不匹配目的地:当应用系统数据不包含所有指定IP地址时,应用系统数据被送达的地方;
不匹配目的地之后的备注:不包含所有指定IP地址的应用系统数据被送达哪个以太网端口。
CN201610589941.2A 2016-07-25 2016-07-25 以太网络数据ip地址高速分类装置 Active CN106210172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610589941.2A CN106210172B (zh) 2016-07-25 2016-07-25 以太网络数据ip地址高速分类装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610589941.2A CN106210172B (zh) 2016-07-25 2016-07-25 以太网络数据ip地址高速分类装置

Publications (2)

Publication Number Publication Date
CN106210172A true CN106210172A (zh) 2016-12-07
CN106210172B CN106210172B (zh) 2019-04-16

Family

ID=57494817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610589941.2A Active CN106210172B (zh) 2016-07-25 2016-07-25 以太网络数据ip地址高速分类装置

Country Status (1)

Country Link
CN (1) CN106210172B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643986A (zh) * 2017-09-11 2018-01-30 广州慧睿思通信息科技有限公司 一种使用环形Buffer和自动回收描述符的AIF接收数据处理方法
CN111431852A (zh) * 2020-02-21 2020-07-17 厦门大学 一种浏览器历史嗅探方法与浏览器历史监控方法
CN112347028A (zh) * 2020-09-24 2021-02-09 深圳市紫光同创电子有限公司 基于fpga的数据处理方法及系统
CN114500408A (zh) * 2022-01-13 2022-05-13 中汽创智科技有限公司 一种以太网络交换装置、数据处理装置和车辆
CN115225592A (zh) * 2022-06-01 2022-10-21 裕太微(上海)电子有限公司 一种直接存储器访问数据传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179709A1 (en) * 2002-03-21 2003-09-25 Broadcom Corporation Auto-selection of SGMII or SerDes pass-through modes
CN101453368A (zh) * 2007-12-03 2009-06-10 华为技术有限公司 一种因特网ip地址分类和带宽预测的方法、系统及设备
CN105357147A (zh) * 2015-11-30 2016-02-24 北京控制工程研究所 一种高速高可靠的片上网络适配单元

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179709A1 (en) * 2002-03-21 2003-09-25 Broadcom Corporation Auto-selection of SGMII or SerDes pass-through modes
CN101453368A (zh) * 2007-12-03 2009-06-10 华为技术有限公司 一种因特网ip地址分类和带宽预测的方法、系统及设备
CN105357147A (zh) * 2015-11-30 2016-02-24 北京控制工程研究所 一种高速高可靠的片上网络适配单元

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
肖小林: "基于网络处理器的包分类引擎设计与实现", 《万方学位论文》 *
董岩: "SGMII链路数据解析", 《数据通信》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643986A (zh) * 2017-09-11 2018-01-30 广州慧睿思通信息科技有限公司 一种使用环形Buffer和自动回收描述符的AIF接收数据处理方法
CN107643986B (zh) * 2017-09-11 2020-11-13 广州慧睿思通信息科技有限公司 一种使用环形Buffer和自动回收描述符的AIF接收数据处理方法
CN111431852A (zh) * 2020-02-21 2020-07-17 厦门大学 一种浏览器历史嗅探方法与浏览器历史监控方法
CN112347028A (zh) * 2020-09-24 2021-02-09 深圳市紫光同创电子有限公司 基于fpga的数据处理方法及系统
CN114500408A (zh) * 2022-01-13 2022-05-13 中汽创智科技有限公司 一种以太网络交换装置、数据处理装置和车辆
CN115225592A (zh) * 2022-06-01 2022-10-21 裕太微(上海)电子有限公司 一种直接存储器访问数据传输方法及系统
CN115225592B (zh) * 2022-06-01 2024-01-12 裕太微(上海)电子有限公司 一种直接存储器访问数据传输方法及系统

Also Published As

Publication number Publication date
CN106210172B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN106210172A (zh) 以太网络数据ip地址高速分类装置
US5757795A (en) Method and apparatus for hashing addresses in a network switch
US7421528B1 (en) Network media access controller embedded in a programmable logic device—address filter
US7934038B1 (en) Embedded network media access controller
US7382787B1 (en) Packet routing and switching device
US9100349B2 (en) User selectable multiple protocol network interface device
US7743197B2 (en) System and method for virtualizing PCIe devices
US8031731B2 (en) System for sharing a network port of a network interface including a link for connection to another shared network interface
US7912082B2 (en) Shared virtual network interface
US6925055B1 (en) Systems and methods for traffic shaping
US7647472B2 (en) High speed and high throughput digital communications processor with efficient cooperation between programmable processing components
US20140237156A1 (en) Multi-path id routing in a pcie express fabric environment
JPH09504149A (ja) 非同期転送モード(atm)ネットワーク・デバイス
US9172602B1 (en) Method and system for auto-negotiation
WO2006063297A1 (en) Pci express to advanced switching fabric interface
JP2002512766A (ja) 第1のプロトコルから第2のプロトコルへのデータ転送方法及び装置
US8271716B2 (en) Virtualization of an input/output device for supporting multiple hosts and functions by using an ingress manager for accepting into a buffer communications identified by functions hosted by a single host
US6993033B1 (en) Method and apparatus for synchronizing aging operations associated with an address table
US9071559B1 (en) Network devices having configurable receive packet queues and related methods
CN110995507A (zh) 一种网络加速控制器及方法
US7099285B1 (en) Remote configuration of a subnet configuration table in a network device
US6947437B1 (en) Programmable output queues in a network device
US7079533B1 (en) Systems and methods for bypassing packet lookups
US7080135B1 (en) Systems and methods for accessing an address table of a network device
US20090046736A1 (en) Method and system for keeping a fibre channel arbitrated loop open during frame gaps

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant