BUG-2613: Migrating Openflow Specific NSF from controller project to openflowplugin...
[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
19     description 
20         "Nicira openflow action extensions.";
21
22     revision "2014-07-14" {
23         description "Initial revision";
24     }
25     
26     identity nx-action-reg-load-key {
27         base ext-gen:extension-key;
28     }
29     identity nx-action-reg-move-key {
30         base ext-gen:extension-key;
31     }
32
33     grouping nxm-nx-reg-grouping {
34         leaf nx-reg {
35             type identityref {
36                 base nicira-match:nxm-nx-reg;
37             }
38         }
39     }
40     grouping nxm-nx-tun-id-grouping {
41         leaf nx-tun-id {
42             type empty;
43         }
44     }
45     grouping nxm-nx-arp-sha-grouping {
46         leaf nx-arp-sha {
47             type empty;
48         }
49     }
50     grouping nxm-nx-arp-tha-grouping {
51         leaf nx-arp-tha {
52             type empty;
53         }
54     }
55     grouping nxm-of-arp-op-grouping {
56         leaf of-arp-op {
57             type empty;
58         }
59     }
60     grouping nxm-of-arp-spa-grouping {
61         leaf of-arp-spa {
62             type empty;
63         }
64     }
65     grouping nxm-of-arp-tpa-grouping {
66         leaf of-arp-tpa {
67             type empty;
68         }
69     }
70     grouping nxm-nx-tun-ipv4-dst-grouping {
71         leaf nx-tun-ipv4-dst {
72             type empty;
73         }
74     }
75     grouping nxm-nx-tun-ipv4-src-grouping {
76         leaf nx-tun-ipv4-src {
77             type empty;
78         }
79     }
80     grouping nxm-of-eth-src-grouping {
81         leaf of-eth-src {
82             type empty;
83         }
84     }
85     grouping nxm-of-eth-dst-grouping {
86         leaf of-eth-dst {
87             type empty;
88         }
89     }
90     grouping nxm-of-eth-type-grouping {
91         leaf of-eth-type {
92             type empty;
93         }
94     }
95
96     grouping dst-choice-grouping {
97         choice dst-choice {
98             case dst-nx-reg-case {
99                 uses nxm-nx-reg-grouping;
100             }
101             case dst-nx-tun-id-case {
102                 uses nxm-nx-tun-id-grouping;
103             }
104             case dst-nx-arp-sha-case {
105                 uses nxm-nx-arp-sha-grouping;
106             }
107             case dst-nx-arp-tha-case {
108                 uses nxm-nx-arp-tha-grouping;
109             }
110             case dst-of-arp-op-case {
111                 uses nxm-of-arp-op-grouping;
112             }
113             case dst-of-arp-spa-case {
114                 uses nxm-of-arp-spa-grouping;
115             }
116             case dst-of-arp-tpa-case {
117                 uses nxm-of-arp-tpa-grouping;
118             }
119             case dst-nx-tun-ipv4-dst-case {
120                 uses nxm-nx-tun-ipv4-dst-grouping;
121             }
122             case dst-nx-tun-ipv4-src-case {
123                 uses nxm-nx-tun-ipv4-src-grouping;
124             }
125             case dst-of-eth-src-case {
126                 uses nxm-of-eth-src-grouping;
127             }
128             case dst-of-eth-dst-case {
129                 uses nxm-of-eth-dst-grouping;
130             }
131         }
132     }
133     
134     grouping src-choice-grouping {
135         choice src-choice {
136             case src-nx-reg-case {
137                 uses nxm-nx-reg-grouping;
138             }
139             case src-nx-tun-id-case {
140                 uses nxm-nx-tun-id-grouping;
141             }
142             case src-nx-arp-sha-case {
143                 uses nxm-nx-arp-sha-grouping;
144             }
145             case src-nx-arp-tha-case {
146                 uses nxm-nx-arp-tha-grouping;
147             }
148             case src-of-arp-op-case {
149                 uses nxm-of-arp-op-grouping;
150             }
151             case src-of-arp-spa-case {
152                 uses nxm-of-arp-spa-grouping;
153             }
154             case src-of-arp-tpa-case {
155                 uses nxm-of-arp-tpa-grouping;
156             }
157             case src-nx-tun-ipv4-dst-case {
158                 uses nxm-nx-tun-ipv4-dst-grouping;
159             }
160             case src-nx-tun-ipv4-src-case {
161                 uses nxm-nx-tun-ipv4-src-grouping;
162             }
163             case src-of-eth-src-case {
164                 uses nxm-of-eth-src-grouping;
165             }
166             case src-of-eth-dst-case {
167                 uses nxm-of-eth-dst-grouping;
168             }
169             case src-of-eth-type-case {
170                 uses nxm-of-eth-type-grouping;
171             }
172         }
173     }
174     
175     grouping range-grouping {
176         leaf start {
177             description "Include value.";
178             type uint16;
179         }
180         leaf end {
181             description "Include value.";
182             type uint16;
183         }
184     }
185     
186     grouping nx-action-reg-load-grouping {
187         container nx-reg-load {
188             container dst {
189                 description "Writes value to bits start through end, inclusive, in field dst.";
190                 uses dst-choice-grouping;
191                 uses range-grouping;
192             }
193             leaf value {
194                 type uint64;
195             }
196         }
197     }
198     
199     grouping nx-action-reg-move-grouping {
200         container nx-reg-move {
201             container src {
202                 description "Writes value to bits start through end, inclusive, in field src.";
203                 uses src-choice-grouping;
204                 uses range-grouping;
205             }
206             container dst {
207                 description "Writes value to bits start through end, inclusive, in field dst.";
208                 uses dst-choice-grouping;
209                 uses range-grouping;
210             }
211         }
212     }
213     grouping nx-action-output-reg-grouping {
214         container nx-output-reg {
215             container src {
216                 description "Choose the register with the OpenFlow output port, using the number of 
217 bits specified from the register.";
218                 uses src-choice-grouping;
219                 leaf ofs_nbits {
220                     type uint16;
221                 }
222             }
223             leaf max_len {
224                 description "The number of bytes to send when the chosen port is OFPP_CONTROLLER";
225                 type uint16;
226             }
227         }
228     }
229     // ACTION augmentations
230     // RPCS
231     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" {
232         case nx-action-reg-load-rpc-add-flow-write-actions-case {
233             uses nx-action-reg-load-grouping;
234         }
235     }
236     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" {
237         case nx-action-reg-move-rpc-add-flow-write-actions-case {
238             uses nx-action-reg-move-grouping;
239         }
240     }
241     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" {
242         case nx-action-output-reg-rpc-add-flow-write-actions-case {
243             uses nx-action-output-reg-grouping;
244         }
245     }
246     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" {
247         case nx-action-reg-load-rpc-add-flow-apply-actions-case {
248             uses nx-action-reg-load-grouping;
249         }
250     }
251     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" {
252         case nx-action-reg-move-rpc-add-flow-apply-actions-case {
253             uses nx-action-reg-move-grouping;
254         }
255     }
256     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" {
257         case nx-action-output-reg-rpc-add-flow-apply-actions-case {
258             uses nx-action-output-reg-grouping;
259         }
260     }
261     
262     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" {
263         case "nx-action-reg-load-rpc-remove-flow-write-actions-case" {
264             uses nx-action-reg-load-grouping;
265         }
266     }
267     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" {
268         case "nx-action-reg-move-rpc-remove-flow-write-actions-case" {
269             uses nx-action-reg-move-grouping;
270         }
271     }
272     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" {
273         case "nx-action-output-reg-rpc-remove-flow-write-actions-case" {
274             uses nx-action-output-reg-grouping;
275         }
276     }
277     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" {
278         case "nx-action-reg-load-rpc-remove-flow-apply-actions-case" {
279             uses nx-action-reg-load-grouping;
280         }
281     }
282     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" {
283         case "nx-action-reg-move-rpc-remove-flow-apply-actions-case" {
284             uses nx-action-reg-move-grouping;
285         }
286     }
287     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" {
288         case "nx-action-output-reg-rpc-remove-flow-apply-actions-case" {
289             uses nx-action-output-reg-grouping;
290         }
291     }
292     
293     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" {
294         case "nx-action-reg-load-rpc-update-flow-original-write-actions-case" {
295             uses nx-action-reg-load-grouping;
296         }
297     }
298     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" {
299         case "nx-action-reg-move-rpc-update-flow-original-write-actions-case" {
300             uses nx-action-reg-move-grouping;
301         }
302     }
303     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" {
304         case "nx-action-output-reg-rpc-update-flow-original-write-actions-case" {
305             uses nx-action-output-reg-grouping;
306         }
307     }
308     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" {
309         case "nx-action-reg-load-rpc-update-flow-original-apply-actions-case" {
310             uses nx-action-reg-load-grouping;
311         }
312     }
313     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" {
314         case "nx-action-reg-move-rpc-update-flow-original-apply-actions-case" {
315             uses nx-action-reg-move-grouping;
316         }
317     }
318     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" {
319         case "nx-action-output-reg-rpc-update-flow-original-apply-actions-case" {
320             uses nx-action-output-reg-grouping;
321         }
322     }
323     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" {
324         case "nx-action-reg-load-rpc-update-flow-updated-write-actions-case" {
325             uses nx-action-reg-load-grouping;
326         }
327     }
328     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" {
329         case "nx-action-reg-move-rpc-update-flow-updated-write-actions-case" {
330             uses nx-action-reg-move-grouping;
331         }
332     }
333     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" {
334         case "nx-action-output-reg-rpc-update-flow-updated-write-actions-case" {
335             uses nx-action-output-reg-grouping;
336         }
337     }
338     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" {
339         case "nx-action-reg-load-rpc-update-flow-updated-apply-actions-case" {
340             uses nx-action-reg-load-grouping;
341         }
342     }
343     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" {
344         case "nx-action-reg-move-rpc-update-flow-updated-apply-actions-case" {
345             uses nx-action-reg-move-grouping;
346         }
347     }
348     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" {
349         case "nx-action-output-reg-rpc-update-flow-updated-apply-actions-case" {
350             uses nx-action-output-reg-grouping;
351         }
352     }
353     
354     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
355         case "nx-action-reg-load-rpc-add-group-case" {
356             uses nx-action-reg-load-grouping;
357         }
358     }
359     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
360         case "nx-action-reg-move-rpc-add-group-case" {
361             uses nx-action-reg-move-grouping;
362         }
363     }
364     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
365         case "nx-action-output-reg-rpc-add-group-case" {
366             uses nx-action-output-reg-grouping;
367         }
368     }
369     
370     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
371         case "nx-action-reg-load-rpc-remove-group-case" {
372             uses nx-action-reg-load-grouping;
373         }
374     }
375     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
376         case "nx-action-reg-move-rpc-remove-group-case" {
377             uses nx-action-reg-move-grouping;
378         }
379     }
380     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
381         case "nx-action-output-reg-rpc-remove-group-case" {
382             uses nx-action-output-reg-grouping;
383         }
384     }
385     
386     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
387         case "nx-action-reg-load-rpc-update-group-original-case" {
388             uses nx-action-reg-load-grouping;
389         }
390     }
391     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
392         case "nx-action-reg-move-rpc-update-group-original-case" {
393             uses nx-action-reg-move-grouping;
394         }
395     }
396     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
397         case "nx-action-output-reg-rpc-update-group-original-case" {
398             uses nx-action-output-reg-grouping;
399         }
400     }
401     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
402         case "nx-action-reg-load-rpc-update-group-updated-case" {
403             uses nx-action-reg-load-grouping;
404         }
405     }
406     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
407         case "nx-action-reg-move-rpc-update-group-updated-case" {
408             uses nx-action-reg-move-grouping;
409         }
410     }
411     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
412         case "nx-action-output-reg-rpc-update-group-updated-case" {
413             uses nx-action-output-reg-grouping;
414         }
415     }
416     
417     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
418         case "nx-action-reg-load-rpc-transmit-packet-case" {
419             uses nx-action-reg-load-grouping;
420         }
421     }
422     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
423         case "nx-action-reg-move-rpc-transmit-packet-case" {
424             uses nx-action-reg-move-grouping;
425         }
426     }
427     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
428         case "nx-action-output-reg-rpc-transmit-packet-case" {
429             uses nx-action-output-reg-grouping;
430         }
431     }
432     
433     // DATA
434     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" {
435         case "nx-action-reg-load-nodes-node-table-flow-write-actions-case" {
436             uses nx-action-reg-load-grouping;
437         }
438     }
439     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" {
440         case "nx-action-reg-move-nodes-node-table-flow-write-actions-case" {
441             uses nx-action-reg-move-grouping;
442         }
443     }
444     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" {
445         case "nx-action-output-reg-nodes-node-table-flow-write-actions-case" {
446             uses nx-action-output-reg-grouping;
447         }
448     }
449     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" {
450         case "nx-action-reg-load-nodes-node-table-flow-apply-actions-case" {
451             uses nx-action-reg-load-grouping;
452         }
453     }
454     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" {
455         case "nx-action-reg-move-nodes-node-table-flow-apply-actions-case" {
456             uses nx-action-reg-move-grouping;
457         }
458     }
459     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" {
460         case "nx-action-output-reg-nodes-node-table-flow-apply-actions-case" {
461             uses nx-action-output-reg-grouping;
462         }
463     }
464     
465     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
466         case "nx-action-reg-load-nodes-node-group-buckets-bucket-actions-case" {
467             uses nx-action-reg-load-grouping;
468         }
469     }
470     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
471         case "nx-action-reg-move-nodes-node-group-buckets-bucket-actions-case" {
472             uses nx-action-reg-move-grouping;
473         }
474     }
475     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
476         case "nx-action-output-reg-nodes-node-group-buckets-bucket-actions-case" {
477             uses nx-action-output-reg-grouping;
478         }
479     }
480     
481     // NOTIFICATIONS
482     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" {
483         case "nx-action-reg-load-notif-flows-statistics-update-write-actions-case" {
484             uses nx-action-reg-load-grouping;
485         }
486     }
487     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" {
488         case "nx-action-reg-move-notif-flows-statistics-update-write-actions-case" {
489             uses nx-action-reg-move-grouping;
490         }
491     }
492     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" {
493         case "nx-action-output-reg-notif-flows-statistics-update-write-actions-case" {
494             uses nx-action-output-reg-grouping;
495         }
496     }
497     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" {
498         case "nx-action-reg-load-notif-flows-statistics-update-apply-actions-case" {
499             uses nx-action-reg-load-grouping;
500         }
501     }
502     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" {
503         case "nx-action-reg-move-notif-flows-statistics-update-apply-actions-case" {
504             uses nx-action-reg-move-grouping;
505         }
506     }
507     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" {
508         case "nx-action-output-reg-notif-flows-statistics-update-apply-actions-case" {
509             uses nx-action-output-reg-grouping;
510         }
511     }
512     
513     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" {
514         case "nx-action-reg-load-notif-group-desc-stats-updated-case" {
515             uses nx-action-reg-load-grouping;
516         }
517     }
518     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" {
519         case "nx-action-reg-move-notif-group-desc-stats-updated-case" {
520             uses nx-action-reg-move-grouping;
521         }
522     }
523     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" {
524         case "nx-action-output-reg-notif-group-desc-stats-updated-case" {
525             uses nx-action-output-reg-grouping;
526         }
527     }
528
529 }