一种数据帧转发系统及方法与流程

文档序号:17760490发布日期:2019-05-24 21:38阅读:556来源:国知局
一种数据帧转发系统及方法与流程

本发明涉及计算机通信技术领域,具体涉及一种数据帧转发系统及方法。



背景技术:

目前hgu(homegatewayunit,家庭网关单元)设备在接入网中获得了大规模应用。hgu设备需要为客户提供多种服务,并支持有线和wifi接入。hgu设备需要提供voip(voiceoverinternetprotocol,基于ip协议的语音电话)、iptv(internetprotocoltelevision,ip电视/交互式网络电视)、数据业务(internet接入服务)服务,为了提供这些服务,hgu需要处理多种数据帧,包括数据层面数据(不属于控制层面数据的数据)和控制层面数据。例如,为了提供internet接入服务,hgu需要支持dns(dynamicnamesystem,域名系统)、dhcp(dynamichostconfigurationprotocol,动态主机配置协议)、arp(addressresolutionprotocol,地址解析协议)等控制层面帧的处理;为了提供iptv服务,需要支持igmp(internetgroupmanagementprotocol,互联网组管理协议)帧的处理;还要支持hgu设备本身的控制、管理帧处理。这些不同的数据帧需要按照不同的服务等级处理,对于voip、iptv数据帧的处理要求是实时性高,抖动小;对于控制层面的信息帧也要尽量保证及时处理,不丢包;对于数据业务帧要保证cir(commitinformationrate,承诺信息速率)。

为了支持这些数据帧的处理,hgu设备多采用soc(systemonchip,片上系统)架构,将管理、控制层面帧交给软件处理,在接入速率要求低的情况下,数据层面数据也可以由软件处理。但随着通信的发展,客户对接入带宽的需求越来越大,目前gpon(gigabit-capablepon,吉比特以太网无源光网络)类hgu要求的吞吐量约为3gbit/s,对于xgpon(xg-passiveopticalnetwork,万兆吉比特无源光网络)类hgu,要求的吞吐量会更高,采用纯软件处理的方式已不能满足需求,需要提供硬件转发模块来加速转发。如何设计硬件转发装置和方法,满足各项业务性能,降低cpu(centralprocessingunit,中央处理器)的处理负荷,从而降低设备成本就变的非常关键。目前的设计中对于wifi(wirelessfidelity,无线相容性认证)数据帧、控制帧、管理帧,在soc子系统和硬件转发装置间大都采用一个接口进行数据交互,导致不能区分这些帧的处理优先级,使软件处理复杂,cpu占用率高,有时甚至需要选择更高性能的cpu才能满足处理需要。

同时,hgu设备除支持有线接入外,还要支持wifi(wirelessfidelity)接入。通常,hgu设备中wifi数据接入是由wifi器件和hgu核心芯片配合完成,wifi芯片和hgu核心芯片通过pci-e(peripheralcomponentinterconnectexpress,一种高速串行计算机扩展总线标准)接口相连,通过dma(directmemoryaccess,直接内存存取)方式传递wifi数据。来自wifi器件的数据传递到hgu主芯片后,hgu主芯片要对其进行转发处理;同时hgu主芯片还要将来自其它接口的数据转发到wifi器件,在这些过程中,不可避免的会需要cpu的参与。并且hgu对于wifi接入速率要求越来越高(目前xgpon对wifi接入速率的要求已经达到600mbit/s以上),完全采用软件方式对wifi数据进行处理会耗费大量的cpu的处理能力,且有可能需要选用更高性能的cpu,提高设备成本,由于wifi接入方式的特殊性及高速率,所以在考虑硬件转发时,对wifi数据的处理就变的很重要。目前有文献资料提到hgu中数据业务的转发机制,但没有看到有文献资料提到对wifi数据的加速转发方法。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种数据帧转发系统及方法,提高数据帧的处理效率,减轻cpu的处理负担。

为达到以上目的,本发明采取的技术方案是:一种数据帧转发系统,包括soc子系统、接口扩展模块和硬件转发模块:

soc子系统用于:将从对外接口接收的待处理数据帧存储到发送存储区域,并通过接口扩展模块发送至硬件转发模块进行处理;

接口扩展模块用于:与soc子系统之间通过soc总线传递数据;与硬件转发模块之间通过多个数据接口传递数据;并配置不同类型的数据流,通过不同的数据接口传递;

硬件转发模块用于:提取包解析信息,对于需转发到soc子系统的数据帧进行下列处理:对数据层面帧完成数据帧的修改,不携带包解析信息转发到soc子系统,对管理/控制数据帧不进行数据帧修改,携带包解析信息转发至soc子系统。

在上述技术方案的基础上,所述soc子系统还用于:将从接口扩展模块接收的数据帧存储到接收存储区域,并通过对外接口发送至wifi器件、语音接口器件、管理层/控制层软件进行处理。

在上述技术方案的基础上,所述soc子系统还用于:对于需要发送到硬件转发模块的数据帧,配置不同类型的数据流存储在不同的发送存储区域;对于接收到的数据,配置不同数据接口接收的数据流存放在不同的接收存储区域。

在上述技术方案的基础上,所述包解析信息包括:数据包的接收端口,数据包的以太网封装类型,数据携带的vlan个数,数据包是否携带ppp头。

在上述技术方案的基础上,将从wifi器件接收到的wifimac帧转换成以太网帧,再存储到发送存储区域;将接收到的语音数据先封装成voip包,再封装成以太网帧,并存储到发送存储区域。

本发明还公开一种数据帧转发方法,包括以下步骤:

soc子系统将从对外接口接收的待处理数据帧存储到发送存储区域,并发送至硬件转发模块进行处理;

soc子系统与硬件转发模块之间通过多个数据接口传递数据,并配置不同类型的数据流,通过不同的数据接口传递;

硬件转发模块提取包解析信息,对于需转发到soc子系统的数据帧进行下列处理:对数据层面帧完成数据帧的修改,不携带包解析信息,再转发至soc子系统,对管理/控制数据帧不进行数据帧修改,携带包解析信息转发至soc子系统。

在上述技术方案的基础上,还包括以下步骤:

所述soc子系统将从硬件转发模块接收的数据帧存储到接收存储区域,并通过对外接口发送至wifi器件、语音接口器件、管理层/控制层软件进行处理。

在上述技术方案的基础上,在所述soc子系统中,对于待发送至硬件转发模块的数据帧,配置不同类型的数据流存储在不同的发送存储区域;对于接收到的数据,配置不同数据接口接收的数据流,存放在不同的接收存储区域。

在上述技术方案的基础上,所述包解析信息包括:数据包的接收端口,数据包的以太网封装类型,数据携带的vlan个数,数据包是否携带ppp头。

在上述技术方案的基础上,所述soc子系统将从对外接口接收的待处理数据帧存储到发送存储区域,具体包括以下过程:

所述soc子系统将从wifi器件接收到的wifimac帧转换成以太网帧,再存储到发送存储区域;将接收到的语音数据先封装成voip包,再封装成以太网帧,并存储到发送存储区域。

与现有技术相比,本发明的优点在于:

(1)本发明在soc子系统和硬件转发模块之间采用多个独立的数据接口交互数据,并配置不同类型的数据流采用不同的接口传递,可提高数据帧的处理效率。

(2)对传统的硬件加速机制进行改进,数据层面帧由硬件转发模块完成数据转发和数据帧修改,管理/控制数据帧通过独立的接口上送soc子系统,上送时不对数据帧进行修改,可提高数据帧的处理效率,减轻cpu的处理负担,增大设备吞吐量。

(3)在soc子系统中,对于需发送到硬件转发模块的数据帧,根据数据流类型存储在不同的发送存储区域,以保证发送数据帧的优先级;对于接收到的数据,配置不同数据接口接收的数据流存放在不同的接收存储区域,保证处理数据帧的优先级和处理效率。

附图说明

图1为本发明实施例1中数据帧转发系统的结构示意图;

图2为本发明实施例4中数据帧转发方法的从soc子系统发送数据帧到硬件转发模块的流程示意图;

图3为本发明实施例5中数据帧转发方法的从硬件转发模块发送数据帧到soc子系统的流程示意图;

图4为本发明实施例5中数据帧转发系统的结构示意图;

图5为本发明实施例6中数据帧转发系统的发送、接收存储区域结构示意图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

实施例1:

参见图1所示,本发明实施例公开了一种数据帧转发系统,包括soc子系统、接口扩展模块和硬件转发模块:

soc子系统用于:将从对外接口接收的待处理数据帧存储到发送存储区域,并通过接口扩展模块发送至硬件转发模块进行处理;将从接口扩展模块接收的数据帧存储到接收存储区域,并通过对外接口发送至wifi器件、语音接口器件、管理层/控制层软件进行处理;

接口扩展模块用于:与soc子系统之间通过soc总线传递数据;与硬件转发模块之间通过多个数据接口传递数据,并配置不同类型的数据流通过不同的数据接口传递;

硬件转发模块用于:提取包解析信息,对于需转发到soc子系统的数据帧进行下列处理:对数据层面帧完成数据帧的修改,不携带包解析信息,再转发到soc子系统;对管理/控制数据帧不进行数据帧修改,携带包解析信息转发至soc子系统;对于不需要转发到soc子系统的数据帧完成数据帧的修改和转发。

soc子系统还用于:对于需要发送到硬件转发模块的数据帧,配置不同类型的数据流存储在不同的发送存储区域;对于接收到的数据,配置不同数据接口接收的数据流存放在不同的接收存储区域。

接口扩展模块还用于:soc子系统与硬件转发模块之间通过多个数据接口传递数据时,根据用户配置控制各数据接口的发送速率。

包解析信息包括:数据包的接收端口,数据包的以太网封装类型,数据携带的vlan(virtuallocalareanetwork,虚拟局域网)个数,数据包是否携带ppp(point-to-pointprotocol,点对点协议)头。

将从wifi器件接收到的wifimac帧转换成以太网帧,再存储到发送存储区域;将接收到的语音数据先封装成voip包,再封装成以太网帧,并存储到发送存储区域。

实施例2:

在实施例1的基础上,参见图1所示,数据帧转发系统由三部分组成:soc子系统、硬件转发模块、接口扩展模块。

soc子系统的功能是:通过pci-e接口和wifi器件交互数据,通过语音接口和语音接口器件交互数据,通过内存接口在存储器进行数据存取,通过soc总线和接口扩展模块交互数据。soc总线包括axi(advancedextensibleinterface,一种总线协议)总线、apb(advancedperipheralbus,外围总线)总线。

soc子系统对于从wifi器件接收到的数据帧进行必要的处理,例如,如果wifi器件只能处理wifimac(mediaaccesscontrol,介质访问控制)帧,则soc子系统需要将接收的wifimac帧转换成以太网帧,然后存储到特定的发送存储区域,等待发送。soc子系统对于接收到的语音数据先封装成voip包,然后再封装成以太网帧,然后将数据存储到特定的发送存储区域,等待发送。对于管理、控制层面要发送的数据帧也存储到存储器的特定发送存储区域,等待发送。soc子系统将要发送到硬件转发模块的数据,通过soc总线传送到接口扩展模块。

soc子系统通过soc总线从接口扩展模块接收数据,然后将来自于各cpuport的数据存储到特定的接收存储区域。然后对数据包进行处理,包括:将接收的wifi数据包进行必要的数据格式转换后(例如,如果wifi器件只能处理wifimac帧,则soc子系统需要将以太网帧转换为wifimac帧),发送到wifi器件;将voip语音数据发送到语音接口器件;将管理、控制层面包送到管理层、控制层软件进行处理。

接口扩展模块的功能是:通过soc总线和soc子系统进行数据交互;通过cpu_port1、cpu_port2…cpu_portn和硬件转发模块进行数据交互。对于soc子系统的发送数据,根据数据帧的存储区域选择通过cpu_port1、cpu_port2…或cpu_portn发送到硬件转发模块,例如将wifi数据帧采用cpu_port1发送,将voip数据帧通过cpu_port2发送,将管理、控制层面的数据帧通过cpu_portn发送;并从cpu_port1、cpu_port2…cpu_portn接收来自硬件转发模块的数据帧,通过soc总线送到soc子系统,在soc子系统中可将来自cpu_port1、cpu_port2…cpu_portn的数据帧存放在不同的接收存储区域中。

硬件转发模块的功能是:将来自lan(localaccessnetwork)接口、wan(wideaccessnetwork)接口、cpu_port接口的数据帧经过各自的接口模块处理后,通过核心模块进行转发处理,核心模块包括包解析、包转发、包修改等多个子模块。本发明对传统的硬件转发模块做了改进,主要是对包解析模块和包修改模块做了改动。对包解析子模块的改动体现为提取包解析信息,包括:src_port(数据包的接收端口),eth_type(数据包的以太网封装类型,包括:以太网ii封装,802.3llc(logiclinkcontrol,逻辑链路控制)封装,802.3snap(sub-networkaccessprotocol,子网络访问协议)封装),vlan_num(数据携带的vlan个数),ppp_hdr_exist(数据包是否携带ppp头),并将这些信息传递到包修改模块。对包转发子模块的改动为:判断是否发到soc子系统及是否是管理/控制数据帧。对包修改子模块的改动为:对于转发到cpu_port1、cpu_port2…cpu_portn的数据帧,可以根据cpu_port1、cpu_port2…cpu_portn配置是否对数据帧进行修改,对于不进行修改的数据帧,携带上述包解析信息上送cpu(soc);对于进行修改的数据帧,不携带上述描述信息。

实施例3:

本发明实施例提供一种数据帧转发方法,包括以下步骤:

soc子系统将从对外接口接收的待处理数据帧存储到发送存储区域,并发送至硬件转发模块进行处理;

soc子系统与硬件转发模块之间通过多个数据接口传递数据,并配置不同类型的数据流通过不同的数据接口传递;

硬件转发模块提取包解析信息,对于需转发到soc子系统的数据帧进行下列处理:对数据层面帧完成数据帧的修改,不携带包解析信息,再转发至soc子系统;对管理/控制数据帧不进行数据帧修改,携带包解析信息转发至soc子系统;对于不需要转发到soc子系统的数据帧完成数据帧的修改和转发。

soc子系统将从硬件转发模块接收的数据帧存储到接收存储区域,并通过对外接口发送至wifi器件、语音接口器件、管理层/控制层软件进行处理。

在soc子系统中,对于待发送至硬件转发模块的数据帧,配置不同类型的数据流存储在不同的发送存储区域;对于接收到的数据,配置不同数据接口接收的数据流存放在不同的接收存储区域。

包解析信息包括:数据包的接收端口,数据包的以太网封装类型,数据携带的vlan个数,数据包是否携带ppp头。

soc子系统将从对外接口接收的待处理数据帧存储到发送存储区域,具体包括以下过程:

soc子系统将从wifi器件接收到的wifimac帧转换成以太网帧,再存储到发送存储区域;将接收到的语音数据先封装成voip包,再封装成以太网帧,并存储到发送存储区域。

实施例4:

在实施例3的基础上,参见图2所示,从soc子系统发送数据帧到硬件转发模块的处理方法:

a1:soc子系统对于接收到的来自wifi器件的数据帧,如果需要,将数据包从wifimac帧格式转变为以太网帧格式,然后将数据帧存在特定的发送存储区域;soc对于接收到的来自语音接口器件的数据,先封装成voip包,再封装成以太网帧,然后将数据帧存放在特定的发送存储区域;soc子系统对于要发送的管理、控制数据帧也存放在特定的发送存储区域。

a2:soc子系统通过soc总线总线向接口扩展模块提出发送请求,发送请求中携带数据包的存储区域信息。

a3:接口扩展模块将来自于不同存取区域的数据包(即wifi数据、voip数据、管理控制数据包),采用不同的cpu_port发送到硬件转发模块。

在数据发送过程中,接口扩展模块和soc子系统可根据控制策略控制各cpu_port的发送速率。

实施例5:

在实施例3的基础上,参见图3所示,从硬件转发模块发送数据帧到soc子系统的处理方法:

b1:硬件转发模块通过各接口模块接收来自各接口的数据帧,然后发送到核心模块。

b2:在包解析子模块收集{src_port,eth_type,vlan_num,ppp_hdr_exist}信息,并将这些信息随包传送到包修改模块。

b3:通过包转发子模块对管理、控制数据帧进行识别,然后转发到一个特定的cpu_port。

b4:对于从lan口、pon口收到的wifi数据帧通过包转发子模块转发到相应的cpu_port。

b5:对于从lan口、pon口收到的voip数据帧通过包转发子模块转发到相应的cpu_port。

b6:在包修改子模块,对cpu_port进行配置,对于管理、控制帧对应的cpu_port配置为不进行数据包的修改,携带{src_port,eth_type,vlan_num,ppp_hdr_exist}信息发送到接口扩展模块;对于其它cpu_port配置为进行数据包的修改,不携带上述描述信息发送接口扩展模块。

b7:各cpu_port按照配置对数据帧进行处理后,发送到接口扩展模块。

b8:接口扩展模块收到来自各cpu_port的数据帧,通过soc总线向soc申请数据传送请求,soc接受请求后,将来自不同cpu_port的数据帧存放到不同的接收存储区域。

在发送过程中,接口扩展模块和soc子系统根据处理策略控制各cpu_port的发送速率。

实施例6:

在实施例3的基础上,参见图4所示,wifi器件1通过pci-ebus1和soc子系统相连,wifi器件2通过pci-ebus2和soc子系统相连,语音接口器件通过tdmbus和soc子系统相连。图5为接收、发送存储区域示意图。

soc子系统将从pci-ebus1接收到的wifi数据,经过必要的处理后存放在发送存储区域1;将从pci-ebus2接收的wifi数据,经过必要的处理后存在在发送区域2;将从tdm(timedivisionmultiplexing,时分复用)bus(总线)收到的数据封装成以太网包后,存放在发送区域3;将待发送的控制、管理数据存放在发送区域4。

接口扩展模块采用cpu_port1、cpu_port2、cpu_port3、cpu_port4分别发送存储在发送区域1-4的数据到硬件转发模块。

在硬件转发模块的核心模块进行配置,使来自lan、wan口的属于wifi1的数据转发到cpu_port1,使属于wifi2的数据转发到cpu_port2,使voip数据转发到cpu_port3,管理控制数据转发到cpu_port4。

在硬件转发模块的包修改模块进行配置,对发送到cpu_port1、cpu_port2的数据进行包修改,对发送到cpu_port3、cpu_port4的数据不进行包修改,携带描述信息上cpu。

soc子系统从cpu_port1、cpu_port2、cpu_port3、cpu_port4接收到的数据分别存储到接收存储区域1-4。soc软件直接对接收到的数据进行处理。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1