ONOS-7867 FlowRuleProgrammable driver for OpenConfig Cassini

* Minor update of Transceiver and DescriptionDiscovery to support newly added Optical-Channel component
* Add OpenConfig config/state sample which can be used for initial value of emulator

Change-Id: I9497ec55965be6f3cc0f5b4b6270c77ebe50b4a8
(cherry picked from commit 337c5526d17dff0a1dc5114b015414afc9c221d2)
diff --git a/drivers/odtn-driver/src/test/resources/cassini-init-device-config.xml b/drivers/odtn-driver/src/test/resources/cassini-init-device-config.xml
new file mode 100644
index 0000000..8ef51a7
--- /dev/null
+++ b/drivers/odtn-driver/src/test/resources/cassini-init-device-config.xml
@@ -0,0 +1,1098 @@
+<config xmlns="http://tail-f.com/ns/config/1.0">
+  <components xmlns="http://openconfig.net/yang/platform">
+    <component>
+      <name>oe1</name>
+      <config>
+        <name>oe1</name> <!-- must be the same as component/name -->
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe2</name>
+      <config>
+        <name>oe2</name> <!-- must be the same as component/name -->
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe3</name>
+      <config>
+        <name>oe3</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe4</name>
+      <config>
+        <name>oe4</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe5</name>
+      <config>
+        <name>oe5</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe6</name>
+      <config>
+        <name>oe6</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe7</name>
+      <config>
+        <name>oe7</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>oe8</name>
+      <config>
+        <name>oe8</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:CFP2_ACO</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+
+    <!-- [NEW] optical channel components :: start -->
+    <component>
+      <name>oc1/1</name>
+      <config>
+        <name>oc1/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe1</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc1/2</name>
+      <config>
+        <name>oc1/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe1</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc2/1</name>
+      <config>
+        <name>oc2/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe2</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc2/2</name>
+      <config>
+        <name>oc2/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe2</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc3/1</name>
+      <config>
+        <name>oc3/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe3</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc3/2</name>
+      <config>
+        <name>oc3/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe3</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc4/1</name>
+      <config>
+        <name>oc4/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe4</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc4/2</name>
+      <config>
+        <name>oc4/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe4</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc5/1</name>
+      <config>
+        <name>oc5/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe5</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc5/2</name>
+      <config>
+        <name>oc5/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe5</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc6/1</name>
+      <config>
+        <name>oc6/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe6</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc6/2</name>
+      <config>
+        <name>oc6/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe6</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc7/1</name>
+      <config>
+        <name>oc7/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe7</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc7/2</name>
+      <config>
+        <name>oc7/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe7</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc8/1</name>
+      <config>
+        <name>oc8/1</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194700000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe8</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <component>
+      <name>oc8/2</name>
+      <config>
+        <name>oc8/2</name>
+      </config>
+      <optical-channel xmlns="http://openconfig.net/yang/terminal-device">
+        <config>
+          <frequency>194750000</frequency> <!-- MHz -->
+          <target-output-power>-10.0</target-output-power> <!-- dbm -->
+          <line-port>oe8</line-port> <!-- components/component/name (type:TRANSCEIVER) -->
+        </config>
+      </optical-channel>
+    </component>
+    <!-- [NEW] optical channel components :: end -->
+
+    <component>
+      <name>ce1</name>
+      <config>
+        <name>ce1</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce2</name>
+      <config>
+        <name>ce2</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce3</name>
+      <config>
+        <name>ce3</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce4</name>
+      <config>
+        <name>ce4</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce5</name>
+      <config>
+        <name>ce5</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce6</name>
+      <config>
+        <name>ce6</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce7</name>
+      <config>
+        <name>ce7</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce8</name>
+      <config>
+        <name>ce8</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce9</name>
+      <config>
+        <name>ce9</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce10</name>
+      <config>
+        <name>ce10</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce11</name>
+      <config>
+        <name>ce11</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce12</name>
+      <config>
+        <name>ce12</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce13</name>
+      <config>
+        <name>ce13</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce14</name>
+      <config>
+        <name>ce14</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce15</name>
+      <config>
+        <name>ce15</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+    <component>
+      <name>ce16</name>
+      <config>
+        <name>ce16</name>
+      </config>
+      <transceiver xmlns="http://openconfig.net/yang/platform/transceiver">
+        <config>
+          <enabled>true</enabled>
+          <form-factor-preconf xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:QSFP28</form-factor-preconf>
+        </config>
+      </transceiver>
+    </component>
+  </components>
+  <terminal-device xmlns="http://openconfig.net/yang/terminal-device">
+    <logical-channels>
+      <channel>
+        <index>10101</index> <!-- must be uint32 -->
+        <config>
+          <index>10101</index>  <!-- must be the same as logical-channels/channel/index -->
+          <description>ce1/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce1</transceiver>
+          </config>
+        </ingress>
+        <logical-channel-assignments>
+          <assignment>
+            <index>10101</index> <!-- the same value as parent channel's index -->
+            <config>
+              <index>10101</index>   <!-- must be the same as logical-channel-assignments/assignment/index -->
+              <assignment-type>LOGICAL_CHANNEL</assignment-type>
+              <logical-channel>20101</logical-channel>
+              <allocation>100.0</allocation>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>10201</index>
+        <config>
+          <index>10201</index>
+          <description>ce2/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce2</transceiver>
+          </config>
+        </ingress>
+        <logical-channel-assignments>
+          <assignment>
+            <index>10201</index> <!-- the same value as parent channel's index -->
+            <config>
+              <index>10201</index>
+              <assignment-type>LOGICAL_CHANNEL</assignment-type>
+              <logical-channel>20102</logical-channel>
+              <allocation>100.0</allocation>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>10301</index>
+        <config>
+          <index>10301</index>
+          <description>ce3/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce3</transceiver>
+          </config>
+        </ingress>
+        <logical-channel-assignments>
+          <assignment>
+            <index>10301</index> <!-- the same value as parent channel's index -->
+            <config>
+              <index>10301</index>
+              <assignment-type>LOGICAL_CHANNEL</assignment-type>
+              <logical-channel>20202</logical-channel>
+              <allocation>100.0</allocation>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>10401</index>
+        <config>
+          <index>10401</index>
+          <description>ce4/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce4</transceiver>
+          </config>
+        </ingress>
+        <logical-channel-assignments>
+          <assignment>
+            <index>10401</index> <!-- the same value as parent channel's index -->
+            <config>
+              <index>10401</index>
+              <assignment-type>LOGICAL_CHANNEL</assignment-type>
+              <logical-channel>20201</logical-channel>
+              <allocation>100.0</allocation>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>10501</index>
+        <config>
+          <index>10501</index>
+          <description>ce5/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce5</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>10601</index>
+        <config>
+          <index>10601</index>
+          <description>ce6/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce6</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>10701</index>
+        <config>
+          <index>10701</index>
+          <description>ce7/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce7</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>10801</index>
+        <config>
+          <index>10801</index>
+          <description>ce8/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce8</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>10901</index>
+        <config>
+          <index>10901</index>
+          <description>ce9/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce9</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11001</index>
+        <config>
+          <index>11001</index>
+          <description>ce10/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce10</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11101</index>
+        <config>
+          <index>11101</index>
+          <description>ce11/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce11</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11201</index>
+        <config>
+          <index>11201</index>
+          <description>ce12/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce12</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11301</index>
+        <config>
+          <index>11301</index>
+          <description>ce13/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce13</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11401</index>
+        <config>
+          <index>11401</index>
+          <description>ce14/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce14</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11501</index>
+        <config>
+          <index>11501</index>
+          <description>ce15/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce15</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>11601</index>
+        <config>
+          <index>11601</index>
+          <description>ce16/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <trib-protocol xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_100GE</trib-protocol>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <ingress>
+          <config>
+            <transceiver>ce16</transceiver>
+          </config>
+        </ingress>
+      </channel>
+      <channel>
+        <index>20101</index>
+        <config>
+          <index>20101</index>
+          <description>oc1/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+
+        <!-- [NEW] association with optical channel component :: start -->
+        <logical-channel-assignments>
+          <assignment>
+            <index>20101</index>
+            <config>
+              <index>20101</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc1/1</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+        <!-- [NEW] association with optical channel component :: end -->
+
+      </channel>
+      <channel>
+        <index>20102</index>
+        <config>
+          <index>20102</index>
+          <description>oc1/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <!-- [NEW] association with optical channel component :: start -->
+        <logical-channel-assignments>
+          <assignment>
+            <index>20102</index>
+            <config>
+              <index>20102</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc1/2</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+        <!-- [NEW] association with optical channel component :: end -->
+      </channel>
+      <channel>
+        <index>20201</index>
+        <config>
+          <index>20201</index>
+          <description>oc2/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <!-- [NEW] association with optical channel component :: start -->
+        <logical-channel-assignments>
+          <assignment>
+            <index>20201</index>
+            <config>
+              <index>20201</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc2/1</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+        <!-- [NEW] association with optical channel component :: end -->
+      </channel>
+      <channel>
+        <index>20202</index>
+        <config>
+          <index>20202</index>
+          <description>oc2/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <!-- [NEW] association with optical channel component :: start -->
+        <logical-channel-assignments>
+          <assignment>
+            <index>20202</index>
+            <config>
+              <index>20202</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc2/2</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+        <!-- [NEW] association with optical channel component :: end -->
+      </channel>
+      <channel>
+        <index>20301</index>
+        <config>
+          <index>20301</index>
+          <description>oc3/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+      </channel>
+      <channel>
+        <index>20302</index>
+        <config>
+          <index>20302</index>
+          <description>oc3/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+      </channel>
+      <channel>
+        <index>20401</index>
+        <config>
+          <index>20401</index>
+          <description>oc4/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+      </channel>
+      <channel>
+        <index>20402</index>
+        <config>
+          <index>20402</index>
+          <description>oc4/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+      </channel>
+      <channel>
+        <index>20501</index>
+        <config>
+          <index>20501</index>
+          <description>oc5/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20501</index>
+            <config>
+              <index>20501</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc5/1</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20502</index>
+        <config>
+          <index>20502</index>
+          <description>oc5/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20502</index>
+            <config>
+              <index>20502</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc5/2</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20601</index>
+        <config>
+          <index>20601</index>
+          <description>oc6/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20601</index>
+            <config>
+              <index>20601</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc6/1</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20602</index>
+        <config>
+          <index>20602</index>
+          <description>oc6/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20602</index>
+            <config>
+              <index>20602</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc6/2</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20701</index>
+        <config>
+          <index>20701</index>
+          <description>oc7/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20701</index>
+            <config>
+              <index>20701</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc7/1</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20702</index>
+        <config>
+          <index>20702</index>
+          <description>oc7/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20702</index>
+            <config>
+              <index>20702</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc7/2</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20801</index>
+        <config>
+          <index>20801</index>
+          <description>oc8/1</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20801</index>
+            <config>
+              <index>20801</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc8/1</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+      <channel>
+        <index>20802</index>
+        <config>
+          <index>20802</index>
+          <description>oc8/2</description>
+          <admin-state>ENABLED</admin-state>
+          <rate-class xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:TRIB_RATE_100G</rate-class>
+          <logical-channel-type xmlns:oc-opt-types="http://openconfig.net/yang/transport-types">oc-opt-types:PROT_ETHERNET</logical-channel-type>
+        </config>
+        <logical-channel-assignments>
+          <assignment>
+            <index>20802</index>
+            <config>
+              <index>20802</index>
+              <assignment-type>OPTICAL_CHANNEL</assignment-type>
+              <optical-channel>oc8/2</optical-channel>
+            </config>
+          </assignment>
+        </logical-channel-assignments>
+      </channel>
+    </logical-channels>
+  </terminal-device>
+</config>