6c06f8f6e23419e1c171cb18b065927b0bb08491
[openflowplugin.git] / extension / openflowplugin-extension-nicira / src / main / yang / openflowplugin-extension-nicira-action.yang
1 module openflowplugin-extension-nicira-action {
2     yang-version 1;
3
4     namespace "urn:opendaylight:openflowplugin:extension:nicira:action";
5     prefix "openflowplugin-nicira-action";
6     
7     import yang-ext {prefix ext; revision-date "2013-07-09";}
8     import flow-node-inventory {prefix fni; revision-date 2013-08-19; }
9     import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
10     import sal-flow {prefix sal-flow;revision-date "2013-08-19";}
11     import sal-group {prefix sal-group;revision-date "2013-09-18";}
12     import packet-processing {prefix sal-packet;revision-date "2013-07-09";}
13     import opendaylight-flow-statistics {prefix odl-flow-stats;revision-date "2013-08-19";}
14     import opendaylight-group-statistics {prefix odl-group-stats;revision-date "2013-11-11";}
15     import nicira-match {prefix nicira-match;revision-date "2014-04-21";}
16     import openflowplugin-extension-general {prefix ext-gen;revision-date "2014-07-14";}
17     import openflow-action {prefix ofaction;revision-date "2013-07-31";}
18     import nicira-action {prefix nicira-action;revision-date "2014-04-21";}
19
20     description 
21         "Nicira openflow action extensions.";
22
23     revision "2014-07-14" {
24         description "Initial revision";
25     }
26     
27     identity nx-action-reg-load-key {
28         base ext-gen:extension-key;
29     }
30     identity nx-action-reg-move-key {
31         base ext-gen:extension-key;
32     }
33
34     grouping nxm-nx-reg-grouping {
35         leaf nx-reg {
36             type identityref {
37                 base nicira-match:nxm-nx-reg;
38             }
39         }
40     }
41     grouping nxm-nx-tun-id-grouping {
42         leaf nx-tun-id {
43             type empty;
44         }
45     }
46     grouping nxm-nx-arp-sha-grouping {
47         leaf nx-arp-sha {
48             type empty;
49         }
50     }
51     grouping nxm-nx-arp-tha-grouping {
52         leaf nx-arp-tha {
53             type empty;
54         }
55     }
56     grouping nxm-of-arp-op-grouping {
57         leaf of-arp-op {
58             type empty;
59         }
60     }
61     grouping nxm-of-arp-spa-grouping {
62         leaf of-arp-spa {
63             type empty;
64         }
65     }
66     grouping nxm-of-arp-tpa-grouping {
67         leaf of-arp-tpa {
68             type empty;
69         }
70     }
71     grouping nxm-nx-tun-ipv4-dst-grouping {
72         leaf nx-tun-ipv4-dst {
73             type empty;
74         }
75     }
76     grouping nxm-nx-tun-ipv4-src-grouping {
77         leaf nx-tun-ipv4-src {
78             type empty;
79         }
80     }
81     grouping nxm-of-eth-src-grouping {
82         leaf of-eth-src {
83             type empty;
84         }
85     }
86     grouping nxm-of-eth-dst-grouping {
87         leaf of-eth-dst {
88             type empty;
89         }
90     }
91     grouping nxm-of-eth-type-grouping {
92         leaf of-eth-type {
93             type empty;
94         }
95     }
96
97     grouping dst-choice-grouping {
98         choice dst-choice {
99             case dst-nx-reg-case {
100                 uses nxm-nx-reg-grouping;
101             }
102             case dst-nx-tun-id-case {
103                 uses nxm-nx-tun-id-grouping;
104             }
105             case dst-nx-arp-sha-case {
106                 uses nxm-nx-arp-sha-grouping;
107             }
108             case dst-nx-arp-tha-case {
109                 uses nxm-nx-arp-tha-grouping;
110             }
111             case dst-of-arp-op-case {
112                 uses nxm-of-arp-op-grouping;
113             }
114             case dst-of-arp-spa-case {
115                 uses nxm-of-arp-spa-grouping;
116             }
117             case dst-of-arp-tpa-case {
118                 uses nxm-of-arp-tpa-grouping;
119             }
120             case dst-nx-tun-ipv4-dst-case {
121                 uses nxm-nx-tun-ipv4-dst-grouping;
122             }
123             case dst-nx-tun-ipv4-src-case {
124                 uses nxm-nx-tun-ipv4-src-grouping;
125             }
126             case dst-of-eth-src-case {
127                 uses nxm-of-eth-src-grouping;
128             }
129             case dst-of-eth-dst-case {
130                 uses nxm-of-eth-dst-grouping;
131             }
132         }
133     }
134     
135     grouping src-choice-grouping {
136         choice src-choice {
137             case src-nx-reg-case {
138                 uses nxm-nx-reg-grouping;
139             }
140             case src-nx-tun-id-case {
141                 uses nxm-nx-tun-id-grouping;
142             }
143             case src-nx-arp-sha-case {
144                 uses nxm-nx-arp-sha-grouping;
145             }
146             case src-nx-arp-tha-case {
147                 uses nxm-nx-arp-tha-grouping;
148             }
149             case src-of-arp-op-case {
150                 uses nxm-of-arp-op-grouping;
151             }
152             case src-of-arp-spa-case {
153                 uses nxm-of-arp-spa-grouping;
154             }
155             case src-of-arp-tpa-case {
156                 uses nxm-of-arp-tpa-grouping;
157             }
158             case src-nx-tun-ipv4-dst-case {
159                 uses nxm-nx-tun-ipv4-dst-grouping;
160             }
161             case src-nx-tun-ipv4-src-case {
162                 uses nxm-nx-tun-ipv4-src-grouping;
163             }
164             case src-of-eth-src-case {
165                 uses nxm-of-eth-src-grouping;
166             }
167             case src-of-eth-dst-case {
168                 uses nxm-of-eth-dst-grouping;
169             }
170             case src-of-eth-type-case {
171                 uses nxm-of-eth-type-grouping;
172             }
173         }
174     }
175     
176     grouping range-grouping {
177         leaf start {
178             description "Include value.";
179             type uint16;
180         }
181         leaf end {
182             description "Include value.";
183             type uint16;
184         }
185     }
186     
187     grouping nx-action-reg-load-grouping {
188         container nx-reg-load {
189             container dst {
190                 description "Writes value to bits start through end, inclusive, in field dst.";
191                 uses dst-choice-grouping;
192                 uses range-grouping;
193             }
194             leaf value {
195                 type uint64;
196             }
197         }
198     }
199     
200     grouping nx-action-reg-move-grouping {
201         container nx-reg-move {
202             container src {
203                 description "Writes value to bits start through end, inclusive, in field src.";
204                 uses src-choice-grouping;
205                 uses range-grouping;
206             }
207             container dst {
208                 description "Writes value to bits start through end, inclusive, in field dst.";
209                 uses dst-choice-grouping;
210                 uses range-grouping;
211             }
212         }
213     }
214     grouping nx-action-output-reg-grouping {
215         container nx-output-reg {
216             container src {
217                 description "Choose the register with the OpenFlow output port, using the number of 
218 bits specified from the register.";
219                 uses src-choice-grouping;
220                 leaf ofs_nbits {
221                     type uint16;
222                 }
223             }
224             leaf max_len {
225                 description "The number of bytes to send when the chosen port is OFPP_CONTROLLER";
226                 type uint16;
227             }
228         }
229     }
230
231     grouping nx-action-resubmit-grouping {
232         container nx-resubmit {
233             description "Re-searches OpenFlow flow table (or the table whose number is specified by table)
234             with the in-port field replaced  by port (if port is specified) and executes the actions found";
235             leaf in-port {
236                 type uint16;
237                 default 0xfff8; // OFPP_INPORT
238             }
239             leaf table {
240                 type uint8 {
241                     range "0 .. 255";
242                 }
243                 default 255; // Current Table
244             }
245         }
246     }
247
248     grouping nx-action-multipath-grouping {
249         container nx-multipath {
250             leaf fields {
251                 type nicira-action:ofj-nx-hash-fields;
252             }
253             leaf basis {
254                 type uint16;
255                 default 0x400;
256             }
257             leaf algorithm {
258                 type nicira-action:ofj-nx-mp-algorithm;
259             }
260             leaf max-link {
261                 type uint16;
262             }
263             leaf arg {
264                 type uint32;
265             }
266             container dst {
267                 description "Writes value to bits start through end, inclusive, in field dst.";
268                 uses dst-choice-grouping;
269                 uses range-grouping;
270             }
271         }
272     }
273
274     // ACTION augmentations
275     // RPCS
276     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
277         case nx-action-reg-load-rpc-add-flow-write-actions-case {
278             uses nx-action-reg-load-grouping;
279         }
280     }
281     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
282         case nx-action-reg-move-rpc-add-flow-write-actions-case {
283             uses nx-action-reg-move-grouping;
284         }
285     }
286     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
287         case nx-action-output-reg-rpc-add-flow-write-actions-case {
288             uses nx-action-output-reg-grouping;
289         }
290     }
291     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
292         case nx-action-resubmit-rpc-add-flow-write-actions-case {
293             uses nx-action-resubmit-grouping;
294         }
295     }
296     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
297         case nx-action-multipath-rpc-add-flow-write-actions-case {
298             uses nx-action-multipath-grouping;
299         }
300     }
301     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
302         case nx-action-reg-load-rpc-add-flow-apply-actions-case {
303             uses nx-action-reg-load-grouping;
304         }
305     }
306     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
307         case nx-action-reg-move-rpc-add-flow-apply-actions-case {
308             uses nx-action-reg-move-grouping;
309         }
310     }
311     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
312         case nx-action-output-reg-rpc-add-flow-apply-actions-case {
313             uses nx-action-output-reg-grouping;
314         }
315     }
316     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
317         case nx-action-resubmit-rpc-add-flow-apply-actions-case {
318             uses nx-action-resubmit-grouping;
319         }
320     }
321     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
322         case nx-action-multipath-rpc-add-flow-apply-actions-case {
323             uses nx-action-multipath-grouping;
324         }
325     }
326     
327     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
328         case "nx-action-reg-load-rpc-remove-flow-write-actions-case" {
329             uses nx-action-reg-load-grouping;
330         }
331     }
332     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
333         case "nx-action-reg-move-rpc-remove-flow-write-actions-case" {
334             uses nx-action-reg-move-grouping;
335         }
336     }
337     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
338         case "nx-action-output-reg-rpc-remove-flow-write-actions-case" {
339             uses nx-action-output-reg-grouping;
340         }
341     }
342     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
343         case nx-action-resubmit-rpc-remove-flow-write-actions-case {
344             uses nx-action-resubmit-grouping;
345         }
346     }
347     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
348         case nx-action-multipath-rpc-remove-flow-write-actions-case {
349             uses nx-action-multipath-grouping;
350         }
351     }
352     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
353         case "nx-action-reg-load-rpc-remove-flow-apply-actions-case" {
354             uses nx-action-reg-load-grouping;
355         }
356     }
357     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
358         case "nx-action-reg-move-rpc-remove-flow-apply-actions-case" {
359             uses nx-action-reg-move-grouping;
360         }
361     }
362     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
363         case "nx-action-output-reg-rpc-remove-flow-apply-actions-case" {
364             uses nx-action-output-reg-grouping;
365         }
366     }
367     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
368         case nx-action-resubmit-rpc-remove-flow-apply-actions-case {
369             uses nx-action-resubmit-grouping;
370         }
371     }
372     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
373         case nx-action-multipath-rpc-remove-flow-apply-actions-case {
374             uses nx-action-multipath-grouping;
375         }
376     }
377     
378     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
379         case "nx-action-reg-load-rpc-update-flow-original-write-actions-case" {
380             uses nx-action-reg-load-grouping;
381         }
382     }
383     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
384         case "nx-action-reg-move-rpc-update-flow-original-write-actions-case" {
385             uses nx-action-reg-move-grouping;
386         }
387     }
388     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
389         case "nx-action-output-reg-rpc-update-flow-original-write-actions-case" {
390             uses nx-action-output-reg-grouping;
391         }
392     }
393     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
394         case "nx-action-resubmit-rpc-update-flow-original-write-actions-case" {
395             uses nx-action-resubmit-grouping;
396         }
397     }
398     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
399         case "nx-action-multipath-rpc-update-flow-original-write-actions-case" {
400             uses nx-action-multipath-grouping;
401         }
402     }
403     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
404         case "nx-action-reg-load-rpc-update-flow-original-apply-actions-case" {
405             uses nx-action-reg-load-grouping;
406         }
407     }
408     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
409         case "nx-action-reg-move-rpc-update-flow-original-apply-actions-case" {
410             uses nx-action-reg-move-grouping;
411         }
412     }
413     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
414         case "nx-action-output-reg-rpc-update-flow-original-apply-actions-case" {
415             uses nx-action-output-reg-grouping;
416         }
417     }
418     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
419         case "nx-action-resubmit-rpc-update-flow-original-apply-actions-case" {
420             uses nx-action-resubmit-grouping;
421         }
422     }
423     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
424         case "nx-action-multipath-rpc-update-flow-original-apply-actions-case" {
425             uses nx-action-multipath-grouping;
426         }
427     }
428     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
429         case "nx-action-reg-load-rpc-update-flow-updated-write-actions-case" {
430             uses nx-action-reg-load-grouping;
431         }
432     }
433     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
434         case "nx-action-reg-move-rpc-update-flow-updated-write-actions-case" {
435             uses nx-action-reg-move-grouping;
436         }
437     }
438     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
439         case "nx-action-output-reg-rpc-update-flow-updated-write-actions-case" {
440             uses nx-action-output-reg-grouping;
441         }
442     }
443     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
444         case "nx-action-resubmit-rpc-update-flow-updated-write-actions-case" {
445             uses nx-action-resubmit-grouping;
446         }
447     }
448     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
449         case "nx-action-multipath-rpc-update-flow-updated-write-actions-case" {
450             uses nx-action-multipath-grouping;
451         }
452     }
453     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
454         case "nx-action-reg-load-rpc-update-flow-updated-apply-actions-case" {
455             uses nx-action-reg-load-grouping;
456         }
457     }
458     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
459         case "nx-action-reg-move-rpc-update-flow-updated-apply-actions-case" {
460             uses nx-action-reg-move-grouping;
461         }
462     }
463     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
464         case "nx-action-output-reg-rpc-update-flow-updated-apply-actions-case" {
465             uses nx-action-output-reg-grouping;
466         }
467     }
468     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
469         case "nx-action-resubmit-rpc-update-flow-updated-apply-actions-case" {
470             uses nx-action-resubmit-grouping;
471         }
472     }
473     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
474         case "nx-action-multipath-rpc-update-flow-updated-apply-actions-case" {
475             uses nx-action-multipath-grouping;
476         }
477     }
478     
479     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
480         case "nx-action-reg-load-rpc-add-group-case" {
481             uses nx-action-reg-load-grouping;
482         }
483     }
484     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
485         case "nx-action-reg-move-rpc-add-group-case" {
486             uses nx-action-reg-move-grouping;
487         }
488     }
489     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
490         case "nx-action-output-reg-rpc-add-group-case" {
491             uses nx-action-output-reg-grouping;
492         }
493     }
494     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
495         case "nx-action-resubmit-rpc-add-group-case" {
496             uses nx-action-resubmit-grouping;
497         }
498     }
499     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
500         case "nx-action-multipath-rpc-add-group-case" {
501             uses nx-action-multipath-grouping;
502         }
503     }
504     
505     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
506         case "nx-action-reg-load-rpc-remove-group-case" {
507             uses nx-action-reg-load-grouping;
508         }
509     }
510     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
511         case "nx-action-reg-move-rpc-remove-group-case" {
512             uses nx-action-reg-move-grouping;
513         }
514     }
515     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
516         case "nx-action-output-reg-rpc-remove-group-case" {
517             uses nx-action-output-reg-grouping;
518         }
519     }
520     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
521         case "nx-action-resubmit-rpc-remove-group-case" {
522             uses nx-action-resubmit-grouping;
523         }
524     }
525     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
526         case "nx-action-multipath-rpc-remove-group-case" {
527             uses nx-action-multipath-grouping;
528         }
529     }
530     
531     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
532         case "nx-action-reg-load-rpc-update-group-original-case" {
533             uses nx-action-reg-load-grouping;
534         }
535     }
536     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
537         case "nx-action-reg-move-rpc-update-group-original-case" {
538             uses nx-action-reg-move-grouping;
539         }
540     }
541     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
542         case "nx-action-output-reg-rpc-update-group-original-case" {
543             uses nx-action-output-reg-grouping;
544         }
545     }
546     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
547         case "nx-action-resubmit-rpc-update-group-original-case" {
548             uses nx-action-resubmit-grouping;
549         }
550     }
551     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
552         case "nx-action-multipath-rpc-update-group-original-case" {
553             uses nx-action-multipath-grouping;
554         }
555     }
556     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
557         case "nx-action-reg-load-rpc-update-group-updated-case" {
558             uses nx-action-reg-load-grouping;
559         }
560     }
561     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
562         case "nx-action-reg-move-rpc-update-group-updated-case" {
563             uses nx-action-reg-move-grouping;
564         }
565     }
566     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
567         case "nx-action-output-reg-rpc-update-group-updated-case" {
568             uses nx-action-output-reg-grouping;
569         }
570     }
571     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
572         case "nx-action-resubmit-rpc-update-group-updated-case" {
573             uses nx-action-resubmit-grouping;
574         }
575     }
576     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
577         case "nx-action-multipath-rpc-update-group-updated-case" {
578             uses nx-action-multipath-grouping;
579         }
580     }
581     
582     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
583         case "nx-action-reg-load-rpc-transmit-packet-case" {
584             uses nx-action-reg-load-grouping;
585         }
586     }
587     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
588         case "nx-action-reg-move-rpc-transmit-packet-case" {
589             uses nx-action-reg-move-grouping;
590         }
591     }
592     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
593         case "nx-action-output-reg-rpc-transmit-packet-case" {
594             uses nx-action-output-reg-grouping;
595         }
596     }
597     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
598         case "nx-action-resubmit-rpc-transmit-packet-case" {
599             uses nx-action-resubmit-grouping;
600         }
601     }
602     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
603         case "nx-action-multipath-rpc-transmit-packet-case" {
604             uses nx-action-multipath-grouping;
605         }
606     }
607     
608     // DATA
609     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:write-actions-case/fni:write-actions/fni:action/fni:action" {
610         case "nx-action-reg-load-nodes-node-table-flow-write-actions-case" {
611             uses nx-action-reg-load-grouping;
612         }
613     }
614     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:write-actions-case/fni:write-actions/fni:action/fni:action" {
615         case "nx-action-reg-move-nodes-node-table-flow-write-actions-case" {
616             uses nx-action-reg-move-grouping;
617         }
618     }
619     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:write-actions-case/fni:write-actions/fni:action/fni:action" {
620         case "nx-action-output-reg-nodes-node-table-flow-write-actions-case" {
621             uses nx-action-output-reg-grouping;
622         }
623     }
624     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:write-actions-case/fni:write-actions/fni:action/fni:action" {
625         case "nx-action-resubmit-nodes-node-table-flow-write-actions-case" {
626             uses nx-action-resubmit-grouping;
627         }
628     }
629     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:write-actions-case/fni:write-actions/fni:action/fni:action" {
630         case "nx-action-multipath-nodes-node-table-flow-write-actions-case" {
631             uses nx-action-multipath-grouping;
632         }
633     }
634     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:apply-actions-case/fni:apply-actions/fni:action/fni:action" {
635         case "nx-action-reg-load-nodes-node-table-flow-apply-actions-case" {
636             uses nx-action-reg-load-grouping;
637         }
638     }
639     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:apply-actions-case/fni:apply-actions/fni:action/fni:action" {
640         case "nx-action-reg-move-nodes-node-table-flow-apply-actions-case" {
641             uses nx-action-reg-move-grouping;
642         }
643     }
644     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:apply-actions-case/fni:apply-actions/fni:action/fni:action" {
645         case "nx-action-output-reg-nodes-node-table-flow-apply-actions-case" {
646             uses nx-action-output-reg-grouping;
647         }
648     }
649     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:apply-actions-case/fni:apply-actions/fni:action/fni:action" {
650         case "nx-action-resubmit-nodes-node-table-flow-apply-actions-case" {
651             uses nx-action-resubmit-grouping;
652         }
653     }
654     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:apply-actions-case/fni:apply-actions/fni:action/fni:action" {
655         case "nx-action-multipath-nodes-node-table-flow-apply-actions-case" {
656             uses nx-action-multipath-grouping;
657         }
658     }
659     
660     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
661         case "nx-action-reg-load-nodes-node-group-buckets-bucket-actions-case" {
662             uses nx-action-reg-load-grouping;
663         }
664     }
665     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
666         case "nx-action-reg-move-nodes-node-group-buckets-bucket-actions-case" {
667             uses nx-action-reg-move-grouping;
668         }
669     }
670     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
671         case "nx-action-output-reg-nodes-node-group-buckets-bucket-actions-case" {
672             uses nx-action-output-reg-grouping;
673         }
674     }
675     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
676         case "nx-action-resubmit-nodes-node-group-buckets-bucket-actions-case" {
677             uses nx-action-resubmit-grouping;
678         }
679     }
680     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
681         case "nx-action-multipath-nodes-node-group-buckets-bucket-actions-case" {
682             uses nx-action-multipath-grouping;
683         }
684     }
685     
686     // NOTIFICATIONS
687     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:write-actions-case/odl-flow-stats:write-actions/odl-flow-stats:action/odl-flow-stats:action" {
688         case "nx-action-reg-load-notif-flows-statistics-update-write-actions-case" {
689             uses nx-action-reg-load-grouping;
690         }
691     }
692     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:write-actions-case/odl-flow-stats:write-actions/odl-flow-stats:action/odl-flow-stats:action" {
693         case "nx-action-reg-move-notif-flows-statistics-update-write-actions-case" {
694             uses nx-action-reg-move-grouping;
695         }
696     }
697     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:write-actions-case/odl-flow-stats:write-actions/odl-flow-stats:action/odl-flow-stats:action" {
698         case "nx-action-output-reg-notif-flows-statistics-update-write-actions-case" {
699             uses nx-action-output-reg-grouping;
700         }
701     }
702     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:write-actions-case/odl-flow-stats:write-actions/odl-flow-stats:action/odl-flow-stats:action" {
703         case "nx-action-resubmit-notif-flows-statistics-update-write-actions-case" {
704             uses nx-action-resubmit-grouping;
705         }
706     }
707     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:write-actions-case/odl-flow-stats:write-actions/odl-flow-stats:action/odl-flow-stats:action" {
708         case "nx-action-multipath-notif-flows-statistics-update-write-actions-case" {
709             uses nx-action-multipath-grouping;
710         }
711     }
712
713     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:apply-actions-case/odl-flow-stats:apply-actions/odl-flow-stats:action/odl-flow-stats:action" {
714         case "nx-action-reg-load-notif-flows-statistics-update-apply-actions-case" {
715             uses nx-action-reg-load-grouping;
716         }
717     }
718     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:apply-actions-case/odl-flow-stats:apply-actions/odl-flow-stats:action/odl-flow-stats:action" {
719         case "nx-action-reg-move-notif-flows-statistics-update-apply-actions-case" {
720             uses nx-action-reg-move-grouping;
721         }
722     }
723     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:apply-actions-case/odl-flow-stats:apply-actions/odl-flow-stats:action/odl-flow-stats:action" {
724         case "nx-action-output-reg-notif-flows-statistics-update-apply-actions-case" {
725             uses nx-action-output-reg-grouping;
726         }
727     }
728     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:apply-actions-case/odl-flow-stats:apply-actions/odl-flow-stats:action/odl-flow-stats:action" {
729         case "nx-action-resubmit-notif-flows-statistics-update-apply-actions-case" {
730             uses nx-action-resubmit-grouping;
731         }
732     }
733     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:apply-actions-case/odl-flow-stats:apply-actions/odl-flow-stats:action/odl-flow-stats:action" {
734         case "nx-action-multipath-notif-flows-statistics-update-apply-actions-case" {
735             uses nx-action-multipath-grouping;
736         }
737     }
738     
739     augment "/odl-group-stats:group-desc-stats-updated/odl-group-stats:group-desc-stats/odl-group-stats:buckets/odl-group-stats:bucket/odl-group-stats:action/odl-group-stats:action" {
740         case "nx-action-reg-load-notif-group-desc-stats-updated-case" {
741             uses nx-action-reg-load-grouping;
742         }
743     }
744     augment "/odl-group-stats:group-desc-stats-updated/odl-group-stats:group-desc-stats/odl-group-stats:buckets/odl-group-stats:bucket/odl-group-stats:action/odl-group-stats:action" {
745         case "nx-action-reg-move-notif-group-desc-stats-updated-case" {
746             uses nx-action-reg-move-grouping;
747         }
748     }
749     augment "/odl-group-stats:group-desc-stats-updated/odl-group-stats:group-desc-stats/odl-group-stats:buckets/odl-group-stats:bucket/odl-group-stats:action/odl-group-stats:action" {
750         case "nx-action-output-reg-notif-group-desc-stats-updated-case" {
751             uses nx-action-output-reg-grouping;
752         }
753     }
754     augment "/odl-group-stats:group-desc-stats-updated/odl-group-stats:group-desc-stats/odl-group-stats:buckets/odl-group-stats:bucket/odl-group-stats:action/odl-group-stats:action" {
755         case "nx-action-resubmit-notif-group-desc-stats-updated-case" {
756             uses nx-action-resubmit-grouping;
757         }
758     }
759     augment "/odl-group-stats:group-desc-stats-updated/odl-group-stats:group-desc-stats/odl-group-stats:buckets/odl-group-stats:bucket/odl-group-stats:action/odl-group-stats:action" {
760         case "nx-action-multipath-notif-group-desc-stats-updated-case" {
761             uses nx-action-multipath-grouping;
762         }
763     }
764 }