X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=ntsimulator%2Fdeploy%2Fnts-manager%2Fyang%2Fnts-manager.yang;fp=ntsimulator%2Fdeploy%2Fnts-manager%2Fyang%2Fnts-manager.yang;h=36691b694ee3871eaf442a1095226070b8aa6af7;hb=f1d5c9198acde7a7ce296490087cad37e008f688;hp=0000000000000000000000000000000000000000;hpb=f2d8f1002fa93848c80a88e5658db4816cba3020;p=sim%2Fo1-interface.git diff --git a/ntsimulator/deploy/nts-manager/yang/nts-manager.yang b/ntsimulator/deploy/nts-manager/yang/nts-manager.yang new file mode 100644 index 0000000..36691b6 --- /dev/null +++ b/ntsimulator/deploy/nts-manager/yang/nts-manager.yang @@ -0,0 +1,202 @@ +module nts-manager { + yang-version 1.1; + namespace "urn:o-ran-sc:params:xml:ns:yang:nts:manager"; + prefix nts-mng; + + import ietf-inet-types { + prefix inet; + } + + import nts-common { + prefix ntsc; + revision-date 2020-10-22; + } + + organization + "O-RAN-SC"; + contact + " Web: + Editors: + Alex Stancu + Adrian Lita + Martin Skorupski "; + description + "This module contains YANG definitions for the Network Topology Simulator - Manager."; + + revision 2020-10-06 { + description + "Initial revision for the Network Topology Simulator - Next Generation"; + reference + "O-RAN-SC SIM project"; + } + + typedef percent { + type decimal64 { + fraction-digits 2; + range "0 .. 100"; + } + description + "Percentage"; + } + + grouping instance-g { + 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."; + } + 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."; + } + 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 { + 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 + "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; + 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."; + } + description + "Contains all the details of a simulated device."; + } + 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."; + } + 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."; + } + description + "Groups information about the simulation status."; + } + + 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."; + } + container ves-endpoint { + uses ntsc:ves-endpoint-g; + description + "Groups details about the VES Collector endpoint."; + } + uses simulation-information-g; + description + "Root level container which controls the NTS."; + } + + +} //end module \ No newline at end of file