b8a481197d58b8c9957207ca1dfeb09a54e5660d
[controller.git] / benchmark / api / src / main / yang / ntfbenchmark.yang
1 module ntfbenchmark {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:ntfbenchmark";
4     prefix "ntfbenchmark";
5
6     description
7         "Copyright © 2015, 2018 Cisco Systems, Inc. and others.
8
9         This program and the accompanying materials are made available under the
10         terms of the Eclipse Public License v1.0 which accompanies this distribution,
11         and is available at http://www.eclipse.org/legal/epl-v10.html";
12
13     revision "2015-01-05" {
14         description "Initial revision of ntfbenchmark model";
15     }
16
17     rpc test-status {
18         description
19           "Get test status";
20         output {
21             leaf execStatus {
22                 type enumeration {
23                     enum "idle" {
24                         value 1;
25                     }
26                     enum "executing" {
27                         value 2;
28                     }
29                 }
30             }
31             leaf ntf-cnt {
32                 type uint32;
33                 default 0;
34                 description
35                   "The number of times the notification benchmark test was invoked";
36             }
37         }
38     }
39
40     rpc start-test {
41         description
42             "Start a new RPC Benchmark test";
43
44         input {
45             leaf producer-type {
46                 mandatory true;
47                 type enumeration {
48                     enum "BLOCKING" {
49                         value 1;
50                         description
51                           "The producer waits for a free slot in RPC Broker's ring buffer";
52                     }
53                     enum "DROPPING" {
54                         value 2;
55                         description
56                           "The producer drops a notification if there is no free slot in RPC Broker's ring buffer";
57                     }
58                 }
59                 description
60                     "RPC type and client type to use in the test";
61             }
62             leaf producers {
63                 type uint32;
64                 default 1;
65                 description
66                   "Number of notification producers (test client threads) to start";
67             }
68             leaf listeners {
69                 type uint32;
70                 default 1;
71                 description
72                   "Number of notification listener instances";
73             }
74
75             leaf payload-size {
76                 type uint32;
77                 default 1;
78                 description
79                   "Notification payload size: number of elements in the list of integers that is the notification payload";
80             }
81             leaf iterations {
82                 type uint32;
83                 default 1;
84                 description
85                   "Number of notifications to generate in each client thread";
86             }
87
88          }
89
90         output {
91             leaf listener-ok {
92                 type uint32;
93                 default 0;
94                 description
95                   "Number of successfully creceived notifications by all listeners";
96             }
97             leaf producer-ok {
98                 type uint32;
99                 default 0;
100                 description
101                   "Number of successfully generated notifications in all producer clients";
102             }
103             leaf producer-error {
104                 type uint32;
105                 default 0;
106                 description
107                   "Number of errors encoutered during notification generation at all producers";
108             }
109                leaf producer-elapsed-time {
110                 type uint32;
111                 default 0;
112                 description
113                   "The time it took for all producers to finish (i.e. to send their notifications), in milliseconds";
114             }
115                leaf listener-elapsed-time {
116                 type uint32;
117                 default 0;
118                 description
119                   "The time it took for all listeners to finish (i.e. to receive their notifications), in milliseconds";
120             }
121                leaf producer-rate {
122                 type uint32;
123                 default 0;
124                 description
125                   "RPC rate (Number of RPCs/sec)";
126             }
127                leaf listener-rate {
128                 type uint32;
129                 default 0;
130                 description
131                   "RPC rate (Number of RPCs/sec)";
132             }
133            }
134     }
135 }