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 "Moved NTS_PROTOCOL_TYPE_BASE identities from nts-manager.";
25 "O-RAN-SC SIM project";
29 "Added controller-protocol.";
31 "O-RAN-SC SIM project";
35 "Added presence to configuration containers.";
37 "O-RAN-SC SIM project";
41 "Add feature-type for the Web cut through feature.";
43 "O-RAN-SC SIM project";
47 "Add feature-type for the NETCONF Call Home feature.";
49 "O-RAN-SC SIM project";
53 "Add feature-type typedef containing the features that can be activated in the Network Function.";
55 "O-RAN-SC SIM project";
59 "Initial revision for the Network Topology Simulator - Next Generation common types.";
61 "O-RAN-SC SIM project";
64 identity NTS_PROTOCOL_TYPE_BASE {
66 "Base identity for protocol.";
69 identity NTS_PROTOCOL_TYPE_NETCONF_SSH {
70 base NTS_PROTOCOL_TYPE_BASE;
72 "Identity for NETCONF SSH protocol.";
75 identity NTS_PROTOCOL_TYPE_NETCONF_TLS {
76 base NTS_PROTOCOL_TYPE_BASE;
78 "Identity for NETCONF TLS protocol.";
81 identity NTS_PROTOCOL_TYPE_FTP {
82 base NTS_PROTOCOL_TYPE_BASE;
84 "Identity for FTP protocol.";
87 identity NTS_PROTOCOL_TYPE_SFTP {
88 base NTS_PROTOCOL_TYPE_BASE;
90 "Identity for SFTP protocol.";
93 identity NTS_PROTOCOL_TYPE_HTTP {
94 base NTS_PROTOCOL_TYPE_BASE;
96 "Identity for HTTP protocol.";
99 identity NTS_PROTOCOL_TYPE_HTTPS {
100 base NTS_PROTOCOL_TYPE_BASE;
102 "Identity for HTTPS protocol.";
105 feature faults-status {
107 "This means that the server supports reporting back the number of faults that were generated";
110 identity NTS_FUNCTION_TYPE_BASE {
112 "The reference of each identity represents the name of the associated docker image.";
115 typedef authentication-method-type {
119 "no security (http)";
123 "auth by certificate (https)";
127 "auth by basic auth username and password (https)";
129 enum cert-basic-auth {
131 "auth by certificate and basic auth username / password (https)";
135 "The authentication method for VES messaging.";
138 typedef feature-type {
143 "Controls the ves-file-ready feature.";
148 "Controls the ves-heartbeat feature.";
150 bit ves-pnf-registration {
153 "Controls the ves-pnf-registration feature.";
155 bit manual-notification-generation {
158 "Controls the manual notification generation feature.";
160 bit netconf-call-home {
163 "Controls the NETCONF Call Home feature.";
165 bit web-cut-through {
168 "Controls the Web Cut Through feature.";
172 "Describes the features that can be enabled/disabled in the Network Function.";
175 grouping mount-point-details-g {
177 "Groups details about mount point";
178 leaf mount-point-addressing-method {
182 "Uses IP and port mapped to the host machine to address the nework function.";
184 enum docker-mapping {
186 "Uses Docker IP and port to address the nework function.";
189 default "docker-mapping";
191 "Specifies how to address the simulated network function: via the host machine or via docker.";
195 grouping fault-delay-period-g {
197 "For reusing the same fault-delay-period.";
198 list fault-delay-list {
202 "The list defining the pattern for generating events.";
206 "The index of the list.";
212 "The amount of seconds before the next event.";
217 grouping fault-count-g {
219 "Grouping for counting the fault events, grouped by severity.";
220 container fault-count {
221 if-feature "faults-status";
224 "Container which groups the number of fault events, by severity.";
228 "Number of normal (non-alarmed) events.";
233 "Number of warning events.";
238 "Number of minor events.";
243 "Number of major events.";
248 "Number of critical events.";
255 "Grouping for fault generation";
256 container fault-generation {
257 presence "Enables fault generation configuration.";
259 "Groups the fault generation configuration and status.";
260 uses fault-delay-period-g;
265 grouping faults-enabled-g {
267 "Groups the enabling of faults.";
268 leaf faults-enabled {
271 "For enabling the fault generation.";
275 grouping netconf-config-g {
277 "Groups the configuration and status of NETCONF Fault notifications.";
279 presence "Enables NETCONF configuration.";
281 "Container for describing the NETCONF details.";
282 uses faults-enabled-g;
286 "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.";
291 grouping ves-config-g {
293 "Groups the configuration and status of VES Fault notifications.";
295 presence "Enables VES configuration.";
297 "Container for describing the VES details.";
298 uses faults-enabled-g;
299 leaf pnf-registration {
302 "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.";
304 leaf heartbeat-period {
307 "The number of seconds between VES heartbeat messages.";
312 grouping controller-g {
314 "Groups information about the SDN Controller.";
315 leaf controller-protocol {
319 "HTTP protocol will be used to connect to the VES Collector.";
323 "HTTPS protocol will be used to connect to the VES Collector.";
328 "The protocol used for communication with the SDN Controller.";
333 "The IP address of the SDN Controller.";
335 leaf controller-port {
336 type inet:port-number;
338 "The port exposed by the SDN Controller.";
340 leaf controller-netconf-call-home-port {
341 type inet:port-number;
343 "The port exposed by the SDN Controller for NETCONF Call Home.";
345 leaf controller-username {
348 "The username for accessing the SDN Controller.";
350 leaf controller-password {
353 "The password for accessing the SDN Controller.";
357 grouping ves-endpoint-g {
359 "Groups information about the VES Collector.";
360 leaf ves-endpoint-protocol {
364 "HTTP protocol will be used to connect to the VES Collector.";
368 "HTTPS protocol will be used to connect to the VES Collector.";
373 "The protocol (HTTP / HTTPS) to be used to address the VES Collector.";
375 leaf ves-endpoint-ip {
378 "The IP address of the VES Collector.";
380 leaf ves-endpoint-port {
381 type inet:port-number;
383 "The port exposed by the VES Collector.";
385 leaf ves-endpoint-auth-method {
386 type authentication-method-type;
389 "The type of the authentication to be used with the VES Collector.";
391 leaf ves-endpoint-username {
394 "The username for accessing the VES Collector.";
396 leaf ves-endpoint-password {
399 "The password for accessing the VES Collector.";
401 leaf ves-endpoint-certificate {
404 "The Certificate to be used to authenticate to the VES Collector.";
408 grouping rpc-status-g {
410 "RPC output grouping.";
415 "The RPC was successfully invoked.";
419 "An error was encountered when invoking the RPC.";
424 "The status of the RPC.";