APP下载

基于网络处理器的IPV4转发功能的实现

2011-11-26鹏,何

铁路计算机应用 2011年12期
关键词:报文数据包处理器

王 鹏,何 枫

( 西南交通大学 信息科学与技术学院, 成都 610031 )

随着网络技术的不断发展,用户需求的不断增大以及需要业务功能的不断增强,对网络通信起主要作用的路由器的发展大致经历了3个阶段,其中,路由器的处理核心也经历了3个阶段的变化。(1)在网络发展初期,网络传输的速率比较低,通用CPU也可以满足网络的需求。然而,随着各种传输技术的进步,基于CPU转发的网络设备逐渐变成了网络传输的瓶颈。(2)网络设备开始更多地采用基于固定功能的专用集成电路(ASIC)技术来获得比较高的处理速度。然而,ASIC最大的缺点是不可编程,因而缺乏灵活性,很难修改升级,无法满足当前网络新业务的不断出现。(3)正是在CPU和ASIC技术都无法满足的这种双重要求下,出现了网络处理器技术。

网络处理器具有高性能、灵活等优点,是设计网络设备的理想方案。网络处理器通过良好的体系结构设计和专门针对网络处理优化的部件,为上层提供了一个可编程控制的环境,但网络处理器也有技术复杂、硬件资源限制较多缺点,给设计带来了不少困难。本文设计了基于网络处理器的IPV4报文转发,由于平台在硬件资源方面的限制,本文就设计过程中遇到的问题和解决方法展开讨论[1~2]。

1 网络处理器简介

本文所用的网络处理器(NP)可以达到10 Gbit线速的要求,可用于做接入设备。芯片内有很多高速的微引擎,当一个报文进来后,硬件自动绑定5个微引擎来执行报文的业务操作。这时内部的其它微引擎可以并行处理进来的各个报文。

该网络处理器内含许多高速的任务优化处理器(TOP),分为4种类型:解析处理器、查找处理器、分配处理器及修改处理器。所有相同类型的TOP执行相同的代码,但具有各自的存储空间和相互独立的指令代码空间。这样,多个相同类型TOP就可以并行执行,不同类型的TOP可以形成流水线处理,如图1,从而满足网络上的数据包高速修改转发和过滤的需求。

图1 网络处理器TOP阵列[3]

4种不同类型的TOP各自完成不同的功能:

(1)解析处理器:解析和提取各种数据包的包头、标记、地址、端口、协议、模式和关键字等。

(2)查找处理器:使用提取出的字段作为关键字在相关的路由、分类和策略表中进行查找。

(3)分配处理器:进行数据包转发目的地的判断和QoS决策,并更新表和会话状态信息等。

(4)修改处理器:负责对数据包进行修改并发送。

2 硬件环境简介

基于某通信公司的实验平台,图2介绍了分布式路由器架构中网络处理器的工作环境。

图2 硬件环境[3]

控制CPU:负责处理信令报文,路由协议,给NP下载路由转发表和处理在转发表中无法找到下一跳路由的报文。主要通过PCIE总线与NP交互。

网络处理器(NP):所写的微码就放在NP上运行。

外扩搜索缓存和外扩控制缓存:都是NP的扩展外存。因为NP中的资源有限,当业务需求增大时需要的存储空间就会多。该NP可以扩展512 M存储空间。

交换芯片:负责线卡与线卡之间的数据交换,用在本设备跨板操作中。

3 微码实现介绍

3.1 解析处理器中微码流程

微码流程见图3[3]。 解析处理器TOP内部的解码硬件(Hardware DecodeBlock),能够在微指令执行前由硬件预先对数据包进行解析, 可以解析出很多报文处理所要用的内容,比如:是否超时,是否是组播,是IPV4或者IPV6以及路由报文的3层起始位置等。因为是硬件解码,不仅简化了软件的实现,也加快了处理速度。校验和部件(Checksum Block)能在快速计算出所处理的数据包的校验和的同时,通过与数据包自身的校验和字段进行比较,判断数据包的正确性。在这个阶段,可以通过查找设计的表来判断出是2层还是3层报文,同时准备一些KEY在查找处理器1中查表用。

图3 微码流程图

3.2 查找处理器1中微码流程

查找处理器1中可以写微码,即:可以用微码控制查表的次数也可以根据需要查不同的表。因为是硬件执行的查表,所以有256条微码的限制。

3.3 分配处理器中微码流程

这个阶段主要做判决,所以有专门针对判断跳转的指令,虽然灵活性不大,性能却很好。因为业务流程的原因,这里没有表项的更新,只有为查找处理器2准备KEY和做一些QoS决策的调整。所有的判决都在这个阶段执行,为修改处理器阶段执行做准备。

3.4 查找处理器2中微码流程

因为该阶段硬件设计的原因,这里不可以写代码,只可以进行简单KEY的查找,所有的查找也都是硬件完成。

3.5 修改处理器中微码流程

该阶段是报文处理的最后一个阶段,只有在这个阶段可以修改报文,所以添加报文头,删除多余信息,替换MAC地址,修改TTL时间和校验和等都在该阶段完成。还需要把报文描述符,报文大小,缓冲区大小写入指示报文发出信息的寄存器中。

4 性能分析

该芯片提供的TM主要对网络流量起监管作用,通过设置适当的参数对流量进行限速、整形等一些QoS管理。如果没有使用TM这个功能,该芯片可以达到20 Gbit的速度,但是如果使用了TM,该款芯片最好情况下只能达到10 Gbit。因为TM的调度转发能力只有10 Gbit。为了使转发性能达到10 Gbit,需要考虑以下3个影响性能的因素:

(1)指令执行的时延。(2)每个TOP阶段的查表次数。(3)需要注意表项的存储结构,使其均匀存放在存储器里。

只有符合这些条件,才有可能确保转发达到限速,下面对每个限制因素进行解释。

(1)在线上流转的1份64 byte报文、8 byte的前导和12 byte的帧间距:8+64+12=84(byte),共672 bit,在10 Gbit的线上相当于67.2 ns。该芯片的主频是250 MHz也就是每个时钟周期4 ns,那么1份64 byte的报文处理需要花费的时钟周期为:672/4×10=16.8个。因此,为了达到线速,有如表1的时钟周期约束。

表1 时钟周期数

解析处理器、分配处理器、修改处理器各有8个TOP,所以1个阶段的64 byte时钟周期数为:16.8×8=134.4个。TOP之间的传递需要6个时钟周期。该款NP芯片都是每条指令1个时钟周期。所以,每个TOP阶段也就不能超过128条指令。

(2)查表时延按以下公式计算:4+10×intM+(27+exd)×extM。其中,intM是查片内表次数,extM是查片外表次数,exd是不同频率的扩展内存不同的算法。本文设计采用的是芯片支持的一种内存频率,所以片外表次数为:exd=7+4×250/333次。该次数与每个阶段的指令所花费的周期数加在起不能大于128,否则不能达到线速。

(3)表项的均匀散列存储到存储器的各个BANK,这样会充分利用存储器的效率。

5 测试结果

测试1:tm单向使能,大表多流流量。

测试方法描述:查1 M exthash流表,1 M条测试流(乱序和递增两种方式测试), 所用的KEY占6 byte,KEY=dip+最后一个byte(2次);entries是用芯片公司提供的软件根据KEY的后20 bit产生1 M条entries。

测试目的:单向大表多流流表下性能。

测试结果:14 pps,881 pps,084 pps。

测试2:tm双向使能。

测试方法描述:fastip表采用16.8.8.8.8方式;所用的KEY包括vrf,共6 byte,查完vrf后再查一级fastip表。

测试目的:单bank下ddr2的性能。

测试结果:8 pps,238 pps,123 pps。

测试结果表明,利用本款网络处理器芯片在某公司的平台上可以使IPV4的转发性能达到线速。

6 结束语

网络处理器具有性能高、灵活的优点, 已在中高端网络设计中大量使用。本文主要介绍IPV4报文在网络处理器中的执行过程,性能是网络处理器的关键,为了使性能达到线速要求,需要满足上述几个因素。随着功能需求的增加,业务处理流程也会变得更加复杂;如何在复杂的处理流程中同样能达到线速级的转发,还有待进一步研究。

[1]王 圣,苏全树,邓 宇. 网络处理器体系结构的比较与分析[J]. 计算机工程,2003,29(17):53-55.

[2]杜秀娟,金志刚. MPLS VPN 功能的微码设计与实现[J].计算机应用与研究,2008, 25(12).

[3]W.Richard Stevens.TCP/IP 详解(卷 1:协议)[M]. 1版 北京:机械工业出版社,2000,4.

猜你喜欢

报文数据包处理器
基于J1939 协议多包报文的时序研究及应用
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
SmartSniff
ATS与列车通信报文分析
ADI推出新一代SigmaDSP处理器
火线热讯
AItera推出Nios II系列软核处理器