summaryrefslogtreecommitdiffstats
path: root/sdnr/wt
diff options
context:
space:
mode:
authorRavi Pendurty <ravi.pendurty@highstreet-technologies.com>2021-08-02 09:13:49 +0530
committerKAPIL SINGAL <ks220y@att.com>2021-08-02 13:50:04 +0000
commit34fe841355474f9c47317465fce2e6b3d4d426ae (patch)
tree1fafa362979c3407dbc00c1b96ba90087212b716 /sdnr/wt
parentcef88ce423c3c974caf52cb81702e25807885cd3 (diff)
Update adapter-manager devicemanager
Support for modified yangs part of the Next Gen Simulator Issue-ID: CCSDK-3404 Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com> Change-Id: I158c2c0c351d0fd18df5c86d50c13466e73ad91e Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt')
-rwxr-xr-xsdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml4
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml2
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java2
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang474
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang465
5 files changed, 587 insertions, 360 deletions
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
index 47ac7fc0c..2a94be13b 100755
--- a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
@@ -47,7 +47,7 @@
<dependencies>
<dependency>
- <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>${application.name}-feature</artifactId>
<version>${project.version}</version>
<type>xml</type>
@@ -60,7 +60,7 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>${application.name}-provider</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
index c600d3f53..2d340fdee 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
@@ -68,7 +68,7 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-devicemanager-core-model</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java
index 0ed856fb1..c9930eaf5 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java
@@ -24,7 +24,7 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.network.topology.simulator.rev191025.SimulatorStatus;
-import org.opendaylight.yang.gen.v1.urn.o.ran.sc.params.xml.ns.yang.nts.manager.rev201006.simulation.NetworkFunctions;
+import org.opendaylight.yang.gen.v1.urn.o.ran.sc.params.xml.ns.yang.nts.manager.rev210326.simulation.NetworkFunctions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang
index ea7e60b91..86d7b3e8a 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang
@@ -11,34 +11,43 @@ module nts-common {
"O-RAN-SC";
contact
" Web: <https://wiki.o-ran-sc.org/display/SIM/SIM>
- Editors:
+ Editors:
Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
description
"This module contains common yang definitions YANG definitions for the Network Topology Simulator.";
+ revision 2021-03-26 {
+ description
+ "Added controller-protocol.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+ revision 2021-02-15 {
+ description
+ "Added presence to configuration containers.";
+ reference
+ "O-RAN-SC SIM project";
+ }
revision 2020-11-20 {
description
"Add feature-type for the Web cut through feature.";
reference
"O-RAN-SC SIM project";
}
-
revision 2020-10-22 {
description
"Add feature-type for the NETCONF Call Home feature.";
reference
"O-RAN-SC SIM project";
}
-
revision 2020-10-13 {
description
"Add feature-type typedef containing the features that can be activated in the Network Function.";
reference
"O-RAN-SC SIM project";
}
-
revision 2020-09-07 {
description
"Initial revision for the Network Topology Simulator - Next Generation common types.";
@@ -47,8 +56,13 @@ module nts-common {
}
feature faults-status {
- description
- "This means that the server supports reporting back the number of faults that were generated";
+ description
+ "This means that the server supports reporting back the number of faults that were generated";
+ }
+
+ identity NTS_FUNCTION_TYPE_BASE {
+ description
+ "The reference of each identity represents the name of the associated docker image.";
}
typedef authentication-method-type {
@@ -76,279 +90,291 @@ module nts-common {
typedef feature-type {
type bits {
- bit ves-file-ready {
- position 0;
- description
- "Controls the ves-file-ready feature.";
- }
- bit ves-heartbeat {
- position 1;
- description
- "Controls the ves-heartbeat feature.";
- }
- bit ves-pnf-registration {
- position 2;
- description
- "Controls the ves-pnf-registration feature.";
- }
- bit manual-notification-generation {
- position 3;
- description
- "Controls the manual notification generation feature.";
- }
- bit netconf-call-home {
- position 4;
- description
- "Controls the NETCONF Call Home feature.";
- }
- bit web-cut-through {
- position 5;
- description
- "Controls the Web Cut Through feature.";
- }
+ bit ves-file-ready {
+ position 0;
+ description
+ "Controls the ves-file-ready feature.";
+ }
+ bit ves-heartbeat {
+ position 1;
+ description
+ "Controls the ves-heartbeat feature.";
+ }
+ bit ves-pnf-registration {
+ position 2;
+ description
+ "Controls the ves-pnf-registration feature.";
+ }
+ bit manual-notification-generation {
+ position 3;
+ description
+ "Controls the manual notification generation feature.";
+ }
+ bit netconf-call-home {
+ position 4;
+ description
+ "Controls the NETCONF Call Home feature.";
+ }
+ bit web-cut-through {
+ position 5;
+ description
+ "Controls the Web Cut Through feature.";
+ }
}
description
- "Describes the features that can be enabled/disabled in the Network Function.";
- }
-
- identity NTS_FUNCTION_TYPE_BASE {
- description
- "The reference of each identity represents the name of the associated docker image.";
+ "Describes the features that can be enabled/disabled in the Network Function.";
}
grouping mount-point-details-g {
- leaf mount-point-addressing-method {
- type enumeration {
- enum host-mapping {
- description
- "Uses IP and port mapped to the host machine to address the nework function.";
- }
- enum docker-mapping {
- description
- "Uses Docker IP and port to address the nework function.";
- }
+ description
+ "Groups details about mount point";
+ leaf mount-point-addressing-method {
+ type enumeration {
+ enum host-mapping {
+ description
+ "Uses IP and port mapped to the host machine to address the nework function.";
}
- default docker-mapping;
- description
- "Specifies how to address the simulated network function: via the host machine or via docker.";
- }
+ enum docker-mapping {
+ description
+ "Uses Docker IP and port to address the nework function.";
+ }
+ }
+ default "docker-mapping";
description
- "Groups details about mount point";
+ "Specifies how to address the simulated network function: via the host machine or via docker.";
+ }
}
grouping fault-delay-period-g {
- list fault-delay-list {
- key index;
- ordered-by user;
- leaf index {
- type uint16;
- description
- "The index of the list.";
- }
- leaf delay-period {
- type uint16;
- units s;
- description
- "The amount of seconds before the next event.";
- }
- description
- "The list defining the pattern for generating events.";
- }
+ description
+ "For reusing the same fault-delay-period.";
+ list fault-delay-list {
+ key "index";
+ ordered-by user;
description
- "For reusing the same fault-delay-period.";
+ "The list defining the pattern for generating events.";
+ leaf index {
+ type uint16;
+ description
+ "The index of the list.";
+ }
+ leaf delay-period {
+ type uint16;
+ units "s";
+ description
+ "The amount of seconds before the next event.";
+ }
+ }
}
grouping fault-count-g {
- container fault-count {
- if-feature faults-status;
- config false;
- leaf normal {
- type uint32;
- description
- "Number of normal (non-alarmed) events.";
- }
- leaf warning {
- type uint32;
- description
- "Number of warning events.";
- }
- leaf minor {
- type uint32;
- description
- "Number of minor events.";
- }
- leaf major {
- type uint32;
- description
- "Number of major events.";
- }
- leaf critical {
- type uint32;
- description
- "Number of critical events.";
- }
- description
- "Container which groups the number of fault events, by severity.";
- }
+ description
+ "Grouping for counting the fault events, grouped by severity.";
+ container fault-count {
+ if-feature "faults-status";
+ config false;
description
- "Grouping for counting the fault events, grouped by severity.";
+ "Container which groups the number of fault events, by severity.";
+ leaf normal {
+ type uint32;
+ description
+ "Number of normal (non-alarmed) events.";
+ }
+ leaf warning {
+ type uint32;
+ description
+ "Number of warning events.";
+ }
+ leaf minor {
+ type uint32;
+ description
+ "Number of minor events.";
+ }
+ leaf major {
+ type uint32;
+ description
+ "Number of major events.";
+ }
+ leaf critical {
+ type uint32;
+ description
+ "Number of critical events.";
+ }
+ }
}
grouping faults-g {
+ description
+ "Grouping for fault generation";
container fault-generation {
- uses fault-delay-period-g;
- uses fault-count-g;
+ presence "Enables fault generation configuration.";
description
"Groups the fault generation configuration and status.";
+ uses fault-delay-period-g;
+ uses fault-count-g;
}
- description
- "Grouping for fault generation";
}
grouping faults-enabled-g {
- leaf faults-enabled {
- type boolean;
- description
- "For enabling the fault generation.";
- }
description
"Groups the enabling of faults.";
+ leaf faults-enabled {
+ type boolean;
+ description
+ "For enabling the fault generation.";
+ }
}
grouping netconf-config-g {
+ description
+ "Groups the configuration and status of NETCONF Fault notifications.";
container netconf {
- uses faults-enabled-g;
- leaf call-home {
- type boolean;
- description
- "For enabling the NETCONF Call Home feature. If set to 'true', each simulated device, when booting up, will try to Call Home to the SDN Controller.";
- }
- description
+ presence "Enables NETCONF configuration.";
+ description
"Container for describing the NETCONF details.";
+ uses faults-enabled-g;
+ leaf call-home {
+ type boolean;
+ description
+ "For enabling the NETCONF Call Home feature. If set to 'true', each simulated device, when booting up, will try to Call Home to the SDN Controller.";
+ }
}
- description
- "Groups the configuration and status of NETCONF Fault notifications.";
}
grouping ves-config-g {
- container ves {
- uses faults-enabled-g;
- leaf pnf-registration {
- type boolean;
- description
- "For enabling the PNF Registration messages. If set to 'true', each simulated device, when booting up, will send a PNF Registration message to the VES Collector.";
- }
- leaf heartbeat-period {
- type uint16;
- description
- "The number of seconds between VES heartbeat messages.";
- }
- description
- "Container for describing the VES details.";
- }
description
"Groups the configuration and status of VES Fault notifications.";
+ container ves {
+ presence "Enables VES configuration.";
+ description
+ "Container for describing the VES details.";
+ uses faults-enabled-g;
+ leaf pnf-registration {
+ type boolean;
+ description
+ "For enabling the PNF Registration messages. If set to 'true', each simulated device, when booting up, will send a PNF Registration message to the VES Collector.";
+ }
+ leaf heartbeat-period {
+ type uint16;
+ description
+ "The number of seconds between VES heartbeat messages.";
+ }
+ }
}
grouping controller-g {
- leaf controller-ip {
- type inet:ip-address;
- description
- "The IP address of the SDN Controller.";
- }
- leaf controller-port {
- type inet:port-number;
- description
- "The port exposed by the SDN Controller.";
- }
- leaf controller-netconf-call-home-port {
- type inet:port-number;
- description
- "The port exposed by the SDN Controller for NETCONF Call Home.";
- }
- leaf controller-username {
- type string;
+ description
+ "Groups information about the SDN Controller.";
+ leaf controller-protocol {
+ type enumeration {
+ enum http {
description
- "The username for accessing the SDN Controller.";
- }
- leaf controller-password {
- type string;
+ "HTTP protocol will be used to connect to the VES Collector.";
+ }
+ enum https {
description
- "The password for accessing the SDN Controller.";
+ "HTTPS protocol will be used to connect to the VES Collector.";
+ }
}
+ default "https";
+ description
+ "The protocol used for communication with the SDN Controller.";
+ }
+ leaf controller-ip {
+ type inet:ip-address;
+ description
+ "The IP address of the SDN Controller.";
+ }
+ leaf controller-port {
+ type inet:port-number;
+ description
+ "The port exposed by the SDN Controller.";
+ }
+ leaf controller-netconf-call-home-port {
+ type inet:port-number;
description
- "Groups information about the SDN Controller.";
+ "The port exposed by the SDN Controller for NETCONF Call Home.";
+ }
+ leaf controller-username {
+ type string;
+ description
+ "The username for accessing the SDN Controller.";
+ }
+ leaf controller-password {
+ type string;
+ description
+ "The password for accessing the SDN Controller.";
+ }
}
grouping ves-endpoint-g {
- leaf ves-endpoint-protocol {
- type enumeration {
- enum http {
- description
- "HTTP protocol will be used to connect to the VES Collector.";
- }
- enum https {
- description
- "HTTPS protocol will be used to connect to the VES Collector.";
- }
- }
- default https;
- description
- "The protocol (HTTP / HTTPS) to be used to address the VES Collector.";
- }
- leaf ves-endpoint-ip {
- type inet:ip-address;
- description
- "The IP address of the VES Collector.";
- }
- leaf ves-endpoint-port {
- type inet:port-number;
- description
- "The port exposed by the VES Collector.";
- }
- leaf ves-endpoint-auth-method {
- type authentication-method-type;
- default "no-auth";
- description
- "The type of the authentication to be used with the VES Collector.";
- }
- leaf ves-endpoint-username {
- type string;
+ description
+ "Groups information about the VES Collector.";
+ leaf ves-endpoint-protocol {
+ type enumeration {
+ enum http {
description
- "The username for accessing the VES Collector.";
- }
- leaf ves-endpoint-password {
- type string;
+ "HTTP protocol will be used to connect to the VES Collector.";
+ }
+ enum https {
description
- "The password for accessing the VES Collector.";
- }
- leaf ves-endpoint-certificate {
- type string;
- description
- "The Certificate to be used to authenticate to the VES Collector.";
+ "HTTPS protocol will be used to connect to the VES Collector.";
+ }
}
+ default "https";
+ description
+ "The protocol (HTTP / HTTPS) to be used to address the VES Collector.";
+ }
+ leaf ves-endpoint-ip {
+ type inet:ip-address;
+ description
+ "The IP address of the VES Collector.";
+ }
+ leaf ves-endpoint-port {
+ type inet:port-number;
+ description
+ "The port exposed by the VES Collector.";
+ }
+ leaf ves-endpoint-auth-method {
+ type authentication-method-type;
+ default "no-auth";
+ description
+ "The type of the authentication to be used with the VES Collector.";
+ }
+ leaf ves-endpoint-username {
+ type string;
+ description
+ "The username for accessing the VES Collector.";
+ }
+ leaf ves-endpoint-password {
+ type string;
+ description
+ "The password for accessing the VES Collector.";
+ }
+ leaf ves-endpoint-certificate {
+ type string;
description
- "Groups information about the VES Collector.";
+ "The Certificate to be used to authenticate to the VES Collector.";
+ }
}
grouping rpc-status-g {
- leaf status {
- type enumeration {
- enum SUCCESS {
- description
- "The RPC was successfully invoked.";
- }
- enum ERROR {
- description
- "An error was encountered when invoking the RPC.";
- }
- }
- mandatory true;
- description
- "The status of the RPC.";
+ description
+ "RPC output grouping.";
+ leaf status {
+ type enumeration {
+ enum SUCCESS {
+ description
+ "The RPC was successfully invoked.";
+ }
+ enum ERROR {
+ description
+ "An error was encountered when invoking the RPC.";
+ }
}
+ mandatory true;
description
- "RPC output grouping.";
+ "The status of the RPC.";
+ }
}
-
-} //end module \ No newline at end of file
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang
index 08214d52c..5f7bc14cd 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang
@@ -6,23 +6,45 @@ module nts-manager {
import ietf-inet-types {
prefix inet;
}
-
import nts-common {
prefix ntsc;
- revision-date 2020-11-20;
}
organization
"O-RAN-SC";
contact
" Web: <https://wiki.o-ran-sc.org/display/SIM/SIM>
- Editors:
+ Editors:
Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
description
"This module contains YANG definitions for the Network Topology Simulator - Manager.";
+ revision 2021-03-26 {
+ description
+ "Added NTS_PROTOCOL_TYPE_BASE identities and changed instance/networking container; also added multi-base port support.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+ revision 2021-02-15 {
+ description
+ "Added notifications for sending feedback.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+ revision 2021-01-20 {
+ description
+ "Added available-network-functions.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+ revision 2020-11-30 {
+ description
+ "Cleared revision for nts-common import.";
+ reference
+ "O-RAN-SC SIM project";
+ }
revision 2020-10-06 {
description
"Initial revision for the Network Topology Simulator - Next Generation";
@@ -30,6 +52,47 @@ module nts-manager {
"O-RAN-SC SIM project";
}
+ identity NTS_PROTOCOL_TYPE_BASE {
+ description
+ "Base identity for protocol.";
+ }
+
+ identity NTS_PROTOCOL_TYPE_NETCONF_SSH {
+ base NTS_PROTOCOL_TYPE_BASE;
+ description
+ "Identity for NETCONF SSH protocol.";
+ }
+
+ identity NTS_PROTOCOL_TYPE_NETCONF_TLS {
+ base NTS_PROTOCOL_TYPE_BASE;
+ description
+ "Identity for NETCONF TLS protocol.";
+ }
+
+ identity NTS_PROTOCOL_TYPE_FTP {
+ base NTS_PROTOCOL_TYPE_BASE;
+ description
+ "Identity for FTP protocol.";
+ }
+
+ identity NTS_PROTOCOL_TYPE_SFTP {
+ base NTS_PROTOCOL_TYPE_BASE;
+ description
+ "Identity for SFTP protocol.";
+ }
+
+ identity NTS_PROTOCOL_TYPE_HTTP {
+ base NTS_PROTOCOL_TYPE_BASE;
+ description
+ "Identity for HTTP protocol.";
+ }
+
+ identity NTS_PROTOCOL_TYPE_HTTPS {
+ base NTS_PROTOCOL_TYPE_BASE;
+ description
+ "Identity for HTTPS protocol.";
+ }
+
typedef percent {
type decimal64 {
fraction-digits 2;
@@ -40,163 +103,301 @@ module nts-manager {
}
grouping instance-g {
- leaf name {
- type string;
+ description
+ "An instance of a network function which is running. The equivalent on the host machine is a docker container.";
+ leaf name {
+ type string;
+ description
+ "The name of the running instance. It is the same as the docker container name which exposes this network function.";
+ }
+ leaf is-mounted {
+ type boolean;
+ description
+ "Whether the instance is mounted or not to a controller.";
+ }
+ container networking {
+ description
+ "Groups the details about networking information.";
+ leaf docker-ip {
+ type inet:ip-address;
description
- "The name of the running instance. It is the same as the docker container name which exposes this network function.";
+ "The IP address of the docker container implementing the network function instance.";
}
- container networking {
- leaf docker-ip {
- type inet:ip-address;
- description
- "The IP address of the docker container implementing the network function instance.";
- }
- leaf-list docker-port {
- type inet:port-number;
- description
- "The ports which are exposed inside the docker container implementing the network function instance.";
- }
- leaf host-ip {
- type inet:ip-address;
- description
- "The Host machine IP address pointing to the docker container implementing the network function instance.";
- }
- leaf-list host-port {
- type inet:port-number;
- description
- "The Host machine ports mapped to the docker container implementing the network function instance.";
- }
+ list docker-ports {
+ key "port";
+ description
+ "The ports which are exposed inside the docker container implementing the network function instance.";
+ leaf port {
+ type inet:port-number;
description
- "Groups the details about networking information.";
- }
- description
- "An instance of a network function which is running. The equivalent on the host machine is a docker container.";
- }
- grouping network-function-g {
- leaf function-type {
+ "Port number.";
+ }
+ leaf protocol {
type identityref {
- base ntsc:NTS_FUNCTION_TYPE_BASE;
+ base NTS_PROTOCOL_TYPE_BASE;
}
- description "Type of network function to be simulated.";
- }
- leaf started-instances {
- type uint16;
- mandatory true;
description
- "How many instances of this type are started.";
+ "Protocol attached to current port.";
+ }
}
- leaf mounted-instances {
- type uint16;
- must '. <= ../started-instances' {
- error-message
- "The number of mounted instances cannot be greater that the number of started instances.";
- }
- mandatory true;
- description
- "How many instances of this type are mounted in the SDN Controller.";
+ leaf host-ip {
+ type inet:ip-address;
+ description
+ "The Host machine IP address pointing to the docker container implementing the network function instance.";
}
-
- uses ntsc:mount-point-details-g;
-
- leaf docker-instance-name {
- type string;
- mandatory true;
+ list host-ports {
+ key "port";
+ description
+ "The Host machine ports mapped to the docker container implementing the network function instance.";
+ leaf port {
+ type inet:port-number;
description
- "The prefix of each docker container being started.";
- }
-
- leaf docker-version-tag {
- type string;
- mandatory true;
+ "Port number.";
+ }
+ leaf protocol {
+ type identityref {
+ base NTS_PROTOCOL_TYPE_BASE;
+ }
description
- "The version tag of the docker image to be started.";
+ "Protocol attached to current port.";
+ }
}
+ }
+ }
- leaf docker-repository {
- type string;
- mandatory true;
- description
- "The prefix containing the docker repository information, if needed.";
- }
- uses ntsc:faults-g;
- uses ntsc:netconf-config-g;
- uses ntsc:ves-config-g;
- container instances {
- config false;
- list instance {
- key "name";
- uses ntsc:mount-point-details-g;
- uses instance-g;
- description
- "Describes a running instance.";
- }
- description
- "Groups details about instances which are running.";
+ grouping network-function-g {
+ description
+ "Contains all the details of a simulated device.";
+ leaf function-type {
+ type identityref {
+ base ntsc:NTS_FUNCTION_TYPE_BASE;
+ }
+ description
+ "Type of network function to be simulated.";
+ }
+ leaf started-instances {
+ type uint16;
+ mandatory true;
+ description
+ "How many instances of this type are started.";
+ }
+ leaf mounted-instances {
+ type uint16;
+ must '. <= ../started-instances' {
+ error-message "The number of mounted instances cannot be greater that the number of started instances.";
}
+ mandatory true;
+ description
+ "How many instances of this type are mounted in the SDN Controller.";
+ }
+ uses ntsc:mount-point-details-g;
+ leaf docker-instance-name {
+ type string;
+ mandatory true;
+ description
+ "The prefix of each docker container being started.";
+ }
+ leaf docker-version-tag {
+ type string;
+ mandatory true;
description
- "Contains all the details of a simulated device.";
+ "The version tag of the docker image to be started.";
+ }
+ leaf docker-repository {
+ type string;
+ mandatory true;
+ description
+ "The prefix containing the docker repository information, if needed.";
+ }
+ uses ntsc:faults-g;
+ uses ntsc:netconf-config-g;
+ uses ntsc:ves-config-g;
+ container instances {
+ config false;
+ description
+ "Groups details about instances which are running.";
+ list instance {
+ key "name";
+ description
+ "Describes a running instance.";
+ uses ntsc:mount-point-details-g;
+ uses instance-g;
+ }
+ }
}
+
grouping simulation-information-g {
- leaf base-port {
- type inet:port-number;
- config false;
- description
- "The base Host machine port from where the simulation can allocate ports incrementally.";
- }
- leaf ssh-connections {
- type uint8;
- config false;
- description
- "The number of SSH Endpoints each network function instance exposes.";
+ description
+ "Groups information about the simulation status.";
+ container ports {
+ config false;
+ description
+ "Contains information on ports used.";
+ leaf netconf-ssh-port {
+ type inet:port-number;
+ description
+ "The base Host machine port from where the simulation can allocate ports incrementally for NETCONF SSH protocol.";
}
- leaf tls-connections {
- type uint8;
- config false;
- description
- "The number of TLS Endpoints each network function instance exposes.";
+ leaf netconf-tls-port {
+ type inet:port-number;
+ description
+ "The base Host machine port from where the simulation can allocate ports incrementally for NETCONF TLS protocol.";
}
- leaf cpu-usage {
- type percent;
- config false;
+ leaf transport-ftp-port {
+ type inet:port-number;
description
- "Specifies the CPU load generated by the simulation.";
+ "The base Host machine port from where the simulation can allocate ports incrementally for FTP protocol.";
}
- leaf mem-usage {
- type uint32;
- config false;
+ leaf transport-sftp-port {
+ type inet:port-number;
description
- "Specifies the RAM in MB used by the simulation.";
+ "The base Host machine port from where the simulation can allocate ports incrementally for SFTP protocol.";
}
+ }
+ leaf ssh-connections {
+ type uint8;
+ config false;
+ description
+ "The number of SSH Endpoints each network function instance exposes.";
+ }
+ leaf tls-connections {
+ type uint8;
+ config false;
+ description
+ "The number of TLS Endpoints each network function instance exposes.";
+ }
+ leaf cpu-usage {
+ type percent;
+ config false;
+ description
+ "Specifies the CPU load generated by the simulation.";
+ }
+ leaf mem-usage {
+ type uint32;
+ config false;
description
- "Groups information about the simulation status.";
+ "Specifies the RAM in MB used by the simulation.";
+ }
+ leaf last-operation-status {
+ type string;
+ config false;
+ description
+ "Specifies the status of the most recent operation performed by the Manager.";
+ }
}
- container simulation {
- container network-functions {
- list network-function {
- key "function-type";
- unique "docker-instance-name";
- uses network-function-g;
- description
- "List containing different simulated network function types and their details.";
- }
- description
- "Container which encompasses all simulated network functions.";
- }
- container sdn-controller {
- uses ntsc:controller-g;
- description
- "Groups details about the SDN Controller.";
+ grouping network-function-image-g {
+ description
+ "Groups details about a NF docker image.";
+ leaf function-type {
+ type identityref {
+ base ntsc:NTS_FUNCTION_TYPE_BASE;
}
- container ves-endpoint {
- uses ntsc:ves-endpoint-g;
- description
- "Groups details about the VES Collector endpoint.";
+ config false;
+ description
+ "Type of network function to be simulated.";
+ }
+ leaf docker-image-name {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "The prefix of each docker container being started.";
+ }
+ leaf docker-version-tag {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "The version tag of the docker image to be started.";
+ }
+ leaf docker-repository {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "The prefix containing the docker repository information, if needed.";
+ }
+ }
+
+ notification instance-changed {
+ description
+ "Sent by the Manager every time something occurs in any of the simulated NF instances.";
+ leaf change-status {
+ type string;
+ mandatory true;
+ description
+ "The status of the change which was executed to the NF instance.";
+ }
+ leaf function-type {
+ type identityref {
+ base ntsc:NTS_FUNCTION_TYPE_BASE;
}
- uses simulation-information-g;
+ mandatory true;
description
- "Root level container which controls the NTS.";
+ "Type of the NF instance.";
+ }
+ uses instance-g {
+ refine "name" {
+ mandatory true;
+ }
+ }
}
+ notification operation-status-changed {
+ description
+ "Sent by the Manager every time a user operation is finished.";
+ leaf operation-status {
+ type string;
+ mandatory true;
+ description
+ "The status of the operation which was executed by the Manager.";
+ }
+ leaf error-message {
+ type string;
+ description
+ "Detailed error message from the Manager.";
+ }
+ }
-} //end module \ No newline at end of file
+ container simulation {
+ presence "Enables simulation configuration.";
+ description
+ "Root level container which controls the NTS.";
+ container available-images {
+ config false;
+ description
+ "Container which encompasses all NF docker images available on the host machine.";
+ list network-function-image {
+ description
+ "List containing available network function docker images and their respective details.";
+ uses network-function-image-g;
+ }
+ }
+ container network-functions {
+ presence "Enables NF configuration.";
+ description
+ "Container which encompasses all simulated network functions.";
+ list network-function {
+ key "function-type";
+ unique "docker-instance-name";
+ description
+ "List containing different simulated network function types and their details.";
+ uses network-function-g;
+ }
+ }
+ container sdn-controller {
+ presence "Enables SDN Controller detail configuration.";
+ description
+ "Groups details about the SDN Controller.";
+ uses ntsc:controller-g;
+ }
+ container ves-endpoint {
+ presence "Enables VES endpoint detail configuration.";
+ description
+ "Groups details about the VES Collector endpoint.";
+ uses ntsc:ves-endpoint-g;
+ }
+ uses simulation-information-g;
+ }
+}