aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sdnr/northbound/oofpcipoc/model/pom.xml58
-rw-r--r--sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc-api.yang97
-rw-r--r--sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc.yang522
3 files changed, 677 insertions, 0 deletions
diff --git a/sdnr/northbound/oofpcipoc/model/pom.xml b/sdnr/northbound/oofpcipoc/model/pom.xml
new file mode 100644
index 000000000..6c1bffa7e
--- /dev/null
+++ b/sdnr/northbound/oofpcipoc/model/pom.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath />
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.northbound</groupId>
+ <artifactId>oofpcipoc-model</artifactId>
+ <version>0.4.1-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-inet-types-2013-07-15</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>properties-maven-plugin</artifactId>
+ <versionRange>[1.0.0,)</versionRange>
+ <goals>
+ <goal>set-system-properties</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <execute />
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc-api.yang b/sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc-api.yang
new file mode 100644
index 000000000..706a8b5dd
--- /dev/null
+++ b/sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc-api.yang
@@ -0,0 +1,97 @@
+module oofpcipoc-api {
+ yang-version "1.1";
+ namespace "org:onap:ccsdk";
+ prefix "oofpcipoc-api";
+
+ import oofpcipoc {
+ prefix oofpcipoc;
+ revision-date "2019-03-08";
+ }
+
+ organization
+ "ONAP";
+ contact
+ "Editors: Sandeep Shah <mailto:sandeep.shah2@techmahindra.com> Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com> ";
+
+ description
+ "This module contains a collection of YANG definitions for managing radio access network (RAN) devices.";
+
+ revision 2019-03-08 {
+ description
+ "Added new API's to support ANR use case";
+ reference
+ "";
+ }
+
+ revision 2018-11-27 {
+ description
+ "oofpcipoc api definition ";
+ reference
+ "";
+ }
+
+
+ rpc greeting {
+ description
+ "For testing";
+ input {
+ leaf salutation {
+ type string;
+ description
+ "salutation";
+ }
+ }
+ output {
+ leaf response {
+ type string;
+ description
+ "Hello response";
+ }
+ }
+ }
+
+ rpc configuration-phy-cell-id {
+ description
+ "Configure PCI value of a specific cell in Radio Access Network (RAN)";
+ input {
+ uses oofpcipoc:configuration-phy-cell-id-request;
+ }
+ output {
+ uses oofpcipoc:oofpcipoc-rpc-response;
+ }
+ }
+
+ rpc generic-neighbor-configuration {
+ description
+ "Configure properties of a neighbor of a cell";
+ input {
+ uses oofpcipoc:generic-neighbor-configuration-request;
+ }
+ output {
+ uses oofpcipoc:oofpcipoc-rpc-response;
+ }
+ }
+
+ rpc add-neighbor {
+ description
+ "Add a neighbor (or neighbors) to a specific cell";
+ input {
+ uses oofpcipoc:add-neighbor-request;
+ }
+ output {
+ uses oofpcipoc:oofpcipoc-rpc-response;
+ }
+ }
+
+ rpc delete-neighbor {
+ description
+ "Delete a neighbor (or neighbors) of a specific cell";
+ input {
+ uses oofpcipoc:delete-neighbor-request;
+ }
+ output {
+ uses oofpcipoc:oofpcipoc-rpc-response;
+ }
+ }
+
+}
diff --git a/sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc.yang b/sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc.yang
new file mode 100644
index 000000000..98978c342
--- /dev/null
+++ b/sdnr/northbound/oofpcipoc/model/src/main/yang/oofpcipoc.yang
@@ -0,0 +1,522 @@
+module oofpcipoc {
+ yang-version "1.1";
+ namespace "org:onap:ccsdk:features:sdnr:northbound:oofpcipoc";
+ prefix "oofpcipoc";
+
+ organization
+ "ONAP";
+ contact
+ "Editors: Sandeep Shah <mailto:sandeep.shah2@techmahindra.com> Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com> ";
+ description
+ "This module contains a collection of YANG definitions for managing radio access network (RAN) devices.";
+
+ revision 2019-03-08 {
+ description
+ "Updated to support Centralized ANR functionality for Dublin
+ Included blacklisted leaf node.";
+ reference
+ "";
+ }
+
+ revision 2018-11-27 {
+ description
+ "Updated and to be used only for ONAP PCI Optimization PoC 2018-09-20
+ Incorporated container for fap-service and added pnf-name leaf node
+ For respective nodes, changed min-elements from 1 to 0 make them optional";
+ reference
+ "";
+ }
+
+ revision 2018-04-08 {
+ description
+ "Initial version, used only for ONAP PoC 2018-06-25";
+ reference
+ "";
+ }
+
+ grouping configuration-phy-cell-id-request {
+
+ leaf fap-service-number-of-entries {
+ type uint64;
+ description
+ "Number of cells in RAN network";
+ }
+ list fap-service {
+ key "alias";
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "Individual cell alias";
+ }
+ leaf cid {
+ type string {
+ length "0..52";
+ }
+ description
+ "Cell ID";
+ }
+ leaf phy-cell-id-in-use {
+ type uint64;
+ default 0;
+ description
+ "phy-cell-id that is currently asssigned to this cell";
+ }
+ leaf pnf-name {
+ type string {
+ length "0..256";
+ }
+ description
+ "PNF name ";
+ }
+ description
+ "List of cells in the RAN network";
+ }
+
+ description
+ "Input payload for config-phy-cell-id RPC for this POC";
+ }
+
+ grouping generic-neighbor-configuration-request {
+
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ }
+ list lte-ran-neighbor-list-in-use-lte-cell {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-in-use-lte-cell-g;
+ }
+ description
+ "Input payload for generic-neighbor-configuration RPC for this POC";
+ }
+
+ grouping add-neighbor-request {
+
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ }
+
+ list lte-ran-neighbor-list-in-use-lte-cell {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-in-use-lte-cell-g;
+ }
+
+ description
+ "Input payload for add-neighbor RPC for this POC";
+ }
+
+ grouping delete-neighbor-request {
+
+ description
+ "Input payload for delete-neighbor RPC for this POC";
+
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ }
+
+ list lte-ran-neighbor-list-in-use-lte-cell {
+ key "plmnid cid";
+
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ }
+ leaf cid {
+ type string {
+ length "0..52";
+ }
+ }
+ }
+ }
+
+ grouping oofpcipoc-rpc-response {
+ leaf response-code {
+ type string;
+ }
+ leaf response-message {
+ type string;
+ }
+ description
+ "Response payload for RPC's for this POC";
+ }
+
+ container radio-access {
+
+ leaf fap-service-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPServiceNumberOfEntries";
+ }
+
+ list fap-service {
+ key "alias";
+ uses fap-service-g;
+ container x-0005b9-lte {
+ uses x-0005b9-lte-g;
+ }
+ container cell-config {
+ uses cell-config-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.";
+ container lte {
+ uses lte-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.";
+ container lte-ran {
+ uses lte-ran-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.";
+ container lte-ran-common {
+ uses lte-ran-common-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Common.";
+ }
+ container lte-ran-rf {
+ uses lte-ran-rf-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RF.";
+ }
+ container lte-ran-neighbor-list-in-use {
+ uses lte-ran-neighbor-list-in-use-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+ list lte-ran-neighbor-list-in-use-lte-cell {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-in-use-lte-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+ }
+ }
+ }
+ }
+ }
+ description
+ "List of object class FAPService.{i}.";
+ }
+ }
+
+ grouping fap-service-g {
+ description
+ "The Femto Access Point (FAP) Service Object.";
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Alias";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.";
+ }
+
+ grouping x-0005b9-lte-g {
+ leaf phy-cell-id-in-use {
+ type uint64;
+ default 0;
+ }
+ leaf pnf-name {
+ type string {
+ length "0..256";
+ }
+ description
+ "PNF name ";
+ }
+ }
+
+ grouping cell-config-g {
+ description
+ "This object contains parameters relating to configuring the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.";
+ }
+
+ grouping lte-g {
+ description
+ "This object contains parameters relating to configuring the LTE FAP.";
+ leaf tunnel-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.TunnelNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.";
+ }
+
+ grouping lte-ran-g {
+ description
+ "This object contains parameters relating to the LTE RAN level configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.";
+ }
+
+ grouping lte-ran-common-g {
+ description
+ "This object contains parameters relating to the common configuration in LTE RAN.";
+ leaf cell-identity {
+ type string {
+ length "0..52";
+ }
+ config false;
+ description
+ "Cell Identity as specified in {{bibref|3GPP-TS.36.331|Section 6.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Common.";
+ }
+
+ grouping lte-ran-rf-g {
+ description
+ "This object contains parameters relating to the RF, see {{bibref|3GPP-TS.32.592|Section 6.1.7.1}}.";
+ leaf-list phy-cell-id {
+ type string;
+ config false;
+ min-elements 0;
+ max-elements "512";
+ description
+ "{{list}} Each item is a physical cell ID with a numeric range between 0 and 503 inclusive. Represents the list of physical cell identities LTE FAP to choose from. In case there is more than one item in the list, the first item contains the most preferred value. As specified in {{bibref|3GPP-TS.36.211|Section 6.11}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.";
+ }
+
+ grouping lte-ran-phy-g {
+ description
+ "This object contains parameters relating to the physical layer level configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-g {
+ description
+ "This object contains parameters relating to the neighbor list used by the FAP based on its self-configuration capability and {{object|.CellConfig.LTE.RAN.NeighborList.}} configuration of adding and excluding cells.";
+ leaf max-lte-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.MaxLTECellEntries";
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-lte-cell-g {
+ description
+ "Table containing the LTE EUTRA (i.e. intra-RAT) cell list.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+ }
+ leaf cid {
+ type string {
+ length "0..52";
+ }
+ description
+ "Cell Identity. {{bibref|3GPP-TS.36.331|Section 6.3.4}}. Combination of {{param|PLMNID}} and {{param}} constitutes the Cell Global ID (CGI).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+ }
+
+ leaf phy-cell-id {
+ type uint64 {
+ range "0..503";
+ }
+ description
+ "Physical cell ID, as specified in {{bibref|3GPP-TS.36.211|Section 6.11}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+ }
+ leaf pnf-name {
+ type string {
+ length "0..256";
+ }
+ description
+ "PNF name ";
+ }
+ leaf blacklisted {
+ type boolean;
+ description
+ "Indicates whether this neighbor cell is allowed for UEs as handover target or not. If {{true}}, handover is prohibited towards this cell. If {{false}}, handover is allowed toward this cell. The {{param}} parameter allows this cell to be prohibited as a handover target, while still allowing this cell to be included in the BCCH SIB4 or 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+ }
+
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+ }
+
+ notification nbrlist-change-notification {
+ description "RAN Neighbor List change notification.";
+ leaf fap-service-number-of-entries-changed {
+ type uint64;
+ description
+ "Number of cells for which neighbor list has changed";
+ }
+ list fap-service {
+ key "alias";
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ }
+ leaf cid {
+ type string {
+ length "0..52";
+ }
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ description
+ "Number of cells in a neighbor list that was changed";
+ }
+ list lte-ran-neighbor-list-in-use-lte-cell-changed {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-in-use-lte-cell-g;
+ description
+ "Changed/Modified List of cells in a neighbor list for this fap service";
+ }
+ }
+ }
+
+ typedef edit-operation-type {
+ type enumeration {
+ enum "merge" {
+ value 0;
+ description
+ "The configuration data identified by the
+ element containing this attribute is merged
+ with the configuration at the corresponding
+ level in the configuration datastore identified
+ by the target parameter.";
+ }
+ enum "replace" {
+ value 1;
+ description
+ "The configuration data identified by the element
+ containing this attribute replaces any related
+ configuration in the configuration datastore
+ identified by the target parameter. If no such
+ configuration data exists in the configuration
+ datastore, it is created. Unlike a
+ <copy-config> operation, which replaces the
+ entire target configuration, only the configuration
+ actually present in the config parameter is affected.";
+ }
+ enum "create" {
+ value 2;
+ description
+ "The configuration data identified by the element
+ containing this attribute is added to the
+ configuration if and only if the configuration
+ data does not already exist in the configuration
+ datastore. If the configuration data exists, an
+ <rpc-error> element is returned with an
+ <error-tag> value of 'data-exists'.";
+ }
+ enum "delete" {
+ value 3;
+ description
+ "The configuration data identified by the element
+ containing this attribute is deleted from the
+ configuration if and only if the configuration
+ data currently exists in the configuration
+ datastore. If the configuration data does not
+ exist, an <rpc-error> element is returned with
+ an <error-tag> value of 'data-missing'.";
+ }
+ enum "remove" {
+ value 4;
+ description
+ "The configuration data identified by the element
+ containing this attribute is deleted from the
+ configuration if the configuration
+ data currently exists in the configuration
+ datastore. If the configuration data does not
+ exist, the 'remove' operation is silently ignored
+ by the server.";
+ }
+ }
+ default "merge";
+ description
+ "NETCONF 'operation' attribute values";
+ reference
+ "RFC 6241, Section 7.2";
+
+ }
+ //RFC6470
+ notification netconf-config-change {
+ description
+ "Generated when the NETCONF server detects that the
+ <running> or <startup> configuration datastore
+ has been changed by a management session.
+ The notification summarizes the edits that
+ have been detected.
+
+ The server MAY choose to also generate this
+ notification while loading a datastore during the
+ boot process for the device.";
+
+ //uses changed-by-parms;
+ leaf datastore {
+ type enumeration {
+ enum running {
+ description "The <running> datastore has changed.";
+ }
+ enum startup {
+ description "The <startup> datastore has changed";
+ }
+ }
+ default "running";
+ description
+ "Indicates which configuration datastore has changed.";
+ }
+
+ list edit {
+ description
+ "An edit record SHOULD be present for each distinct
+ edit operation that the server has detected on
+ the target datastore. This list MAY be omitted
+ if the detailed edit operations are not known.
+ The server MAY report entries in this list for
+ changes not made by a NETCONF session (e.g., CLI).";
+ leaf target {
+ type instance-identifier;
+ description
+ "Topmost node associated with the configuration change.
+ A server SHOULD set this object to the node within
+ the datastore that is being altered. A server MAY
+ set this object to one of the ancestors of the actual
+ node that was changed, or omit this object, if the
+ exact node is not known.";
+ }
+
+ leaf operation {
+ type edit-operation-type;
+ description
+ "Type of edit operation performed.
+ A server MUST set this object to the NETCONF edit
+ operation performed on the target datastore.";
+ }
+ } // list edit
+ } // notification netconf-config-change
+
+}