3 namespace "urn:o-ran-sc:params:xml:ns:yang:nts:common";
6 import ietf-inet-types {
13 " Web: <https://wiki.o-ran-sc.org/display/SIM/SIM>
15 Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
16 Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
17 Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
19 "This module contains common yang definitions YANG definitions for the Network Topology Simulator.";
23 "Added O1 pnfRegistration standard defined capabilities.";
25 "O-RAN-SC SIM project";
29 "Added separate SDN Controller IP address for NETCONF Call Home.";
31 "O-RAN-SC SIM project";
35 "Moved NTS_PROTOCOL_TYPE_BASE identities from nts-manager.";
37 "O-RAN-SC SIM project";
41 "Added controller-protocol.";
43 "O-RAN-SC SIM project";
47 "Added presence to configuration containers.";
49 "O-RAN-SC SIM project";
53 "Add feature-type for the Web cut through feature.";
55 "O-RAN-SC SIM project";
59 "Add feature-type for the NETCONF Call Home feature.";
61 "O-RAN-SC SIM project";
65 "Add feature-type typedef containing the features that can be activated in the Network Function.";
67 "O-RAN-SC SIM project";
71 "Initial revision for the Network Topology Simulator - Next Generation common types.";
73 "O-RAN-SC SIM project";
76 identity NTS_PROTOCOL_TYPE_BASE {
78 "Base identity for protocol.";
81 identity NTS_PROTOCOL_TYPE_NETCONF_SSH {
82 base NTS_PROTOCOL_TYPE_BASE;
84 "Identity for NETCONF SSH protocol.";
87 identity NTS_PROTOCOL_TYPE_NETCONF_TLS {
88 base NTS_PROTOCOL_TYPE_BASE;
90 "Identity for NETCONF TLS protocol.";
93 identity NTS_PROTOCOL_TYPE_FTP {
94 base NTS_PROTOCOL_TYPE_BASE;
96 "Identity for FTP protocol.";
99 identity NTS_PROTOCOL_TYPE_SFTP {
100 base NTS_PROTOCOL_TYPE_BASE;
102 "Identity for SFTP protocol.";
105 identity NTS_PROTOCOL_TYPE_HTTP {
106 base NTS_PROTOCOL_TYPE_BASE;
108 "Identity for HTTP protocol.";
111 identity NTS_PROTOCOL_TYPE_HTTPS {
112 base NTS_PROTOCOL_TYPE_BASE;
114 "Identity for HTTPS protocol.";
117 feature faults-status {
119 "This means that the server supports reporting back the number of faults that were generated";
122 identity NTS_FUNCTION_TYPE_BASE {
124 "The reference of each identity represents the name of the associated docker image.";
127 typedef authentication-method-type {
131 "no security (http)";
135 "auth by certificate (https)";
139 "auth by basic auth username and password (https)";
141 enum cert-basic-auth {
143 "auth by certificate and basic auth username / password (https)";
147 "The authentication method for VES messaging.";
150 typedef feature-type {
155 "Controls the ves-file-ready feature.";
160 "Controls the ves-heartbeat feature.";
162 bit ves-pnf-registration {
165 "Controls the ves-pnf-registration feature.";
167 bit manual-notification-generation {
170 "Controls the manual notification generation feature.";
172 bit netconf-call-home {
175 "Controls the NETCONF Call Home feature.";
177 bit web-cut-through {
180 "Controls the Web Cut Through feature.";
182 bit ves-o1-pnf-registration {
185 "Controls the ves-o1-pnf-registration (stndDefined) feature.";
189 "Describes the features that can be enabled/disabled in the Network Function.";
192 grouping mount-point-details-g {
194 "Groups details about mount point";
195 leaf mount-point-addressing-method {
199 "Uses IP and port mapped to the host machine to address the nework function.";
201 enum docker-mapping {
203 "Uses Docker IP and port to address the nework function.";
206 default "docker-mapping";
208 "Specifies how to address the simulated network function: via the host machine or via docker.";
212 grouping fault-delay-period-g {
214 "For reusing the same fault-delay-period.";
215 list fault-delay-list {
219 "The list defining the pattern for generating events.";
223 "The index of the list.";
229 "The amount of seconds before the next event.";
234 grouping fault-count-g {
236 "Grouping for counting the fault events, grouped by severity.";
237 container fault-count {
238 if-feature "faults-status";
241 "Container which groups the number of fault events, by severity.";
245 "Number of normal (non-alarmed) events.";
250 "Number of warning events.";
255 "Number of minor events.";
260 "Number of major events.";
265 "Number of critical events.";
272 "Grouping for fault generation";
273 container fault-generation {
274 presence "Enables fault generation configuration.";
276 "Groups the fault generation configuration and status.";
277 uses fault-delay-period-g;
282 grouping faults-enabled-g {
284 "Groups the enabling of faults.";
285 leaf faults-enabled {
288 "For enabling the fault generation.";
292 grouping netconf-config-g {
294 "Groups the configuration and status of NETCONF Fault notifications.";
296 presence "Enables NETCONF configuration.";
298 "Container for describing the NETCONF details.";
299 uses faults-enabled-g;
303 "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.";
308 grouping ves-config-g {
310 "Groups the configuration and status of VES Fault notifications.";
312 presence "Enables VES configuration.";
314 "Container for describing the VES details.";
315 uses faults-enabled-g;
316 leaf pnf-registration {
319 "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.";
321 leaf o1-pnf-registration {
324 "For enabling the O1 PNF Registration (stndDefined) messages. If set to 'true', each simulated device, when booting up, will send a O1 PNF Registration (stndDefined) message to the VES Collector.";
326 leaf heartbeat-period {
329 "The number of seconds between VES heartbeat messages.";
334 grouping controller-g {
336 "Groups information about the SDN Controller.";
337 leaf controller-protocol {
341 "HTTP protocol will be used to connect to the VES Collector.";
345 "HTTPS protocol will be used to connect to the VES Collector.";
350 "The protocol used for communication with the SDN Controller.";
355 "The IP address of the SDN Controller.";
357 leaf controller-port {
358 type inet:port-number;
360 "The port exposed by the SDN Controller.";
362 leaf controller-netconf-call-home-ip {
365 "The IP address of the SDN Controller for NETCONF Call Home.";
367 leaf controller-netconf-call-home-port {
368 type inet:port-number;
370 "The port exposed by the SDN Controller for NETCONF Call Home.";
372 leaf controller-username {
375 "The username for accessing the SDN Controller.";
377 leaf controller-password {
380 "The password for accessing the SDN Controller.";
384 grouping ves-endpoint-g {
386 "Groups information about the VES Collector.";
387 leaf ves-endpoint-protocol {
391 "HTTP protocol will be used to connect to the VES Collector.";
395 "HTTPS protocol will be used to connect to the VES Collector.";
400 "The protocol (HTTP / HTTPS) to be used to address the VES Collector.";
402 leaf ves-endpoint-ip {
405 "The IP address of the VES Collector.";
407 leaf ves-endpoint-port {
408 type inet:port-number;
410 "The port exposed by the VES Collector.";
412 leaf ves-endpoint-auth-method {
413 type authentication-method-type;
416 "The type of the authentication to be used with the VES Collector.";
418 leaf ves-endpoint-username {
421 "The username for accessing the VES Collector.";
423 leaf ves-endpoint-password {
426 "The password for accessing the VES Collector.";
428 leaf ves-endpoint-certificate {
431 "The Certificate to be used to authenticate to the VES Collector.";
435 grouping rpc-status-g {
437 "RPC output grouping.";
442 "The RPC was successfully invoked.";
446 "An error was encountered when invoking the RPC.";
451 "The status of the RPC.";