diff options
Diffstat (limited to 'sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang')
-rw-r--r-- | sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang | 465 |
1 files changed, 333 insertions, 132 deletions
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; + } +} |