基于IXP2350的IP-DSLAM设计方案

出处:fang34d 发布于:2008-08-21 11:25:38

  0 前言

  ADSL技术已经成为当前宽带接入网建设的主流技术之一。实现ADSL技术,要在用户端增设ADSL调制解调器,而在局端,则要增设数字用户线接入复用器DSLAM(Digital Subscriber Line Access Multiplexer )设备,以完成ADSL接入业务的汇聚和分发.

  随着网络的不断发展、业务需求的不断变化,DSLAM经历了纯ATM结构,ATM内核IP上行和IP内核IP上行三个发展阶段。而骨干网的IP化,使得IP-DSLAM成为DSLAM发展的主流技术。IP-DSLAM中ATM数据包与以太网数据包的相互转换,需要进行大量的协议处理,因此对系统数据处理能力要求很高。由于网络处理器既有专用集成电路高速的处理能力,又有完全的可编程特性,适用于复杂的网络数据包处理,可以满足IP-DSLAM的要求。IXP2350是Intel公司的第二代网络处理器产品,它不但提供了以线速处理数据包的硬件功能,还具备了极大的系统灵活性。本文提出了基于网络处理器IXP2350的IP-DSLAM设计方案,在提供基本ADSL接入的同时,还提供IPv4转发功能;支持静态路由、RIP等动态路由协议;支持IP优先级控制及排队策略(WRR、DRR等算法);还支持PPP over Ethernet用户接入控制。从硬件和软件两方面对系统进行了模块化分析,重点对数据面的功能模块的具体处理过程进行了详细的研究和设计。通过仿真测试验证了系统设计的可行性。

  1  IP-DSLAM原理

  IP-DSLAM实现了ATM信元在每个业务板上的终结和每条虚电路(PVC)与MAC地址的一一映射,提供ATM信元和以太网数据包之间的高速转发。IP-DSLAM主要可以分为以下几部分:线卡、卡、网络卡.
 
  
线卡处于网络边缘,连接着用户线路,是ADSL模拟通路的终结点。在上行方向将用户线路的输入数据经过A/D变换,离散多音频(DMT)解调,复用送至卡;在下行方向则将从卡传来的数据经过解复用、DMT调制和D/A变换后由ADSL线路发送至用户。

  卡是IP-DSLAM重要的部分,主要提供数据流处理、调度转发、业务管理监测等功能,卡对复用后的高速数据流进行集中处理,能有效地利用系统资源。卡的处理能力直接影响整个IP-DSLAM的性能,也限定了可以接入的ADSL用户线的数目。

  网络卡提供IP-DSLAM与其他网络设备的接口。经过卡处理的高速数据流由网络卡送到骨干网中,从骨干网接收的数据由网络卡进入IP-DSLAM。

  2 基于IXP2350的IP-DSLAM硬件设计

  基于IXP2350的IP-DSLAM系统从硬件结构上分为IXP2350和前端处理专用芯片两部分。IP-DSLAM系统的前端处理部分包括调制/解调、复用/解复用,可采用专用芯片实现。如4片TI公司的AC7芯片和中兴的ZX2610组合,可以完成64路ADSL用户线的汇聚、分发。本文中IP-DSLAM的部分数据处理和转发采用IXP2350实现。

  IXP2350用作IP-DSLAM接入设备的,主要完成对线路侧和骨干网侧不同数据包的处理、转发功能,而且还能执行线路管理控制、PPPoE的、计费等功能。IXP2350具有高度的可编程性、灵活的适应性和强大的网络处理能力等特点,能提供2Gbps的线速处理速度,理论上能够满足单板72路的ADSL接入,这些特点使IXP2350在IP-DSLAM的应用上有着很好的前景。
 
  
网络处理器IXP2350硬件结构主要包括微引擎(ME)、Xscale核、介质交换结构接口(MSF)等。
微引擎ME是IXP2350的部件,是整个IP-DSLAM系统的数据处理、转发单元。IXP2350共有4个微引擎,采用多核处理机制,并行处理不相关的网络数据包,以充分利用其处理能力。而每个微引擎内部有8个硬件线程,采用多线程技术,有效解决了执行速度与存储器访问速度不匹配的问题。此外还采用分布式缓存结构减小了读写修改操作带来的存储器访问时延。

  Xscale核是IP-DSLAM系统的高层控制管理单元,还负责部分网络数据包处理。它是一个高性能、低功耗、32位嵌入式精简指令集处理器,工作频率可达1200MHz,与微引擎之间采用共享内存的方式进行通信。

  MSF是IP-DSLAM系统的外部接口单元,支持UTOPIA、SPI 和CSIX协议接口,还提供了两个千兆以太网口,用于与外部二层或者三层网络设备的连接。这种多接口结构,提高了系统的灵活性。
DRAM、SRAM、闪存(Flash)等单元是系统的外围设备,给整个IP-DSLAM设备提供了系统程序和网络数据的存储和寻址空间。

  3 基于IXP2350的IP-DSLAM软件设计

  3.1软件构成IXP2350的软件系统可分为数据面和控制面,采用分层、模块化设计思想,既可加快开发周期,又增加了可扩充的处理能力。

  数据面运行在微引擎上,负责大部分网络数据包的处理和高速转发,这是软件系统重要的组成部分。微引擎上运行微代码,每个微引擎上都提供了代码存储空间。不同功能的微码分别加载在不同的微引擎中,进行分布式处理。根据功能将数据面划分为若干个相对独立的软件微模块,即接收微模块、二层处理微模块、队列管理调度微模块、发送微模块等。综合考虑各个微模块的功能复杂度和负载量,对IXP2350中的4个ME和32个线程进行分配,使其运行更有效合理分配。

  控制面运行在Xscale上,负责整个系统的高层控制管理。对于微引擎上的每一个微模块,在Xscale上都有相应的核模块与之对应,主要完成微模块的初始化设置、微引擎的启动、二层转发表的配置管理等。另外,Xscale中还有一些核模块负责处理由微引擎提交的异常数据包,将由协议栈产生的数据包下发给微引擎。Xscale内核软件包括板级支持包、嵌入式操作系统、PPPoE协议软件包等。板级支持包记录着Xscale协处理器单元需要管理的硬件信息以及它们的主要配置信息。嵌入式操作系统是PPPoE协议或其他应用程序运行的基础,在Xscale上可以运行Montavista、Vxworks等实时操作系统(RTOS)。Xscale执行系统初始化,完成对PPP,MAC,IP地址对应关系表的建立和维护,通过运行PPPoE协议软件包,可以在发现阶段和会话阶段执行相关的和处理,实现整个协议的交互过程。

  3.2数据面处理流程

  数据面是整个DSLAM中负责数据的快速处理和转发的部分,是取得线速处理的关键。根据IP-DSLAM中数据流向可以将数据分为上行和下行,上行数据流从用户端发送到局端,完成将用户ADSL线上的ATM信元转化成以太数据包发送到骨干网中;下行数据流从局端到用户端,完成将骨干网接收的以太数据包转化成ATM信元发送到ADSL线路上。

  数据面从软件上分为接收模块、数据处理模块、队列调度管理模块、发送模块。每个模块占用IXP2350的一个ME,每个模块又分为上行部分下行部分,各占用每个ME上的若干个threads(硬件线程),上行和下行的处理是完全独立的。
(1)接收模块分为AAL5接收(上行)、Packet接收(下行)。AAL5接收占用2个线程,主要完成接收ATM信元、完成AAL5适配,将适配好的数据包放入DRAM中,并为每个数据包建立描述信息发送给上行数据处理模块;Packet接收占用6个线程,主要完成接收以太网数据包,并将接收的数据包放入DRAM,并为每个数据包创建描述信息发送给上行数据处理模块。

  (2)数据处理模块分为上行下行两部分,上行处理占用2个线程,主要是完成PPPoE数据包解封装然后进行IPv4转发完成以太网封装,并将其发送至队列管理模块;下行占用6个线程,主要完成以太网数据包解封装然后进行IPv4转发、PPPoE封装完成ATM封装,并将其发送至队列管理模块。

  (3)队列调度管理模块也是分为上行下行两部分,上行占用2个线程,下行占用6个线程;上行下行的处理功能是相同的,只使处理的数据包不同,上行处理以太网数据包,下行处理ATM信元;队列管理模块接收从转发模块发送来的入队请求,对数据包进行入队操作,并将队列变化信息发送给调度模块,调度模块根据掌握的队列信息运行特定的调度算法,向队列管理模块发送出队请求,队列管理模块接收到出队请求后,做出队操作并向发送模块发出发送请求。

  (4)发送模块也是分为上行下行两部分,上行占用2个线程,下行占用6个线程,二者的处理功能也是相同的,只是处理的数据包不同,发送模块接收从队列管理模块发出的发送请求,然后将指定的数据包从DRAM存储区中取出从指定的端口发送出去。

  4 性能仿真测试

  本文使用Intel公司提供的软件开发工具DevWorkbench,对数据处理的线速处理上限、数据处理时延进行了仿真测试。在仿真环境中,接收和发送的数据都实时地记录在日志文件中可检验其正确性。网络设备在处理数据正确的前提下重要的指标是线速处理的上限速率,而线速处理的速率上限是和处理数据包的大小有直接关系的,数据包越小,包头在整个数据包中占用的百分比越大,线速的上限就越小,反之,数据包越大,线速的上限值就越大。仿真过程中,改变接收数据包的大小,以整百字节为测试点测得的处理上限速率随数据包大小的变化曲线图如图4所示:
 
  网络设备的处理速率上限是与数据包的大小有关系的,数据包平均大小为100bytes,上行线速速率可达120Mbps,下行线苏速率可达192Mbps,在数据包大小超过500bytes情况下,上行线速处理速率可以达到260Mbit/s以上、下行线速处理可以达到320Mbits/s以上,能满足单板64路ADSL数据的线速处理设计要求的。
仿真过程中,计算一个数据包接收到处理完成发送出去所经过的指令数,再根据网络处理器的主频可以计算出数据处理时延。以数据包大小为500bytes为例,上行处理时延为39.9us,下行处理时延为35.2us。
  
  5 结论

  本文将IXP2350与前端处理专用芯片结合,用来构架IP-DSLAM的硬件平台。IXP2350作为整个IP-DSLAM的部分,通过采用多处理、多线程、分布式缓存等技术,提高了系统处理性能。数据面上针对不同功能微模块进行微引擎和线程的划分,使软件功能和硬件结构充分匹配,实现了优化组合。模块化的设计,增强了系统的可移植性和通用性,有利于系统新功能的扩展。

  欲知详情,请登录维库
电子市场网(www.dzsc.com



  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!