import ietf-inet-types {
prefix inet;
}
+
import nts-common {
prefix ntsc;
}
description
"This module contains YANG definitions for the Network Topology Simulator - Manager.";
+ revision 2021-06-08 {
+ description
+ "Moved NTS_PROTOCOL_TYPE_BASE identities to nts-common.";
+ reference
+ "O-RAN-SC SIM project";
+ }
revision 2021-03-26 {
description
"Added NTS_PROTOCOL_TYPE_BASE identities and changed instance/networking container; also added multi-base port support.";
"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;
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.";
description
"The IP address of the docker container implementing the network function instance.";
}
+
list docker-ports {
key "port";
description
description
"Port number.";
}
+
leaf protocol {
type identityref {
- base NTS_PROTOCOL_TYPE_BASE;
+ base ntsc:NTS_PROTOCOL_TYPE_BASE;
}
description
"Protocol attached to current port.";
}
}
+
leaf host-ip {
type inet:ip-address;
description
"The Host machine IP address pointing to the docker container implementing the network function instance.";
}
+
list host-ports {
key "port";
description
description
"Port number.";
}
+
leaf protocol {
type identityref {
- base NTS_PROTOCOL_TYPE_BASE;
+ base ntsc:NTS_PROTOCOL_TYPE_BASE;
}
description
"Protocol attached to current port.";
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.";
+ 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
"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
description
"Describes a running instance.";
uses ntsc:mount-point-details-g;
+
uses instance-g;
}
}
description
"The base Host machine port from where the simulation can allocate ports incrementally for NETCONF SSH protocol.";
}
+
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 transport-ftp-port {
type inet:port-number;
description
"The base Host machine port from where the simulation can allocate ports incrementally for FTP protocol.";
}
+
leaf transport-sftp-port {
type inet:port-number;
description
"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
"Specifies the RAM in MB used by the simulation.";
}
+
leaf last-operation-status {
type string;
config false;
description
"Type of network function to be simulated.";
}
+
leaf docker-image-name {
type string;
config false;
description
"The prefix of each docker container being started.";
}
+
leaf docker-version-tag {
type string;
config false;
description
"The version tag of the docker image to be started.";
}
+
leaf docker-repository {
type string;
config false;
}
}
- 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;
- }
- mandatory true;
- description
- "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.";
- }
- }
-
container simulation {
presence "Enables simulation configuration.";
description
uses network-function-image-g;
}
}
+
container network-functions {
presence "Enables NF configuration.";
description
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;
}
-}
+
+ 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;
+ }
+ mandatory true;
+ description
+ "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.";
+ }
+ }
+}
\ No newline at end of file