diff options
Diffstat (limited to 'sdnr/northbound/ranSlice/model/src/main/yang/ran-slice-api@2020-08-06.yang')
-rw-r--r-- | sdnr/northbound/ranSlice/model/src/main/yang/ran-slice-api@2020-08-06.yang | 466 |
1 files changed, 466 insertions, 0 deletions
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 + <https://www.onap.org>"; + contact + "Editors: + Sandeep Shah + <mailto:sandeep.shah@ibm.com> + + Swaminathan Seetharaman + <mailto:swaminathan.seetharaman@wipro.com>"; + 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; + } + } +} |