--- /dev/null
+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)";
+ }
+ }
+ }
+}