Add CM parameters as required by O-DU 22/6922/2
authordemx8as6 <martin.skorupski@highstreet-technologies.com>
Sat, 23 Oct 2021 15:38:24 +0000 (17:38 +0200)
committerMartin Skorupski <martin.skorupski@highstreet-technologies.com>
Mon, 1 Nov 2021 12:15:29 +0000 (12:15 +0000)
- all 'depricated' to 'obsolete'
- the previous network-fucntion-grp conflicts with new requirements
  -> deprecated
- add new yang features, types, groupings.

IssueID: OAM-230
Change-Id: Ifcdd04d7608791af796499ac5d769d2386e74613
Signed-off-by: demx8as6 <martin.skorupski@highstreet-technologies.com>
data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-hello-world.yang

index 29365eb..c71f927 100644 (file)
@@ -38,6 +38,12 @@ module o-ran-sc-du-hello-world {
      See the License for the specific language governing permissions and
      limitations under the License.";
 
+  revision 2021-10-02 {
+    description
+      "Updates based on the RSAC use case descriptions of O-RAN-SC E-Release.";
+    reference
+      "https://jira.o-ran-sc.org/browse/OAM-230";
+  }
   revision 2021-10-01 {
     description
       "Updates based on the RSAC use case descriptions of O-RAN-SC E-Release.";
@@ -58,7 +64,79 @@ module o-ran-sc-du-hello-world {
       "https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=20878423";
   }
 
-  // TypeDefinitions
+  // Features
+
+  feature distributed-unit {
+    description
+      "This feature indicates that the network-function implements
+       an O-RAN distributed function.";
+    reference
+      "O-RAN.WG1.O-RAN-Architecture-Description-v04.00 - 4.3.5 O-DU";
+  }
+
+  // Type definitions
+
+  typedef administrative-state {
+    type enumeration {
+      enum locked {
+        value 0;
+        description
+          "The resource is administratively prohibited from performing
+           services for its users.";
+      }
+      enum unlocked {
+        value 1;
+        description
+          "The resource is administratively permitted to perform
+           services for its users. This is independent of its inherent
+           operability.";
+      }
+      enum shutting-down {
+        value 2;
+        description
+          "Use of the resource is administratively permitted to
+           existing instances of use only. While the system remains in
+           the shutting down state the manager or the managed element
+           may at any time cause the resource to transition to the
+           locked state.";
+      }
+    }
+    description
+      "The administration of managed objects operates independently of the
+       operability and usage of managed objects and is described by the
+       administrative state attribute, which has three values. These are values
+       are called locked, unlocked and shutting down.";
+    reference
+      "3GPP TS 28.625 and ITU-T X.731 / ISO/IEC 10164-2";
+  }
+
+  typedef cell-state {
+    type enumeration {
+      enum idle {
+        description
+          "The cell resources are not in use.";
+      }
+      enum inactive {
+        description
+          "The cell resources shall not serve UEs.";
+        reference
+          "3GPP TS 38.401";
+      }
+      enum active {
+        description
+          "The cell resources shall be able to serve UEs.";
+        reference
+          "3GPP TS 38.401";
+      }
+    }
+    description
+      "The cell state indicates the usage state of the cell instance.
+       It describes whether the cell is not currently in use (idle),
+       or currently in use but not configured to carry traffic (inactive)
+       or is currently in use and is configured to carry traffic (active).";
+    reference
+      "3GPP TS 28.541";
+  }
 
   typedef connection-status {
     type enumeration {
@@ -94,6 +172,46 @@ module o-ran-sc-du-hello-world {
       "A non extensible enumeration representing a connection status.";
   }
 
+  typedef distinguished-name {
+    type string {
+      pattern '([a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])'
+            + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,])*'
+            + '(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?'
+            + '[,\+])*[a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])'
+            + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})'
+            + '|[^\\><;"+,])*(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?';
+    }
+    description
+      "The type definition for distinguished names according to RFC 4512.";
+    reference
+      "RFC 4512 Lightweight Directory Access Protocol (LDAP):
+                Directory Information Models
+       https://datatracker.ietf.org/doc/html/rfc4512#section-2.3.2";
+  }
+
+  typedef mobile-country-code-type {
+    type string {
+      pattern '^[02-79][0-9][0-9]$';
+    }
+    description
+      "The mobile country code consists of three decimal digits,
+       The first digit of the mobile country code identifies the geographic
+       region (the digits 1 and 8 are not used):";
+    reference
+      "3GPP TS 23.003 subclause 2.2 and 12.1";
+  }
+
+  typedef mobile-network-code-type {
+    type string {
+      pattern '^[0-9]{2,3}$';
+    }
+    description
+      "The mobile network code consists of two or three
+       decimal digits (for example: MNC of 001 is not the same as MNC of 01)";
+    reference
+      "3GPP TS 23.003 subclause 2.2 and 12.1";
+  }
+
   typedef o-ru-reference {
     type leafref {
       path "/network-function/du-to-ru-connection/name";
@@ -102,9 +220,281 @@ module o-ran-sc-du-hello-world {
       "A reference to a remote network function representing an O-RU.";
   }
 
+  typedef operational-state {
+    type enumeration {
+      enum disabled {
+        value 0;
+        description
+          "The resource is totally inoperable.";
+        reference
+          "CCITT Rec. X.731 (1992 E) - ISO/IEC 10164-2 : 1993 (E)
+           Chapter 7.1.1.2 Disable";
+      }
+      enum enabled {
+        value 1;
+        description
+          "The resource is partially or fully operable.";
+        reference
+          "CCITT Rec. X.731 (1992 E) - ISO/IEC 10164-2 : 1993 (E)
+           Chapter 7.1.1.1 Enable";
+      }
+    }
+    description
+      "The operability of a resource is described by the operational state
+       attribute, which has two possible values: disabled and enabled.";
+    reference
+      "3GPP TS 28.625 and ITU-T X.731 / ISO/IEC 10164-2";
+  }
+
+  typedef resource-type {
+    type enumeration {
+      enum prb {
+        description
+          "Physical Resource Block (PRB)
+           for a cell of a distributed unit
+           for both downlink and uplink.";
+      }
+      enum prb-ul {
+        description
+          "Physical Resource Block (PRB) uplink
+           for a cell of a distributed unit.";
+      }
+      enum prb-dl {
+        description
+          "Physical Resource Block (PRB) downlink
+           for a cell of a distributed unit.";
+      }
+      enum rrc {
+        description
+          "Radio Resource Control (RRC)
+           for a cell of a centralized unit.";
+      }
+      enum drb {
+        description
+          "Data radio bearer (DRB)
+           for a user plane function of a centralized unit.";
+      }
+    }
+    description
+      "A type describing the resource for radio-resource-management.";
+    reference
+      "3GPP TS 28.541 V17.34.0 (2021-0609)";
+  }
+
+  typedef tracking-area-code-type {
+    type uint32 {
+      range "0..16777215";
+    }
+    description
+      "The type definition for a Tracking Area Code.";
+    reference
+      "3GPP TS 23.003 clause 19.4.2.3";
+  }
+
   // Abstract object classes - groupings
 
+  grouping cell-grp {
+    description
+      "Represents the cell object class.";
+    reference
+      "3GPP TS 28.541
+       https://forge.3gpp.org/rep/sa5/MnS/blob/Rel17-draft/yang-models/_3gpp-nr-nrm-cell.yang
+       line 40";
+    leaf local-id {
+      type uint16 {
+        range "0..16383";
+      }
+      mandatory true;
+      description
+        "Identifies a cell within a o-ran-sc-du-function. Together with the
+         corresponding o-ran-sc-du-function identifier in forms the cell
+         identity.";
+      reference
+        "NCI in 3GPP TS 38.300";
+    }
+    leaf traffic-state {
+      type cell-state;
+      config false;
+      description
+        "Indicates whether the corresponding entity
+         - is not currently in use (idle), or
+         - currently in use but not configured to carry traffic (inactive), or
+         - currently in use and is configured to carry traffic (active).";
+    }
+    list public-land-mobile-networks {
+      key "mobile-country-code mobile-network-code slice-differentiator slice-service-type";
+      min-elements 1;
+      ordered-by user;
+      description
+        "The public-land-mobile-networks is a list of
+         public-land-mobile-network data type.
+         It defines which public-land-mobile-networks that can be served by
+         the cell, and which S-NSSAIs that can be supported by the cell for
+         corresponding public-land-mobile-network in case of network slicing
+         feature is supported. The public-land-mobile-network-id of the
+         first entry of the list is the public-land-mobile-network-id used to
+         construct the cell-global-identity.
+         If the public-land-mobile-network is associated with
+         a radio-resource-management-policy-ratio, then the settings of the
+         radio-resource-management-policy-ratio MUST be considered by
+         the distributed function implementation for this cell. ";
+      uses public-land-mobile-network;
+    }
+    leaf physical-cell-id {
+      type uint16 {
+        range "0..1007";
+      }
+      mandatory true;
+      description
+        "The Physical Cell Identity (PCI) of the cell.";
+      reference
+        "3GPP TS 36.211";
+    }
+    leaf tracking-area-code {
+      type tracking-area-code-type;
+      description
+        "The common 5GS Tracking Area Code for the public-land-mobile-networks.";
+      reference
+        "3GPP TS 23.003, 3GPP TS 38.473";
+    }
+    container absolute-radio-frequency-channel-number {
+      description
+        "This container groups parameters related to
+         absolute radio frequency channel number (ARFCN).";
+      leaf downlink {
+        type int32;
+        mandatory true;
+        description
+          "Absolute Radio Frequency Channel Number (ARFCN) for
+           downlink.";
+        reference
+          "3GPP TS 38.104";
+      }
+      leaf uplink {
+        type int32;
+        description
+          "Absolute Radio Frequency Channel Number (ARFCN) for
+           uplink.";
+        reference
+          "3GPP TS 38.104";
+      }
+      leaf supplementary-uplink {
+        type int32;
+        description
+          "Absolute Radio Frequency Channel Number (ARFCN) for
+           supplementary uplink.";
+        reference
+          "3GPP TS 38.104";
+      }
+    }
+    container base-station-channel-bandwidth {
+      description
+        "This container groups parameters related to
+         base station channel bandwidth.";
+      leaf downlink {
+        type uint32;
+        units "MHz";
+        description
+          "Base station channel bandwidth for downlink.";
+        reference
+          "3GPP TS 38.104";
+      }
+      leaf uplink {
+        type uint32;
+        units "MHz";
+        description
+          "Base station channel bandwidth for uplink.";
+        reference
+          "3GPP TS 38.104";
+      }
+      leaf supplementary-uplink {
+        type uint32;
+        units "MHz";
+        description
+          "Base station channel bandwidth for supplementary uplink.";
+        reference
+          "3GPP TS 38.104";
+      }
+    }
+    container synchronization-signal-block {
+      description
+        "This container groups parameters related to Synchronization Signal
+         Block (SSB).";
+      leaf frequency-channel-number {
+        type uint32 {
+          range "0..3279165";
+        }
+        mandatory true;
+        description
+          "Indicates cell defining Synchronization Signal Block (SSB) frequency
+           domain position.
+           Frequency (in terms of NR-ARFCN) of the cell defining SSB
+           transmission.
+           The frequency identifies the position of resource element RE=#0
+           (subcarrier #0) of resource block RB#10 of the SSB. The frequency
+           must be positioned on the global frequency raster, as defined in
+           3GPP TS 38.101-1, and within base station channel bandwidth down
+           link.";
+        reference
+          "3GPP TS 38.101-1";
+      }
+      leaf periodicity {
+        type uint8 {
+          range "5 | 10 | 20 | 40 | 80 | 160";
+        }
+        units "ms";
+        mandatory true;
+        description
+          "Indicates cell defined Synchronization Signal Block (SSB)
+           periodicity. The SSB periodicity is used for the rate matching
+           purpose.";
+      }
+      leaf subcarrier-spacing {
+        type uint8 {
+          range "15 | 30 | 120 | 240";
+        }
+        units "kHz";
+        mandatory true;
+        description
+          "Subcarrier spacing of Synchronization Signal Block (SSB).
+           Only the values 15 kHz or 30 kHz
+           (< 6 GHz), 120 kHz or 240 kHz (> 6 GHz) are applicable.";
+        reference
+          "3GPP TS 38.211";
+      }
+      leaf offset {
+        type uint8 {
+          range "0..159";
+        }
+        units "ms";
+        mandatory true;
+        description
+          "Indicates cell defining Synchronization Signal Block (SSB) time
+           domain position. Defined as the offset of the measurement window,
+           in which to receive Synchronization Signal/Physical Broadcast Channel
+           (SS/PBCH) blocks, where allowed values depend on the
+           Synchronization Signal Block periodicity.
+           Rule:
+             synchronization-signal-block-offset is lower than
+             synchronization-signal-block-periodicity).";
+      }
+      leaf duration {
+        type uint8 {
+          range "1..5";
+        }
+        units "ms";
+        mandatory true;
+        description
+          "Duration of the measurement window in which to receive
+           Synchronization Signal/Physical Broadcast Channel (SS/PBCH) blocks.";
+        reference
+          "3GPP TS 38.213";
+      }
+    }
+  }
+
   grouping connection-grp {
+    status deprecated;
     description
       "An abstract object class representing a connection or link to an
        external component.";
@@ -193,7 +583,63 @@ module o-ran-sc-du-hello-world {
     }
   }
 
+  grouping distributed-unit-function {
+    description
+      "A simplified and reduced object class for a DU function.";
+    uses top-grp;
+    // uses mf3gpp:ManagedFunctionContainedClasses;
+    list cell {
+      key "id";
+      description
+        "Represents the cell and its configuration management.";
+      reference
+        "3GPP TS 28.541
+         https://forge.3gpp.org/rep/sa5/MnS/blob/Rel17-draft/yang-models/_3gpp-nr-nrm-cell.yang
+         line 215";
+      uses top-grp;
+      uses cell-grp;
+    }
+    list radio-resource-management-policy-ratio {
+      key "id";
+      description
+        "The radio-resource-management-policy-ratio object class is one
+         realization of a radio-resource-management-policy object class.
+         This Radio Resource Management framework allows
+         adding new policies by inheriting from the
+         abstract radio-resource-management-policy object class.";
+      uses top-grp;
+      uses radio-resource-management-policy-ratio-grp;
+    }
+  }
+
+  grouping network-function {
+    description
+      "Represents telecommunications equipment or
+       TMN entities within the telecommunications network providing support
+       and/or service to the subscriber.";
+    leaf distinguished-name-prefix {
+      type distinguished-name;
+      description
+        "Provides naming context that allows the Managed
+         Elements to be partitioned into logical domains.
+         A Distinguished Name(DN) is defined by 3GPP TS 32.300,
+         which splits the DN into a DN Prefix and Local DN";
+    }
+    leaf location-name {
+      type string {
+        length "0..1023";
+      }
+      config false;
+      description
+        "The physical location (e.g. an address) of an entity
+         represented by a (derivative of) ManagedElement_. It may contain no
+         information to support the case where the derivative of
+         ManagedElement needs to represent a distributed multi-location NE.";
+    }
+  }
+
   grouping network-function-grp {
+    status deprecated;
     description
       "An abstract object class grouping the O-RAN-SC-DU parameters with
        focus on RSAC D-release Closed-Loop use case.";
@@ -201,7 +647,140 @@ module o-ran-sc-du-hello-world {
       key "name";
       description
         "A list of connection objects to O-RAN-SC radio units.";
-      uses connection-grp;
+      uses connection-grp {
+        status deprecated;
+      }
+    }
+  }
+
+  grouping public-land-mobile-network-id {
+    description
+      "The identity of a public land mobile network as complex type
+       constructed of two codes:
+       - mobile country code (MCC) and
+       - the mobile network code (MNC).";
+    reference
+      "3GPP TS 23.658
+       3GPP TS 32.101
+       3GPP TR 21.905";
+    leaf mobile-country-code {
+      type mobile-country-code-type;
+      mandatory true;
+      description
+        "The fist part of the public-land-mobile-network-id";
+    }
+    leaf mobile-network-code {
+      type mobile-network-code-type;
+      mandatory true;
+      description
+        "The second part of the public-land-mobile-network-id";
+    }
+  }
+
+  grouping public-land-mobile-network {
+    description
+      "The public-land-mobile-network data type define a S-NSSAI member
+       in a specific public-land-mobile-network-id, and it have two attributes
+       public-land-mobile-network-id and S-NSSAI (public-land-mobile-network-id,
+       S-NSSAI).
+       The public-land-mobile-network-id represents a data type that is
+       comprised of mcc mobile country code) and mnc (mobile network code),
+       (See TS 23.003 subclause 2.2 and 12.1) and S-NSSAI represents an
+       data type, that is comprised of an slice-service-type
+       (Slice/Service type) and an optional slice-differentiator field.";
+    uses public-land-mobile-network-id;
+    uses single-network-slice-selection-assistance-info;
+  }
+
+  grouping radio-resource-management-policy-grp {
+    description
+      "This object class represents the properties of an abstract
+       radio-resource-management-policy. The radio-resource-management-policy
+       object class needs to be subclassed to be instantiated.
+       It defines two attributes apart from those inherited from
+       Top object class:
+       - the resource-type attribute defines type of resource (PRB, RRC
+       connected users, DRB usage etc.) and
+       - the radio-resource-management-policy-members attribute
+       defines the radio-resource-management-policy-members that are subject
+       to this policy.
+       An Radio Resource Management resource (defined in resource-type
+       attribute) is located in cell or distributed-unit-function.
+       The radio-resource-management-policy-ratio object class is one
+       realization of a radio-resource-management-policy object class.
+       This Radio Resource Management framework allows adding new
+       policies by inheriting from the abstract radio-resource-management-policy
+       object class.";
+    leaf resource-type {
+      type resource-type;
+      mandatory true;
+      description
+        "The resource-type attribute defines type of resource that is
+         subject to policy.";
+    }
+    list radio-resource-management-policy-members {
+      key "mobile-country-code mobile-network-code slice-differentiator slice-service-type";
+      min-elements 1;
+      description
+        "It represents the list of radio-resource-management-policy-members
+         that the managed object is supporting.
+         A radio-resource-management-policy-member <<dataType>> include
+         the public-land-mobile-network-identifier <<dataType>> and
+         S-NSSAI <<dataType>>.";
+      uses public-land-mobile-network;
+    }
+  }
+
+  grouping radio-resource-management-policy-ratio-grp {
+    description
+      "Represents the radio-resource-management-policy-ratio concrete
+       object class.";
+    uses radio-resource-management-policy-grp;
+    leaf radio-resource-management-policy-max-ratio {
+      type uint8 {
+        range "0..100";
+      }
+      units "%";
+      default "100";
+      description
+        "This attribute specifies the maximum percentage of radio resources that
+         can be used by the associated
+         radio-resource-management-policy-members.
+         The maximum percentage of radio resource include at least one of
+         the shared resources, prioritized resources and dedicated resources.
+         The sum of the radio-resource-management-policy-max-ratio values
+         assigned to all radio-resource-management-policy-ratio(s)
+         name-contained by same ManagedEntity can be greater that 100.";
+    }
+    leaf radio-resource-management-policy-min-ratio {
+      type uint8 {
+        range "0..100";
+      }
+      units "percent";
+      default "0";
+      description
+        "This attribute specifies the minimum percentage of radio resources that
+         can be used by the associated
+         radio-resource-management-policy-members.
+         The minimum percentage of radio resources including at least one of
+         prioritized resources and dedicated resources. The sum of the
+         radio-resource-management-policy-min-ratio values assigned to all
+         radio-resource-management-policy-ratios
+         name-contained by same ManagedEntity shall be less or equal 100.";
+    }
+    leaf radio-resource-management-policy-dedicated-ratio {
+      type uint8 {
+        range "0..100";
+      }
+      units "percent";
+      default "0";
+      description
+        "This attribute specifies the percentage of radio resources that
+         dedicated used by the associated
+         radio-resource-management-policy-members.
+         The sum of the radio-resource-management-policy-dedicated-ratio values
+         assigned to all radio-resource-management-policy-ratios
+         name-contained by same ManagedEntity shall be less or equal 100.";
     }
   }
 
@@ -243,19 +822,101 @@ module o-ran-sc-du-hello-world {
     }
   }
 
+  grouping single-network-slice-selection-assistance-info {
+    description
+      "Single Network Slice Selection Assistance Information (S-NSSAI)";
+    reference
+      "3GPP TS 23.003";
+    leaf slice-differentiator {
+      type uint32 {
+        range "0..16777215";
+      }
+      description
+        "Slice Differentiator can be used to identify and tag a slice.
+         If not needed, the value can be set to the value 16777215.";
+      reference
+        "3GPP TS 23.003";
+    }
+    leaf slice-service-type {
+      type uint8;
+      description
+        "Slice/Service Type as defined in 3GPP TS 23.501.";
+      reference
+        "3GPP TS 23.501";
+    }
+  }
+
+  grouping top-grp {
+    description
+      "Ane abstract class supplying a naming attribute.";
+    reference
+      "3GPP TS 28.620";
+    leaf id {
+      type string;
+      mandatory true;
+      description
+        "Key leaf (namingAttribute) for a class/list.
+         Should be used as a key leaf for lists representing
+         stage 2 classes.";
+      reference
+        "3GPP TS 32.300 Name convention for managed objects";
+    }
+    leaf administrative-state {
+      type administrative-state;
+      default "locked";
+      description
+        "Administrative state of an object. Indicates the
+         permission to use or prohibition against the object, imposed
+         through the OAM services.";
+    }
+    leaf operational-state {
+      type operational-state;
+      config false;
+      mandatory true;
+      description
+        "Operational state of the object. Indicates
+         whether the associated resource is installed and partially or fully
+         operable (enabled) or the associated resource is not installed or
+         not operable (disabled).";
+    }
+    leaf user-label {
+      type string {
+        length "0..255";
+      }
+      description
+        "A user defined label of the object. There is no function associated to
+         the user label.
+         However, the network function stores the value persistently.";
+    }
+  }
   // Data nodes
 
   container network-function {
+    presence "network-function";
     description
       "The root container for the configuration and operational data.
-       The object implements the 'network-function-grp'";
-    uses network-function-grp;
+       The object class would be called by 3GPP 'ManagedElement' and by
+       ONF 'ControlConstruct'.";
+    uses top-grp;
+    uses network-function;
+    list distributed-unit-functions {
+      if-feature "distributed-unit";
+      key "id";
+      description
+        "Represents the logical function distributed unit.";
+      reference
+        "3GPP TS 28.541";
+      uses distributed-unit-function;
+    }
+    uses network-function-grp {
+      status deprecated;
+    }
   }
 
   // Remote procedure calls - actions on root level
 
   rpc connect {
-    status deprecated;
+    status obsolete;
     description
       "An action to establish the connection to a remote network function.";
     input {
@@ -273,7 +934,7 @@ module o-ran-sc-du-hello-world {
   }
 
   rpc disconnect {
-    status deprecated;
+    status obsolete;
     description
       "An action to destroy the connection to a remote network function.";
     input {