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;
   }
 
-  // import idetifier for O-RU
+  // import identifier for O-RU
   import ietf-hardware {
     prefix "hw";
   }
@@ -34,13 +34,21 @@ module o-ran-performance-management {
   }
 
   import o-ran-file-management {
-    prefix "o-ran-fm";
+    prefix "o-ran-file-mgmt";
   }
 
   import iana-hardware {
     prefix ianahw;
   }
 
+  import o-ran-uplane-conf {
+    prefix "up";
+  }
+
+  import o-ran-wg4-features {
+     prefix "feat";
+  }
+
   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.
 
-    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
@@ -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.";
 
+  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
@@ -99,12 +150,12 @@ module o-ran-performance-management {
     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
-      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";
   }
@@ -168,6 +219,7 @@ module o-ran-performance-management {
     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";
@@ -188,14 +240,14 @@ module o-ran-performance-management {
         }
 
         description
-          "minimum value for the measurment-object";
+          "minimum value for the measurement-object";
       }
       leaf max {
         type decimal64 {
           fraction-digits 4;
         }
         description
-          "maximum value for the measurment-object";
+          "maximum value for the measurement-object";
       }
       leaf average {
         type decimal64 {
@@ -235,7 +287,7 @@ module o-ran-performance-management {
           }
 
           description
-            "minimum value for the measurment-object";
+            "minimum value for the measurement-object";
         }
         leaf time {
           type yang-types:date-and-time;
@@ -255,7 +307,7 @@ module o-ran-performance-management {
           }
 
           description
-            "maximum value for the measurment-object";
+            "maximum value for the measurement-object";
         }
         leaf time {
           type yang-types:date-and-time;
@@ -306,13 +358,27 @@ module o-ran-performance-management {
       }
       leaf-list frequeny-table {
         type uint32;
-
+        status deprecated;
         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";
       }
-
       description
         "List of transceiver measurement results";
     }
@@ -320,7 +386,7 @@ module o-ran-performance-management {
 
   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;
@@ -357,6 +423,37 @@ module o-ran-performance-management {
                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;
@@ -392,6 +489,31 @@ module o-ran-performance-management {
               "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";
@@ -402,6 +524,36 @@ module o-ran-performance-management {
                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.";
@@ -416,7 +568,7 @@ module o-ran-performance-management {
 
   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;
@@ -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.";
           }
+
+          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;
@@ -492,6 +675,36 @@ module o-ran-performance-management {
                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.";
         }
@@ -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
@@ -512,10 +849,24 @@ module o-ran-performance-management {
     leaf enable-SFTP-upload {
       type boolean;
       default false;
+      status deprecated;
       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;
@@ -526,18 +877,44 @@ module o-ran-performance-management {
 
     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
-          "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";
       }
 
-      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
@@ -578,6 +955,13 @@ module o-ran-performance-management {
          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;
@@ -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,
-               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
@@ -873,7 +1257,7 @@ module o-ran-performance-management {
 
             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.";
           }
@@ -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,
-               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
@@ -953,7 +1337,7 @@ module o-ran-performance-management {
 
             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.";
           }
@@ -988,12 +1372,20 @@ module o-ran-performance-management {
         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 VOLTAGE  {
+            description
+              "Measured voltage, in volts (V)";
+          }
+          enum CURRENT  {
+            description
+              "Measured current consumption, in amperes (A)";
+          }
         }
         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 {
+    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;
+        description "list of transceiver objects";
         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;
+        description "list of rx window objects";
         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;
+        description "list of tx stats objects";
         leaf measurement-object {
           type leafref {
             path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
           }
+          description "a measurement object";
         }
       }
       list epe-stats-objects {
@@ -1073,6 +1606,7 @@ module o-ran-performance-management {
           type leafref {
             path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
           }
+          description "a measurement object";
         }
         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;
+
+      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 {
@@ -1127,6 +1692,27 @@ module o-ran-performance-management {
       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 {
@@ -1146,13 +1732,34 @@ module o-ran-performance-management {
       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 {
+      status deprecated;
       description
-        "container for the epe stats measurement - deprecated because measurement object
+        "container for the EPE stats measurement - deprecated because measurement object
         isn't included";
-      status deprecated;
 
       uses start-and-end-time;
       uses epe-measurement-result-grouping;
@@ -1164,7 +1771,7 @@ module o-ran-performance-management {
       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 {
@@ -1172,12 +1779,68 @@ module o-ran-performance-management {
         }
 
         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;
 
+      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