完成前期的测试分析和拓扑搭建后开始进行脚本的开发和调试,按步骤说明如下。
一、创建单环G.8032
每个网元都涉及到G.8032的创建,所以可以考虑将常用的操作封装为函数,其中变化内容已参数方式传递。以网元A的脚本进行说明。对网元A进行G.8032保护组创建,流程图如下。
实现脚本如下。
里面的函数很多,封装后可以为后面的脚本开发提供方便。其中openEmsUntilOpen、L2_VLAN_SwitchPort_setTrunk、L2_VLAN_StaticVlan_addVlan、Cfm_CfmGlobal_EthCfmGlobalConfig_setGlobal、Cfm_CfmGlobal_PortConfig_setPort、Cfm_EthCfm_EthCfm_addMdMaMep都是之前在开发其他功能时已经写好的。这里介绍一下Protect_G8032_addG8032函数。流程如下。
实现脚本如下。
二、关闭非RPL链路Port1
该操作是模拟非RPL链路的故障,流程比较简单,实现脚本如下。
等待10秒考虑是让协议生效。
三、验证G.8032的倒换状态和各点报文转发状态
该操作是验证倒换后,每个网元的保护组状态为保护,东西向的转发状态正常。
每个网元的操作相同,以C点为例。
此时预期的状态为。
四、打开Port1,关闭RPL链路端口,再打开RPL链路端口
该操作是模拟链路恢复后,倒换回来的情况,由于WTR时间太久,直接关闭RPL链路制造倒换。实现脚本如下。
等待10秒考虑是让协议生效。
五、验证G.8032的倒换状态和各点报文转发状态
该操作是验证倒换回来后,每个网元的保护组状态为挂起,东西向的转发状态正常。
每个网元的操作相同,以C点为例。此时预期的状态为。
六、清理环境
清理环境是必须的,原则上所有配置都要回到最初始的状态。本脚本中考虑到以太CFM全局使能的特殊性(会影响其他脚本),不做清理,其他配置需要清除,流程如下。
以NEA为例脚本实现如下。