EPON系统中ONU告警仿真的设计与实现
2012-06-25武树斌郝愿愿
朱 静,武树斌,黄 准,郝愿愿,姚 方
(光纤通信技术和网络国家实验室;烽火网络有限公司,湖北 武汉 430074)
本文设计的模拟ONU软件,运行于机架式OLT的模拟单盘上,起到系统仿真验证的作用,对于提高系统的性能意义重大。与通常的交换网络组网应用环境不同,光接入网的OLT设备组网会接入大量的ONU终端,运行期间需要实现对所有的ONU终端进行批量或单个管理,完成ONU终端的发现、授权、配置、查询、报警管理和性能统计等功能。单台机架式OLT设备需要管理的ONU个数多达4000个以上,系统管理开销较大,会给系统正常运行带来极大地冲击。而采用大量的实际ONU物理设备模拟,测试环境的搭建和维护都非常困难,采用模拟ONU工具,非常好地解决了这个问题,取得了良好的效果。本文描述的ONU模拟软件可以模拟大规模ONU在线,模拟ONU发起大量告警,同时具备自统计功能,用来测试OLT的告警管理能力和EMS系统的承受负载冲击能力是否能够满足设计要求。
1 EPON系统原理介绍
1.1 EPON系统简介
以太网无源光网络(EPON)技术[1]是一种基于以太网技术、点到多点的光纤接入技术。一个典型的EPON系统由 OLT(Optical Line Terminal)、ONU(Optical Network Unit)、POS(Passive Optical Splitter)组成[2]。在下行方向,IP数据、语音、视频等多种业务由位于中心局的OLT,采用广播方式,通过ODN中的1∶N无源分光器分配到PON上的所有ONU单元。在上行方向,来自各个ONU的多种业务信息互不干扰地通过ODN中的1∶N无源分光器耦合到同一根光纤,最终送到位于局端OLT接收端。其关系如图1所示。
图1 EPON组成结构图
在典型的EPON系统中,每台机架式OLT设备可以装载4块模拟单盘,每块模拟单盘有16个PON端口,每个端口可以接入64个ONU设备,所以每台OLT可带4096个ONU设备。当ONU设备出现批量断电或恢复电源的情况时,就会出现大量ONU设备下线或上线的情况,这样就会有大量的告警消息上报给图形化网管,当发生大量的告警消息时,OLT设备的CPU利用率和内存利用率都会增加,同时,图形化网管的告警处理时间也会增加,处理效率会降低。
EPON的基本功能[3]是实现对ONU和PON端口的管理,实现OLT的PON芯片管理和ONU的芯片管理,EPON的OLT对ONU的管理中主要通过中国电信扩展的OAM完成。扩展的OAM支持以下ONU的管理功能:扩展的OAM发现(Extended OAM Discovery)和能力通告(Capability Notification);ONU的基本信息和能力通告;与搅动功能相关的密钥交换、更新和同步功能;与DBA功能相关的DBA参数读取和设置功能;用户端口配置功能(Configuration of User Ports)和管理;VLAN配置和管理;组播相关功能的配置;QoS相关配置,包括业务流分类和标记等;reset ONU等Action功能;ONU的软件下载功能;基于逻辑标识的ONU认证;ONU的事件通告;ONU语音业务的配置和管理。
1.2 EPON系统中ONU告警的处理流程
ONU告警处理对系统维护有重要作用,告警从级别上分为紧急告警、重要告警、一般告警、次要告警等级别,系统通过分级别的告警管理[4-5],有利于管理员利用图形化网管实时掌握系统运行状况,进行故障定位等操作。告警从类型上分为设备告警(例如系统电源异常告警和电源模块插拔告警等)、模拟单盘告警(例如PON模拟单盘的插入拔出,未知模拟单盘类型等)、PON/NNI口端口告警(例如光模块发射光功率低于/超过门限值,光模块光信号丢失/恢复等)、ONU设备告警(例如ONU注册成功、ONU电源关闭、手动注销ONU等)、ONU以太网端口告警(例如ONU以太网端口环回检测、ONU以太网端口从启动状态改变到禁用,ONU以太网端口从禁用状态改变到启用等)。
EPON系统对ONU告警的处理主要在模拟单盘中完成,其告警处理流程如图2所示,设备检测到故障后将告警传递到PON芯片驱动模块,PON芯片解析后将告警消息上报给消息分发模块。消息分发模块根据告警消息进入告警分发入口,将告警消息继续上报给ONU管理模块。ONU管理模块根据告警类型将告警上报给告警处理模块,告警处理模块对告警进行解析处理,并上报给图形化网管[6],图形化网管根据告警类型对告警进行处理后,更新设备的告警状态及设备拓扑图。
图2 告警处理流程
2 设计原理与实现
2.1 设计原理
2.1.1 模拟ONU实现原理
EPON系统的机架式OLT由主控盘和模拟单盘组成,主控盘通过网管命令行对模拟单盘进行操作,模拟单盘一般包括ONU管理模块、统计模块、告警模块、PON驱动模块等。在PON系统的应用中,OLT与其下面所挂载的ONU间的通信链路是分时复用的,即每个时刻只存在一个ONU与OLT通信,这在真实设备中由OLT的PON驱动模块实现,在模拟ONU中同样需要有这样一个模块来实现调度,故如图3所示将模拟ONU设计为两个部分:消息解析调度模块和ONU模拟模块。
图3 模拟ONU的设计框图
消息解析调度模块接收到模拟单盘下发的命令后,进行消息解析,返回相应的响应或向ONU模拟线程传递配置参数;同时该模块还需要接收来自ONU模拟线程通过消息队列上报的“自发”消息,并转换为一定的格式后上传给模拟单盘的ONU管理模块或告警模块;消息解析模块还可以通过消息队列向ONU模拟线程传送命令(如启动报警);对启动的ONU个数及报警数量的自统计也由该模块来完成。
ONU模拟模块通过创建多个线程(0~4096)来模拟多个ONU,线程创建后即通过消息队列发送上线或告警消息,模拟ONU线程发送完自发消息后进入等待启动报警消息状态,收到报警启动消息后,开启定时器,周期性地发送报警消息。
2.1.2 模拟ONU软件设计
模拟ONU的主要功能是模拟ONU的上线/下线、定时报警以及数据统计。对于统计需求,依照目前的模拟单盘设计,只要能上报ONU的存在,查询时模拟单盘的统计模块就可以将设计好的数据表项(初始值为全零)发送到主控盘。故主要针对上下线及告警的功能模拟进行设计,其具体软件设计流程如图4所示。
图4 软件设计流程图
模拟ONU上线:网管命令行向模拟ONU发起启动请求,包括需要启动的ONU数量N、起始的MAC地址、注册的PON端口号等。模拟ONU收到启动请求后,初始化能力集表项,创建消息队列,创建N个ONU的模拟线程并且分配对应的MAC地址,然后将ONU的上线消息放入消息队列,创建解析线程接收消息队列并解析上线消息,最后将ONU上线消息上报给ONU管理模块。
能力集查询:ONU管理模块对模拟ONU发起能力集查询请求,模拟ONU收到请求后将初始化好的能力集表项填上相应的MAC地址后返回给ONU管理模块。
模拟ONU启动告警:网管命令行向模拟ONU发起告警启动请求,包括告警类型、告警频率、告警状态和告警数目。模拟ONU收到告警启动请求后,如果告警状态为0,表示启动告警,ONU模拟线程启动定时器,将相应类型的告警消息放入消息队列(当告警类型为0时,所有告警类型轮训启动),对告警数目进行统计,最后将告警消息和告警数目上报给告警模块。
2.2 软件实现方式
2.2.1 程序运行环境
模拟ONU软件完全基于签署时实时操作系统[7],设备的CPU采用PowerPC架构的通信处理器,与其他处理器相比,PowerPC处理器整合度高且具有技术先进性,它集成丰富I/O接口,集成以太网和存储器控制器,支持各种通信协议CPM协处理器等,客户无须设计复杂的外围电路,减少设计复杂程度以及物料使用。PowerPC处理器的芯片可选范围大,性能高,升级容易,研发周期短。不仅如此,PowerPC架构具有很强的稳定性、高可靠性和更长的产品寿命周期(通常10~15年),苛刻条件下,芯片健壮性较好,适合工业级应用。
操作系统采用VxWorks操作系统,VxWorks是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它可以提供强大的嵌入式集成开发平台Tornado等。Vx-Works实时操作系统具有良好的实时性和稳定性,能高效地进行任务管理,灵活地进行任务间的通信,具有微秒级的中断处理能力,方便移植、构建的VxWorks支持包,同时支持多种标准,具有丰富的网络能力等。
2.2.2 软件的主要数据结构
模拟ONU软件的主要数据结构包括能力集表项结构、上线消息结构、告警消息结构、查询能力集命令字等,其中能力集表项结构记录了所启动的模拟ONU的一些基本信息,上线消息队列记录模拟ONU上线时需要的相关信息,告警消息结构记录了模拟ONU发起告警时需要的告警信息,查询能力集命令字主要记录的是软件在实现过程中的几个重要的命令字。
能力集表项结构为:
上线消息结构为:
告警消息结构为:
查询能力集命令字为:
2.2.3 软件对外接口
模拟ONU软件模块有独立的网管接口,该任务的执行不影响其他任务。该模块的开发目标是高内聚、低耦合,不受特定版本BSP和SDK的限制[8]。其用户界面采用CLI命令配置和查询,与网管命令行的接口有启动请求和启动告警;无硬件接口,与OLT设备的ONU管理模块和PON驱动模块存在软件接口。
2.2.4 软件稳健性设计
模拟ONU软件启动了多个线程,每个线程上报的ONUID和MAC地址都是唯一的,要求在多线程多任务同步,一个线程完成了某一个动作就通知其他线程资源可用,其他的线程再进行某些动作。为了保证不会被两个ONU模拟线程同时占用而导致数据冲突,消息队列中定义了信号量来进行保护。
2.3 测试结果分析
2.3.1 模拟ONU上线告警
按图5所示配置测试的网络拓扑图,启动模拟ONU,利用网管命令行输入起始MAC地址00:00:00:00:00:01,所在PON端口号1和启动5个模拟ONU;查看上线情况;启动3个下线告警,利用网管命令行输入告警启动状态、告警类型、告警频率和告警数目。
图5 测试网络拓扑图
测试结果如下:
网管告警显示如表1所示。
表1 网管告警显示
结果分析:可以启动模拟ONU并按需求完成模拟ONU的上线;可以发起告警,在网管上可以接收到。
2.3.2 模拟不同数量的ONU告警,查看系统性能和告警密度
按图5所示配置测试的网络拓扑图,在启动1024个线程情况下,分别启动10个、100个、1000个告警,查看系统性能,包括主控盘CPU利用率、主控盘内存利用率模拟单盘CPU利用率和模拟单盘内存利用率。由如表2所示测试结果可知,本软件能够实现大规模告警的产生,能实现对系统性能的测试,且系统性能稳定。
表2 启动告警与系统性能比较
3 小结
本文提出了通过在主机接口层进行模拟ONU的软件设计,用户可以通过网管命令行CLI对ONU的个数、类型、告警、性能等各参数进行配置,测试EPON系统的性能。实验结果表明,本模拟软件接受来自主控盘和模拟单盘的CLI网管命令配置并具备自统计功能,可以模拟大规模ONU的告警行为并响应EMS的性能统计查询。对于工程应用中常见的ONU设备批量上线、下线、告警等ONU终端动作起到良好的模拟作用,能够验证EMS系统是否能够承受负载冲击。同时,本模拟软件也具备验证主控盘的CPU处理能力、内存占用率以及网管服务器的报警处理能力,达到了预期的研发目标。
[1]KRAMER G.Ethernet passive optical networks[M].New York:McGraw-Hill,2005.
[2]IEEE 802.3ah,Local and metropolitan area networks,part3:CSMA/CD access methods and physical layer specifications[S].2005.
[3]KRAMER G,MUKHERJEE B,PESAVENTO G.Ethernet PON(ePON):design and analysis of an optical access network[J].Photonic Network Communications,2001,3(3):307-319.
[4]张继东,陶智勇.EPON的发展现状与关键技术[J].光通信研究,2002(1):26-29.
[5]袁伟,金燕,陈彪.EPON技术实现机制及其最新发展探讨[J].电视技术,2005,29(8):70-72.
[6]郎为民,郭东生.EPON/GPON从原理到实践[M].北京:人民邮电出版社,2010.
[7]沈成彬,赵焕东,蒋铭,等.EPON设备互通性研究[J].电信科学,2006(1):59-63.
[8]张碧莹.以太网无源光网络光线路终端的设计与实现[D].上海:东华大学,2010.