王小强——20年国际知名公司大型软件开发经验,精通C++,Python和 JAVA语言 ,擅长clean code和代码重构 , 精通面向对象设计原则和设计模式,熟悉UML建模 , 精通敏捷软件开发,诸如Scrum和极限编程的相关实践 , 熟悉嵌入式通讯设备软件的各个模块(协议,平台和驱动等) ,长期致力于快速构建易维护,易扩展的高质量软件系统。
▼
TYPE-B型PON保护是GPON标准定义的四种PON保护类型之一,也是最常用的一种PON保护类型。ITU的标准文档里对其通用模型做了定义。但在具体实现该保护模型时,要涉及到很多细节,每个设备厂商的实现细节都有较大差异,尤其涉及到ONT的管理,数据同步方法,跨网元保护组的管理策略等方面差异很大。本文将描述本公司对该模型的实现方案。
— 1 —
系统概述
TYPE-B型PON保护的网络部署如下图所示:该模型通过采用2:N的光分路器提供了对主干光纤的保护。两个相互保护的PON口互为主备,被称为一个保护组。通常情况下,主用PON口承载业务,当主用光纤失效后,业务会切换到备用PON口。
本系统与PON保护相关的模块有OAM模块,ONT管理模块,PON管理模块,保护组管理模块,各个业务模块以及外围软件系统CLI和EMS。图2是相关模块的系统结构图。用户可以通过CLI和EMS来进行各种与保护组相关的配置操作,OAM模块负责解析来自CLI或EMS的配置命令并调用相关模块的接口函数完成该配置操作。就拿用CLI创建一个保护组为例,控制卡上的OAM模块会首先解析CLI发来的命令,然后从ONT管理模块获取ONT信息,根据此信息创建一个保护组,并把该保护组的信息通知到保护组管理模块和PON管理模块,最后触发各个业务模块的数据同步。控制卡上的PON管理模块、保护组管理模块和业务管理模块会把相应的配置数据下发到PON卡(OLT)上对应的模块。PON卡上的保护组管理模块将维护切换逻辑以及上报相关告警。
图2:系统软件架构
— 2 —
系统用例分析和实现方案
和PON保护相关的用例很多,包括保护组相关用例,ONT相关用例,数据同步,切换逻辑和告警上报。和这些用例相关的操作可以通过CLI发起,也可以通过EMS来发起,通过这两种方式发起的配置操作,其处理流程不完全一样。保护组可以跨网元,也可以在同一个网元之内,对这两种保护组的处理流程有很大差异。把这些情况都组合起来用例非常多。以下将分析几个主要的用例,描述其实现方案。
与保护组相关的操作有创建删除和修改保护组,修改保护组的操作包括主用PON口的选择,切换模式的选择等。以下介绍用CLI创建同一个网元上的保护组的处理流程。图3是用CLI创建保护组的顺序图的控制卡部分。
1)OAM模块解析CLI下发的创建保护组命令。
2)创建保护组前首先要获取在主用和备用PON口上创建的ONT信息。
3)创建保护组,对主用PON口和备用PON口上的ONT按照1对1,2对2的规则进行配对。配对时要以主用PON口为主,如果主用PON口上的某个ONT在备用PON口上还没有创建,要在备用PON口上创建这个ONT。
4)把创建的保护组信息通知到PON管理模块。
5)触发业务数据同步,这一步要把主用PON口上所有ONT的配置同步到备用PON口上对应的ONT上,包括ONT的类型和序列号。经过数据同步后,每对ONT的类型,序列号和业务数据将完全一样。
6)通知EMS,EMS将反过来从网元获取刚刚创建的保护组信息,保存到自己的数据库并刷新相应的界面。
7)如果PON卡在位的话,PON管理模块,ONT管理模块,保护组管理模块和各业务模块还会根据需要把自己的数据下发到PON卡上对应的相关模块。
图3:用CLI创建保护组
与ONT相关的用例有ONT的创建,删除,属性修改和自动发现。由于配置方式的不同(用CLI配置和用EMS配置)和保护组种类的不同(跨网元和不跨网元),与ONT相关的配置操作会组合出很多用例。以下介绍其中一个,用CLI为跨网元的保护组创建一个ONT。
1)OAM模块解析CLI下发的创建ONT命令。
2)创建ONT,这里的约束条件是,如果该ONT所在的PON口在一个保护组里,则该ONT必须是主用PON口上的ONT。在备用PON扣上的所有操作都将被拒绝。
3)通知EMS,EMS会反过来到网元取新创建的ONT的信息,更新自己的数据库,如果该ONT所在的PON口在一个跨网元的保护组里,EMS要负责创建备用PON口上的ONT(在另外一个网元上),备用PON口上创建的该ONT的属性要和主用PON口上的ONT完全相同。
4)如果该ONT所在的PON口在一个保护组里,则要更新保护组信息。
5)通知PON管理模块。
6)如果PON卡在位的话,PON管理模块,ONT管理模块,保护组管理模块和各业务模块还会根据需要把自己的数据下发到PON卡上对应的相关模块。
图4:用CLI为跨网元的保护组创建一个ONT
在创建保护组,创建ONT,修改ONT的属性和配置业务数据时都会触发数据同步,所以数据同步可以是其他用例的子用例。用户也可以使用CLI或EMS直接触发数据同步。数据同步的目的就是使备用PON口上的配置数据和主用PON口上的配置数据保持一致,数据同步的方向只能是主用PON口到备用PON口。对于跨网元的保护组,数据同步由EMS来完成;对于同一网元内的保护组,数据同步由网元自己来完成。以下介绍用CLI触发同一个网元内的保护组的数据同步。
1)OAM模块解析CLI下发的数据同步命令。
2)OAM向保护组管理模块获取保护组信息。
3)根据保护组信息,获取所有主用PON口上的ONT的配置信息。
4)把所有主用PON口上的ONT的配置信息同步到备用PON口对应的ONT上。
5)触发业务数据同步,首先获取所有主用PON上ONT的所有业务数据,然后把这些数据同步到备用PON口对应的ONT上。
6)通知EMS,EMS将反过来向网元获取备用PON口上ONT的所有业务数据,更新自己的数据库。
图5:用CLI触发网元内保护组的数据同步
主备切换可以是自动切换,也可以由管理员通过CLI或EMS发起。切换逻辑由PON卡根据相应的配置数据来维护。正常情况下由主用PON口提供业务,如果主用PON口失效,业务将切换到备用PON口,同时上报保护组告警。以下讲述主备自动切换和告警上报的处理流程。
1)PON卡检测到主用PON口失效。
2)所有的ONT都注册到备用PON口。
3)备用PON口承载业务,并上报PON保护告警。
4)PON口检测到主用PON口功能恢复。
5)如果保护组是“revertive”模式,所有的ONT将重新注册到主用PON口,主用PON口开始承载业务,同时清除PON保护告警。
本文描述了本公司关于TYPE-B型PON保护的实现方案。该方案是对本公司原有的基于光交换机的保护方案的一种改进,主要是为了提高主备切换速度,减少业务中断时间,使得业务中断时间由原来的30秒减少到现在的3秒钟。该方案已在现场部署,其主备切换速度和系统的稳定性得到了用户的肯定。
END
小伙伴们有相关的问题可以评论区里留言,小编会统统记下,开播后两位老师会一一为大家解答。