Augmented nodes wrapped
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-augments.yang
1 module openflow-augments {\r
2     namespace "urn:opendaylight:openflow:augments";\r
3     prefix "aug";\r
4 \r
5     import ietf-inet-types {prefix inet;}\r
6     import ietf-yang-types {prefix yang;}\r
7     \r
8     import openflow-types {prefix oft;}\r
9     import openflow-protocol {prefix ofproto;}\r
10     import openflow-action {prefix ofaction;}\r
11     import openflow-instruction {prefix ofinstruction;}\r
12     import openflow-extensible-match {prefix oxm;}\r
13 \r
14 \r
15     revision "2013-10-02" {\r
16         description "Initial model";\r
17     }\r
18 // OFP_MATCH AUGMENTS\r
19      augment "/oxm:oxm-container/oxm:match-entries" {\r
20          leaf port-number {\r
21              type oft:port-number;\r
22          }\r
23      }\r
24 \r
25      augment "/oxm:oxm-container/oxm:match-entries" {\r
26          leaf metadata {\r
27              type binary;\r
28          }\r
29      }\r
30      \r
31      augment "/oxm:oxm-container/oxm:match-entries" {\r
32          leaf mask {\r
33              type binary;\r
34          }\r
35      }\r
36      \r
37      augment "/oxm:oxm-container/oxm:match-entries" {\r
38          leaf mac-address {\r
39              type yang:mac-address;\r
40          }\r
41      }\r
42      \r
43      augment "/oxm:oxm-container/oxm:match-entries" {\r
44          leaf eth-type {\r
45              type oft:ether-type;\r
46          }\r
47      }\r
48      \r
49      augment "/oxm:oxm-container/oxm:match-entries" {\r
50          leaf vlan-vid {\r
51              type uint16;\r
52          }\r
53      }\r
54      \r
55      augment "/oxm:oxm-container/oxm:match-entries" {\r
56          leaf vlan-pcp {\r
57              type uint8;\r
58          }\r
59      }\r
60      \r
61      augment "/oxm:oxm-container/oxm:match-entries" {\r
62          leaf dscp {\r
63              type inet:dscp;\r
64          }\r
65      }\r
66      \r
67      augment "/oxm:oxm-container/oxm:match-entries" {\r
68          leaf ecn {\r
69              type uint8;\r
70          }\r
71      }\r
72      \r
73      augment "/oxm:oxm-container/oxm:match-entries" {\r
74          leaf protocol-number {\r
75              type uint8;\r
76          }\r
77      }\r
78      \r
79      augment "/oxm:oxm-container/oxm:match-entries" {\r
80          leaf ipv4-prefix {\r
81              type inet:ipv4-prefix;\r
82          }\r
83      }\r
84      \r
85      augment "/oxm:oxm-container/oxm:match-entries" {\r
86          leaf port {\r
87              type inet:port-number;\r
88          }\r
89      }\r
90      \r
91      augment "/oxm:oxm-container/oxm:match-entries" {\r
92          leaf icmpv4-type {\r
93              type uint8;\r
94          }\r
95      }\r
96      \r
97      augment "/oxm:oxm-container/oxm:match-entries" {\r
98          leaf icmpv4-code {\r
99              type uint8;\r
100          }\r
101      }\r
102      \r
103      augment "/oxm:oxm-container/oxm:match-entries" {\r
104          leaf op-code {\r
105              type uint16;\r
106          }\r
107      }\r
108      \r
109      augment "/oxm:oxm-container/oxm:match-entries" {\r
110          leaf ipv6-prefix {\r
111              type inet:ipv6-prefix;\r
112          }\r
113      }\r
114      \r
115      augment "/oxm:oxm-container/oxm:match-entries" {\r
116          leaf ipv6-flabel {\r
117              type inet:ipv6-flow-label;\r
118          }\r
119      }\r
120      \r
121      augment "/oxm:oxm-container/oxm:match-entries" {\r
122          leaf icmpv6-type {\r
123              type uint8;\r
124          }\r
125      }\r
126      \r
127      augment "/oxm:oxm-container/oxm:match-entries" {\r
128          leaf icmpv6-code {\r
129              type uint8;\r
130          }\r
131      }\r
132      \r
133      augment "/oxm:oxm-container/oxm:match-entries" {\r
134          leaf ipv6-address {\r
135              type inet:ipv6-address;\r
136          }\r
137      }\r
138      \r
139      augment "/oxm:oxm-container/oxm:match-entries" {\r
140          leaf mpls-label {\r
141              type uint32;\r
142          }\r
143      }\r
144      \r
145      augment "/oxm:oxm-container/oxm:match-entries" {\r
146          leaf tc {\r
147              type uint8;\r
148          }\r
149      }\r
150      \r
151      augment "/oxm:oxm-container/oxm:match-entries" {\r
152          leaf bos {\r
153              type boolean;\r
154          }\r
155      }\r
156      \r
157      augment "/oxm:oxm-container/oxm:match-entries" {\r
158          leaf isid {\r
159              type uint32;\r
160          }\r
161      }\r
162      \r
163      augment "/oxm:oxm-container/oxm:match-entries" {\r
164          leaf pseudo-field {\r
165              type bits {\r
166                  bit nonext {\r
167                      description "<No next header> encountered.";\r
168                      position 0;\r
169                  }\r
170                  bit esp {\r
171                      description "Encrypted Sec Payload header present.";\r
172                      position 1;\r
173                  }\r
174                  bit auth {\r
175                      description "Authentication header present.";\r
176                      position 2;\r
177                  }\r
178                  bit dest {\r
179                      description "1 or 2 dest headers present.";\r
180                      position 3;\r
181                  }\r
182                  bit frag {\r
183                      description "Fragment header present.";\r
184                      position 4;\r
185                  }\r
186                  bit router {\r
187                      description "Router header present.";\r
188                      position 5;\r
189                  }\r
190                  bit hop {\r
191                      description "Hop-by-hop header present.";\r
192                      position 6;\r
193                  }\r
194                  bit unrep {\r
195                      description "Unexpected repeats encountered.";\r
196                      position 7;\r
197                  }\r
198                  bit unseq {\r
199                      description "Unexpected sequencing encountered.";\r
200                      position 8;\r
201                      }                    \r
202              }\r
203          }\r
204      }\r
205 \r
206 // OFP_ACTION AUGMENTS\r
207      augment "/ofaction:actions-container/ofaction:action" {\r
208          leaf port {\r
209              type oft:any-port-number;\r
210          }\r
211      }\r
212      \r
213      augment "/ofaction:actions-container/ofaction:action" {\r
214          leaf max-length {\r
215              type uint16;\r
216          }\r
217      }\r
218      \r
219      augment "/ofaction:actions-container/ofaction:action" {\r
220          leaf mpls-ttl {\r
221              type uint8;\r
222          }\r
223      }\r
224      \r
225      augment "/ofaction:actions-container/ofaction:action" {\r
226          leaf ethertype {\r
227              type oft:ether-type;\r
228          }\r
229      }\r
230      \r
231      augment "/ofaction:actions-container/ofaction:action" {\r
232          leaf queue-id {\r
233              type uint32;\r
234          }\r
235      }\r
236      \r
237      augment "/ofaction:actions-container/ofaction:action" {\r
238          leaf group-id {\r
239              type uint32;\r
240          }\r
241      }\r
242      \r
243      augment "/ofaction:actions-container/ofaction:action" {\r
244          leaf nw-ttl {\r
245              type uint8;\r
246          }\r
247      }\r
248      \r
249      augment "/ofaction:actions-container/ofaction:action" {\r
250          uses oxm:oxm-fields;\r
251      }\r
252      \r
253      augment "/ofaction:actions-container/ofaction:action" {\r
254          leaf experimenter {\r
255              type uint32;\r
256          }\r
257      }\r
258 \r
259 // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS\r
260      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
261          list instruction-ids {\r
262              uses ofinstruction:instructions;\r
263          }\r
264      }\r
265 \r
266      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
267          list next-table-ids {\r
268              leaf table-id {\r
269                  type uint8;\r
270              }\r
271          }\r
272      }\r
273 \r
274      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
275          list action-ids {\r
276              uses ofaction:action-header;\r
277          }\r
278      }\r
279 \r
280      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
281          list oxm-ids {\r
282              uses oxm:oxm-fields;\r
283          }\r
284      }\r
285 \r
286      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
287          leaf experimenter {\r
288              type uint32;\r
289          }\r
290          leaf exp-type {\r
291              type uint32;\r
292          }\r
293          leaf data {\r
294              type binary;\r
295          }\r
296      }\r
297      \r
298 // OFP_INSTRUCTION AUGMENTS\r
299      augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
300          leaf table-id {\r
301              type uint8;\r
302          }\r
303      }\r
304      \r
305      augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
306          leaf metadata {\r
307              type binary;\r
308          }\r
309          leaf metadata-mask {\r
310              type binary;\r
311          }\r
312      }\r
313      \r
314      augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
315          list actions {\r
316              uses ofaction:action-header;\r
317          }\r
318      }\r
319      \r
320      augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
321          leaf meter-id {\r
322              type uint32;\r
323          }\r
324      }\r
325      \r
326      augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
327          leaf experimenter {\r
328              type uint32;\r
329          }\r
330      }\r
331 }