一种配置网络处理器的方法和装置与流程

文档序号:12622533阅读:305来源:国知局
一种配置网络处理器的方法和装置与流程

本发明涉及网络通信设备技术,尤指一种配置网络处理器(NP,Network Processer)的方法和装置。



背景技术:

网络处理器是一种专用的处理器,主要用于网络中转发报文的处理。在企业局域网(LAN,Local Area Network)中,网络处理器可以用来实现入侵检测、数据加密、网络监控、企业内部网(Intranet)防火墙等安全控制,防御内部和外部的恶意行为;可以将业务进行分组分类,识别关键业务流,提供优先传输服务,实现用户在网络服务上的各种管理策略,保证服务质量;可以提供虚拟专用网(VPN,Virtual Private Network)等。在广域接入网中,网络处理器主要是支持多种新型业务和多种网络接入,并进行服务质量控制。在广域核心网中,网络处理器用在光学载波48(OC-48,Optical Carrier 48)到OC-192甚至更高速率下实现对聚合流的分类识别和转发,支持服务质量控制和流量工程,支持多协议标签转换(MPLS,Multi-Protocol Label Switching)、区分服务(DiffServ)等协议。由于网络处理器的使用范围比较广,且能支持非常多的网络功能,因此网络处理器的配置非常复杂且与所在硬件系统以及所处网络场景强相关。

现有技术一般都是针对每一种场景开发一个配置网络处理器的软件包。当将网络处理器应用在新的硬件系统或者网络应用时,方法一是重新开发一个软件包,这种方法的好处就是,新增需求不会影响已有软件包的功能,缺点是开发时间长,软件冗余度大,维护成本增加;方法二是修改原来的软件包,这种方法相对于前一种方法软件冗余度低,但是有可能影响已有功能,因此需要重新验证已有功能,这样又额外增加了开发工作量。这两种方法的共同缺点是,对于已经在运行的设备,如果要更改配置,都需要更换软件包, 这就需要重启设备。因此,对于不同的硬件系统或网络应用下的网络处理器的配置比较复杂。



技术实现要素:

为了解决上述问题,本发明提出了一种配置网络处理器的方法和装置,能够简单地实现对不同硬件系统或网络应用下的网络处理器的配置。

为了达到上述目的,本发明提出了一种配置网络处理器的方法,预先将待配置的参数和配置值之间的对应关系加载到内存中,该方法包括:

在内存中查找待配置的参数对应的配置值;

根据查找到的配置值对待配置的参数进行配置。

优选地,当在所述内存中查找不到待配置的参数对应的配置值时,该方法还包括:

返回表示查找不到的信息。

优选地,所述预先将待配置的参数和配置值之间的对应关系加载到内存中包括:

将包含有所述对应关系的可扩展标记语言XML配置文件加载到内存中并转换成树结构;

所述在内存中查找待配置的参数对应的配置值包括:

在所述内存的树结构中查找所述待配置的参数对应的配置值。

本发明还提出了一种配置网络处理器的装置,至少包括:

加载模块,用于预先将待配置的参数和配置值之间的对应关系加载到内存中;

查找模块,用于在内存中查找待配置的参数对应的配置值;

配置模块,用于根据查找到的配置值对待配置的参数进行配置。

优选地,所述查找模块还用于:

在所述内存中查找不到待配置的参数对应的配置值,返回表示查找不到的信息。

优选地,所述加载模块具体用于:

将包含有所述对应关系的可扩展标记语言XML配置文件加载到内存中并转换成树结构;

所述查找模块具体用于:

在所述内存的树结构中查找所述待配置的参数对应的配置值。

与现有技术相比,本发明包括:预先将待配置的参数和配置值之间的对应关系加载到内存中,在内存中查找待配置的参数对应的配置值;根据查找到的配置值对待配置的参数进行配置。通过本发明的方案,对于不同的硬件系统或网络应用下的网络处理器的配置,只需要更改加载到内存中的对应关系,而不需要重新开发软件包或修改原来的软件包,从而简单地实现了对不同硬件系统或网络应用下的网络处理器的配置。

附图说明

下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。

图1为本发明配置网络处理器的方法的流程图;

图2为网络处理器的对外接口的连接示意图;

图3为本发明配置网络处理器的装置的结构组成示意图。

具体实施方式

为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。

参见图1,本发明提出了一种配置网络处理器的方法,预先将待配置的 参数和配置值之间的对应关系加载到内存中。具体地,

将包含有对应关系的可扩展标记语言(XML,Extensible Markup Language)配置文件加载到内存中并转换成树结构。

其中,网络处理器的配置一般包括接口配置、存储器配置、表的配置、统计计数配置和定时器配置等。XML配置文件中的对应关系可以按照网络处理器的硬件结构将网络处理器划分成多个配置单元,使得后续的配置流程相对稳定。

其中,XML配置文件中可以只保存有需要动态配置的参数,对应静态配置的参数可以直接将配置值写入配置流程中。

例如,图2为网络处理器的对外接口的连接示意图。如图2所示,根据网络处理器对外接口根据功能不同,可以划分为:外围设备互联协议(PCIe,Peripheral Component Interconnect Express)接口,报文转发接口,存储(Memory)接口,三态内容寻址存储器(TCAM,Ternary Content Addressable Memory)接口

其中,PCIe接口实现NP和主CPU(host CPU)之间的互联,该接口与应用场景无关,与硬件系统有关,但通常不会有太大变化,因此该接口考虑采用静态配置模式,即不提取可配置的参数存放到XML配置文件中。

报文转发接口包括和以太交换机(Ethernet Switch)对接的接口,和成帧器(framer)(指将电信号或光信号根据协议转换为数据帧的设备)对接的接口,和交换网接入芯片对接的接口,这个部分的接口的配置和对端设备有关,这部分配置是可变的,需要把配置参数提取出来存放到XML配置文件中。报文转发接口可配置的参数包括:对接的接口类型、该类型的接口格式、该类型接口能支持的配置等。

Memory接口实际对接双倍速率同步动态随机存储器(DDR,Double Data Rate)型号有关,因此也是可变的,需要提取出来存放到XML配置文件中。Memory接口可以配置的参数包括对接的DDR的速率、容量、走线延迟(RTT,Round Trip Time Delay)等。

TCAM接口,网络处理器可以外接TCAM,也可以选择不外接,和硬件 系统的结构有关,因此也需要提取出配置参数存放到XML配置文件中。当TCAM接口为高速串行传输接口(Interlaken Look Aside)类型时,可以配置的参数包括串行传输器(serdes)个数、serdes速率等。

其中,不同硬件系统或网络应用下的网络处理器的XML配置文件可以采用树形结构进行保存,树形结构的第一级子目录以硬件系统为标识,第二级子目录以网络应用场景为标识,叶子节点保存一个XML配置文件,例如,硬件系统-xxx,网络应用场景-xxx的XML配置文件。在具体配置时,根据硬件系统和网络应用场景选择对应的XML配置文件。

其中,XML配置文件是一种树形结构,由XML元素组成。XML元素的格式为:<标记名称属性名1="属性值1"属性名2="属性值2"……>内容</标记名称>。XML配置文件最内层的XML元素用“element”作为标记名称,用来描述某个具体的配置参数,属性名和属性值表示待配置的参数的名称、数据类型等,内容为具体的配置值。例如,<element name="dwIFSum"type="WORD32">10</element>表示将名称为dwIFSum,数据类型为WORD32的参数配置为10,数据类型可以是编程语言自带的类型,也可以是自定义的类型。

次内层XML元素的标记名称统一为“Config”,用来描述一组相关的配置参数。

例如,某一XML配置文件如下:

<system chiptype=”NP”>

<chip devid=”0”>

<module name=”memory”>

<config name=”ExtMemConfig”>

<element name=”eExtMemType”type=”WORD32”>2</element>

<element name=”uiExtMemSize”type=”WORD32”>12288</element>

</config>

</module>

……

</chip>

<chip devid=”1”>

……

</chip>

</system>

其中,第一行表示硬件系统名称为NP(即网络处理器),第二行表示标号为0的NP,第三行表示标号为0的NP的Memory接口,第四行表示一组相关配置的参数的名称(通常,可以根据配置参数的作用,以及配置流程中对参数的配置来将配置参数进行分组,同一组参数通常是配置流程中的同一个步骤中完成的),第五行是名称为eExtMemType的参数的配置值,第六行是名称为uiExtMemSize的参数的配置值,第七行和第八行为结束标识符。

由于网络处理器的配置非常多,在某些情况存在相同配置的情况,例如:网络处理器与framer对接时用到了10个QSGMII(一种以太网接口协议)类型的接口,一般来说,这10个接口的配置是相同的,为了减少XML配置文件的冗余,可以自定义一些数据类型,比如:

<config name="QSGMIIConfig"ifid="[0:9]">

……

</config>

[0:9]是一个范围,表示接口编号从0到9共用一套配置。

其中,如何将包含有对应关系的XML配置文件加载到内存中并转换成树结构属于本领域技术人员的公知常识,并不用于限定本发明的保护范围,这里不再赘述。

该方法还包括:

步骤100、在内存中查找待配置的参数对应的配置值。具体包括:

在内存的树结构中查找待配置的参数对应的配置值。

其中,如何在内存的树结构中查找待配置的参数对应的配置值属于本领域技术人员的公知常识,并不用于限定本发明的保护范围,这里不再赘述。

例如,查询关键字的格式可以是“(Tag)(Attr1,format,value)…/(Tag)(Attr1,format,value)…/…”。其中,Tag为标记名称,Attr为属性名称,format为将value按format的格式进行转换,Value为属性值,/表示XML元素的层次。

查找时,先获取查询关键字中的第一级信息,将其中的Tag和XML配置文件的最外层XML元素的标记名称进行比较,如果匹配,则将其中的属性名称与最外层XML元素中的属性名称进行比较,将其中的属性值转换成format格式后与最外层XML元素的属性值进行比较,如果都匹配,则提取查询关键字中的第二级信息与次外层XML元素进行比较,以此类推,直到将查询关键字中的所有信息被遍历,且找到一个符合要求的XML元素,则返回查询到的XML元素。

本步骤中,当在内存中查找不到待配置的参数对应的配置值时,返回表示查找不到的信息,并结束本流程。

本步骤中,当在查找过程中遇到了异常时,返回查询错误,并结束本流程。

步骤101、根据查找到的配置值对待配置的参数进行配置。

本步骤中,首先将查找到的配置值转换成type类型的值,将根据转换后的值对待配置的参数进行配置,具体如何配置属于本领域技术人员的公知技术,并不用于限定本发明的保护范围,这里不再赘述。

参见图3,本发明还提出了一种配置网络处理器的装置,其特征在于,至少包括:

加载模块,用于预先将待配置的参数和配置值之间的对应关系加载到内存中;

查找模块,用于在内存中查找待配置的参数对应的配置值;

配置模块,用于根据查找到的配置值对待配置的参数进行配置。

本发明的装置中,查找模块还用于:

在内存中查找不到待配置的参数对应的配置值,返回表示查找不到的信息。

本发明的装置中,加载模块具体用于:

将包含有对应关系的可扩展标记语言XML配置文件加载到内存中并转换成树结构;

查找模块具体用于:

在内存的树结构中查找待配置的参数对应的配置值。

其中,加载模块应对查找模块提供四个接口,获取XML根元素的接口、在指定XML元素下根据XML标记名称获取对应子元素的接口、在指定XML元素下根据属性名获取属性值的接口、销毁内存中的XML树形结构,回收内存资源的接口。

需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。

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