Merge "Update YANG models for OpenFronthaul M-Plane."
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / o-ran-performance-management.yang
@@ -8,7 +8,7 @@ module o-ran-performance-management {
     revision-date 2013-07-15;
   }
 
     revision-date 2013-07-15;
   }
 
-  // import idetifier for O-RU
+  // import identifier for O-RU
   import ietf-hardware {
     prefix "hw";
   }
   import ietf-hardware {
     prefix "hw";
   }
@@ -34,13 +34,21 @@ module o-ran-performance-management {
   }
 
   import o-ran-file-management {
   }
 
   import o-ran-file-management {
-    prefix "o-ran-fm";
+    prefix "o-ran-file-mgmt";
   }
 
   import iana-hardware {
     prefix ianahw;
   }
 
   }
 
   import iana-hardware {
     prefix ianahw;
   }
 
+  import o-ran-uplane-conf {
+    prefix "up";
+  }
+
+  import o-ran-wg4-features {
+     prefix "feat";
+  }
+
   organization "O-RAN Alliance";
 
   contact
   organization "O-RAN Alliance";
 
   contact
@@ -58,7 +66,7 @@ module o-ran-performance-management {
     performance counters in sub-section 7.1 of the CU-plane specification shall
     take precedence.
 
     performance counters in sub-section 7.1 of the CU-plane specification shall
     take precedence.
 
-    Copyright 2020 the O-RAN Alliance.
+    Copyright 2021 the O-RAN Alliance.
 
     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -84,6 +92,49 @@ module o-ran-performance-management {
     contributors may be used to endorse or promote products derived from
     this software without specific prior written permission.";
 
     contributors may be used to endorse or promote products derived from
     this software without specific prior written permission.";
 
+  revision 2022-08-15 {
+    description
+      "version 8.1.0
+
+       1) style guide corrections.
+       2) changed import prefix for o-ran-file-management.";
+
+    reference "ORAN-WG4.M.0-v07.00";
+  }
+
+  revision 2021-12-01 {
+    description
+      "version 8.0.0
+
+       1) typographical corrections in descriptions.
+       2) deprecating leaf-list frequency-table and replacing with frequency-bin-table
+       3) Add support for multiple transport-session-type per O-RU";
+
+    reference "ORAN-WG4.M.0-v07.00";
+  }
+
+  revision 2021-07-26 {
+    description
+      "version 7.0.0
+
+       1) added new EPE measurements - VOLTAGE and CURRENT
+       2) added data-direction to rx-window measurements
+       3) added ability to report multiple measurements in notifications
+       4) added new symbol TD-RSSI measurements
+       5) added FTPES file upload support ";
+
+    reference "ORAN-WG4.M.0-v07.00";
+  }
+
+  revision 2021-03-22 {
+    description
+      "version 5.1.0
+
+       1) typographical corrections in descriptions";
+
+    reference "ORAN-WG4.M.0-v05.00";
+  }
+
   revision 2020-12-10 {
     description
       "version 5.0.0
   revision 2020-12-10 {
     description
       "version 5.0.0
@@ -99,12 +150,12 @@ module o-ran-performance-management {
     description
       "version 3.0.0
 
     description
       "version 3.0.0
 
-      1) updated top level model description concerning optionality of measurements
+      1) updated top-level model description concerning optionality of measurements
       2) added new rx window counters
       3) added new TX stats measurements
       4) added new EPE measurements
       5) fixed typo in enumeration - TX_POPWER
       2) added new rx window counters
       3) added new TX stats measurements
       4) added new EPE measurements
       5) fixed typo in enumeration - TX_POPWER
-      6) introduced config false data indicating which type of measurmeents are supported";
+      6) introduced config false data indicating which type of measurements are supported";
 
     reference "ORAN-WG4.M.0-v03.00";
   }
 
     reference "ORAN-WG4.M.0-v03.00";
   }
@@ -168,6 +219,7 @@ module o-ran-performance-management {
     list epe-measurement-result {
       key "object-unit-id";
       config false;
     list epe-measurement-result {
       key "object-unit-id";
       config false;
+      description "energy power and environmental measurement results";
       leaf object-unit-id {
         type leafref {
           path "/hw:hardware/hw:component/hw:class";
       leaf object-unit-id {
         type leafref {
           path "/hw:hardware/hw:component/hw:class";
@@ -188,14 +240,14 @@ module o-ran-performance-management {
         }
 
         description
         }
 
         description
-          "minimum value for the measurment-object";
+          "minimum value for the measurement-object";
       }
       leaf max {
         type decimal64 {
           fraction-digits 4;
         }
         description
       }
       leaf max {
         type decimal64 {
           fraction-digits 4;
         }
         description
-          "maximum value for the measurment-object";
+          "maximum value for the measurement-object";
       }
       leaf average {
         type decimal64 {
       }
       leaf average {
         type decimal64 {
@@ -235,7 +287,7 @@ module o-ran-performance-management {
           }
 
           description
           }
 
           description
-            "minimum value for the measurment-object";
+            "minimum value for the measurement-object";
         }
         leaf time {
           type yang-types:date-and-time;
         }
         leaf time {
           type yang-types:date-and-time;
@@ -255,7 +307,7 @@ module o-ran-performance-management {
           }
 
           description
           }
 
           description
-            "maximum value for the measurment-object";
+            "maximum value for the measurement-object";
         }
         leaf time {
           type yang-types:date-and-time;
         }
         leaf time {
           type yang-types:date-and-time;
@@ -306,13 +358,27 @@ module o-ran-performance-management {
       }
       leaf-list frequeny-table {
         type uint32;
       }
       leaf-list frequeny-table {
         type uint32;
-
+        status deprecated;
         description
         description
-          "frequency-table for the measurment-object are included per bin.
+          "frequency-table for the measurement-object are included per bin.
+           The configuration parameters for this frequency-table are defined
+           by bin-count, lower-bound and upper-bound";
+      }
+      list frequency-bin-table {
+        key bin-id;
+        leaf bin-id {
+           type uint32;
+           description "Sequence number of the bin";
+        }
+        leaf value {
+           type uint32;
+           description "count corresponding to the bin";
+         }
+        description
+          "frequency-table for the measurement-object are included per bin.
            The configuration parameters for this frequency-table are defined
            by bin-count, lower-bound and upper-bound";
       }
            The configuration parameters for this frequency-table are defined
            by bin-count, lower-bound and upper-bound";
       }
-
       description
         "List of transceiver measurement results";
     }
       description
         "List of transceiver measurement results";
     }
@@ -320,7 +386,7 @@ module o-ran-performance-management {
 
   grouping rx-window-measurement-result-grouping{
     description
 
   grouping rx-window-measurement-result-grouping{
     description
-      "Group of measurement reasults for rx window measurements";
+      "Group of measurement results for rx window measurements";
 
     choice object-unit-id {
       config false;
 
     choice object-unit-id {
       config false;
@@ -357,6 +423,37 @@ module o-ran-performance-management {
                when TRANSPORT is selected as object-unit for the reception
                window stats.";
           }
                when TRANSPORT is selected as object-unit for the reception
                window stats.";
           }
+
+          leaf transport-session-type {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type enumeration {
+              enum ETH-INTERFACE {
+                description "VLAN based CUS Transport ";
+              }
+              enum UDPIP-INTERFACE {
+                description "UDP/IP based CUS Transport ";
+              }
+              enum ALIASMAC-INTERFACE{
+                description "Alias MAC address based CUS Transport ";
+              }
+            }
+            description
+              "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
+               in which case it is used for referencing a processing element in 'transport-qualified-name'";
+          }
+
+          leaf transport-qualified-name {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type leafref {
+              path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
+            }
+            description
+               "the name of ru-elements in o-ran-processing-elements
+               when TRANSPORT is selected as object-unit for the reception
+               window stats. Used when the processing element is configured
+               by the list 'additional-transport-session-type-elements'";
+          }
+
           leaf count {
             type uint64;
             mandatory true;
           leaf count {
             type uint64;
             mandatory true;
@@ -392,6 +489,31 @@ module o-ran-performance-management {
               "the number of data packet are counted for the reception
                window stats.";
           }
               "the number of data packet are counted for the reception
                window stats.";
           }
+          leaf data-direction {
+            type enumeration {
+              enum DL {
+                description
+                  "reported measurement refers to control plane messages with dataDirection bit = 1.";
+              }
+              enum UL {
+                description
+                  "reported measurement refers to control plane messages with dataDirection bit = 0.";
+              }
+              enum DLUL {
+                description
+                  "reported measurement refers to control plane messages irrespective of dataDirection bit setting.";
+              }
+            }
+            description
+              "An optional leaf used when reporting rx window measurement associated with
+              control plane messages. See CUS-Plane Specification for more details of the dataDirection bit.
+
+              When not present and reporting rx window measurement associated with control plane messages,
+              the receiving entity can assume that the reported control plane rx window measurement refers
+              to control plane messages irrespective of dataDirection bit setting.
+
+              Can be ignored when received in rx window measurements not corresponding to control plane messages.";
+          }
           leaf transport-name {
             type leafref{
               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
           leaf transport-name {
             type leafref{
               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
@@ -402,6 +524,36 @@ module o-ran-performance-management {
                transport information corresponding to this eaxc-id";
           }
 
                transport information corresponding to this eaxc-id";
           }
 
+          leaf transport-session-type {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type enumeration {
+              enum ETH-INTERFACE {
+                description "VLAN based CUS Transport ";
+              }
+              enum UDPIP-INTERFACE {
+                description "UDP/IP based CUS Transport ";
+              }
+              enum ALIASMAC-INTERFACE{
+                description "Alias MAC address based CUS Transport ";
+              }
+            }
+            description
+              "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
+               in which case it is used for referencing a processing element in 'transport-qualified-name'";
+          }
+
+          leaf transport-qualified-name {
+          if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type leafref {
+              path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
+            }
+            description
+               "the name of ru-elements in o-ran-processing-elements for the
+               transport information corresponding to this eaxc-id.
+               Used when the processing element is configured
+               by the list 'additional-transport-session-type-elements'";
+          }
+
           description
             "the number of data packet are counted for the reception
              window stats per EAXC-ID.";
           description
             "the number of data packet are counted for the reception
              window stats per EAXC-ID.";
@@ -416,7 +568,7 @@ module o-ran-performance-management {
 
   grouping tx-measurement-result-grouping{
     description
 
   grouping tx-measurement-result-grouping{
     description
-      "Group of measurement reasults for tx stats";
+      "Group of measurement results for tx stats";
 
     choice object-unit-id {
       config false;
 
     choice object-unit-id {
       config false;
@@ -451,6 +603,37 @@ module o-ran-performance-management {
               "the name of ru-elements in o-ran-processing-elements
                when TRANSPORT is selected as object-unit for the tx stats.";
           }
               "the name of ru-elements in o-ran-processing-elements
                when TRANSPORT is selected as object-unit for the tx stats.";
           }
+
+          leaf transport-session-type {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type enumeration {
+              enum ETH-INTERFACE {
+                description "VLAN based CUS Transport ";
+              }
+              enum UDPIP-INTERFACE {
+                description "UDP/IP based CUS Transport ";
+              }
+              enum ALIASMAC-INTERFACE{
+                description "Alias MAC address based CUS Transport ";
+              }
+            }
+            description
+              "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
+               in which case it is used for referencing a processing element in 'transport-qualified-name'";
+          }
+
+          leaf transport-qualified-name {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type leafref {
+              path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
+            }
+            description
+               "the name of ru-elements in o-ran-processing-elements
+               when TRANSPORT is selected as object-unit for the tx stats.
+               Used when the processing element is configured
+               by the list 'additional-transport-session-type-elements'";
+          }
+
           leaf count {
             type uint64;
             mandatory true;
           leaf count {
             type uint64;
             mandatory true;
@@ -492,6 +675,36 @@ module o-ran-performance-management {
                transport information corresponding to this eaxc-id";
           }
 
                transport information corresponding to this eaxc-id";
           }
 
+          leaf transport-session-type {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type enumeration {
+              enum ETH-INTERFACE {
+                description "VLAN based CUS Transport ";
+              }
+              enum UDPIP-INTERFACE {
+                description "UDP/IP based CUS Transport ";
+              }
+              enum ALIASMAC-INTERFACE{
+                description "Alias MAC address based CUS Transport ";
+              }
+            }
+            description
+              "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
+               in which case it is used for referencing a processing element in 'transport-qualified-name'";
+          }
+
+          leaf transport-qualified-name {
+            if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
+            type leafref {
+              path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
+            }
+            description
+               "the name of ru-elements in o-ran-processing-elements for the
+               transport information corresponding to this eaxc-id.
+               Used when the processing element is configured
+               by the list 'additional-transport-session-type-elements'";
+          }
+
           description
             "the number of data packet are counted for the tx stats per EAXC-ID.";
         }
           description
             "the number of data packet are counted for the tx stats per EAXC-ID.";
         }
@@ -503,6 +716,130 @@ module o-ran-performance-management {
     }
   }
 
     }
   }
 
+  grouping symbol-rssi-measurement-result-grouping {
+
+    description
+      "symbol-rssi-measurement-result is the time domain RSSI per symbol,
+      the reference point for the TD-RSSI shall be the antenna connector of the O-RU.
+      The value of Received Signal Strength Indicator(RSSI) per rx-array-carrier per configured OFDM symbol is measured.
+      the RSSI shall be calculated as the linear average of the total received power observed in the configured
+      OFDM symbol in the measurement bandwidth from all sources including co-channel serving and non-serving cells,
+      adjacent channel interference, thermal noise etc., over the total number of antenna elements of the array.
+      The unit of the reported RSSI is dBm.
+      If analogue or hybrid beamforming is enabled, the beamId used for RSSI measurement is:
+        - When there is allocation of a beamId in this symbol, O-RU use that beamId for RSSI measurement;
+        - When there is no allocation of a beamId in this symbol, it is up to O-RU implementation, for example,
+          the O-RU can choose to use a common beamId or use a previous allocated beamId";
+
+    list symbol-rssi-measurement-result {
+      key "object-unit-id";
+      config false;
+      leaf object-unit-id {
+        type leafref {
+          path "/up:user-plane-configuration/up:rx-array-carriers/up:name";
+        }
+
+        description
+          "rx-array-carrier is used for the object-unit-id for the
+           symbol-rssi-measurement-result, for which object-unit is RX-ARRAY-CARRIER only.
+           this measurement is only supported by the rx-array-carriers which are configured with single numerology.
+           an O-RU shall reject any configuration for an object-unit-id that references a mixed numerology array carrier.";
+      }
+
+      list per-symbol-index-result {
+        key "symbol-index";
+        description
+          "the symbol index for the measurement result";
+
+        leaf symbol-index{
+          type uint16;
+
+          description
+            "symbol-index is the symbol indexes within a configured 'period', These symbols include
+               - all UL symbols within a configured number of slots if measurement-object is ALL-UL-SYMBOLS,
+                 and the UL symbols are decided by 'configurable-tdd-pattern', 'static-srs-configuration', 'static-prach-configuration',
+                 and 'dataDirection' in the C-plane messages.
+               - configured symbols by 'symbol-index' within a configured 'period' if measurement-object is CONFIGURED-SYMBOLS,
+                 If a c-plane message indicates a symbol within the 'symbol-index' list to be a DL symbol,
+                 O-RU shall not measure RSSI on this symbol";
+        }
+
+        container min {
+          description
+            "minimum value with recorded time are included for the
+            measurement-object";
+
+          leaf value {
+            type decimal64 {
+              fraction-digits 1;
+            }
+            units dBm;
+            description
+              "minimum value for the TD-RSSI measurement in dBm";
+          }
+        }
+
+        container max {
+          description
+          "maximum value with recorded time are included for the
+           measurement-object";
+
+          leaf value {
+            type decimal64 {
+              fraction-digits 1;
+            }
+            units dBm;
+            description
+              "maximum value for the TD-RSSI measurement in dBm";
+          }
+        }
+
+        container avg {
+          description
+          "average value with recorded time are included for the
+           measurement-object";
+
+          leaf value {
+            type decimal64 {
+              fraction-digits 1;
+            }
+            units dBm;
+            description
+              "the dBm value of the linear average of TD-RSSI [Watt] value across the symbols with same symbol-index
+               if same symbol-index occurs multiple times within a given measurement interval.";
+          }
+        }
+
+        leaf-list frequency-table {
+          type uint32;
+          status deprecated;
+          description
+          "frequency-table for the measurment-object are included per bin.
+           The configuration parameters for this frequency-table are defined
+           by bin-count, lower-bound and upper-bound";
+        }
+
+        list frequency-bin-table {
+          key bin-id;
+          leaf bin-id {
+             type uint32;
+             description "Sequence number of the bin";
+          }
+          leaf value {
+             type uint32;
+             description "count corresponding to the bin";
+           }
+          description
+            "frequency-table for the measurement-object are included per bin.
+             The configuration parameters for this frequency-table are defined
+             by bin-count, lower-bound and upper-bound";
+        }
+      }
+      description
+         "measurement-result for the symbol-wise TD-RSSI depends on the
+          configured object-unit, RX-ARRAY-CARRIER";
+    }
+  }
 
   grouping measurement-group {
     description
 
   grouping measurement-group {
     description
@@ -512,10 +849,24 @@ module o-ran-performance-management {
     leaf enable-SFTP-upload {
       type boolean;
       default false;
     leaf enable-SFTP-upload {
       type boolean;
       default false;
+      status deprecated;
       description
         "Flag to enable upload of performance measurement result files.";
     }
 
       description
         "Flag to enable upload of performance measurement result files.";
     }
 
+    leaf enable-file-upload {
+      type boolean;
+      default false;
+      description
+        "Flag to enable upload of performance measurement result files.
+        A single schema node is used to enable/disable file uploads
+        over either SFTP or FTPES with the format of the upload
+        path being used to signal which protocol to use.
+
+        An O-RU receiving this schema node should ignore the deprecated
+        enable-SFTP-upload schema node, if received.";
+    }
+
     leaf enable-random-file-upload {
       type boolean;
       default false;
     leaf enable-random-file-upload {
       type boolean;
       default false;
@@ -526,18 +877,44 @@ module o-ran-performance-management {
 
     list remote-SFTP-uploads {
       key remote-SFTP-upload-path;
 
     list remote-SFTP-uploads {
       key remote-SFTP-upload-path;
+      status deprecated;
       description
         "SFTP upload can be done to one or more than one SFTP servers";
 
       leaf remote-SFTP-upload-path {
         type inet:uri;
         description
       description
         "SFTP upload can be done to one or more than one SFTP servers";
 
       leaf remote-SFTP-upload-path {
         type inet:uri;
         description
-          "URI specifying the remote location where the files are to uploaded.
+          "URI specifying the remote location where the files are to be uploaded.
           The following format is possible:
           sftp://<username>@<host>[:<port>]/path";
       }
 
           The following format is possible:
           sftp://<username>@<host>[:<port>]/path";
       }
 
-      uses o-ran-fm:credential-information;
+      uses o-ran-file-mgmt:credential-information;
+    }
+
+    list remote-file-uploads {
+      key remote-file-upload-path;
+      description
+        "file upload can be done to one or more than one file servers
+
+        An O-RU receiving this list should ignore the deprecated
+        remote-SFTP-uploads list, if received";
+
+      leaf remote-file-upload-path {
+        type inet:uri;
+        description
+          "URI specifying the remote location where the files are to be uploaded.
+
+          When upload is via SFTP, the format shall be of the form
+          sftp://<username>@<host>[:port]/path
+          When upload is via FTPES, the format shall be of the form
+          ftpes://<username>@<host>[:port]/path
+
+          Note, ftpes is not an IANA registered URI scheme, but used here to signal
+          that a file transfer should be performed over FTPES";
+      }
+
+      uses o-ran-file-mgmt:credential-information;
     }
 
 // transceiver measurements applicable to all O-RAN HW functions
     }
 
 // transceiver measurements applicable to all O-RAN HW functions
@@ -578,6 +955,13 @@ module o-ran-performance-management {
          window measurement objects periodically.";
     }
 
          window measurement objects periodically.";
     }
 
+    leaf symbol-rssi-measurement-interval {
+      type uint16;
+      units seconds;
+      description
+        "measurement interval to measure the symbol-wise TD-RSSI measurement objects periodically.";
+    }
+
     leaf notification-interval {
       type uint16;
       units seconds;
     leaf notification-interval {
       type uint16;
       units seconds;
@@ -862,7 +1246,7 @@ module o-ran-performance-management {
             description
               "the reception window stats are counted per transport flow.
               When there are multiple transport flows between O-DU and O-RU,
             description
               "the reception window stats are counted per transport flow.
               When there are multiple transport flows between O-DU and O-RU,
-               e.g. multiple sets of o-du mac address, ru mac address and
+               e.g. multiple sets of o-du-mac-address, ru-mac-address and
                     vlan-id, the reception window stats per transport flow
                     are counted in this case.
               This configuration is allowed only when O-RU supports
                     vlan-id, the reception window stats per transport flow
                     are counted in this case.
               This configuration is allowed only when O-RU supports
@@ -873,7 +1257,7 @@ module o-ran-performance-management {
 
             description
               "the reception window stats are counted per eAxC ID, which is
 
             description
               "the reception window stats are counted per eAxC ID, which is
-               used in the header of receivd data packet.
+               used in the header of received data packet.
               This configuration is allowed only when O-RU supports
               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
           }
               This configuration is allowed only when O-RU supports
               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
           }
@@ -942,7 +1326,7 @@ module o-ran-performance-management {
             description
               "the transmission stats are counted per transport flow.
               When there are multiple transport flows between O-DU and O-RU,
             description
               "the transmission stats are counted per transport flow.
               When there are multiple transport flows between O-DU and O-RU,
-               e.g. multiple sets of o-du mac address, ru mac address and
+               e.g. multiple sets of o-du-mac-address, ru-mac-address and
                     vlan-id, the transmission stats per transport flow
                     are counted in this case.
               This configuration is allowed only when O-RU supports
                     vlan-id, the transmission stats per transport flow
                     are counted in this case.
               This configuration is allowed only when O-RU supports
@@ -953,7 +1337,7 @@ module o-ran-performance-management {
 
             description
               "the transmission stats are counted per eAxC ID, which is
 
             description
               "the transmission stats are counted per eAxC ID, which is
-               used in the header of receivd data packet.
+               used in the header of received data packet.
               This configuration is allowed only when O-RU supports
               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
           }
               This configuration is allowed only when O-RU supports
               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
           }
@@ -988,12 +1372,20 @@ module o-ran-performance-management {
         type enumeration {
           enum TEMPERATURE {
             description
         type enumeration {
           enum TEMPERATURE {
             description
-              "Measured temperature in degrees celcius";
+              "Measured temperature in degrees Celsius";
           }
           enum POWER  {
             description
               "Measured power consumed, in watts (W)";
           }
           }
           enum POWER  {
             description
               "Measured power consumed, in watts (W)";
           }
+          enum VOLTAGE  {
+            description
+              "Measured voltage, in volts (V)";
+          }
+          enum CURRENT  {
+            description
+              "Measured current consumption, in amperes (A)";
+          }
         }
         description "Target metric to measure the performance";
       }
         }
         description "Target metric to measure the performance";
       }
@@ -1032,36 +1424,177 @@ module o-ran-performance-management {
 
     }
 
 
     }
 
+    list symbol-rssi-measurement-objects {
+      key "measurement-object";
+      description
+        "optional list used to measure and report symbol-wise time domain RSSI for all UL symbols or configured symbols";
+
+      leaf measurement-object {
+        type enumeration {
+          enum ALL-UL-SYMBOLS {
+            description
+              "Measure and report symbol-rssi separately for all UL symbols in every configured number of slots (as defined by 'period' in 'symbol-rssi-measurement-objects'.
+               And the UL symbols are decided by 'configurable-tdd-pattern', 'static-srs-configuration', 'static-prach-configuration',
+               and 'dataDirection' in the C-plane messages.
+               This option is recommended for static TDD case. If this option is used in dynamic TDD case, then O-RU measures
+               only the allocates UL symbols because O-RU may not know 'candidate UL symbols' which are not allocated. ";
+          }
+
+          enum CONFIGURED-SYMBOLS {
+            description
+              "Measure and report symbol-rssi separately for all configured symbols as defined by the leaf-list 'symbol-index',
+              This can be used for non-dynamic TDD as well as dynamic TDD cases,
+              the O-RU should measure all configured symbols, irrespective of whether the UL symbol is allocated or not,
+              If a c-plane message indicates a symbol within this 'symbol-index' list to be a DL symbol,
+              O-RU shall not measure RSSI on this symbol.";
+          }
+        }
+        description "Target metric to measure the symbol-rssi";
+      }
+
+      leaf object-unit {
+        type enumeration {
+          enum RX-ARRAY-CARRIER {
+            description
+              "unit to measure the performance per object-id,
+               only the rx-array-carriers which are not configured with mixed numerology will be measured";
+          }
+        }
+        mandatory true;
+        description "unit to measure the performance per object-id.";
+      }
+
+      list per-rx-array-carrier-configuration {
+        key "rx-array-carrier";
+        description
+          "measurement configuration per rx-array-carrier to accommodate different Subcarrier Spacing
+           and TDD pattern per rx-array-carrier, and only the symbol-wise TD-RSSI of the rx-array-carriers
+           included in per-rx-array-carrier-configuration will be measured and reported";
+
+        leaf rx-array-carrier {
+          type leafref {
+            path "/up:user-plane-configuration/up:rx-array-carriers/up:name";
+          }
+          description "reference to the name of rx-array-carriers";
+        }
+
+        leaf period  {
+          type uint16;
+
+          description
+            "the number of slots that correspond to the period of a TDD-Configuration,
+             and the start point of the 1st period is subframe#0, slot#0 of the 1st even number radio frame after this configuration is received,
+             here even number radio frame is used because according to 3GPP TS 38.213, A UE expects that P1 + P2 divides 20 msec";
+        }
+
+        leaf-list symbol-index  {
+          type uint16;
+
+          description
+            "the index of the symbols within 'period'. The first symbol within the 'period is symbol-index=0, next symbol is symbol-index =1 etc.
+             This symbol-index is different from how symbolId is defined in CUS plane spec.
+             These symbols are configured for O-RU to measure and report symbol-wise rssi,
+             used only when 'measurement-object' = 'CONFIGURED-SYMBOLS'.
+             If a c-plane message indicates a symbol within this 'symbol-index' list to be a DL symbol,
+             O-RU shall not measure rssi on this symbol";
+        }
+
+        leaf active {
+          type boolean;
+          default false;
+          description
+            "Enable/disable the symbol-rssi measurement per Object";
+        }
+
+        leaf-list report-info {
+          type enumeration {
+            enum MAXIMUM {
+              description
+                "to report maximum value and its recorded time within the
+                 measurement-interval for the measurement-object.";
+            }
+            enum MINIMUM {
+              description
+                "to report minimum value and its recorded time within the
+                 measurement-interval for the measurement-object.";
+            }
+            enum AVERAGE {
+              description
+                "to report average value within the
+                 measurement-interval for the measurement-object.";
+            }
+            enum FREQUENCY_TABLE {
+              description
+                "to report frequency bin table within the
+                 measurement-interval for the measurement-object.";
+            }
+          }
+          description "The reporting info to the measurement object.";
+        }
+
+        leaf bin-count {
+          type uint16;
+
+          description
+            "the number of bin for the frequency table.
+             This value shall be less than max-bin-count";
+        }
+
+        leaf lower-bound {
+          type int16;
+          units dBm;
+          description
+            "the lower value of the first bin of frequency table.";
+        }
+
+        leaf upper-bound {
+          type int16;
+          units dBm;
+          description
+            "the upper value of the last bin of frequency table.";
+        }
+      }
+
+      uses symbol-rssi-measurement-result-grouping;
+      // configuration and measurement result for the symbol-rssi-measurement
+    }
 
   }
 
   grouping measurement-capabilities {
 
   }
 
   grouping measurement-capabilities {
+    description "a measurement capabilities grouping";
     container measurement-capabilitites {
       config false;
       description "the type of measurement objects supported by the O-RU";
 
       list transceiver-objects {
         key measurement-object;
     container measurement-capabilitites {
       config false;
       description "the type of measurement objects supported by the O-RU";
 
       list transceiver-objects {
         key measurement-object;
+        description "list of transceiver objects";
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
           }
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
           }
+          description "a measurement object";
         }
       }
       list rx-window-objects {
         key measurement-object;
         }
       }
       list rx-window-objects {
         key measurement-object;
+        description "list of rx window objects";
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
           }
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
           }
+          description "a measurement object";
         }
       }
       list tx-stats-objects {
         key measurement-object;
         }
       }
       list tx-stats-objects {
         key measurement-object;
+        description "list of tx stats objects";
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
           }
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
           }
+          description "a measurement object";
         }
       }
       list epe-stats-objects {
         }
       }
       list epe-stats-objects {
@@ -1073,6 +1606,7 @@ module o-ran-performance-management {
           type leafref {
             path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
           }
           type leafref {
             path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
           }
+          description "a measurement object";
         }
         leaf-list component-class {
           type identityref {
         }
         leaf-list component-class {
           type identityref {
@@ -1084,6 +1618,17 @@ module o-ran-performance-management {
 
         }
       }
 
         }
       }
+
+      list symbol-rssi-stats-objects {
+        key measurement-object;
+        description "list of symbol-wise TD-RSSI stats objects";
+        leaf measurement-object {
+          type leafref {
+            path "/performance-measurement-objects/symbol-rssi-measurement-objects/measurement-object";
+          }
+          description "a measurement object";
+        }
+      }
     }
   }
 
     }
   }
 
@@ -1108,6 +1653,26 @@ module o-ran-performance-management {
 
       uses start-and-end-time;
       uses transceiver-measurement-result-grouping;
 
       uses start-and-end-time;
       uses transceiver-measurement-result-grouping;
+
+      list multiple-transceiver-measurement-result {
+        config false;
+        description
+          "Multiple measurement results of transceiver-measurement.
+
+          The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
+
+          In addition, the O-RU shall always use the
+
+          measurement-result-stats/transceiver-stats[measurement-object]/transceiver-measurement-result
+
+          schema-node to report a single transceiver measurement-object. The O-RU should report its latest
+          transceiver measurements available. This ensures O-DUs supporting earlier versions
+          of this specification can recover the measurement.";
+
+        uses start-and-end-time;
+        uses transceiver-measurement-result-grouping;
+      }
+
     }
 
     list rx-window-stats {
     }
 
     list rx-window-stats {
@@ -1127,6 +1692,27 @@ module o-ran-performance-management {
       uses start-and-end-time;
       uses rx-window-measurement-result-grouping;
 
       uses start-and-end-time;
       uses rx-window-measurement-result-grouping;
 
+      list multiple-rx-window-measurement-result {
+        config false;
+        description
+          "Multiple measurement results of rx-window-measurement.
+
+          The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
+
+          In addition, the O-RU shall always use one of the
+
+          measurement-result-stats/rx-window-stats[measurement-object]/count or
+          measurement-result-stats/rx-window-stats[measurement-object]/tr-measured-result/count or
+          measurement-result-stats/rx-window-stats[measurement-object]/eaxc-measured-result/count
+
+          schema-nodes to report a single rx-window measurement-object. The O-RU should report its latest
+          rx-window measurement available. This ensures O-DUs supporting earlier versions
+          of this specification can recover the measurement.";
+
+        uses start-and-end-time;
+        uses rx-window-measurement-result-grouping;
+      }
+
     }
 
     list tx-stats {
     }
 
     list tx-stats {
@@ -1146,13 +1732,34 @@ module o-ran-performance-management {
       uses start-and-end-time;
       uses tx-measurement-result-grouping;
 
       uses start-and-end-time;
       uses tx-measurement-result-grouping;
 
+      list multiple-tx-measurement-result {
+        config false;
+        description
+          "Multiple measurement results of tx-measurement.
+
+          The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
+
+          In addition, the O-RU shall always use one of the
+
+          measurement-result-stats/tx-stats[measurement-object]/count or
+          measurement-result-stats/tx-stats[measurement-object]/tr-measured-result/count or
+          measurement-result-stats/tx-stats[measurement-object]/eaxc-measured-result/count
+
+          schema-nodes to report a single tx-measurement. The O-RU should report its latest
+          tx-measurement available. This ensures O-DUs supporting earlier versions
+          of this specification can recover the measurement.";
+
+        uses start-and-end-time;
+        uses tx-measurement-result-grouping;
+      }
+
     }
 
     container epe-stats {
     }
 
     container epe-stats {
+      status deprecated;
       description
       description
-        "container for the epe stats measurement - deprecated because measurement object
+        "container for the EPE stats measurement - deprecated because measurement object
         isn't included";
         isn't included";
-      status deprecated;
 
       uses start-and-end-time;
       uses epe-measurement-result-grouping;
 
       uses start-and-end-time;
       uses epe-measurement-result-grouping;
@@ -1164,7 +1771,7 @@ module o-ran-performance-management {
       key "measurement-object";
 
       description
       key "measurement-object";
 
       description
-        "measurement result for the epe stats measurement per
+        "measurement result for the EPE stats measurement per
          measurement-object";
       leaf measurement-object {
         type leafref {
          measurement-object";
       leaf measurement-object {
         type leafref {
@@ -1172,12 +1779,68 @@ module o-ran-performance-management {
         }
 
         description
         }
 
         description
-          "measurement-object for the epe stats measurement";
+          "measurement-object for the EPE stats measurement";
       }
       uses start-and-end-time;
       uses epe-measurement-result-grouping;
 
       }
       uses start-and-end-time;
       uses epe-measurement-result-grouping;
 
+      list multiple-epe-measurement-result {
+        config false;
+        description
+          "Multiple measurement results of epe-measurement.
+
+          The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
+
+          In addition, the O-RU shall always use the
+
+          measurement-result-stats/epe-statistics[measurement-object]/epe-measurement-result/
+
+          schema-nodes to report a single epe-measurement for a measurement-object. The O-RU
+          should report its latest epe-measurement available. This ensures O-DUs supporting earlier
+          versions of this specification can recover the measurement.";
+
+        uses start-and-end-time;
+        uses epe-measurement-result-grouping;
+      }
+
+    }
+
+    list symbol-rssi-stats {
+      key "measurement-object";
+
+      description
+        "measurement result of symbol-rssi-measurement per measurement-object";
+      leaf measurement-object {
+        type leafref {
+          path "/performance-measurement-objects/symbol-rssi-measurement-objects/measurement-object";
+        }
+
+        description
+          "measurement-object for the symbol-rssi-measurement";
+      }
+
+      uses start-and-end-time;
+      uses symbol-rssi-measurement-result-grouping;
+
+      list multiple-symbol-rssi-measurement-result {
+        config false;
+        description
+          "Multiple measurement results of symbol-rssi-measurement.
+
+          The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
+
+          In addition, the O-RU shall always use one of the
+
+          measurement-result-stats/symbol-rssi-stats[measurement-object]/
+
+          schema-nodes to report a single symbol-rssi measurement for a measurement-object.
+          The O-RU should report its latest symbol-rssi measurement available.";
+
+         uses start-and-end-time;
+         uses symbol-rssi-measurement-result-grouping;
+      }
     }
     }
+
   }
 
   // Top level container
   }
 
   // Top level container