Add supoprt for D release use-case.
[sim/o1-interface.git] / ntsimulator / deploy / base / yang / nts-network-function.yang
index 65fee7b..626038d 100644 (file)
@@ -6,39 +6,57 @@ module nts-network-function {
   import nts-common {
     prefix ntsc;
   }
+  import ietf-yang-types {
+    prefix yang;
+  }
 
   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 - Network Functions";
 
+  revision 2021-03-26 {
+    description
+      "Added info container, and expanted feature control mechanism and status.";
+    reference
+      "O-RAN-SC SIM project";
+  }
+  revision 2021-03-17 {
+    description
+      "Renamed datastore-random-populate RPC to datastore-populate";
+    reference
+      "O-RAN-SC SIM project";
+  }
+  revision 2020-12-11 {
+    description
+      "Added function-type to simulated function.";
+    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-28 {
     description
       "Add RPC for clearing the fault counters.";
     reference
       "O-RAN-SC SIM project";
   }
-
   revision 2020-10-13 {
     description
       "Add RPC for datastore populating and feature control.";
     reference
       "O-RAN-SC SIM project";
   }
-
   revision 2020-09-07 {
     description
       "Initial revision for the Network Topology Simulator - Next Generation";
@@ -46,33 +64,9 @@ module nts-network-function {
       "O-RAN-SC SIM project";
   }
 
-  container simulation {
-      container network-function {
-            uses ntsc:mount-point-details-g;
-            uses ntsc:faults-g;
-            uses ntsc:netconf-config-g;
-            uses ntsc:ves-config-g;
-          description
-            "Container which encompasses the details of the network function.";
-      }
-      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.";
-      }
-      description
-        "Root level container which controls the Network Function.";
-  }
-
-  rpc datastore-random-populate {
+  rpc datastore-populate {
     description
-      "Operation to populate the datastore with random data for all the containing YANG models.";
-    
+      "Operation to populate the datastore with data for all the containing YANG models, based on settings in config.json";
     output {
       uses ntsc:rpc-status-g;
     }
@@ -82,11 +76,15 @@ module nts-network-function {
     description
       "Operation to control the features in a Network Function.";
     input {
-      leaf features {
-          type ntsc:feature-type;
-          mandatory true;
-          description
-            "A bit-wise list with features to be activated.";
+      leaf start-features {
+        type ntsc:feature-type;
+        description
+          "A bit-wise list with features to be activated.";
+      }
+      leaf stop-features {
+        type ntsc:feature-type;
+        description
+          "A bit-wise list with features to be deactivated.";
       }
     }
     output {
@@ -99,25 +97,25 @@ module nts-network-function {
       "Operation to control the features in a Network Function.";
     input {
       leaf notification-format {
-          type enumeration {
-            enum xml {
+        type enumeration {
+          enum xml {
             description
               "The notification string is formatted as XML.";
-            }
-            enum json {
+          }
+          enum json {
             description
               "The notification string is formatted as JSON.";
-            }
           }
-          mandatory true;
-          description
-            "The format of the notification string.";
+        }
+        mandatory true;
+        description
+          "The format of the notification string.";
       }
       leaf notification-object {
-          type string;
-          mandatory true;
-          description
-            "A JSON string containing the notification object to be sent by the device.";
+        type string;
+        mandatory true;
+        description
+          "A JSON string containing the notification object to be sent by the device.";
       }
     }
     output {
@@ -130,10 +128,10 @@ module nts-network-function {
       "Operation to generate a VES  notification from a Network Function.";
     input {
       leaf file-location {
-          type string;
-          mandatory true;
-          description
-            "A string containing the location of the file on the server.";
+        type string;
+        mandatory true;
+        description
+          "A string containing the location of the file on the server.";
       }
     }
     output {
@@ -144,10 +142,56 @@ module nts-network-function {
   rpc clear-fault-counters {
     description
       "Operation to clear the fault counters.";
-
     output {
       uses ntsc:rpc-status-g;
     }
   }
 
-} //end module
\ No newline at end of file
+  container info {
+    config false;
+    description
+      "Information about NTS application and modules.";
+    leaf build-time {
+      type yang:date-and-time;
+      description
+        "Build time of NTS application.";
+    }
+    leaf version {
+      type string;
+      description
+        "NTS version of current network-function.";
+    }
+    leaf started-features {
+      type ntsc:feature-type;
+      description
+        "A bit-wise list with currently started features.";
+    }
+  }
+  container simulation {
+    description
+      "Root level container which controls the Network Function.";
+    container network-function {
+      description
+        "Container which encompasses the details of the network function.";
+      leaf function-type {
+        type string;
+        description
+          "Type of network function that is simulated.";
+      }
+      uses ntsc:mount-point-details-g;
+      uses ntsc:faults-g;
+      uses ntsc:netconf-config-g;
+      uses ntsc:ves-config-g;
+    }
+    container sdn-controller {
+      description
+        "Groups details about the SDN Controller.";
+      uses ntsc:controller-g;
+    }
+    container ves-endpoint {
+      description
+        "Groups details about the VES Collector endpoint.";
+      uses ntsc:ves-endpoint-g;
+    }
+  }
+}