3 namespace "urn:o-ran-sc:params:xml:ns:yang:nts:manager";
6 import ietf-inet-types {
16 " Web: <https://wiki.o-ran-sc.org/display/SIM/SIM>
18 Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
19 Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
20 Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
22 "This module contains YANG definitions for the Network Topology Simulator - Manager.";
26 "Added NTS_PROTOCOL_TYPE_BASE identities and changed instance/networking container; also added multi-base port support.";
28 "O-RAN-SC SIM project";
32 "Added notifications for sending feedback.";
34 "O-RAN-SC SIM project";
38 "Added available-network-functions.";
40 "O-RAN-SC SIM project";
44 "Cleared revision for nts-common import.";
46 "O-RAN-SC SIM project";
50 "Initial revision for the Network Topology Simulator - Next Generation";
52 "O-RAN-SC SIM project";
55 identity NTS_PROTOCOL_TYPE_BASE {
57 "Base identity for protocol.";
60 identity NTS_PROTOCOL_TYPE_NETCONF_SSH {
61 base NTS_PROTOCOL_TYPE_BASE;
63 "Identity for NETCONF SSH protocol.";
66 identity NTS_PROTOCOL_TYPE_NETCONF_TLS {
67 base NTS_PROTOCOL_TYPE_BASE;
69 "Identity for NETCONF TLS protocol.";
72 identity NTS_PROTOCOL_TYPE_FTP {
73 base NTS_PROTOCOL_TYPE_BASE;
75 "Identity for FTP protocol.";
78 identity NTS_PROTOCOL_TYPE_SFTP {
79 base NTS_PROTOCOL_TYPE_BASE;
81 "Identity for SFTP protocol.";
84 identity NTS_PROTOCOL_TYPE_HTTP {
85 base NTS_PROTOCOL_TYPE_BASE;
87 "Identity for HTTP protocol.";
90 identity NTS_PROTOCOL_TYPE_HTTPS {
91 base NTS_PROTOCOL_TYPE_BASE;
93 "Identity for HTTPS protocol.";
105 grouping instance-g {
107 "An instance of a network function which is running. The equivalent on the host machine is a docker container.";
111 "The name of the running instance. It is the same as the docker container name which exposes this network function.";
116 "Whether the instance is mounted or not to a controller.";
118 container networking {
120 "Groups the details about networking information.";
122 type inet:ip-address;
124 "The IP address of the docker container implementing the network function instance.";
129 "The ports which are exposed inside the docker container implementing the network function instance.";
131 type inet:port-number;
137 base NTS_PROTOCOL_TYPE_BASE;
140 "Protocol attached to current port.";
144 type inet:ip-address;
146 "The Host machine IP address pointing to the docker container implementing the network function instance.";
151 "The Host machine ports mapped to the docker container implementing the network function instance.";
153 type inet:port-number;
159 base NTS_PROTOCOL_TYPE_BASE;
162 "Protocol attached to current port.";
168 grouping network-function-g {
170 "Contains all the details of a simulated device.";
173 base ntsc:NTS_FUNCTION_TYPE_BASE;
176 "Type of network function to be simulated.";
178 leaf started-instances {
182 "How many instances of this type are started.";
184 leaf mounted-instances {
186 must '. <= ../started-instances' {
187 error-message "The number of mounted instances cannot be greater that the number of started instances.";
191 "How many instances of this type are mounted in the SDN Controller.";
193 uses ntsc:mount-point-details-g;
194 leaf docker-instance-name {
198 "The prefix of each docker container being started.";
200 leaf docker-version-tag {
204 "The version tag of the docker image to be started.";
206 leaf docker-repository {
210 "The prefix containing the docker repository information, if needed.";
213 uses ntsc:netconf-config-g;
214 uses ntsc:ves-config-g;
215 container instances {
218 "Groups details about instances which are running.";
222 "Describes a running instance.";
223 uses ntsc:mount-point-details-g;
229 grouping simulation-information-g {
231 "Groups information about the simulation status.";
235 "Contains information on ports used.";
236 leaf netconf-ssh-port {
237 type inet:port-number;
239 "The base Host machine port from where the simulation can allocate ports incrementally for NETCONF SSH protocol.";
241 leaf netconf-tls-port {
242 type inet:port-number;
244 "The base Host machine port from where the simulation can allocate ports incrementally for NETCONF TLS protocol.";
246 leaf transport-ftp-port {
247 type inet:port-number;
249 "The base Host machine port from where the simulation can allocate ports incrementally for FTP protocol.";
251 leaf transport-sftp-port {
252 type inet:port-number;
254 "The base Host machine port from where the simulation can allocate ports incrementally for SFTP protocol.";
257 leaf ssh-connections {
261 "The number of SSH Endpoints each network function instance exposes.";
263 leaf tls-connections {
267 "The number of TLS Endpoints each network function instance exposes.";
273 "Specifies the CPU load generated by the simulation.";
279 "Specifies the RAM in MB used by the simulation.";
281 leaf last-operation-status {
285 "Specifies the status of the most recent operation performed by the Manager.";
289 grouping network-function-image-g {
291 "Groups details about a NF docker image.";
294 base ntsc:NTS_FUNCTION_TYPE_BASE;
298 "Type of network function to be simulated.";
300 leaf docker-image-name {
305 "The prefix of each docker container being started.";
307 leaf docker-version-tag {
312 "The version tag of the docker image to be started.";
314 leaf docker-repository {
319 "The prefix containing the docker repository information, if needed.";
323 notification instance-changed {
325 "Sent by the Manager every time something occurs in any of the simulated NF instances.";
330 "The status of the change which was executed to the NF instance.";
334 base ntsc:NTS_FUNCTION_TYPE_BASE;
338 "Type of the NF instance.";
347 notification operation-status-changed {
349 "Sent by the Manager every time a user operation is finished.";
350 leaf operation-status {
354 "The status of the operation which was executed by the Manager.";
359 "Detailed error message from the Manager.";
363 container simulation {
364 presence "Enables simulation configuration.";
366 "Root level container which controls the NTS.";
367 container available-images {
370 "Container which encompasses all NF docker images available on the host machine.";
371 list network-function-image {
373 "List containing available network function docker images and their respective details.";
374 uses network-function-image-g;
377 container network-functions {
378 presence "Enables NF configuration.";
380 "Container which encompasses all simulated network functions.";
381 list network-function {
383 unique "docker-instance-name";
385 "List containing different simulated network function types and their details.";
386 uses network-function-g;
389 container sdn-controller {
390 presence "Enables SDN Controller detail configuration.";
392 "Groups details about the SDN Controller.";
393 uses ntsc:controller-g;
395 container ves-endpoint {
396 presence "Enables VES endpoint detail configuration.";
398 "Groups details about the VES Collector endpoint.";
399 uses ntsc:ves-endpoint-g;
401 uses simulation-information-g;