Added notification benchmark (ntfbenchmark) and rpc benchmark models
[controller.git] / benchmark / api / src / main / yang / ntfbenchmark.yang
diff --git a/benchmark/api/src/main/yang/ntfbenchmark.yang b/benchmark/api/src/main/yang/ntfbenchmark.yang
new file mode 100644 (file)
index 0000000..c1619b6
--- /dev/null
@@ -0,0 +1,128 @@
+module ntfbenchmark {
+    yang-version 1;
+    namespace "urn:opendaylight:params:xml:ns:yang:ntfbenchmark";
+    prefix "ntfbenchmark";
+
+    revision "2015-01-05" {
+        description "Initial revision of ntfbenchmark model";
+    }
+
+    rpc test-status {
+        description
+          "Get test status";
+        output {
+            leaf execStatus {
+                type enumeration {
+                    enum "idle" {
+                        value 1;
+                    }
+                    enum "executing" {
+                        value 2;
+                    }
+                }
+            }
+            leaf ntf-cnt {
+                type uint32;
+                default 0;
+                description
+                  "The number of times the notification benchmark test was invoked";
+            }
+        }
+    }
+
+    rpc start-test {
+        description
+            "Start a new RPC Benchmark test";
+
+        input {
+            leaf producer-type {
+                mandatory true;
+                type enumeration {
+                    enum "BLOCKING" {
+                        value 1;
+                        description
+                          "The producer waits for a free slot in RPC Broker's ring buffer";
+                    }
+                    enum "DROPPING" {
+                        value 2;
+                        description
+                          "The producer drops a notification if there is no free slot in RPC Broker's ring buffer";
+                    }
+                }
+                description
+                    "RPC type and client type to use in the test";
+            }
+            leaf producers {
+                type uint32;
+                default 1;
+                description
+                  "Number of notification producers (test client threads) to start";
+            }
+            leaf listeners {
+                type uint32;
+                default 1;
+                description
+                  "Number of notification listener instances";
+            }
+
+            leaf payload-size {
+                type uint32;
+                default 1;
+                description
+                  "Notification payload size: number of elements in the list of integers that is the notification payload";
+            }
+            leaf iterations {
+                type uint32;
+                default 1;
+                description
+                  "Number of notifications to generate in each client thread";
+            }
+
+         }
+
+        output {
+            leaf listener-ok {
+                type uint32;
+                default 0;
+                description
+                  "Number of successfully creceived notifications by all listeners";
+            }
+            leaf producer-ok {
+                type uint32;
+                default 0;
+                description
+                  "Number of successfully generated notifications in all producer clients";
+            }
+            leaf producer-error {
+                type uint32;
+                default 0;
+                description
+                  "Number of errors encoutered during notification generation at all producers";
+            }
+               leaf producer-elapsed-time {
+                type uint32;
+                default 0;
+                description
+                  "The time it took for all producers to finish (i.e. to send their notifications), in milliseconds";
+            }
+               leaf listener-elapsed-time {
+                type uint32;
+                default 0;
+                description
+                  "The time it took for all listeners to finish (i.e. to receive their notifications), in milliseconds";
+            }
+               leaf producer-rate {
+                type uint32;
+                default 0;
+                description
+                  "RPC rate (Number of RPCs/sec)";
+            }
+               leaf listener-rate {
+                type uint32;
+                default 0;
+                description
+                  "RPC rate (Number of RPCs/sec)";
+            }
+           }
+    }
+}