cassini Modulation Driver Impl | ONOS-7979

Change-Id: Iba45f3e41fc39e63c7dc96acf5d2da248dc6bf68
diff --git a/models/openconfig-odtn/src/main/yang/openconfig-terminal-device.yang b/models/openconfig-odtn/src/main/yang/openconfig-terminal-device.yang
index 0319a6c..6cf9254 100644
--- a/models/openconfig-odtn/src/main/yang/openconfig-terminal-device.yang
+++ b/models/openconfig-odtn/src/main/yang/openconfig-terminal-device.yang
@@ -295,6 +295,18 @@
 
       uses oc-types:avg-min-max-instant-stats-precision2-dB;
     }
+    container osnr {
+          description
+            "Optical signal to noise ratio. Baud rate
+            normalized signal to noise ratio based on
+            error vector magnitude in dB with two decimal
+            precision. Values include the instantaneous, average,
+            minimum, and maximum statistics. If avg/min/max
+            statistics are not supported, the target is expected
+            to just supply the instant value";
+
+          uses oc-types:avg-min-max-instant-stats-precision2-dB;
+        }
   }
 
   grouping terminal-otn-protocol-state {
@@ -854,6 +866,11 @@
       description
         "Frequency of the optical channel, expressed in MHz";
     }
+    leaf modulation {
+          type oc-opt-types:modulation-format;
+          description
+            "Modulation of the optical channel, expressed in dB";
+     }
 
     leaf target-output-power {
       type decimal64 {
diff --git a/models/openconfig-odtn/src/main/yang/openconfig-transport-types.yang b/models/openconfig-odtn/src/main/yang/openconfig-transport-types.yang
index 247b973..bc82766 100644
--- a/models/openconfig-odtn/src/main/yang/openconfig-transport-types.yang
+++ b/models/openconfig-odtn/src/main/yang/openconfig-transport-types.yang
@@ -50,6 +50,64 @@
     description
       "Type for optical spectrum frequency values";
   }
+typedef modulation-format {
+        type enumeration {
+          enum UNKNOWN {
+            description
+              "quadrature phase-shift keying";
+          }
+          enum BPSK {
+            description
+              "quadrature phase-shift keying";
+          }
+          enum DP_BPSK {
+            description
+              "quadrature phase-shift keying";
+          }
+          enum QPSK {
+            description
+              "quadrature phase-shift keying";
+          }
+          enum DP_QPSK {
+            description
+              "quadrature phase-shift keying";
+          }
+          enum 8QAM {
+            description
+              "quadrature amplitude modulation 8";
+          }
+          enum DP_8QAM {
+            description
+              "quadrature amplitude modulation 8";
+          }
+          enum 16QAM {
+            description
+              "quadrature amplitude modulation 16";
+          }
+          enum DP_16QAM {
+            description
+              "quadrature amplitude modulation 16";
+          }
+          enum 32QAM {
+            description
+              "quadrature amplitude modulation 16";
+          }
+          enum DP_32QAM {
+            description
+              "quadrature amplitude modulation 16";
+          }
+          enum 64QAM {
+            description
+              "quadrature amplitude modulation 16";
+          }
+          enum DP_64QAM {
+            description
+              "quadrature amplitude modulation 16";
+          }
+        }
+        description
+          "Modulation format";
+      }
 
   typedef admin-state-type {
     type enumeration {