Merge "changed the pom.xml to include proper integration test"
[controller.git] / opendaylight / md-sal / model / model-flow-base / src / main / yang / meter-types.yang
1 module opendaylight-meter-types {
2     namespace "urn:opendaylight:meter:types";
3     prefix meter;
4
5     import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
6     import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
7
8
9     revision "2013-09-18" {
10         description "Initial revision of meter service";
11     }
12
13     typedef meter-id {
14             type uint32;
15     }
16     
17     grouping meter-flags {
18         leaf flags {
19             type bits {
20                 bit meter-kbps;
21                 bit meter-pktps;
22                 bit meter-burst;
23                 bit meter-stats;
24             }
25         }
26     }
27     
28     grouping meter-band-type {
29         leaf flags {
30             type bits {
31                 bit ofpmbt-drop;
32                 bit ofpmbt-dscp-remark;
33                 bit ofpmbt-experimenter;               
34             }
35         }
36     }
37     
38     grouping band-type {
39         choice band-type {
40             case drop {
41                 leaf rate {
42                     type uint32;
43                 }
44                 
45                 leaf burst-size {
46                     type uint32;
47                 }
48             }
49
50             case dscp-remark {
51                 leaf rate {
52                     type uint32;
53                 }
54                 
55                 leaf burst-size {
56                     type uint32;
57                 }
58                 
59                 leaf perc_level {
60                     type uint8;
61                 }
62             }
63             
64             case experimenter {
65                 leaf rate {
66                     type uint32;
67                 }
68                 
69                 leaf burst-size {
70                     type uint32;
71                 }
72                 
73                 leaf experimenter {
74                     type uint32;
75                 }
76             }
77         }
78     }
79     
80     grouping meter {
81         
82         uses meter-flags;        
83         
84         leaf meter-id {
85             type meter-id;
86         }
87         
88         leaf install {
89             type boolean; 
90         }
91         leaf meter-name {
92             type string;
93         }
94         
95         leaf container-name {
96             type string; 
97         }
98         
99         container meter-band-headers {
100             list meter-band-header {
101                 key "order";
102                 leaf order {
103                     type int32;
104                 }
105                 
106                 container meter-band-types {
107                     uses meter-band-type;
108                 }
109             
110                 leaf rate {
111                     type uint32;
112                 }
113         
114                 leaf burst-size {
115                     type uint32;
116                 }
117                 uses band-type;
118             }
119         }
120     }
121     
122     grouping meter-statistics {
123             
124         leaf meter-id {
125             type int32;
126         }
127         
128         leaf flow-count {
129             type yang:counter32;
130         }
131         
132         leaf packet-in-count {
133             type yang:counter64;
134         } 
135         
136         leaf byte-in-count {
137             type yang:counter64;
138         }
139
140         container duration {
141             leaf second {
142                 type yang:counter32;
143             }
144             leaf nanosecond {
145                 type yang:counter32;
146             }
147         }
148         
149         container meter-band-stats {
150             list band-stat {
151                 key "order";
152                 leaf order {
153                     type int32;
154                 }
155             
156                 leaf packet-band-count {
157                     type yang:counter64;
158                 } 
159         
160                 leaf byte-band-count {
161                     type yang:counter64;
162                 }
163             }       
164         }
165     }
166
167     grouping meter-features {
168                             
169         leaf max_meter {
170             type yang:counter32;
171         }
172            
173         leaf band_types {
174             type yang:counter32;
175         }
176         
177         leaf capabilities {
178             type yang:counter32;
179         }
180         
181         leaf max_bands {
182             type uint8;
183         }
184         
185         leaf max_color {
186             type uint8;
187         }
188     }
189
190     grouping meter-stats-config-request {
191         list meter-stats {
192             key "meter-id";         
193             
194             leaf meter-id {
195                 type int32;
196             }           
197         }
198     }
199     
200     grouping meter-statistics-reply {
201         list meter-stats {
202             key "meter-stats-order";
203             leaf meter-stats-order {
204                 type int32;
205             }
206             uses meter-statistics;
207         }
208     }
209     
210     grouping meter-config-stats-reply {
211         list meter-config-stats {
212             key "meter-config-order";
213             leaf meter-config-order {
214                 type int32;
215             }
216             
217             uses meter;
218         } 
219     }
220     
221     grouping meter-features-reply {
222         uses meter-features;
223     }
224     
225 }