From 94bf6cb9d8a780b38b860acab89d32e50ce16391 Mon Sep 17 00:00:00 2001 From: Sandeep Shah Date: Sat, 15 Aug 2020 20:21:18 -0500 Subject: RAN Slice YANG Model and Associated Feature code This includes YANG models to be used for RAN Slice use case/POC in Gulian, and associated ranSlice Karaf feature code. Issue-ID: CCSDK-2661 SIgned-off-by: SandeepLinux Change-Id: I75ab8860c67bd25b7fdbcb5da734d705bfdce1b6 --- sdnr/northbound/ranSlice/model/pom.xml | 48 + .../src/main/yang/ran-network@2020-08-06.yang | 1880 ++++++++++++++++++++ .../src/main/yang/ran-slice-api@2020-08-06.yang | 466 +++++ 3 files changed, 2394 insertions(+) create mode 100644 sdnr/northbound/ranSlice/model/pom.xml create mode 100644 sdnr/northbound/ranSlice/model/src/main/yang/ran-network@2020-08-06.yang create mode 100644 sdnr/northbound/ranSlice/model/src/main/yang/ran-slice-api@2020-08-06.yang (limited to 'sdnr/northbound/ranSlice/model') diff --git a/sdnr/northbound/ranSlice/model/pom.xml b/sdnr/northbound/ranSlice/model/pom.xml new file mode 100644 index 000000000..84d3b5020 --- /dev/null +++ b/sdnr/northbound/ranSlice/model/pom.xml @@ -0,0 +1,48 @@ + + + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 2.0.1-SNAPSHOT + + + + org.onap.ccsdk.features.sdnr.northbound + ranSlice-model + 1.0.1-SNAPSHOT + bundle + + ccsdk-features :: sdnr-northbound :: ${project.artifactId} + + + + org.opendaylight.mdsal.binding.model.ietf + rfc6991 + + + + + diff --git a/sdnr/northbound/ranSlice/model/src/main/yang/ran-network@2020-08-06.yang b/sdnr/northbound/ranSlice/model/src/main/yang/ran-network@2020-08-06.yang new file mode 100644 index 000000000..f45bd7cbe --- /dev/null +++ b/sdnr/northbound/ranSlice/model/src/main/yang/ran-network@2020-08-06.yang @@ -0,0 +1,1880 @@ +module ran-network { + yang-version 1.1; + namespace "org:onap:ccsdk:features:sdnr:northbound:ran-network"; + prefix rn; + + import ietf-inet-types { + prefix inet; + } + import ietf-yang-types { + prefix yang; + } + + organization + "Open Network Automation Platform - ONAP + "; + contact + "Editors: + Sandeep Shah + + + Swaminathan Seetharaman + "; + description + "This module contains a collection of YANG definitions for managing + radio access network (RAN) managed network functions. + This YANG model is used solely for POC's in the ONAP and O-RAN communities + + Copyright 2020 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-08-06 { + description + "RAN Network YANG Model for ONAP/O-RAN POC"; + reference + "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin"; + } + + typedef usageState { + type enumeration { + enum IDLE { + description + "TODO"; + } + enum ACTIVE { + description + "TODO"; + } + enum BUSY { + description + "TODO"; + } + } + description + "It describes whether or not the resource is actively in + use at a specific instant, and if so, whether or not it has spare + capacity for additional users at that instant. The value is READ-ONLY."; + reference + "ITU T Recommendation X.731"; + } + + typedef Mcc { + type string; + 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 Mnc { + type string; + 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 Nci { + type string; + description + "NR Cell Identity. The NCI shall be of fixed length of 36 bits + and shall be coded using full hexadecimal representation. + The exact coding of the NCI is the responsibility of each PLMN operator"; + reference + "TS 23.003"; + } + + typedef OperationalState { + type enumeration { + enum DISABLED { + value 0; + description + "The resource is totally inoperable."; + } + enum ENABLED { + value 1; + description + "The resource is partially or fully operable."; + } + } + description + "TODO"; + reference + "3GPP TS 28.625 and ITU-T X.731"; + } + + typedef AdministrativeState { + 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 SHUTTINGDOWN { + 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 + "TODO"; + reference + "3GPP TS 28.625 and ITU-T X.731"; + } + + typedef AvailabilityStatus { + type enumeration { + enum IN_TEST { + description + "TODO"; + } + enum FAILED { + description + "TODO"; + } + enum POWER_OFF { + description + "TODO"; + } + enum OFF_LINE { + description + "TODO"; + } + enum OFF_DUTY { + description + "TODO"; + } + enum DEPENDENCY { + description + "TODO"; + } + enum DEGRADED { + description + "TODO"; + } + enum NOT_INSTALLED { + description + "TODO"; + } + enum LOG_FULL { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef CellState { + type enumeration { + enum IDLE { + description + "TODO"; + } + enum INACTIVE { + description + "TODO"; + } + enum ACTIVE { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef SNssai { + type uint32; + description + "Single Network Slice Selection Assistance Information."; + reference + "TS 23.501 clause 5.15.2"; + } + + typedef Sst { + type uint8; + description + "TODO"; + reference + "TODO"; + } + + typedef Nrpci { + type uint32; + description + "Physical Cell Identity (PCI) of the NR cell."; + reference + "TS 36.211 subclause 6.11"; + } + + typedef Tac { + type int32 { + range "0..16777215"; + } + description + "Tracking Area Code"; + reference + "TS 23.003 clause 19.4.2.3"; + } + + typedef AmfRegionId { + type string; + description + ""; + reference + "clause 2.10.1 of 3GPP TS 23.003"; + } + + typedef AmfSetId { + type string; + description + ""; + reference + "clause 2.10.1 of 3GPP TS 23.003"; + } + + typedef AmfPointer { + type string; + description + ""; + reference + "clause 2.10.1 of 3GPP TS 23.003"; + } + + // type definitions especially for core NFs + + typedef NfType { + type enumeration { + enum NRF { + description + "TODO"; + } + enum UDM { + description + "TODO"; + } + enum AMF { + description + "TODO"; + } + enum SMF { + description + "TODO"; + } + enum AUSF { + description + "TODO"; + } + enum NEF { + description + "TODO"; + } + enum PCF { + description + "TODO"; + } + enum SMSF { + description + "TODO"; + } + enum NSSF { + description + "TODO"; + } + enum UDR { + description + "TODO"; + } + enum LMF { + description + "TODO"; + } + enum GMLC { + description + "TODO"; + } + enum 5G_EIR { + description + "TODO"; + } + enum SEPP { + description + "TODO"; + } + enum UPF { + description + "TODO"; + } + enum N3IWF { + description + "TODO"; + } + enum AF { + description + "TODO"; + } + enum UDSF { + description + "TODO"; + } + enum BSF { + description + "TODO"; + } + enum CHF { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef NotificationType { + type enumeration { + enum N1_MESSAGES { + description + "TODO"; + } + enum N2_INFORMATION { + description + "TODO"; + } + enum LOCATION_NOTIFICATION { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef Load { + type uint8 { + range "0..100"; + } + description + "Latest known load information of the NF, percentage "; + } + + typedef N1MessageClass { + type enumeration { + enum 5GMM { + description + "TODO"; + } + enum SM { + description + "TODO"; + } + enum LPP { + description + "TODO"; + } + enum SMS { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef N2InformationClass { + type enumeration { + enum SM { + description + "TODO"; + } + enum NRPPA { + description + "TODO"; + } + enum PWS { + description + "TODO"; + } + enum PWS_BCAL { + description + "TODO"; + } + enum PWS_RF { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef NsiId { + type string; + description + "TODO"; + } + + typedef UeMobilityLevel { + type enumeration { + enum STATIONARY { + description + "TODO"; + } + enum NOMADIC { + description + "TODO"; + } + enum RESTRICTED_MOBILITY { + description + "TODO"; + } + enum FULLY_MOBILITY { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef ResourceSharingLevel { + type enumeration { + enum SHARED { + description + "TODO"; + } + enum NOT_SHARED { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef TxDirection { + type enumeration { + enum DL { + description + "TODO"; + } + enum UL { + description + "TODO"; + } + enum DL_AND_UL { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ? + type string; + description + "Represents the international standard for the representation + of Distinguished Name (RFC 4512). + The format of the DistinguishedName REGEX is: + {AttributeType = AttributeValue} + + AttributeType consists of alphanumeric and hyphen (OIDs not allowed). + All other characters are restricted. + The Attribute value cannot contain control characters or the + following characters : \\ > < ; \" + , (Comma) and White space + The Attribute value can contain the following characters if they + are excaped : \\ > < ; \" + , (Comma) and White space + The Attribute value can contain control characters if its an escaped + double digit hex number. + Examples could be + UID=nobody@example.com,DC=example,DC=com + CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US"; + reference + "RFC 4512 Lightweight Directory Access Protocol (LDAP): + Directory Information Models"; + } // recheck regexp it doesn't handle posix [:cntrl:] + + typedef QOffsetRange { + type int8; + units "dB"; + description + "TODO"; + reference + "TODO"; + } + + typedef QuotaType { + type enumeration { + enum STRICT { + description + "TODO"; + } + enum FLOAT { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef CyclicPrefix { + type enumeration { + enum NORMAL { + description + "TODO"; + } + enum EXTENDED { + description + "TODO"; + } + } + description + "TODO"; + } + + grouping PLMNInfo { + description + "The PLMNInfo data type define a S-NSSAI member in a specific PLMNId, and it have + two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI). The PLMNId 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 SST + (Slice/Service type) and an optional SD (Slice Differentiator) field, (See TS 23.003 [13])."; + uses PLMNId; + leaf sNssai { + type SNssai; + description + "TODO"; + } + } + + grouping ManagedNFProfile { + description + "Defines profile for managed NF"; + reference + "3GPP TS 23.501"; + leaf idx { + type uint32; + description + "TODO"; + reference + "3GPP TS 23.501"; + } + leaf nfInstanceID { + type yang:uuid; + config false; + mandatory true; + description + "This parameter defines profile for managed NF. + The format of the NF Instance ID shall be a + Universally Unique Identifier (UUID) version 4, + as described in IETF RFC 4122 "; + } + leaf-list nfType { + type NfType; + config false; + min-elements 1; + description + "Type of the Network Function"; + } + leaf hostAddr { + type inet:host; + mandatory true; + description + "Host address of a NF"; + } + leaf authzInfo { + type string; + description + "This parameter defines NF Specific Service authorization + information. It shall include the NF type (s) and NF realms/origins + allowed to consume NF Service(s) of NF Service Producer."; + reference + "See TS 23.501"; + } + leaf location { + type string; + description + "Information about the location of the NF instance + (e.g. geographic location, data center) defined by operator"; + reference + "TS 29.510"; + } + leaf capacity { + type uint16; + mandatory true; + description + "This parameter defines static capacity information + in the range of 0-65535, expressed as a weight relative to other + NF instances of the same type; if capacity is also present in the + nfServiceList parameters, those will have precedence over this value."; + reference + "TS 29.510"; + } + leaf nFSrvGroupId { + type string; + description + "This parameter defines identity of the group that is + served by the NF instance. + May be config false or true depending on the ManagedFunction. + Config=true for Udrinfo. Config=false for UdmInfo and AusfInfo. + Shall be present if ../nfType = UDM or AUSF or UDR. "; + reference + "TS 29.510"; + } + leaf-list supportedDataSetIds { + type enumeration { + enum SUBSCRIPTION { + description + "TODO"; + } + enum POLICY { + description + "TODO"; + } + enum EXPOSURE { + description + "TODO"; + } + enum APPLICATION { + description + "TODO"; + } + } + description + "List of supported data sets in the UDR instance. + May be present if ../nfType = UDR"; + reference + "TS 29.510"; + } + leaf-list smfServingAreas { + type string; + description + "Defines the SMF service area(s) the UPF can serve. + Shall be present if ../nfType = UPF"; + reference + "TS 29.510"; + } + leaf priority { + type uint16; + description + "This parameter defines Priority (relative to other NFs + of the same type) in the range of 0-65535, to be used for NF selection; + lower values indicate a higher priority. If priority is also present + in the nfServiceList parameters, those will have precedence over + this value. Shall be present if ../nfType = AMF "; + reference + "TS 29.510"; + } + } + + grouping SAP { + description + "Service access point."; + reference + "TS 28.622"; + leaf host { + type inet:host; + mandatory true; + description + "TODO"; + } + leaf port { + type inet:port-number; + mandatory true; + description + "TODO"; + } + } + + grouping PLMNId { + description + "TODO"; + reference + "TS 23.658"; + leaf mcc { + type Mcc; + mandatory true; + description + "TODO"; + } + leaf mnc { + type Mnc; + mandatory true; + description + "TODO"; + } + } + + grouping AmfIdentifier { + description + "The AMFI is constructed from an AMF Region ID, + an AMF Set ID and an AMF Pointer. + The AMF Region ID identifies the region, + the AMF Set ID uniquely identifies the AMF Set within the AMF Region, and + the AMF Pointer uniquely identifies the AMF within the AMF Set. "; + leaf amfRegionId { + type AmfRegionId; + description + "TODO"; + } + leaf amfSetId { + type AmfSetId; + description + "TODO"; + } + leaf amfPointer { + type AmfPointer; + description + "TODO"; + } + } + + grouping DefaultNotificationSubscription { + description + "TODO"; + leaf notificationType { + type NotificationType; + description + "TODO"; + } + leaf callbackUri { + type inet:uri; + description + "TODO"; + } + leaf n1MessageClass { + type N1MessageClass; + description + "TODO"; + } + leaf n2InformationClass { + type N2InformationClass; + description + "TODO"; + } + } + + grouping Ipv4AddressRange { + description + "TODO"; + leaf start { + type inet:ipv4-address; + description + "TODO"; + } + leaf end { + type inet:ipv4-address; + description + "TODO"; + } + } + + grouping Ipv6PrefixRange { + description + "TODO"; + leaf start { + type inet:ipv6-prefix; + description + "TODO"; + } + leaf end { + type inet:ipv6-prefix; + description + "TODO"; + } + } + + grouping AddressWithVlan { + description + "TODO"; + leaf ipAddress { + type inet:ip-address; + description + "TODO"; + } + leaf vlanId { + type uint16; + description + "TODO"; + } + } + + grouping ManagedElementGroup { + description + "Abstract class representing telecommunications resources."; + leaf dnPrefix { + type DistinguishedName; + description + "Provides naming context and splits the DN into a DN Prefix and Local DN"; + } + leaf userLabel { + type string; + description + "A user-friendly name of this object."; + } + leaf locationName { + type string; + config false; + description + "The physical location (e.g. an address) of an entity"; + } + leaf-list managedBy { + type DistinguishedName; + config false; + description + "Relates to the role played by ManagementSystem"; + } + leaf-list managedElementTypeList { + type string; + config false; + min-elements 1; + description + "The type of functionality provided by the ManagedElement. + It may represent one ME functionality or a combination of + Two examples of allowed values are: + - NodeB; + - HLR, VLR."; + } + } // Managed Element grouping + + grouping NearRTRICGroup { + description + "Abstract class representing Near RT RIC."; + leaf near-rt-ric-url { + type inet:uri; + description + "URL for the near RT RIC. String representing IP addr:port"; + } + leaf dnPrefix { + type DistinguishedName; + description + "Provides naming context and splits the DN into a DN Prefix and Local DN"; + } + leaf userLabel { + type string; + description + "A user-friendly name of this object."; + } + leaf locationName { + type string; + config false; + description + "The physical location (e.g. an address) of an entity"; + } + leaf-list managedBy { + type DistinguishedName; + config false; + description + "Relates to the role played by ManagementSystem"; + } + } // Near RT RIC grouping + + grouping GNBDUFunctionGroup { + description + "Represents the GNBDUFunction IOC."; + reference + "3GPP TS 28.541"; + leaf gNBId { + type int64 { + range "0..4294967295"; + } + config false; + mandatory true; + description + "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) + is part of the NR Cell Identifier (NCI) of the gNB cells."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBIdLength { + type int32 { + range "22..32"; + } + mandatory true; + description + "Indicates the number of bits for encoding the gNB ID."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBDUId { + type int64 { + range "0..68719476735"; + } + mandatory true; + description + "Uniquely identifies the DU at least within a gNB."; + reference + "3GPP TS 38.473"; + } + leaf gNBDUName { + type string { + length "1..150"; + } + description + "Identifies the Distributed Unit of an NR node"; + reference + "3GPP TS 38.473"; + } + leaf aggressorSetID { + type uint32 { + range "0..4194304"; + } + config false; + description + "Indicates the associated aggressor gNB Set ID of the cell + Valid when Remote Interference Management function is supported."; + reference + "3GPP TS 38.211 subclause 7.4.1.6"; + } + leaf victimSetID { + type uint32 { + range "0..4194304"; + } + config false; + description + "Indicates the associated victim gNB Set ID of the cell + Valid when Remote Interference Management function is supported."; + reference + "3GPP TS 38.211 subclause 7.4.1.6"; + } + } + + grouping NRCellDUGroup { + description + "Represents the NRCellDU IOC."; + reference + "3GPP TS 28.541"; + uses RRMPolicy_Group; + leaf cellLocalId { + type int32 { + range "0..16383"; + } + mandatory true; + description + "Identifies an NR cell of a gNB. Together with the + corresponding gNB identifier in forms the NR Cell Identity (NCI)."; + reference + "NCI in 3GPP TS 38.300"; + } + leaf operationalState { + type OperationalState; + config false; + description + "Operational state of the NRCellDU instance. Indicates + whether the resource is installed and partially or fully operable + (ENABLED) or the resource is not installed or not operable + (DISABLED)."; + } + leaf administrativeState { + type AdministrativeState; + default "LOCKED"; + description + "Administrative state of the NRCellDU. Indicates the + permission to use or prohibition against using the cell, imposed + through the OAM services."; + } + leaf cellState { + type CellState; + config false; + description + "Cell state of the NRCellDU instance. Indicates whether the + cell 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 pLMNInfoList { + key "mcc mnc"; + min-elements 1; + description + "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that + can be served by the NR cell, and which S-NSSAIs that can be supported by the NR cell for + corresponding PLMN in case of network slicing feature is supported. The plMNId of the first + entry of the list is the PLMNId used to construct the nCGI for the NR cell."; + uses PLMNInfo; + } + leaf nRPCI { + type int32 { + range "0..1007"; + } + mandatory true; + description + "The Physical Cell Identity (PCI) of the NR cell."; + reference + "3GPP TS 36.211"; + } + leaf nRTAC { + type Tac; + description + "The common 5GS Tracking Area Code for the PLMNs."; + reference + "3GPP TS 23.003, 3GPP TS 38.473"; + } + leaf arfcnDL { + type int32; + mandatory true; + description + "NR Absolute Radio Frequency Channel Number (NR-ARFCN) for + downlink."; + reference + "3GPP TS 38.104"; + } + leaf arfcnUL { + type int32; + description + "NR Absolute Radio Frequency Channel Number (NR-ARFCN) for + uplink."; + reference + "3GPP TS 38.104"; + } + leaf arfcnSUL { + type int32; + description + "NR Absolute Radio Frequency Channel Number (NR-ARFCN) for + supplementary uplink."; + reference + "3GPP TS 38.104"; + } + leaf bSChannelBwDL { + type int32; + units "MHz"; + description + "Base station channel bandwidth for downlink."; + reference + "3GPP TS 38.104"; + } + leaf bSChannelBwUL { + type int32; + units "MHz"; + description + "Base station channel bandwidth for uplink."; + reference + "3GPP TS 38.104"; + } + leaf bSChannelBwSUL { + type int32; + units "MHz"; + description + "Base station channel bandwidth for supplementary uplink."; + reference + "3GPP TS 38.104"; + } + leaf ssbFrequency { + type int32 { + range "0..3279165"; + } + mandatory true; + description + "Indicates cell defining 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 SS block. The frequency + must be positioned on the NR global frequency raster, as defined in + 3GPP TS 38.101, and within bSChannelBwDL."; + } + leaf ssbPeriodicity { + type int32 { + range "5 | 10 | 20 | 40 | 80 | 160"; + } + units "subframes (ms)"; + mandatory true; + description + "Indicates cell defined SSB periodicity. The SSB periodicity + is used for the rate matching purpose."; + } + leaf ssbSubCarrierSpacing { + type int32 { + range "15 | 30 | 120 | 240"; + } + units "kHz"; + mandatory true; + description + "Subcarrier spacing of 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 ssbOffset { + type int32 { + range "0..159"; + } + units "subframes (ms)"; + mandatory true; + description + "Indicates cell defining SSB time domain position. Defined + as the offset of the measurement window, in which to receive SS/PBCH + blocks, where allowed values depend on the ssbPeriodicity + (ssbOffset < ssbPeriodicity)."; + } + leaf ssbDuration { + type int32 { + range "1..5"; + } + units "subframes (ms)"; + mandatory true; + description + "Duration of the measurement window in which to receive + SS/PBCH blocks."; + reference + "3GPP TS 38.213"; + } + leaf-list nRSectorCarrierRef { + type DistinguishedName; + min-elements 1; + description + "Reference to corresponding NRSectorCarrier instance."; + } + leaf-list bWPRef { + type DistinguishedName; + // min-elements 0; + description + "Reference to corresponding BWP instance."; + } + leaf-list nRFrequencyRef { + type DistinguishedName; + // min-elements 0; + description + "Reference to corresponding NRFrequency instance."; + } + } // grouping + + grouping rRMPolicyMemberGroup { + description + "TODO"; + uses PLMNId; + leaf sNSSAI { + type SNssai; + description + "This data type represents an RRM Policy member that will be part of a + rRMPolicyMemberList. A RRMPolicyMember is defined by its pLMNId and sNSSAI (S-NSSAI). + The members in a rRMPolicyMemberList are assigned a specific amount of RRM resources + based on settings in RRMPolicy."; + } + } + + grouping RRMPolicy_Group { + description + "This IOC represents the properties of an abstract RRMPolicy. The RRMPolicy_ IOC + needs to be subclassed to be instantiated. It defines two attributes apart from those + inherited from Top IOC, the resourceType attribute defines type of resource (PRB, RRC + connected users, DRB usage etc.) and the rRMPolicyMemberList attribute defines the + RRMPolicyMember(s)that are subject to this policy. An RRM resource (defined in resourceType + attribute) is located in NRCellDU, NRCellCU, GNBDUFunction, GNBCUCPFunction or in + GNBCUUPFunction. The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in TS 28.541 Figure 4.2.1.2-1. This RRM framework allows adding new policies, + both standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC."; + leaf resourceType { + type string; + mandatory true; + description + "The resourceType attribute defines type of resource (PRB, RRC connected users, + DRB usage etc.) that is subject to policy. Valid values are 'PRB', 'RRC' or 'DRB'"; + } + list rRMPolicyMemberList { + key "idx"; + min-elements 1; + description + "It represents the list of RRMPolicyMember (s) that the managed object + is supporting. A RRMPolicyMember <> include the PLMNId <> + and S-NSSAI <>."; + leaf idx { + type uint32; + description + "TODO"; + } + uses rRMPolicyMemberGroup; + } + } // grouping + + grouping GNBCUUPFunctionGroup { + description + "Represents the GNBCUUPFunction IOC."; + reference + "3GPP TS 28.541"; + uses RRMPolicy_Group; + leaf gNBCUUPId { + type uint64 { + range "0..68719476735"; + } + config false; + mandatory true; + description + "Identifies the gNB-CU-UP at least within a gNB-CU-CP"; + reference + "'gNB-CU-UP ID' in subclause 9.3.1.15 of 3GPP TS 38.463"; + } + leaf gNBId { + type int32 { + range "22..32"; + } + mandatory true; + description + "Indicates the number of bits for encoding the gNB Id."; + reference + "gNB Id in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + list pLMNInfoList { + key "mcc mnc"; + description + "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that + can be served by the GNBCUUPFunction and which S-NSSAIs can be supported by the + GNBCUUPFunction for corresponding PLMN in case of network slicing feature is supported"; + uses PLMNInfo; + } + } // grouping + + grouping GNBCUCPFunctionGroup { + description + "Represents the GNBCUCPFunction IOC."; + reference + "3GPP TS 28.541"; + uses RRMPolicy_Group; + leaf gNBId { + type int64 { + range "0..4294967295"; + } + mandatory true; + description + "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) + is part of the NR Cell Identifier (NCI) of the gNB cells."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBIdLength { + type int32 { + range "22..32"; + } + mandatory true; + description + "Indicates the number of bits for encoding the gNB ID."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBCUName { + type string { + length "1..150"; + } + mandatory true; + description + "Identifies the Central Unit of an gNB."; + reference + "3GPP TS 38.473"; + } + list pLMNId { + key "mcc mnc"; + min-elements 1; + max-elements 1; + description + "The PLMN identifier to be used as part of the global RAN + node identity."; + uses PLMNId; + } + leaf-list x2BlackList { + type DistinguishedName; + description + "List of nodes to which X2 connections are prohibited."; + } + leaf-list x2WhiteList { + type DistinguishedName; + description + "List of nodes to which X2 connections are enforced."; + } + leaf-list xnBlackList { + type DistinguishedName; + description + "List of nodes to which Xn connections are prohibited."; + } + leaf-list xnWhiteList { + type DistinguishedName; + description + "List of nodes to which X2 connections are enforced."; + } + leaf-list x2XnHOBlackList { + type DistinguishedName; + description + "List of nodes to which handovers over X2 or Xn are prohibited."; + } + } // grouping + + grouping NRCellCUGroup { + description + "Represents the NRCellCU IOC."; + reference + "3GPP TS 28.541"; + leaf cellLocalId { + type int32 { + range "0..16383"; + } + mandatory true; + description + "Identifies an NR cell of a gNB. Together with corresponding + gNB ID it forms the NR Cell Identifier (NCI)."; + } + list pLMNInfoList { + key "mcc mnc"; + min-elements 1; + description + "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs + that can be served by the NR cell, and which S-NSSAIs that can be supported by the + NR cell for corresponding PLMN in case of network slicing feature is supported."; + uses PLMNInfo; + // Note: Whether the attribute pLMNId in the pLMNInfo can be writable depends on the implementation. + } + leaf nRFrequencyRef { + type DistinguishedName; + config false; + description + "Reference to corresponding NRFrequency instance."; + } + } // grouping + + grouping NRCellRelationGroup { + description + "Represents the NRCellRelation IOC."; + reference + "3GPP TS 28.541"; + leaf nRTCI { + type uint64; + description + "Target NR Cell Identifier. It consists of NR Cell + Identifier (NCI) and Physical Cell Identifier of the target NR cell + (nRPCI)."; + } + container cellIndividualOffset { + description + "A set of offset values for the neighbour cell. Used when + UE is in connected mode. Defined for rsrpOffsetSSB, rsrqOffsetSSB, + sinrOffsetSSB, rsrpOffsetCSI-RS, rsrqOffsetCSI-RS and + sinrOffsetCSI-RS."; + reference + "cellIndividualOffset in MeasObjectNR in 3GPP TS 38.331"; + leaf rsrpOffsetSsb { + type QOffsetRange; + default "0"; + description + "Offset value of rsrpOffsetSSB."; + } + leaf rsrqOffsetSsb { + type QOffsetRange; + default "0"; + description + "Offset value of rsrqOffsetSSB."; + } + leaf sinrOffsetSsb { + type QOffsetRange; + default "0"; + description + "Offset value of sinrOffsetSSB."; + } + leaf rsrpOffsetCsiRs { + type QOffsetRange; + default "0"; + description + "Offset value of rsrpOffsetCSI-RS."; + } + leaf rsrqOffsetCsiRs { + type QOffsetRange; + default "0"; + description + "Offset value of rsrqOffsetCSI-RS."; + } + leaf sinrOffsetCsiRs { + type QOffsetRange; + default "0"; + description + "Offset value of sinrOffsetCSI-RS."; + } + } + leaf nRFreqRelationRef { + type DistinguishedName; + mandatory true; + description + "Reference to a corresponding NRFreqRelation instance."; + } + leaf adjacentNRCellRef { + type DistinguishedName; + mandatory true; + description + "Reference to an adjacent NR cell (NRCellCU or + ExternalNRCellCU)."; + } + leaf isRemoveAllowed { + type boolean; + default "true"; + description + "True if the ANR function in the node is allowed to remove this relation."; + } + leaf isHOAllowed { + type boolean; + default "true"; + description + "True if handovers are allowed over this relation."; + } + } // grouping + + grouping NRFreqRelationGroup { + description + "Represents the NRFreqRelation IOC."; + reference + "3GPP TS 28.541"; + container offsetMO { + description + "A set of offset values applicable to all measured cells + with reference signal(s) indicated in corresponding MeasObjectNR. It + is used to indicate a cell, beam or measurement object specific offset + to be applied when evaluating candidates for cell re-selection or when + evaluating triggering conditions for measurement reporting. It is + defined for rsrpOffsetSSB, rsrqOffsetSSB, sinrOffsetSSB, + rsrpOffsetCSI-RS, rsrqOffsetCSI-RS and sinrOffsetCSI-RS."; + reference + "offsetMO in MeasObjectNR in 3GPP TS 38.331"; + leaf rsrpOffsetSsb { + type QOffsetRange; + default "0"; + description + "Offset value of rsrpOffsetSSB."; + } + leaf rsrqOffsetSsb { + type QOffsetRange; + default "0"; + description + "Offset value of rsrqOffsetSSB."; + } + leaf sinrOffsetSsb { + type QOffsetRange; + default "0"; + description + "Offset value of sinrOffsetSSB."; + } + leaf rsrpOffsetCsiRs { + type QOffsetRange; + default "0"; + description + "Offset value of rsrpOffsetCSI-RS."; + } + leaf rsrqOffsetCsiRs { + type QOffsetRange; + default "0"; + description + "Offset value of rsrqOffsetCSI-RS."; + } + leaf sinrOffsetCsiRs { + type QOffsetRange; + default "0"; + description + "Offset value of sinrOffsetCSI-RS."; + } + } + leaf-list blackListEntry { + type uint16 { + range "0..1007"; + } + // min-elements 0; + description + "A list of Physical Cell Identities (PCIs) that are + blacklisted in NR measurements."; + reference + "3GPP TS 38.331"; + } + leaf-list blackListEntryIdleMode { + type uint16 { + range "0..1007"; + } + // min-elements 0; + description + "A list of Physical Cell Identities (PCIs) that are + blacklisted in SIB4 and SIB5."; + } + leaf cellReselectionPriority { + type uint32; + default "0"; + description + "The absolute priority of the carrier frequency used by the + cell reselection procedure. Value 0 means lowest priority. The value + must not already used by other RAT, i.e. equal priorities between RATs + are not supported. The UE behaviour when no value is entered is + specified in subclause 5.2.4.1 of 3GPP TS 38.304."; + reference + "CellReselectionPriority in 3GPP TS 38.331, priority in + 3GPP TS 38.304"; + } + leaf cellReselectionSubPriority { + type uint8 { + range "2 | 4 | 6 | 8"; + } + units "0.1"; + description + "Indicates a fractional value to be added to the value of + cellReselectionPriority to obtain the absolute priority of the + concerned carrier frequency for E-UTRA and NR."; + reference + "3GPP TS 38.331"; + } + leaf pMax { + type int32 { + range "-30..33"; + } + units "dBm"; + // mandatory false; + description + "Used for calculation of the parameter Pcompensation + (defined in 3GPP TS 38.304), at cell reselection to a cell."; + reference + "PEMAX in 3GPP TS 38.101"; + } + leaf qOffsetFreq { + type QOffsetRange; + default "0"; + // mandatory false; + description + "The frequency specific offset applied when evaluating + candidates for cell reselection."; + } + leaf qQualMin { + type int32 { + range "-34..-3 | 0"; + } + units "dB"; + default "0"; + description + "Indicates the minimum required quality level in the cell. + Value 0 means that it is not sent and UE applies in such case the + (default) value of negative infinity for Qqualmin. Sent in SIB3 or + SIB5."; + reference + "3GPP TS 38.304"; + } + leaf qRxLevMin { + type int32 { + range "-140..-44"; + } + units "dBm"; + mandatory true; + description + "Indicates the required minimum received Reference Symbol + Received Power (RSRP) level in the NR frequency for cell reselection. + Broadcast in SIB3 or SIB5, depending on whether the related frequency + is intra- or inter-frequency. Resolution is 2."; + reference + "3GPP TS 38.304"; + } + leaf threshXHighP { + type int32 { + range "0..62"; + } + units "dB"; + mandatory true; + description + "Specifies the Srxlev threshold used by the UE when + reselecting towards a higher priority RAT/frequency than the current + serving frequency. Each frequency of NR and E-UTRAN might have a + specific threshold. Resolution is 2."; + reference + "ThreshX, HighP in 3GPP TS 38.304"; + } + leaf threshXHighQ { + type int32 { + range "0..31"; + } + units "dB"; + mandatory true; + description + "Specifies the Squal threshold used by the UE when + reselecting towards a higher priority RAT/frequency than the current + serving frequency. Each frequency of NR and E-UTRAN might have a + specific threshold."; + reference + "ThreshX, HighQ in 3GPP TS 38.304"; + } + leaf threshXLowP { + type int32 { + range "0..62"; + } + units "dB"; + mandatory true; + description + "Specifies the Srxlev threshold used by the UE when + reselecting towards a lower priority RAT/frequency than the current + serving frequency. Each frequency of NR and E-UTRAN might have a + specific threshold. Resolution is 2."; + reference + "ThreshX, LowP in 3GPP TS 38.304"; + } + leaf threshXLowQ { + type int32 { + range "0..31"; + } + units "dB"; + mandatory true; + description + "Specifies the Squal threshold used by the UE when + reselecting towards a lower priority RAT/frequency than the current + serving frequency. Each frequency of NR and E-UTRAN might have a + specific threshold."; + reference + "ThreshX, LowQ in 3GPP TS 38.304"; + } + leaf tReselectionNR { + type int32 { + range "0..7"; + } + units "s"; + mandatory true; + description + "Cell reselection timer for NR."; + reference + "TreselectionRAT for NR in 3GPP TS 38.331"; + } + leaf tReselectionNRSfHigh { + type uint8 { + range "25 | 50 | 75 | 100"; + } + units "%"; + mandatory true; + description + "The attribute tReselectionNr (parameter TreselectionNR in + 3GPP TS 38.304) is multiplied with this scaling factor if the UE is + in high mobility state."; + reference + "Speed dependent ScalingFactor for TreselectionNR for high + mobility state in 3GPP TS 38.304"; + } + leaf tReselectionNRSfMedium { + type uint8 { + range "25 | 50 | 75 | 100"; + } + units "%"; + mandatory true; + description + "The attribute tReselectionNr (parameter TreselectionNR in + 3GPP TS 38.304) multiplied with this scaling factor if the UE is in + medium mobility state."; + reference + "Speed dependent ScalingFactor for TreselectionNR for medium + mobility state in 3GPP TS 38.304"; + } + leaf nRFrequencyRef { + type DistinguishedName; + mandatory true; + description + "Reference to a corresponding NRFrequency instance."; + } + } // grouping + + grouping ManagedNFServiceGroup { + description + "A ManagedNFService representing a Network Function (NF) service."; + reference + "Clause 7 of 3GPP TS 23.501."; + leaf userLabel { + type string; + description + "A user-friendly (and user assignable) name of this object."; + } + list sAP { + key "host port"; + min-elements 1; + max-elements 1; + description + "The service access point of the managed NF service instance"; + uses SAP; + } + } // grouping + + // container for RAN Network + + container ran-network { + description + "Represents telecommunications equipment or + TMN entities within the telecommunications network providing support + and/or service to the subscriber."; + list NearRTRIC { + key "idNearRTRIC"; // list GNBCUCPFunction + description + "A list of expected near-real-time RIC O-RAN managed functions."; + leaf idNearRTRIC { + type string; + 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"; + } + container attributes { + description + "TODO"; + uses NearRTRICGroup; + } + list GNBDUFunction { + key "idGNBDUFunction"; + description + "Represents the logical function DU of gNB or en-gNB."; + reference + "3GPP TS 28.541"; + leaf idGNBDUFunction { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses GNBDUFunctionGroup; + uses ManagedNFServiceGroup; + } + list NRCellDU { + key "idNRCellDU"; + description + "Represents the information of a cell known by DU."; + reference + "3GPP TS 28.541"; + leaf idNRCellDU { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellDUGroup; + uses ManagedNFServiceGroup; + } + } // list NRCellDU + } // list GNBDUFunction + list GNBCUUPFunction { + key "idGNBCUUPFunction"; + description + "TODO"; + leaf idGNBCUUPFunction { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses GNBCUUPFunctionGroup; + uses ManagedNFServiceGroup; + } + } // list GNBCUUPFunction + list GNBCUCPFunction { + key "idGNBCUCPFunction"; // list NRCellCU + description + "Represents the logical function CU-CP of gNB and en-gNB."; + reference + "3GPP TS 28.541"; + leaf idGNBCUCPFunction { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses GNBCUCPFunctionGroup; + uses ManagedNFServiceGroup; + } + list NRCellCU { + key "idNRCellCU"; + description + "Represents the information required by CU that is + responsible for the management of inter-cell mobility and neighbour + relations via ANR."; + reference + "3GPP TS 28.541"; + leaf idNRCellCU { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellCUGroup; + uses ManagedNFServiceGroup; + } + list NRCellRelation { + key "idNRCellRelation"; + description + "Represents a neighbour cell relation from a source cell + to a target cell, where the target cell is an NRCellCU or + ExternalNRCellCU instance."; + reference + "3GPP TS 28.541"; + leaf idNRCellRelation { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellRelationGroup; + uses ManagedNFServiceGroup; + } + } // list NRCellRelation + list NRFreqRelation { + key "idNRFreqRelation"; + description + "Together with the target NRFrequency, it represents the + frequency properties applicable to the referencing NRFreqRelation."; + reference + "3GPP TS 28.541"; + leaf idNRFreqRelation { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRFreqRelationGroup; + uses ManagedNFServiceGroup; + } + } // list NRFreqRelation + } + } + } // list ManagedElement + } +} diff --git a/sdnr/northbound/ranSlice/model/src/main/yang/ran-slice-api@2020-08-06.yang b/sdnr/northbound/ranSlice/model/src/main/yang/ran-slice-api@2020-08-06.yang new file mode 100644 index 000000000..3253a015c --- /dev/null +++ b/sdnr/northbound/ranSlice/model/src/main/yang/ran-slice-api@2020-08-06.yang @@ -0,0 +1,466 @@ +/* + * Yang model for the RANSLice Northbound API's + * + */ +module ran-slice-api { + yang-version 1.1; + namespace "org:onap:ccsdk"; + prefix rs; + + organization + "Open Network Automation Platform - ONAP + "; + contact + "Editors: + Sandeep Shah + + + Swaminathan Seetharaman + "; + description + "This module defines the services and request/response requirements for + RAN Slice Management. + This YANG model is used solely for POC's in the ONAP and O-RAN communities + + Copyright 2020 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-08-06 { + description + "RANSlice API YANG Model"; + reference + "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin"; + } + + /********************************************************************************** + * Data type definitions + * + * The following data type definitions are used to define common data structures, + * define constraints, or to impart special meanings to data objects related to the + * SDN-R controller functions. + **********************************************************************************/ + + typedef ZULU { + type string { + length "16..28"; + pattern '[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}.[0-9]{1,6}Z'; + } + description + "Define a common definition of a time stamp (expressed as a formatted + string) as follows yyyy-MM-ddTHH:mm:ss.SSSSSSSSZ"; + } + + typedef payload { + type string; + description + "The payload can be any valid JSON string value. Json escape characters + need to be added when required to include an inner json within the + payload to make it a valid json string value"; + } + + typedef action { + type enumeration { + enum allocate { + description + "TODO"; + } + enum modify { + description + "TODO"; + } + enum modify-allocate { + description + "TODO"; + } + enum modify-deallocate { + description + "TODO"; + } + enum deallocate { + description + "TODO"; + } + enum activate { + description + "TODO"; + } + enum deactivate { + description + "TODO"; + } + enum reconfigure { + description + "TODO"; + } + } + description + "The action to be taken by SDN-R for invoked RPC."; + } + + typedef ranSlice-action-status { + type enumeration { + enum IN_PROGRESS { + description + "TODO"; + } + enum SUCCESSFUL { + description + "TODO"; + } + enum FAILED { + description + "TODO"; + } + enum NOT_FOUND { + description + "TODO"; + } + enum ABORTED { + description + "TODO"; + } + enum MULTIPLE_REQUESTS_FOUND { + description + "TODO"; + } + } + description + "The status of the requested RANSlice action"; + } + + /********************************************************************************** + * All requests will include this standard header + * + * The standard request header is used to define a correlation identification for + * the request that is returned on all responses. This correlation identifier + * (called the service-request-id) is meaningful to the caller and is included on + * all responses from the services. + **********************************************************************************/ + + /********************************************************************************** + * All responses will include this standard header + * + * The standard response header includes the time of completion as well as a + * success|failure indication + **********************************************************************************/ + + grouping common-header { + description + "A common header for all SDN-R requests"; + container common-header { + description + "A common header for all SDN-R requests"; + leaf timestamp { + type ZULU; + mandatory true; + description + "timestamp is in ISO 8601 timestamp format ZULU offset"; + } + leaf api-ver { + type string; + mandatory true; + description + "api-ver is the API version identifier. A given release of APPC + should support all previous versions of APPC API (correlate with + general requirements)"; + } + leaf originator-id { + type string; + mandatory true; + description + "originator-id an identifier of the calling system which can be + used addressing purposes, i.e. returning asynchronous response + to the proper destination over DMaaP (especially in case of multiple + consumers of SDN-R APIs)"; + } + leaf request-id { + type string; + mandatory true; + description + "UUID for the request ID. An OSS/BSS identifier for the request + that caused the current action. Multiple API calls may be made + with the same request-id The request-id shall be recorded throughout + the operations on a single request"; + } + leaf sub-request-id { + type string; + description + "Uniquely identifies a specific RANSlice action. It is persistent over + the life-cycle of a single request"; + } + + /********************************************************************************** + * Flags are generic flags that apply to any and all commands, all are optional + * force = TRUE/FALSE - Execute command even if target is in unstable (i.e. locked, transiting, etc) + * state. Specific behaviour of forced commands varies, but implies cancellation + * of previous command and an override by the new command. The FALSE value is + * used by default. + * ttl = <0....N> - The timeout value for command execution, expressed in seconds + * mode = EXCLUSIVE/NORMAL - defines execution mode as follows: + * - EXCLUSIVE ? on encountering an exclusive command, the SDN-R will: + * * Cease accepting additional command requests + * * Complete execution of outstanding commands + * * Execute the exclusive command to completion + * * Optionally report the result of the command + * * Optionally resume command acceptance and processing + * - NORMAL - Obverse of EXCLUSIVE, the default one. + **********************************************************************************/ + container flags { + description + "Flags are generic flags that apply to any and all commands, all are optional"; + leaf mode { + type enumeration { + enum EXCLUSIVE { + description + "TODO"; + } + enum NORMAL { + description + "TODO"; + } + } + description + "EXCLUSIVE (accept no queued requests on this VNF while processing) + or NORMAL (queue other requests until complete)"; + } + leaf force { + type enumeration { + enum TRUE { + description + "TODO"; + } + enum FALSE { + description + "TODO"; + } + } + description + "TRUE/FALSE - Execute action even if target is in unstable (i.e. + locked, transiting, etc.) state"; + } + leaf ttl { + type uint16; + description + "<0....N> - The timeout value (expressed in seconds) for action + execution, between action being received by APPC and action initiation"; + } + } + } + } + + grouping status { + description + "The specific response codes are to be aligned with SDC reference doc + (main table removed to avoid duplication and digression from main table). + See SDC and ECOMP Distribution Consumer Interface Agreement"; + container status { + description + "The specific response codes are to be aligned with SDC reference doc + (main table removed to avoid duplication and digression from main table). + See SDC and ECOMP Distribution Consumer Interface Agreement"; + leaf code { + type uint16; + mandatory true; + description + "Response code"; + } + leaf message { + type string; + mandatory true; + description + "Response message"; + } + } + } + + grouping abstract-rpc-input { + uses common-header; + leaf action { + type action; + mandatory true; + description + "TODO"; + } + leaf payload { + type payload; + description + "TODO"; + } + description + "An abstract rpc output defintion."; + } + grouping abstract-rpc-input-payload-required { + uses common-header; + leaf action { + type action; + mandatory true; + description + "TODO"; + } + leaf payload { + type payload; + mandatory true; + description + "TODO"; + } + description + "An abstract rpc output defintion."; + } + grouping abstract-rpc-output { + uses common-header; + uses status; + description + "An abstract rpc output defintion."; + } + /********************************************************************************** + * Define the configureNearRTRIC service + **********************************************************************************/ + rpc configureNearRTRIC { + description + "An operation to configure Near-Time RIC in the preparation phase"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the instantiateRANSlice service + **********************************************************************************/ + rpc instantiateRANSlice { + description + "An operation to instantiate RAN slice. Includes both allocation and configuration of RAN slice resources"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the configureRANSliceInstance service + **********************************************************************************/ + rpc configureRANSliceInstance { + description + "An operation to configure RAN slice NSSI in CU and DU"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the configureCU service + **********************************************************************************/ + rpc configureCU { + description + "An operation to configure CU in the preparation phase"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the configureDU service + **********************************************************************************/ + rpc configureDU { + description + "An operation to configure DU in the preparation phase"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the activateRANSliceInstance service ... needed to enable traffic flow + **********************************************************************************/ + rpc activateRANSliceInstance { + description + "An operation to reallocate RAN Slice resources"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the deactivateRANSliceInstance service ... needed to disable traffic flow + **********************************************************************************/ + rpc deactivateRANSliceInstance { + description + "An operation to reallocate RAN Slice resources"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the terminateRANSliceInstance service + **********************************************************************************/ + rpc terminateRANSliceInstance { + description + "An operation to terminate RAN slide instance"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + + /********************************************************************************** + * Define the determineRANSliceResources service + **********************************************************************************/ + rpc determineRANSliceResources { + description + "An operation to determine RAN slice resources"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } + + /********************************************************************************** + * Define the configNotification service + **********************************************************************************/ + rpc configNotification { + description + "CM Notify event triggered by DMAAP VES message"; + input { + uses abstract-rpc-input; + } + output { + uses abstract-rpc-output; + } + } +} -- cgit 1.2.3-korg