Configuring DWDM Modules on FlexSwitch

FlexSwtich on Voyager (Overview)

Configuring Transponder Modes

There are four methods for configuring the transponder modes: 1. Through the Graphical User Interface (GUI). 2. Through REST (cURL). 3. Through the FlexSwitch CLI. 4. Through the SDK using Python.

Restrictions

The following attributes require the DWDM module to be in Low Power mode:

Object Attribute
DWDMModule IndependentLaneMode
DWDMModuleClntIntf EnableHostLoopback, NwLaneTributaryToClntIntfMap
DWDMModuleNwIntf AdminState, ModulationFmt, ChannelNumber, FECMode,
DiffEncoding, ClntIntfIdToTributary0Map, ClntIntfIdToTributary1Map

If an update is made to any of the above parameters while the module is not in Low Power mode, the following error will be returned:
"Update to specified attribute requires the module to be in Low Power"

To force the module into Low Power mode, set it's admin-state to DOWN.

Example:

localhost(config)#dwdm 0  
localhost(config-dwdm)#AdminState DOWN  
localhost(config-dwdm)#apply  

Using the GUI to Configure Transponder Modes

  1. Using the browser of your choice, go to the GUI (http://<management-interface-IP>:8080).
  2. Click System, then click the Global Transponder status icon. Voyager initial screen

  3. In the XponderId dialog, select the desired mode from the "Xponder Mode" select list. Select Xponder Mode Dialog

  4. Then click Save. Xponder Mode Save

Using REST to Configure Transponder Modes and DWDM Interfaces

The following examples configure the Transponder in the default mode shown above.

Configuring the Transponder Mode.

Configure the XponderGlobal Object

Use the following REST (cURL) request to set the transponder global mode to InServicePacketOptical.

curl -sX PATCH -d '{"XponderMode":"InServicePacketOptical"}'  localhost:8080/public/v1/config/XponderGlobal
Verifying the Configuration

Use the following REST (cURL) requests to verify the configurtion.

    curl -sX GET localhost:8080/public/v1/config/XponderGlobal

or

    curl -sX GET localhost:8080/public/v1/state/XponderGlobal

Configure the Module Client Interfaces (DWDMModuleClntIntf)

curl -sX PATCH -d  '{"ModuleId":0, "ClntIntfId":0, "NwLaneTributaryToClntIntfMap":0, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":0, "ClntIntfId":1, "NwLaneTributaryToClntIntfMap":1, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":0, "ClntIntfId":2, "NwLaneTributaryToClntIntfMap":2, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":0, "ClntIntfId":3, "NwLaneTributaryToClntIntfMap":3, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":1, "ClntIntfId":0, "NwLaneTributaryToClntIntfMap":0, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":1, "ClntIntfId":1, "NwLaneTributaryToClntIntfMap":1, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":1, "ClntIntfId":2, "NwLaneTributaryToClntIntfMap":2, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

curl -sX PATCH -d  '{"ModuleId":1, "ClntIntfId":3, "NwLaneTributaryToClntIntfMap":3, "AdminState":"UP", "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleClntIntf

Configure the Module Network Interfaces (DWDMModuleNwIntf)

curl -sX PATCH -d  '{"ModuleId":0, "NwIntfId":0, "ClntIntfIdToTributary0Map":0, "ClntIntfIdToTributary1Map":1, "AdminState":"UP", "FECMode":"25%OvrHeadSDFEC", "ModulationFmt":"16QAM", "ChannelNumber":52, "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleNwIntf

curl -sX PATCH -d  '{"ModuleId":0, "NwIntfId":1, "ClntIntfIdToTributary0Map":2, "ClntIntfIdToTributary1Map":3, "AdminState":"UP", "FECMode":"25%OvrHeadSDFEC", "ModulationFmt":"16QAM", "ChannelNumber":52, "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleNwIntf

curl -sX PATCH -d  '{"ModuleId":1, "NwIntfId":0, "ClntIntfIdToTributary0Map":0, "ClntIntfIdToTributary1Map":1, "AdminState":"UP", "FECMode":"25%OvrHeadSDFEC", "ModulationFmt":"16QAM", "ChannelNumber":52, "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleNwIntf

curl -sX PATCH -d  '{"ModuleId":1, "NwIntfId":1, "ClntIntfIdToTributary0Map":2, "ClntIntfIdToTributary1Map":3, "AdminState":"UP", "FECMode":"25%OvrHeadSDFEC", "ModulationFmt":"16QAM", "ChannelNumber":52, "RxPRBSPattern":"2^31", "TxPRBSPattern":"2^31"}'  localhost:8080/public/v1/config/DWDMModuleNwIntf

Set the Administrative States of the Modules to UP

curl -sX PATCH -d '{"ModuleId":0, "AdminState":"UP"}' localhost:8080/public/v1/config/DWDMModule

curl -sX PATCH -d '{"ModuleId":1, "AdminState":"UP"}' localhost:8080/public/v1/config/DWDMModule

Using the CLI to Configure Transponder and DWDM Modes

The following examples demonstrate how to configure transponder and DWDM modes using the FlexSwitch CLI.

Configuring Transponder Modes

Use the following CLI example shows how to set the transponder global mode to InServicePacketOptical.

Localhost(config)#xponder XponderMode InServicePacketOptical
localhost(config)#apply

Applying Config:
id: 1   object: XponderGlobal   status: APPLIED CONFIG  valid: True delete: False num user cmds: 2
 command                   attr           value                     model attr     iskey    required    userprov    time provisioned
---------------------------------------------------------------------------------------------------------------------------------------------
                           xponder        0                         XponderId      True     X           X           Fri Jan  6 20:30:15 2012
 xponder XponderMode       XponderMode    InServicePacketOptical    XponderMode    False                X           Fri Jan  6 20:30:15 2012
 InServicePacketOptical

sdk:updateXponderGlobal(0,XponderDescription=This is a Voyager platform,XponderMode=InServicePacketOptical) result: SUCCESS: http status code: 200

Configuring the DWDM Modules

Confiture the DWDM Mode
localhost(config)#dwdm 0
localhost(config)#IndependentLaneMode True
localhost(config-dwdm)#AdminState UP
Configure the Client Interfaces
localhost(config-dwdm)#clntIntf 0
localhost(config-dwdm-clntIntf-0)AdminState UP
localhost(config-dwdm-clntIntf-0)NwLaneTributaryToClntIntfMap 0
localhost(config-dwdm-clntIntf-0)exit
localhost(config-dwdm)clntIntf 1
localhost(config-dwdm-clntIntf-1)AdminState UP
localhost(config-dwdm-clntIntf-1)NwLaneTributaryToClntIntfMap 1
localhost(config-dwdm-clntIntf-1)exit
localhost(config-dwdm)clntIntf 2
localhost(config-dwdm-clntIntf-2)AdminState UP
localhost(config-dwdm-clntIntf-2)NwLaneTributaryToClntIntfMap 2
localhost(config-dwdm-clntIntf-2)exit
localhost(config-dwdm)clntIntf 3
localhost(config-dwdm-clntIntf-3)AdminState UP
localhost(config-dwdm-clntIntf-3)NwLaneTributaryToClntIntfMap 3
localhost(config-dwdm-clntIntf-3)exit
Configure the Network Interfaces
localhost(config-dwdm)nwIntf 0
localhost(config-dwdm-nwIntf-0)AdminState UP
localhost(config-dwdm-nwIntf-0)ClntIntfIdToTributary0Map 0
localhost(config-dwdm-nwIntf-0)ClntIntfIdToTributary1Map 1
localhost(config-dwdm-nwIntf-0)FECMode 25%OvrHeadSDFEC
localhost(config-dwdm-nwIntf-0)ModulationFmt 16QAM
localhost(config-dwdm-nwIntf-0)exit
localhost(config-dwdm)nwIntf 1
localhost(config-dwdm-nwIntf-1)AdminState UP
localhost(config-dwdm-nwIntf-1)ClntIntfIdToTributary0Map 2
localhost(config-dwdm-nwIntf-1)ClntIntfIdToTributary1Map 3
localhost(config-dwdm-nwIntf-1)ModulationFmt 16QAM
localhost(config-dwdm-nwIntf-1)exit
Apply the Configuration
localhost(config-dwdm)apply

Applying Config:
id: 2   object: DWDMModule   status: APPLIED CONFIG  valid: True delete: False num user cmds: 2
 command          attr          value    model attr    iskey    required    userprov    time provisioned
-----------------------------------------------------------------------------------------------------------------
 dwdm 0           dwdm          0        ModuleId      True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP    AdminState    UP       AdminState    False                X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModule(0,EnableExtPMTickSrc=False,PMInterval=1,AdminState=UP,IndependentLaneMode=True) result: SUCCESS: http status code: 500
WARNING return: Error: Nothing to be updated.


id: 1   object: DWDMModuleClntIntf   status: APPLIED CONFIG  valid: True delete: False num user cmds: 4
 command                           attr                            value    model attr                      iskey    required    userprov    time provisioned
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 dwdm 0                            dwdm                            0        ModuleId                        True     X           X           Fri Jan  6 20:34:36 2012
 clntIntf 0                        clntIntf                        0        ClntIntfId                      True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP                     AdminState                      UP       AdminState                      False                X           Fri Jan  6 20:34:36 2012
 NwLaneTributaryToClntIntfMap 0    NwLaneTributaryToClntIntfMap    0        NwLaneTributaryToClntIntfMap    False    X           X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModuleClntIntf(0,0,HostTxEqDfe=0,HostRxSerializerTap1Gain=7,RxPRBSPattern=2^31,HostRxSerializerTap2Delay=5,HostRxSerializerTap2Gain=15,HostRxSerializerTap0Delay=7,HostTxEqCtle=18,TxPRBSPattern=2^31,HostTxEqLfCtle=0,EnableRxPRBS=False,TXFECDecDisable=None,RXFECDecDisable=None,EnableHostLoopback=False,AdminState=UP,NwLaneTributaryToClntIntfMap=0,HostRxSerializerTap0Gain=7,EnableTxPRBSChecker=False,EnableIntSerdesNWLoopback=False) result: SUCCESS: http status code: 500
WARNING return: Error: Nothing to be updated.


id: 4   object: DWDMModuleClntIntf   status: APPLIED CONFIG  valid: True delete: False num user cmds: 4
 command                           attr                            value    model attr                      iskey    required    userprov    time provisioned
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 clntIntf 1                        clntIntf                        1        ClntIntfId                      True     X           X           Fri Jan  6 20:34:36 2012
 dwdm 0                            dwdm                            0        ModuleId                        True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP                     AdminState                      UP       AdminState                      False                X           Fri Jan  6 20:34:36 2012
 NwLaneTributaryToClntIntfMap 1    NwLaneTributaryToClntIntfMap    1        NwLaneTributaryToClntIntfMap    False    X           X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModuleClntIntf(1,0,HostTxEqDfe=0,HostRxSerializerTap1Gain=7,RxPRBSPattern=2^31,HostRxSerializerTap2Delay=5,HostRxSerializerTap2Gain=15,HostRxSerializerTap0Delay=7,HostTxEqCtle=18,TxPRBSPattern=2^31,HostTxEqLfCtle=0,EnableRxPRBS=False,TXFECDecDisable=None,RXFECDecDisable=None,EnableHostLoopback=False,AdminState=UP,NwLaneTributaryToClntIntfMap=1,HostRxSerializerTap0Gain=7,EnableTxPRBSChecker=False,EnableIntSerdesNWLoopback=False) result: SUCCESS: http status code: 500
WARNING return: Error: Nothing to be updated.


id: 5   object: DWDMModuleClntIntf   status: APPLIED CONFIG  valid: True delete: False num user cmds: 4
 command                           attr                            value    model attr                      iskey    required    userprov    time provisioned
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 clntIntf 2                        clntIntf                        2        ClntIntfId                      True     X           X           Fri Jan  6 20:34:36 2012
 dwdm 0                            dwdm                            0        ModuleId                        True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP                     AdminState                      UP       AdminState                      False                X           Fri Jan  6 20:34:36 2012
 NwLaneTributaryToClntIntfMap 2    NwLaneTributaryToClntIntfMap    2        NwLaneTributaryToClntIntfMap    False    X           X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModuleClntIntf(2,0,HostTxEqDfe=0,HostRxSerializerTap1Gain=7,RxPRBSPattern=2^31,HostRxSerializerTap2Delay=5,HostRxSerializerTap2Gain=15,HostRxSerializerTap0Delay=7,HostTxEqCtle=18,TxPRBSPattern=2^31,HostTxEqLfCtle=0,EnableRxPRBS=False,TXFECDecDisable=None,RXFECDecDisable=None,EnableHostLoopback=False,AdminState=UP,NwLaneTributaryToClntIntfMap=2,HostRxSerializerTap0Gain=7,EnableTxPRBSChecker=False,EnableIntSerdesNWLoopback=False) result: SUCCESS: http status code: 500
WARNING return: Error: Nothing to be updated.


id: 6   object: DWDMModuleClntIntf   status: APPLIED CONFIG  valid: True delete: False num user cmds: 4
 command                           attr                            value    model attr                      iskey    required    userprov    time provisioned
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 clntIntf 3                        clntIntf                        3        ClntIntfId                      True     X           X           Fri Jan  6 20:34:36 2012
 dwdm 0                            dwdm                            0        ModuleId                        True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP                     AdminState                      UP       AdminState                      False                X           Fri Jan  6 20:34:36 2012
 NwLaneTributaryToClntIntfMap 3    NwLaneTributaryToClntIntfMap    3        NwLaneTributaryToClntIntfMap    False    X           X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModuleClntIntf(3,0,HostTxEqDfe=0,HostRxSerializerTap1Gain=7,RxPRBSPattern=2^31,HostRxSerializerTap2Delay=5,HostRxSerializerTap2Gain=15,HostRxSerializerTap0Delay=7,HostTxEqCtle=18,TxPRBSPattern=2^31,HostTxEqLfCtle=0,EnableRxPRBS=False,TXFECDecDisable=None,RXFECDecDisable=None,EnableHostLoopback=False,AdminState=UP,NwLaneTributaryToClntIntfMap=3,HostRxSerializerTap0Gain=7,EnableTxPRBSChecker=False,EnableIntSerdesNWLoopback=False) result: SUCCESS: http status code: 500
WARNING return: Error: Nothing to be updated.


id: 3   object: DWDMModuleNwIntf   status: APPLIED CONFIG  valid: True delete: False num user cmds: 7
 command                        attr                         value              model attr                   iskey    required    userprov    time provisioned
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 dwdm 0                         dwdm                         0                  ModuleId                     True     X           X           Fri Jan  6 20:34:36 2012
 nwIntf 0                       nwIntf                       0                  NwIntfId                     True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP                  AdminState                   UP                 AdminState                   False                X           Fri Jan  6 20:34:36 2012
 ClntIntfIdToTributary0Map 0    ClntIntfIdToTributary0Map    0                  ClntIntfIdToTributary0Map    False    X           X           Fri Jan  6 20:34:36 2012
 ClntIntfIdToTributary1Map 1    ClntIntfIdToTributary1Map    1                  ClntIntfIdToTributary1Map    False    X           X           Fri Jan  6 20:34:36 2012
 FECMode 25%OvrHeadSDFEC        FECMode                      25%OvrHeadSDFEC    FECMode                      False                X           Fri Jan  6 20:34:36 2012
 ModulationFmt 16QAM            ModulationFmt                16QAM              ModulationFmt                False                X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModuleNwIntf(0,0,ClntIntfIdToTributary0Map=0,EnableRxPRBSChecker=False,RxPRBSPattern=2^31,TxPulseShapeFltrRollOff=0.301,ClntIntfIdToTributary1Map=1,RxPRBSInvertPattern=True,TxPRBSInvertPattern=True,TxPowerRampdBmPerSec=1,EnableTxPRBS=False,TxPower=0,AdminState=UP,ChannelNumber=48,FECMode=25%OvrHeadSDFEC,DiffEncoding=True,TxPulseShapeFltrType=RootRaisedCos,TxPRBSPattern=2^31,ModulationFmt=16QAM) result: SUCCESS: http status code: 200


id: 7   object: DWDMModuleNwIntf   status: APPLIED CONFIG  valid: True delete: False num user cmds: 6
 command                        attr                         value    model attr                   iskey    required    userprov    time provisioned
-------------------------------------------------------------------------------------------------------------------------------------------------------------
 nwIntf 1                       nwIntf                       1        NwIntfId                     True     X           X           Fri Jan  6 20:34:36 2012
 dwdm 0                         dwdm                         0        ModuleId                     True     X           X           Fri Jan  6 20:34:36 2012
 AdminState UP                  AdminState                   UP       AdminState                   False                X           Fri Jan  6 20:34:36 2012
 ClntIntfIdToTributary0Map 2    ClntIntfIdToTributary0Map    2        ClntIntfIdToTributary0Map    False    X           X           Fri Jan  6 20:34:36 2012
 ClntIntfIdToTributary1Map 3    ClntIntfIdToTributary1Map    3        ClntIntfIdToTributary1Map    False    X           X           Fri Jan  6 20:34:36 2012
 ModulationFmt 16QAM            ModulationFmt                16QAM    ModulationFmt                False                X           Fri Jan  6 20:34:36 2012

sdk:updateDWDMModuleNwIntf(1,0,ClntIntfIdToTributary0Map=2,EnableRxPRBSChecker=False,RxPRBSPattern=2^31,TxPulseShapeFltrRollOff=0.301,ClntIntfIdToTributary1Map=3,RxPRBSInvertPattern=True,TxPRBSInvertPattern=True,TxPowerRampdBmPerSec=1,EnableTxPRBS=False,TxPower=0,AdminState=UP,ChannelNumber=48,FECMode=15%SDFEC,DiffEncoding=True,TxPulseShapeFltrType=RootRaisedCos,TxPRBSPattern=2^31,ModulationFmt=16QAM) result: SUCCESS: http status code: 500