Bug fix.
[sim/o1-interface.git] / ntsimulator / yang / o-ran / ru-fh / o-ran-beamforming.yang
index b733430..0d3c376 100644 (file)
@@ -50,22 +50,18 @@ module o-ran-beamforming {
     contributors may be used to endorse or promote products derived from
     this software without specific prior written permission.";
 
-  revision "2019-06-19" {
+  revision "2019-07-03" {
     description
-      "version 1.1.1
+      "version 2.0.0
 
-      1) adding possibilities to provide more compression types for beamforming";
+      1) re-designed/switched from per band to per capabilities-group for
+      addition flexibility
+      2) added in new beam tilt feature
+      3) adding possibilities to provide more compression types for beamforming
+      4) Adding possibility to configure beamforming per capabilities group
+      5) corrected xPATH boolean check from TRUE to true";
 
-    reference "ORAN-WG4.M.0-v01.00";
-  }
-
-  revision "2019-04-01" {
-    description
-      "version 1.1.0
-
-      1) corrested xPATH boolean check from TRUE to true";
-
-    reference "ORAN-WG4.M.0-v01.00";
+    reference "ORAN-WG4.M.0-v02.00";
   }
 
   revision "2019-02-04" {
@@ -85,6 +81,15 @@ module o-ran-beamforming {
       modify beamforming configuration information";
   }
 
+  feature BEAM-TILT {
+    description
+      "This feature indicates that the O-RU supports an optional feature to
+      allows to shift beam characteristic of all predefined-beams in elevation
+      and/or azimuth direction (i.e. changing the service area or sector
+      coverage) while preserving the beam adjacency among the beams within
+      the service area ";
+  }
+
   typedef beam-reference {
     type leafref {
       path "/o-ran-bf:beamforming-config/o-ran-bf:per-band-config/o-ran-bf:beam-information/o-ran-bf:beamforming-properties/o-ran-bf:beam-id";
@@ -318,6 +323,21 @@ module o-ran-beamforming {
     }
   }
 
+  grouping cap-group {
+    description
+      "Capabilities group grouping";
+
+    leaf capabilities-group {
+      type leafref {
+        path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
+      }
+      mandatory true;
+      description
+        "Capabilities group identification number to which it refers.";
+    }
+
+  }
+
   grouping per-band-config-element {
     description
       "Grouping for per band config element";
@@ -395,6 +415,7 @@ module o-ran-beamforming {
 
     leaf beamforming-trough-attributes-supported {
       type boolean;
+      config false;
       description
         "Informs if beamforming can be controlled providing attributes to O-RU
           (like angles, beamwidth).";
@@ -402,6 +423,7 @@ module o-ran-beamforming {
 
     leaf beamforming-trough-ue-channel-info-supported {
       type boolean;
+      config false;
       description
         "Informs if beamforming can be controlled by UE information.";
     }
@@ -413,8 +435,26 @@ module o-ran-beamforming {
 
     list per-band-config {
       key band-number;
+      config false;
+      // [ast] libyang does not accept referencing deprecated leafs from non-deprecated elements
+      // status deprecated;
       description "beamforming information per band";
+      uses per-band-config-element;
+    }
+
+    list capabilities-groups {
+      key capabilities-group;
+      description
+        "Capabilities groups identification number assigned to be referenced by operations
+         and notifications.
+         This also help to group particular beamforming capabilities and bind it with arrays";
 
+      leaf capabilities-group {
+        type uint16;
+        description
+          "Capabilities group identification number. Number which is used just for reference in RPC
+           and notification";
+      }
       uses per-band-config-element;
     }
 
@@ -435,12 +475,231 @@ module o-ran-beamforming {
     }
     container operational-properties {
       if-feature MODIFY-BF-CONFIG;
+      config false;
       description "properties for dynamic beam weight/attribute support";
 
       uses operational-properties;
     }
   }
 
+  grouping beam-tilt-configuration {
+    description "grouping for beam-tilt feature";
+    list predefined-beam-tilt-offset {
+      if-feature BEAM-TILT;
+      key capabilities-group;
+      description "Configuration of the predefined-beam-tilt-offset per capabilities-group";
+      leaf capabilities-group {
+        type leafref {
+          path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
+          require-instance false;
+        }
+        mandatory true;
+        description
+          "Capabilities group identification number for which
+          the predefined-beam-tilt-offset relates to";
+      }
+      leaf elevation-tilt-offset-angle {
+        type int16 {
+          range "-90..90";
+        }
+        units degrees;
+        default 0;
+        description
+          "Value 0 represents the default service area of the predefined-beams
+          in elevation domain, i.e. no tilt offset.
+
+          Values smaller than 0 represents an up-shift of the default service area
+          towards the zenith (i.e., corresponding to a decrease in zenith angle) and
+          values larger than 0 represent a down-shift of the default service area
+          away from the zenith (i.e., corresponding to an increase in zenith angle).
+
+          If the value is greater than the maximum supported angle, then the maximum
+          angle is used for configuration.
+          If the value is less than the minimum supported angle, then the minimum
+          angle is used for configuration.
+          The actual angle used is (angle DIV granularity) * granularity.
+
+          Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
+          its offset angle to its default value.";
+      }
+      leaf azimuth-tilt-offset-angle {
+        type int16 {
+          range "-90..90";
+        }
+        units degrees;
+        default 0;
+        description
+          "Value 0 represents the default service area of the predefined-beams
+          in azimuth domain, i.e., no tile offset.
+
+          Azimuth tilt offset angle, represents counter-clockwise rotation around
+          z-axis. I.e., assuming view from the UE (observation of the O-RU
+          from the front), value larger than 0 and smaller than 0
+          respectively represent right-shifted and left-shifted of the default
+          service area in azimuth domain.
+
+          If the value is greater than the maximum supported angle, then the maximum
+          angle is used for configuration.
+          If the value is less than the minimum supported angle, then the minimum
+          angle is used for configuration.
+          The actual angle used is (angle DIV granularity) * granularity.
+
+          Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
+          its offset angle to its default value.";
+      }
+    }
+  }
+
+  grouping beam-tilt-state {
+    description
+      "Grouping for beam tilt state";
+
+    list predefined-beam-tilt-offset-information {
+      key capabilities-group;
+      config false;
+      description
+        "Information which exposes predefined-beam-tilt-offset related O-RU capabilities.";
+      leaf capabilities-group {
+        type leafref {
+          path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
+        }
+        mandatory true;
+        description
+          "Capabilities group identification number for which
+          the predefined-beam-tilt-offset-information relates to";
+      }
+      leaf elevation-tilt-offset-granularity {
+        type uint8 {
+          range "0..30";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "Indication of the supported granularity for the
+          predefined-beam-tilt-offset in elevation domain.
+
+          Value 0 represents that the O-RU doesn't support
+          the predefined-beam-tilt-offset in elevation domain.";
+      }
+      leaf azimuth-tilt-offset-granularity {
+        type uint8 {
+          range "0..30";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "Indication of the supported granularity for the
+          predefined-beam-tilt-offset in azimuth domain.
+
+          Value '0' represents that the O-RU doesn't support
+          the predefined-beam-tilt-offset in azimuth domain.";
+      }
+      leaf minimum-supported-elevation-tilt-offset {
+        type int16 {
+          range "-90..0";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "The minimum value which can be configured for
+          'elevation-tilt-offset-angle'.";
+      }
+      leaf maximum-supported-elevation-tilt-offset {
+        type int16 {
+          range "0..90";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "The maximum value which can be configured for
+          'elevation-tilt-offset-angle'.";
+      }
+      leaf minimum-supported-azimuth-tilt-offset {
+        type int16 {
+          range "-90..0";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "The minimum value which can be configured for
+          'azimuth-tilt-offset-angle'.";
+      }
+      leaf maximum-supported-azimuth-tilt-offset {
+        type int16 {
+          range "0..90";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "The maximum value which can be configured for
+          'azimuth-tilt-offset-angle'.";
+      }
+      leaf run-time-tilt-offset-supported {
+        type boolean;
+        mandatory true;
+        description
+          "If 'run-time-tilt-offset-supported' is FALSE, changing the values in
+          'predefined-beam-tilt-offset' for a specific band shall be allowed only
+          if all 'tx-array-carriers' and 'rx-array-carriers' corresponding
+          to the band are INACTIVE.";
+      }
+    }
+
+  }
+
+  grouping beam-tilt-report {
+    description
+      "Grouping for beam tilt report";
+
+    list predefined-beam-tilt-state {
+      key capabilities-group;
+      config false;
+      description
+        "Information which exposes state of predefined-beam-tilt-offset.";
+      leaf capabilities-group {
+        type leafref {
+          path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
+        }
+        mandatory true;
+        description
+          "Capabilities group identification number for which
+          the predefined-beam-tilt-state relates to";
+      }
+      leaf elevation-tilt-offset-angle {
+        type int16 {
+          range "-90..90";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "Value 'zero' represents the default service area of the
+          predefined-beams in elevation domain.
+
+          Values smaller than 0 represents an up-shift of the default service area
+          towards the zenith (i.e., corresponding to a decrease in zenith angle) and
+          values larger than 0 represent a down-shift of the default service area
+          away from the zenith (i.e., corresponding to an increase in zenith angle).";
+      }
+      leaf azimuth-tilt-offset-angle {
+        type int16 {
+          range "-90..90";
+        }
+        units Degrees;
+        mandatory true;
+        description
+          "Value 'zero' represents the default service area of the
+          predefined-beams in azimuth domain.
+
+          Azimuth tilt offset angle, represents counter-clockwise rotation around
+          z-axis. I.e., assuming view from the UE (observation of the O-RU from
+          the front), value larger than 'zero' and smaller than 'zero'
+          respectively represent right-shifted and left-shifted of the default
+          service area in azimuth domain.";
+      }
+    }
+
+  }
+
   container beamforming-config {
     config false;
     description
@@ -448,6 +707,12 @@ module o-ran-beamforming {
 
     uses beamforming-config;
     uses beamforming-supported-type;
+    container beam-tilt {
+      if-feature BEAM-TILT;
+      description "container for pre-defined beam tilt feature";
+      uses beam-tilt-state;
+      uses beam-tilt-report;
+    }
   }
 
 
@@ -492,6 +757,81 @@ module o-ran-beamforming {
     }
   }
 
+  rpc activate-beamforming-config-by-capability-group {
+    if-feature MODIFY-BF-CONFIG;
+    description
+      "rpc to activate beamforming config information by indicating the file
+      stored in the folder O-RAN/beam-weights in advance";
+    input {
+      leaf beamforming-config-file {
+        type string;
+        mandatory true;
+        description
+          "file name stored in O-RAN/beamforming/ folder is indicated";
+      }
+
+      uses cap-group;
+    }
+    output {
+      leaf status {
+        type enumeration {
+          enum ACCEPTED {
+            description "O-RU has accepted the beamforming weight/attribute file";
+          }
+          enum REJECTED {
+            description
+              "O-RU has rejected the beamforming weight/attribute file. The O-RU
+              should then use the default beamforming file.";
+          }
+        }
+        mandatory true;
+        description "Status of activation of beamforming config information";
+      }
+      leaf error-message {
+        when "../status='REJECTED'";
+        type string;
+        description
+          "Detailed error Message when the status is rejected, e.g.,
+           because new beam forming file is attempted to be applied to a
+           carrier which is still active, or the beam-id does not exist.";
+      }
+    }
+  }
+
+
+  rpc modify-predefined-beam-tilt-offset {
+    if-feature BEAM-TILT;
+    description
+      "rpc to trigger the modification of the predefined beam tilt offset";
+    input {
+      uses beam-tilt-configuration;
+    }
+    output {
+      leaf status {
+        type enumeration {
+          enum ACCEPTED {
+            description "O-RU has accepted the predefind beamtilt offset configuration";
+          }
+          enum REJECTED {
+            description
+              "O-RU has rejected the predefind beamtilt offset configuration.";
+          }
+        }
+        mandatory true;
+        description "Status of acceptance of pre-defined beamtilt offset configuration";
+      }
+      leaf error-message {
+        when "../status='REJECTED'";
+        type string;
+        description
+          "Detailed error message when the pre-defined beam tilt configuration
+          is rejected, e.g., used when 'run-time-tilt-offset-supported' is FALSE and the
+          NETCONF client is attempting to modify the beam tilt on a band where
+          one or more array-carriers are still ACTIVE.";
+      }
+    }
+  }
+
 
   //notification statement
   notification beamforming-information-update {
@@ -499,4 +839,19 @@ module o-ran-beamforming {
     description
       "this notification indicates that the beamforming properties are updated for particular band";
   }
+
+  notification capability-group-beamforming-information-update {
+    uses cap-group;
+    description
+      "this notification indicates that the beamforming properties are updated for particular band
+       or capability group";
+  }
+
+  notification predefined-beam-tilt-offset-complete {
+    if-feature BEAM-TILT;
+    uses beam-tilt-report;
+    description
+      "this notification indicates that the re-generation of the predefined
+      beams is completed";
+  }
 }