Structure of YANG Models

Structure of YANG Models

YANG data models can be represented in a hierarchical, tree-based structure with nodes. This representation makes the models easy to understand.

There are two Terminal-device models for Cisco NCS 1004, such as:

  • OpenConfig Terminal model

  • OpenConfig Platform model

For more details on supported versions, see Supported YANG Models in NCS 1004.

The following is the tree structure of the OpenConfig Terminal model:

module: openconfig-terminal-device
   +--rw terminal-device
      +--ro state
      +--rw logical-channels
      |  +--rw channel* [index]
      |     +--rw index                          
      |     +--rw config
      |     |  +--rw index?                  uint32
      |     |  +--rw description?            string
      |     |  +--rw admin-state?            oc-opt-types:admin-state-type
      |     |  +--rw rate-class?             identityref
      |     |  +--rw trib-protocol?          identityref
      |     |  +--rw logical-channel-type?   identityref
      |     |  +--rw loopback-mode?          oc-opt-types:loopback-mode-type
      |     +--ro state
      |     |  +--ro index?                  uint32
      |     |  +--ro description?            string
      |     |  +--ro admin-state?            oc-opt-types:admin-state-type
      |     |  +--ro rate-class?             identityref
      |     |  +--ro trib-protocol?          identityref
      |     |  +--ro logical-channel-type?   identityref
      |     |  +--ro loopback-mode?          oc-opt-types:loopback-mode-type
      |     |  +--ro link-state?             enumeration
      |     +--rw otn
      |     |  +--rw config
      |     |  |  +--rw tti-msg-transmit?   string
      |     |  |  +--rw tti-msg-expected?   string
      |     |  |  +--rw tti-msg-auto?       boolean
      |     |  +--ro state
      |     |     +--ro tti-msg-transmit?           string
      |     |     +--ro tti-msg-expected?           string
      |     |     +--ro tti-msg-recv?               string
      |     |     +--ro errored-seconds?            yang:counter64
      |     |     +--ro severely-errored-seconds?   yang:counter64
      |     |     +--ro unavailable-seconds?        yang:counter64
      |     |     +--ro fec-corrected-bits?         yang:counter64
      |     |     +--ro background-block-errors?    yang:counter64
                  +--ro fec-uncorrectable-words
      |     |     +--ro pre-fec-ber
      |     |     |  +--ro instant?   decimal64
      |     |     |  +--ro avg?       decimal64
      |     |     |  +--ro min?       decimal64
      |     |     |  +--ro max?       decimal64
      |     |     +--ro post-fec-ber
      |     |     |  +--ro instant?   decimal64
      |     |     |  +--ro avg?       decimal64
      |     |     |  +--ro min?       decimal64
      |     |     |  +--ro max?       decimal64
      |     +--rw ethernet
      |     |  +--rw config
      |     |  +--ro state
      |     |     +--ro in-mac-pause-frames?      yang:counter64
      |     |     +--ro in-oversize-frames?       yang:counter64
      |     |     +--ro in-jabber-frames?         yang:counter64
      |     |     +--ro in-fragment-frames?       yang:counter64
      |     |     +--ro in-crc-errors?            yang:counter64
      |     |     +--ro out-mac-pause-frames?     yang:counter64
      |     +--rw ingress
      |     |  +--rw config
      |     |  |  +--rw transceiver?        -> /oc-platform:components/component/name
      |     |  |  +--rw physical-channel*   -> /oc-platform:components/component/oc-transceiver:transceiver/physical-channels/channel/index
      |     |  +--ro state
      |     |     +--ro transceiver?        -> /oc-platform:components/component/name
      |     |     +--ro physical-channel*   -> /oc-platform:components/component/oc-transceiver:transceiver/physical-channels/channel/index
      |     +--rw logical-channel-assignments
      |        +--rw assignment* [index]
      |           +--rw index     -> ../config/index
      |           +--rw config
      |           |  +--rw index?             uint32
      |           |  +--rw description?       string
      |           |  +--rw assignment-type?   enumeration
      |           |  +--rw logical-channel?   -> /terminal-device/logical-channels/channel/index
      |           |  +--rw optical-channel?   -> /oc-platform:components/component/name
      |           |  +--rw allocation?        decimal64
      |           +--ro state
      |              +--ro index?             uint32
      |              +--ro description?       string
      |              +--ro assignment-type?   enumeration
      |              +--ro logical-channel?   -> /terminal-device/logical-channels/channel/index
      |              +--ro optical-channel?   -> /oc-platform:components/component/name
      |              +--ro allocation?        decimal64
      +--rw operational-modes
         +--ro mode* [mode-id]
            +--ro mode-id    -> ../state/mode-id
            +--ro config
            +--ro state
               +--ro mode-id?       uint16
               +--ro description?   string
               +--ro vendor-id?     string

The following is the tree structure of the OpenConfig Platform model:

module: openconfig-platform
   +--rw components
      +--rw component* [name]
         +--rw name                           -> ../config/name
         +--rw config
         |  +--rw name?   string
         +--ro state
         |  +--ro name?          string
         |  +--ro type?          union
         |  +--ro id?            string
         |  +--ro description?   string
         |  +--ro mfg-name?      string
         |  +--ro version?       string
         |  +--ro serial-no?     string
         |  +--ro part-no?       string
         
         +--rw oc-transceiver:transceiver
         |  +--ro oc-transceiver:state
         |  |  +--ro oc-transceiver:form-factor?                 identityref
         |  |  +--ro oc-transceiver:present?                     enumeration
         |  |  +--ro oc-transceiver:connector-type?              identityref
         |  |  +--ro oc-transceiver:internal-temp?               int16
         |  |  +--ro oc-transceiver:vendor?                      string
         |  |  +--ro oc-transceiver:vendor-part?                 string
         |  |  +--ro oc-transceiver:vendor-rev?                  string
         |  |  +--ro oc-transceiver:ethernet-compliance-code?    identityref
         |  |  +--ro oc-transceiver:sonet-sdh-compliance-code?   identityref
         |  |  +--ro oc-transceiver:otn-compliance-code?         identityref
         |  |  +--ro oc-transceiver:serial-no?                   string
         |  |  +--ro oc-transceiver:date-code?                   yang:date-and-time
         |  |  +--ro oc-transceiver:fault-condition?             boolean
         |  +--rw oc-transceiver:physical-channels
         |     +--rw oc-transceiver:channel* [index]
         |        +--rw oc-transceiver:index     -> ../config/index
         |           +--ro oc-transceiver:output-frequency?      oc-opt-types:frequency-type
         |           +--ro oc-transceiver:output-power
         |           |  +--ro oc-transceiver:instant?   decimal64
         |           |  +--ro oc-transceiver:avg?       decimal64
         |           |  +--ro oc-transceiver:min?       decimal64
         |           |  +--ro oc-transceiver:max?       decimal64
         |           +--ro oc-transceiver:input-power
         |           |  +--ro oc-transceiver:instant?   decimal64
         |           |  +--ro oc-transceiver:avg?       decimal64
         |           |  +--ro oc-transceiver:min?       decimal64
         |           |  +--ro oc-transceiver:max?       decimal64
         |           +--ro oc-transceiver:laser-bias-current
         |              +--ro oc-transceiver:instant?   decimal64
         |              +--ro oc-transceiver:avg?       decimal64
         |              +--ro oc-transceiver:min?       decimal64
         |              +--ro oc-transceiver:max?       decimal64
         +--rw oc-opt-term:optical-channel
            +--rw oc-opt-term:config
            |  +--rw oc-opt-term:frequency?             oc-opt-types:frequency-type
            |  +--rw oc-opt-term:target-output-power?   decimal64
            |  +--rw oc-opt-term:operational-mode?      uint16
            |  +--rw oc-opt-term:line-port?             -> /oc-platform:components/component/name
            +--ro oc-opt-term:state
               +--ro oc-opt-term:frequency?                                   oc-opt-types:frequency-type
               +--ro oc-opt-term:target-output-power?                         decimal64
               +--ro oc-opt-term:operational-mode?                            uint16
               +--ro oc-opt-term:line-port?                                   -> /oc-platform:components/component/name
               +--ro oc-opt-term:chromatic-dispersion
               |  +--ro oc-opt-term:instant?   decimal64
               |  +--ro oc-opt-term:avg?       decimal64
               |  +--ro oc-opt-term:min?       decimal64
               |  +--ro oc-opt-term:max?       decimal64
               +--ro oc-opt-term:second-order-polarization-mode-dispersion
               |  +--ro oc-opt-term:instant?   decimal64
               |  +--ro oc-opt-term:avg?       decimal64
               |  +--ro oc-opt-term:min?       decimal64
               |  +--ro oc-opt-term:max?       decimal64
               +--ro oc-opt-term:polarization-dependent-loss
                  +--ro oc-opt-term:instant?   decimal64
                  +--ro oc-opt-term:avg?       decimal64
                  +--ro oc-opt-term:min?       decimal64
                  +--ro oc-opt-term:max?       decimal64

Inventory Details of Terminal-device Model

The hierarchy of Cisco NCS 1004 inventory is shown below:

Figure 1. Hierarchy of Cisco NCS 1004 Inventory


The inventory details and the naming convention of the components used in the Cisco NCS 1004 Terminal-device model are as follows:

Table 1. Inventory Details

Components

Naming Convention

Optics Controller

R/S-OpticsCtlrR/S/I/P

Optics Container

R/S-OpticsContainerR/S/I/P

Transceivers

R/S-OpticsR/S/I/P

Optical Channel Module

R/S-OpticalChannelR/S/I/P

The following table lists all the valid transceivers and optical channels that can be used for configuring Cisco NCS 1004 using Terminal-device model:

Table 2. Transceiver and Optical Channel Details

Components

Applicable Channels

Transceivers

0/0-Optics0/0/0/0 to 0/0-Optics0/0/0/13

0/1-Optics0/1/0/0 to 0/1-Optics0/1/0/13

0/2-Optics0/2/0/0 to 0/2-Optics0/2/0/13

0/3-Optics0/3/0/0 to 0/3-Optics0/3/0/13

Optical Channels

  • 0/0-OpticalChannel0/0/0/0

  • 0/0-OpticalChannel0/0/0/1

  • 0/1-OpticalChannel0/1/0/0

  • 0/1-OpticalChannel0/1/0/1

  • 0/2-OpticalChannel0/2/0/0

  • 0/2-OpticalChannel0/2/0/1

  • 0/3-OpticalChannel0/3/0/0

  • 0/3-OpticalChannel0/3/0/1


Note


Only the optical channels of trunk ports must be mapped to the line ports. For more information about the port details, see Slice and Port Numbering.


Configuring Cisco NCS1004 Using Terminal-device Model

The following configurations are supported on the 1.2 Tbps line card. Client port operate at 100GE and OTU4 and map to trunk ports operating at 200G, 300G, 400G, 500G, or 600G.

You can configure the client port to OTU4 only in the muxponder configuration. LLDP drop, L1 encryption, and AINS are not supported on the OTU4 configuration.

The following table displays the client and trunk ports that are enabled for the muxponder configuration.

Trunk Data Rate

Client Data Rate (100GE/OTU4)

Trunk Ports

Client Ports

200

100GE/OTU4

0, 1

2,3, 4, 5

300

100GE/OTU4

0, 1

2, 3, 4, 5, 6, 7

400

100GE

0, 1

2, 3, 4, 5, 6, 7, 8, 9

500

100GE

0, 1

2, 3, 4, 5, 6, 7, 8, 9, 10, 11

600

100GE

0,1

2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13

The following table displays the client and trunk ports that are enabled for the muxponder slice 0 configuration.

Trunk Data Rate

Client Data Rate

Trunk Ports

Client Ports

200

100

0

2, 3

300

100

0

2, 3, 4

400

100

0

2, 3, 4, 5

500

100

0

2, 3, 4, 5, 6

600

100

0

2, 3, 4, 5, 6, 7

The following table displays the client and trunk ports that are enabled for the muxponder slice 1 configuration.

Trunk Data Rate

Client Data Rate

Trunk Ports

Client Ports

200

100

1

8, 9

300

100

1

8, 9, 10

400

100

1

8, 9, 10, 11

500

100

1

8, 9, 10, 11, 12

600

100

1

8, 9, 10, 11, 12, 13

All configurations can be accomplished using appropriate values for client bitrate and trunk bitrate parameters of the hw-module command.

The following table displays the trunk parameter ranges.

Trunk Payload

FEC

Min BPS

Max BPS

Min GBd

Max GBd

200G

27%

2

4.40625

31.51

69.43

300G

27%

2.8984375

6

34.7175497

71.8681352

400G

27%

3.8671875

6

46.2900663

71.8197392

500G

27%

4.8281250

6

57.8625828

71.9068991

600G

15%

5.2578125

-

-

71.9552971

Migrating CLI to Terminal-device Configuration

Cisco NCS 1004 supports migration from CLI to OC configuration only, vice-versa is not supported. The transition from CLI to terminal-device must be done via merge-config operation in gRPC.

To migrate from CLI configuration to the terminal-device configuration, perform the following:

Procedure


Step 1

Enable the transition from CLI configuration to the terminal-device configuration, using the following command:

terminal-device transition cli-to-yang enable

Step 2

You must configure a slice using the CLI configuration command. For more details, see Configure the Slice.

Note

 

Do not use all keyword to configure all slices, instead you must configure each slice individually.

Note

 

Configure the trunk port frequencies with 100MHz spacing as after the migration to OC Models only 100MHz spacing is supported.

Note

 

Ignore this step if you are migrating a configured slice. You cannot change the slice configuration while performing migration. For example, if you have configured 100G to 200 G traffic on a slice using CLI, then you can perform OC configuration for the same 100G to 200G slice configuration.

Step 3

Apply OC configuration using Netconf or gRPC. For more details, see Configuring Cisco NCS1004 Using Terminal-device Model.

Step 4

Remove the slice configuration for the migrated slice. This configuration does not impact the traffic as OC configuration is already applied.


To disable the transition from CLI configuration to the terminal-device configuration, use the following command:

terminal-device transition cli-to-yang disable

OpenConfig Terminal Device

OC-terminal MDT data for Trunk Controller is as follows:

    "openconfig": {
      "terminal-device": {
        "logical-channels": {
          "channel": {
            "30000": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 500,
                      "assignment-type": "OPTICAL_CHANNEL",
                      "description": "Coherent to optical assignemnt",
                      "index": 1,
                      "optical-channel": "0_0-OpticalChannel0_0_0_0"
                    }
                  }
                }
              },
              "otn": {
                "state": {
                  "background-block-errors": 0,
                  "errored-seconds": 0,
                  "esnr": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980083123944,
                    "min": 0,
                    "min-time": 1573537980083123944
                  },
                  "fec-corrected-bits": 0,
                  "fec-uncorrectable-words": 0,
                  "post-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 0,
                    "min": 0,
                    "min-time": 0
                  },
                  "pre-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 0,
                    "min": 0,
                    "min-time": 0
                  },
                  "q-value": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 0,
                    "min": 0,
                    "min-time": 0
                  },
                  "severely-errored-seconds": 0,
                  "unavailable-seconds": 0
                }
              },
              "state": {
                "admin-state": "DISABLED",
                "description": "Coherent Logical Channel",
                "index": 30000,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE"
              }
            },

OC-terminal-device client MDT data is as follows:

            "30002": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_2"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30020
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30002,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },

OC-transceiver data for trunk is as follows:

  "openconfig-platform": {
    "components": {
      "component": {
        "0/0-Optics0/0/0/0": {
          "openconfig-platform-transceiver:transceiver": {
            "physical-channels": {
              "channel": {
                "1": {
                  "state": {
                    "index": 1,
                    "input-power": {
                      "avg": -1.68,
                      "instant": -1.69,
                      "interval": 30000000000,
                      "max": -1.64,
                      "max-time": 1574223676071500740,
                      "min": -1.71,
                      "min-time": 1574223669071573554
                    },
                    "laser-bias-current": {
                      "avg": 0,
                      "instant": 0,
                      "interval": 30000000000,
                      "max": 0,
                      "max-time": 1574223660072966799,
                      "min": 0,
                      "min-time": 1574223660072966799
                    },
                    "output-frequency": 193100000,
                    "output-power": {
                      "avg": -1.49,
                      "instant": -1.5,
                      "interval": 30000000000,
                      "max": -1.45,
                      "max-time": 1574223664071514654,
                      "min": -1.54,
                      "min-time": 1574223686071572161
                    }
                  }
                }
              }
            },
            "state": {
              "fault-condition": false,
              "fec-corrected-bits": 3886,
              "fec-uncorrectable-words": 0,
              "present": "PRESENT"
            }
          }

OC-transceiver data for client port is as follows:

        "0/0-Optics0/0/0/2": {
          "openconfig-platform-transceiver:transceiver": {
            "physical-channels": {
              "channel": {
                "1": {
                  "state": {
                    "index": 1,
                    "input-power": {
                      "avg": -40,
                      "instant": -40,
                      "interval": 30000000000,
                      "max": -40,
                      "max-time": 1574223660072988517,
                      "min": -40,
                      "min-time": 1574223660072988517
                    },
                    "laser-bias-current": {
                      "avg": 42.01,
                      "instant": 42.04,
                      "interval": 30000000000,
                      "max": 42.05,
                      "max-time": 1574223662071529895,
                      "min": 41.96,
                      "min-time": 1574223677071538621
                    },
                    "output-frequency": 231399800,
                    "output-power": {
                      "avg": 2.89,
                      "instant": 2.91,
                      "interval": 30000000000,
                      "max": 2.92,
                      "max-time": 1574223665071507015,
                      "min": 2.87,
                      "min-time": 1574223667071599738
                    }
                  }
                },
                "2": {
                  "state": {
                    "index": 2,
                    "input-power": {
                      "avg": -40,
                      "instant": -40,
                      "interval": 30000000000,
                      "max": -40,
                      "max-time": 1574223660072993271,
                      "min": -40,
                      "min-time": 1574223660072993271
                    },
                    "laser-bias-current": {
                      "avg": 41.73,
                      "instant": 41.74,
                      "interval": 30000000000,
                      "max": 41.76,
                      "max-time": 1574223661071554206,
                      "min": 41.66,
                      "min-time": 1574223666071512088
                    },
                    "output-frequency": 230598900,
                    "output-power": {
                      "avg": 2.94,
                      "instant": 2.94,
                      "interval": 30000000000,
                      "max": 2.97,
                      "max-time": 1574223670071513829,
                      "min": 2.92,
                      "min-time": 1574223663071555469
                    }
                  }
                },
                "3": {
                  "state": {
                    "index": 3,
                    "input-power": {
                      "avg": -40,
                      "instant": -40,
                      "interval": 30000000000,
                      "max": -40,
                      "max-time": 1574223660072997439,
                      "min": -40,
                      "min-time": 1574223660072997439
                    },
                    "laser-bias-current": {
                      "avg": 42.07,
                      "instant": 42.07,
                      "interval": 30000000000,
                      "max": 42.14,
                      "max-time": 1574223689071519875,
                      "min": 42.02,
                      "min-time": 1574223680071519773
                    },
                    "output-frequency": 229798200,
                    "output-power": {
                      "avg": 3.11,
                      "instant": 3.12,
                      "interval": 30000000000,
                      "max": 3.14,
                      "max-time": 1574223671071530318,
                      "min": 3.08,
                      "min-time": 1574223677071549246
                    }
                  }
                },
                "4": {
                  "state": {
                    "index": 4,
                    "input-power": {
                      "avg": -40,
                      "instant": -40,
                      "interval": 30000000000,
                      "max": -40,
                      "max-time": 1574223660073001092,
                      "min": -40,
                      "min-time": 1574223660073001092
                    },
                    "laser-bias-current": {
                      "avg": 41.88,
                      "instant": 41.86,
                      "interval": 30000000000,
                      "max": 41.95,
                      "max-time": 1574223669071611563,
                      "min": 41.83,
                      "min-time": 1574223664071551968
                    },
                    "output-frequency": 230255300,
                    "output-power": {
                      "avg": 3.32,
                      "instant": 3.29,
                      "interval": 30000000000,
                      "max": 3.35,
                      "max-time": 1574223687071561519,
                      "min": 3.3,
                      "min-time": 1574223664071551968
                    }
                  }
                }
              }
            },
            "state": {
              "connector-type": "openconfig-transport-types:LC_CONNECTOR",
              "date-code": "190807",
              "fault-condition": false,
              "form-factor": "openconfig-transport-types:QSFP28",
              "otn-compliance-code": "openconfig-transport-types:OTN_NOT_SET",
              "present": "PRESENT",
              "serial-no": "FNS23320KEK",
              "sonet-sdh-compliance-code": "openconfig-transport-types:SONET_NOT_SET",
              "vendor": "CISCO-FINISAR",
              "vendor-part": "FTLC1151SDPL-C1",
              "vendor-rev": "B"
            }
          }
        },


Note


Github Link for OpenConfig-terminal-device : https://github.com/openconfig/public/blob/master/release/models/optical-transport/openconfig-terminal-device.yang

Github link for OpenConfig-transceiver: https://github.com/openconfig/public/blob/master/release/models/platform/openconfig-platform-transceiver.yang


{
  "Calaeum.Caluem_@123^": {
    "openconfig": {
      "terminal-device": {
        "logical-channels": {
          "channel": {
            "30000": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 500,
                      "assignment-type": "OPTICAL_CHANNEL",
                      "description": "Coherent to optical assignemnt",
                      "index": 1,
                      "optical-channel": "0_0-OpticalChannel0_0_0_0"
                    }
                  }
                }
              },
              "otn": {
                "state": {
                  "background-block-errors": 0,
                  "errored-seconds": 0,
                  "esnr": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980083123944,
                    "min": 0,
                    "min-time": 1573537980083123944
                  },
                  "fec-corrected-bits": 0,
                  "fec-uncorrectable-words": 0,
                  "post-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 0,
                    "min": 0,
                    "min-time": 0
                  },
                  "pre-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 0,
                    "min": 0,
                    "min-time": 0
                  },
                  "q-value": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 0,
                    "min": 0,
                    "min-time": 0
                  },
                  "severely-errored-seconds": 0,
                  "unavailable-seconds": 0
                }
              },
              "state": {
                "admin-state": "DISABLED",
                "description": "Coherent Logical Channel",
                "index": 30000,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE"
              }
            },
            "30001": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 500,
                      "assignment-type": "OPTICAL_CHANNEL",
                      "description": "Coherent to optical assignemnt",
                      "index": 1,
                      "optical-channel": "0_0-OpticalChannel0_0_0_1"
                    }
                  }
                }
              },
              "otn": {
                "state": {
                  "background-block-errors": 0,
                  "errored-seconds": 0,
                  "esnr": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980083239722,
                    "min": 0,
                    "min-time": 1573537980083239722
                  },
                  "fec-corrected-bits": 0,
                  "fec-uncorrectable-words": 0,
                  "post-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980083377735,
                    "min": 0,
                    "min-time": 1573537980083377735
                  },
                  "pre-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980083377735,
                    "min": 0,
                    "min-time": 1573537980083377735
                  },
                  "q-value": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980083377735,
                    "min": 0,
                    "min-time": 1573537980083377735
                  },
                  "severely-errored-seconds": 0,
                  "unavailable-seconds": 30
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "Coherent Logical Channel",
                "index": 30001,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE"
              }
            },
            "30002": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_2"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30020
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30002,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30003": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_3"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30021
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30003,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30004": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_4"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30022
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30004,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30005": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_5"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30023
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30005,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30006": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_6"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30024
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30006,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30007": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_8"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30025
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30007,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30008": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_9"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30026
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30008,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30009": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_10"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30027
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30009,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30010": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 30,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_11"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30028
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30010,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30011": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_0_0_12"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 30029
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 30011,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "30020": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30000
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30020,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30021": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30000
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30021,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30022": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30000
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30022,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30023": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30000
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30023,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30024": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30000
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30024,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30025": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30001
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30025,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30026": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30001
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30026,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30027": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30001
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30027,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30028": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30001
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30028,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "30029": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "Assignment: ODU4 to Coherent",
                      "index": 1,
                      "logical-channel": 30001
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ODU4 logical channel",
                "index": 30029,
                "link-state": "DOWN",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE",
                "trib-protocol": "openconfig-transport-types:PROT_ODU4"
              }
            },
            "40000": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 600,
                      "assignment-type": "OPTICAL_CHANNEL",
                      "description": "Coherent to optical assignemnt",
                      "index": 1,
                      "optical-channel": "0_1-OpticalChannel0_1_0_0"
                    }
                  }
                }
              },
              "otn": {
                "state": {
                  "background-block-errors": 0,
                  "errored-seconds": 0,
                  "esnr": {
                    "avg": 20.25,
                    "instant": 20.3,
                    "interval": 30000000000,
                    "max": 20.3,
                    "max-time": 1573537980480579044,
                    "min": 20.1,
                    "min-time": 1573537987470421480
                  },
                  "fec-corrected-bits": 17436506376,
                  "fec-uncorrectable-words": 0,
                  "post-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980480852141,
                    "min": 0,
                    "min-time": 1573537980480852141
                  },
                  "pre-fec-ber": {
                    "avg": 0.00671,
                    "instant": 0.0068,
                    "interval": 30000000000,
                    "max": 0.00738,
                    "max-time": 1573537994470526801,
                    "min": 0.00655,
                    "min-time": 1573537995470571723
                  },
                  "q-value": {
                    "avg": 7.8,
                    "instant": 0.078,
                    "interval": 30000000000,
                    "max": 7.8,
                    "max-time": 1573537980480852141,
                    "min": 7.8,
                    "min-time": 1573537980480852141
                  },
                  "severely-errored-seconds": 0,
                  "unavailable-seconds": 0
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "Coherent Logical Channel",
                "index": 40000,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE"
              }
            },
            "40001": {
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 600,
                      "assignment-type": "OPTICAL_CHANNEL",
                      "description": "Coherent to optical assignemnt",
                      "index": 1,
                      "optical-channel": "0_1-OpticalChannel0_1_0_1"
                    }
                  }
                }
              },
              "otn": {
                "state": {
                  "background-block-errors": 0,
                  "errored-seconds": 0,
                  "esnr": {
                    "avg": 20.02,
                    "instant": 20.1,
                    "interval": 30000000000,
                    "max": 20.1,
                    "max-time": 1573537980480723522,
                    "min": 19.9,
                    "min-time": 1573537984470478041
                  },
                  "fec-corrected-bits": 50377421964,
                  "fec-uncorrectable-words": 0,
                  "post-fec-ber": {
                    "avg": 0,
                    "instant": 0,
                    "interval": 30000000000,
                    "max": 0,
                    "max-time": 1573537980481194932,
                    "min": 0,
                    "min-time": 1573537980481194932
                  },
                  "pre-fec-ber": {
                    "avg": 0.00825,
                    "instant": 0.0085,
                    "interval": 30000000000,
                    "max": 0.00897,
                    "max-time": 1573537994470555826,
                    "min": 0.008,
                    "min-time": 1573538007470595227
                  },
                  "q-value": {
                    "avg": 7.52,
                    "instant": 0.075,
                    "interval": 30000000000,
                    "max": 7.6,
                    "max-time": 1573537980481194932,
                    "min": 7.5,
                    "min-time": 1573537980481194932
                  },
                  "severely-errored-seconds": 0,
                  "unavailable-seconds": 0
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "Coherent Logical Channel",
                "index": 40001,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_OTN",
                "loopback-mode": "NONE"
              }
            },
            "40002": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_1_0_2"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 40020
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 40002,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "40003": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 18446744073709551580,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 3,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_1_0_3"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 40021
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 40003,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "40004": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 18446744073709551531,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 7,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_1_0_4"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 40022
                    }
                  }
                }
              },
              "state": {
                "admin-state": "ENABLED",
                "description": "ETH Logical Channel",
                "index": 40004,
                "link-state": "UP",
                "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET",
                "loopback-mode": "NONE",
                "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
                "trib-protocol": "openconfig-transport-types:PROT_100G_MLG"
              }
            },
            "40005": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 18446744073709551581,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 3,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0
                }
              },
              "ingress": {
                "state": {
                  "transceiver": "Optics0_1_0_5"
                }
              },
              "logical-channel-assignments": {
                "assignment": {
                  "1": {
                    "state": {
                      "allocation": 100,
                      "assignment-type": "LOGICAL_CHANNEL",
                      "description": "ETH to ODU4 assignemnt",
                      "index": 1,
                      "logical-channel": 40023
                    }
                  }
                }
              },

Ethernet Stats Addition for OpenConfig

The PCS performance monitoring counter details are mentioned in the following table.

PCS Counter

Influencing Alarm

Influencing Counter

PCS-ES

None

BIP>0 or

FRM-ERR>0 or

BAD-SH>0

And does not meet SES condition.

PCS-SES

SIGLOSS or SYNCLOSS, or LF

BIP>15%

( Based on G.8201)

PCS-UAS

10 seconds of consecutive SES

10 seconds of consecutive SES

PCS-ES-FE

None

None

PCS-SES-FE

RF

None

PCS-UAS-FE

10 seconds of consecutive SES

10 seconds of consecutive SES

The MDT output is as follows:

"20002": {
              "ethernet": {
                "state": {
                  "in-crc-errors": 0,
                  "in-fragment-frames": 0,
                  "in-jabber-frames": 0,
                  "in-mac-pause-frames": 0,
                  "in-oversize-frames": 0,
                  "in-pcs-bip-errors": 0,
                  "in-pcs-errored-seconds": 0,
                  "in-pcs-severely-errored-seconds": 0,
                  "in-pcs-unavailable-seconds": 0,
                  "out-mac-pause-frames": 0

CLI for Ethernet PCS Stats

P/0/RP0/CPU0:BH1_P2A4#show controllers hundredGigECtrlr 0/1/0/2 pm current 15-min pcs 
Thu Jan 30 11:28:16.370 UTC

Ethernet PCS in the current interval [11:15:00 - 11:28:16 Thu Jan 30 2020]

Ethernet PCS current bucket type : Valid
BIP[00]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[01]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[02]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[03]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[04]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[05]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[06]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[07]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[08]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[09]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[10]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[11]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[12]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[13]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[14]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[15]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[16]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[17]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[18]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 BIP[19]                    : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[00]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[01]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[02]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[03]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[04]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[05]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[06]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[07]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[08]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[09]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[10]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[11]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[12]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[13]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[14]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[15]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[16]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[17]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[18]                : 0                         Threshold : 0                         TCA(enable) : NO 
 FRM-ERR[19]                : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[00]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[01]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[02]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[03]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[04]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[05]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[06]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[07]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[08]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[09]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[10]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[11]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[12]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[13]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[14]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[15]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[16]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[17]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[18]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 BAD-SH[19]                 : 0                         Threshold : 0                         TCA(enable) : NO 
 ES                         : 0                         Threshold : 0                         TCA(enable) : NO 
 SES                        : 0                         Threshold : 0                         TCA(enable) : NO 
 UAS                        : 796                       Threshold : 0                         TCA(enable) : NO 
 ES-FE                      : 0                         Threshold : 0                         TCA(enable) : NO 
 SES-FE                     : 0                         Threshold : 0                         TCA(enable) : NO 
 UAS-FE                     : 0                         Threshold : 0                         TCA(enable) : NO 

Configure LLDP on Management Port

Table 3. Feature History

Feature Name

Release

Description

OC (Open Configuration) Support for LLDP (Link Layer Discovery Protocol) on Management Port

Cisco IOS XR Release 7.3.1

The OC support for configuring LLDP on a management port is available. This feature enables you to perform the configuration using scripts, which is less time-consuming. Also, the Open Configuration model supports the use of vendor-neutral data models to configure and manage the network.

Procedure


Step 1

You can use the following script to configure LLDP on management port.

"openconfig-lldp:lldp": {
"interfaces": {
  "interface": [
   {
    "name": "MgmtEth0/RP0/CPU0/0",
    "config": {
     "name": "MgmtEth0/RP0/CPU0/0",
     "enabled": true
    }
   },
   {
    "name": "MgmtEth0/RP0/CPU0/1",
    "config": {
     "name": "MgmtEth0/RP0/CPU0/1",
     "enabled": true
    }
   },
   {
    "name": "MgmtEth0/RP0/CPU0/2",
    "config": {
     "name": "MgmtEth0/RP0/CPU0/2",
     "enabled": true
    }
   }
  ]
}
}

 

Step 2

You can get the operational data through GNMI

"MgmtEth0/RP0/CPU0/1": {
                          "neighbors": {
                             "neighbor": {
                                 "SW-VEGA-CORBU-C4#Gi1/0/13": {
                                      "capabilities": {
                                         "capability": {
                                             "openconfig-lldp-types:MAC_BRIDGE": {
                                                  "state": {
                                                      "enabled": true,
                                                      "name": "openconfig-lldp-types:MAC_BRIDGE"
                                                  }
                                              },
                                              "openconfig-lldp-types:ROUTER": {
                                                  "state": {
                                                      "enabled": false,
                                                      "name": "openconfig-lldp-types:ROUTER"
                                                  }
                                              }
                                          }
                                     },
                                      "custom-tlvs": {
                                          "tlv": {
                                              "32962": {
                                                  "1": {
                                                     "295": {
                                                          "state": {
                                                              "oui": "32962",
                                                             "oui-subtype": "1",
                                                              "type": 127,
                                                              "value": "Aa8="
                                                          }
                                                      }
                                                  }
                                             },
                                             "4623": {
                                                  "1": {
                                                     "295": {
                                                         "state": {
                                                             "oui": "4623",
                                                              "oui-subtype": "1",
                                                              "type": 127,
                                                              "value": "A2wBAB4="
                                                          }
                                                      }
                                                  }
                                              }
                                          }
                                      },
                                      "state": {
                                         "chassis-id": "6899.cd9f.f480",
                                          "chassis-id-type": "MAC_ADDRESS",
                                          "id": "SW-VEGA-CORBU-C4",
                                          "management-address": "4.31.25.25",
                                          "management-address-type": "ipv4",
                                          "port-description": "GigabitEthernet1/0/13",
                                          "port-id": "Gi1/0/13",
                                          "port-id-type": "INTERFACE_NAME",
                                          "system-description": "Cisco IOS Software, Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 15.0(1)EX3, RELEASE SOFTWARE (fc2)\nTechnical Support: http://www.cisco.com/techsupport\nCopyright (c) 1986-2013 by Cisco Systems, Inc.\nCompiled Mon 23-Sep-13 18:24 by prod_r",
                                          "system-name": "SW-VEGA-CORBU-C4"
                                     }
                                  }
                              }
                          },
                          "state": {
                              "enabled": true,
                              "name": "MgmtEth0/RP0/CPU0/1"
                          }
                      },
 

OpenConfig Terminal Device Revision

Table 4. Feature History

Feature Name

Release

Description

OC (Open Configuration) Terminal Device Revision

Cisco IOS XR Release 7.3.1

The Open Configuration terminal device revision to 1.7.2 allows you to provide LLDP support on the client optics. This feature allows you to learn LLDP neighbors and the topology of the devices for Operations, Administration, and Maintenance (OAM) purposes.

LLDP Support on Client Optics

The client-side LLDP is enabled by default. The LLDP state data is collected over gNMI telemetry.

Limitations

  • There is no support on configuration, since LLDP is enabled by default.

  • There is no support for LLDP counters.

  • There is no support for leaf age and last update in LLDP neighbor discovery.

Sample gNMI telemetry output for LLDP:

{

  "openconfig-terminal-device": {

    "terminal-device": {

      "logical-channels": {

        "channel": {

          "10005": {

            "ethernet": {

              "lldp": {

                "neighbors": {

                  "neighbor": {

                    "nncs5500_node1#HundredGigE0/0/0/30": {

                      "state": {

                        "chassis-id": "008a.96cd.34df",

                        "chassis-id-type": "MAC_ADDRESS",

                        "id": "nncs5500_node1#HundredGigE0/0/0/30",

                        "management-address": "10.127.60.23",

                        "management-address-type": "ipv4",

                        "port-id": "HundredGigE0/0/0/30",

                        "port-id-type": "INTERFACE_NAME",

                        "system-description": " 7.2.1.36I, NCS-5500",

                        "system-name": "nncs5500_node1"

                      }

                    }

                  }

               },

                "state": {

                  "enabled": true,

                  "snooping": true

                }

              }

            }

          }

        }

      }

    }

  }

}

Open Configuration Model for Client FEC

Before you begin

Table 5. Feature History

Feature Name

Release

Description

OC (Open Configuration) Model for Client FEC and Laser Squelch

Cisco IOS XR Release 7.3.1

The OC model for configuring client FEC and Laser Squelch is available. This feature enables you to perform the configuration using scripts, which is less time-consuming. Also, the Open Configuration model supports the use of vendor-neutral data models to configure and manage the network.

Procedure


Step 1

You can enable FEC (Forward Error Correction) on clients using the following scripts:

"openconfig-platform:components": {
 "component": [
  {
   "name": "0/0-Optics0/0/0/2",
   "config": {
    "name": "0/0-Optics0/0/0/2"
   },
   "openconfig-platform-transceiver:transceiver": {
    "config": {
     "fec-mode": "openconfig-platform-types:FEC_ENABLED"
    }
   }
  }
 

Step 2

You can get operational data using GNMI.

"state": {
    "connector-type": "openconfig-transport-types:LC_CONNECTOR",
    "date-code": "2019-08-05T00:00:00Z+00:00",
    "fault-condition": false,
    "fec-mode": "openconfig-platform-types:FEC_ENABLED",
    "fec-uncorrectable-words": 0,
    "form-factor": "openconfig-transport-types:QSFP28",
    "otn-compliance-code": "openconfig-transport-types:OTN_UNDEFINED",
    "present": "PRESENT",
    "serial-no": "INL23321878",
    "sonet-sdh-compliance-code": "openconfig-transport-types:SONET_UNDEFINED",
    "vendor": "CISCO-INNOLIGHT",
    "vendor-part": "10-3220-02",
    "vendor-rev": "1C"
}
 


Configure Laser Squelch

Procedure


Step 1

You can enable laser squelching using the following scripts:

"openconfig-terminal-device:terminal-device": {
 "logical-channels": {
  "channel": [
   {
    "index": 30002,
    "config": {
     "index": 30002,
     "rate-class": "openconfig-transport-types:TRIB_RATE_100G",
     "admin-state": "ENABLED",
     "description": "ETH Logical Channel                                                                                       ",
     "loopback-mode": "NONE",
     "trib-protocol": "openconfig-transport-types:PROT_100G_MLG",
     "logical-channel-type": "openconfig-transport-types:PROT_ETHERNET"
    },
    "ethernet": {
     "config": {
      "als-delay": 3000,
      "client-als": "LASER_SHUTDOWN"
     }
    },
    "ingress": {
     "config": {
      "transceiver": "0/0-Optics0/0/0/2"
     }
    },
    "logical-channel-assignments": {
     "assignment": [
      {
       "index": 1,
       "config": {
        "index": 1,
        "allocation": "100",
        "assignment-type": "LOGICAL_CHANNEL",
        "description": "ETH to ODU4 assignemnt                                                                                   ",
        "logical-channel": 30020
       }
      }
     ]
    }
   },
 

Step 2

You can get operational data using GNMI.

"state": {
                                 "als-delay": 5,
                                  "client-als": "LASER_SHUTDOWN",
                                  "in-crc-errors": 18446744073709551473,
                                  "in-fragment-frames": 0,
                                 "in-jabber-frames": 2,
                                  "in-mac-pause-frames": 0,
                                  "in-oversize-frames": 0,
                                  "in-pcs-bip-errors": 0,
                                  "in-pcs-errored-seconds": 0,
                                 "in-pcs-severely-errored-seconds": 0,
                                  "in-pcs-unavailable-seconds": 10,
                                  "out-mac-pause-frames": 0
                              }
                        },