Merge "Bug 8253: Set-Field can not accept vendor extension fields."
[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 "2015-02-03";}
18     import nicira-action {prefix nicira-action;revision-date "2014-04-21";}
19     import opendaylight-direct-statistics {prefix directstat;revision-date "2016-05-11";}
20     import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; }
21
22     description
23         "Nicira openflow action extensions.";
24
25     revision "2014-07-14" {
26         description "Initial revision";
27     }
28
29     identity nx-action-reg-load-key {
30         base ext-gen:extension-key;
31     }
32     identity nx-action-reg-move-key {
33         base ext-gen:extension-key;
34     }
35
36     grouping nxm-nx-reg-grouping {
37         leaf nx-reg {
38             type identityref {
39                 base nicira-match:nxm-nx-reg;
40             }
41         }
42     }
43     grouping nxm-nx-tun-id-grouping {
44         leaf nx-tun-id {
45             type empty;
46         }
47     }
48     grouping nxm-nx-arp-sha-grouping {
49         leaf nx-arp-sha {
50             type empty;
51         }
52     }
53     grouping nxm-nx-arp-tha-grouping {
54         leaf nx-arp-tha {
55             type empty;
56         }
57     }
58     grouping oxm-of-mpls-label-grouping {
59         leaf of-mpls-label {
60             type empty;
61         }
62     }
63     grouping nxm-of-arp-op-grouping {
64         leaf of-arp-op {
65             type empty;
66         }
67     }
68     grouping nxm-of-arp-spa-grouping {
69         leaf of-arp-spa {
70             type empty;
71         }
72     }
73     grouping nxm-of-arp-tpa-grouping {
74         leaf of-arp-tpa {
75             type empty;
76         }
77     }
78     grouping nxm-of-in-port-grouping {
79         leaf of-in-port {
80             type empty;
81         }
82     }
83     grouping nxm-nx-tun-ipv4-dst-grouping {
84         leaf nx-tun-ipv4-dst {
85             type empty;
86         }
87     }
88     grouping nxm-nx-tun-ipv4-src-grouping {
89         leaf nx-tun-ipv4-src {
90             type empty;
91         }
92     }
93     grouping nxm-of-eth-src-grouping {
94         leaf of-eth-src {
95             type empty;
96         }
97     }
98     grouping nxm-of-eth-dst-grouping {
99         leaf of-eth-dst {
100             type empty;
101         }
102     }
103     grouping nxm-of-eth-type-grouping {
104         leaf of-eth-type {
105             type empty;
106         }
107     }
108     grouping nxm-nx-nsp-grouping {
109         leaf nx-nsp-dst {
110             type empty;
111         }
112     }
113     grouping nxm-nx-nsi-grouping {
114         leaf nx-nsi-dst {
115             type empty;
116         }
117     }
118     grouping nxm-nx-nshc-1-grouping {
119         leaf nx-nshc-1-dst {
120             type empty;
121         }
122     }
123     grouping nxm-nx-nshc-2-grouping {
124         leaf nx-nshc-2-dst {
125             type empty;
126         }
127     }
128     grouping nxm-nx-nshc-3-grouping {
129         leaf nx-nshc-3-dst {
130             type empty;
131         }
132     }
133     grouping nxm-nx-nshc-4-grouping {
134         leaf nx-nshc-4-dst {
135             type empty;
136         }
137     }
138     grouping nxm-of-ip-src-grouping {
139         leaf of-ip-src {
140             type empty;
141         }
142     }
143     grouping nxm-of-ip-dst-grouping {
144         leaf of-ip-dst {
145             type empty;
146         }
147     }
148     grouping nxm-nx-ipv6-src-grouping {
149         leaf nx-ipv6-src {
150             type empty;
151         }
152     }
153     grouping nxm-nx-ipv6-dst-grouping {
154         leaf nx-ipv6-dst {
155             type empty;
156         }
157     }
158     grouping nxm-of-icmp-type-grouping {
159         leaf of-icmp-type {
160             type empty;
161         }
162     }
163     grouping nxm-nx-encap-eth-src-grouping {
164         leaf nx-encap-eth-src {
165             type empty;
166         }
167     }
168     grouping nxm-nx-encap-eth-dst-grouping {
169         leaf nx-encap-eth-dst {
170             type empty;
171         }
172     }
173     grouping nxm-nx-nsh-mdtype-grouping {
174         leaf nx-nsh-mdtype {
175             type empty;
176         }
177     }
178     grouping nxm-nx-nsh-np-grouping {
179         leaf nx-nsh-np {
180             type empty;
181         }
182     }
183     grouping nxm-nx-tun-gpe-np-grouping {
184         leaf nx-tun-gpe-np {
185             type empty;
186         }
187     }
188
189     grouping dst-choice-grouping {
190         choice dst-choice {
191             case dst-nx-reg-case {
192                 uses nxm-nx-reg-grouping;
193             }
194             case dst-nx-tun-id-case {
195                 uses nxm-nx-tun-id-grouping;
196             }
197             case dst-of-mpls-label-case {
198                  uses oxm-of-mpls-label-grouping;
199             }
200             case dst-nx-arp-sha-case {
201                 uses nxm-nx-arp-sha-grouping;
202             }
203             case dst-nx-arp-tha-case {
204                 uses nxm-nx-arp-tha-grouping;
205             }
206             case dst-of-arp-op-case {
207                 uses nxm-of-arp-op-grouping;
208             }
209             case dst-of-arp-spa-case {
210                 uses nxm-of-arp-spa-grouping;
211             }
212             case dst-of-arp-tpa-case {
213                 uses nxm-of-arp-tpa-grouping;
214             }
215             case dst-nx-of-in-port-case {
216                 uses nxm-of-in-port-grouping;
217             }
218             case dst-nx-tun-ipv4-dst-case {
219                 uses nxm-nx-tun-ipv4-dst-grouping;
220             }
221             case dst-nx-tun-ipv4-src-case {
222                 uses nxm-nx-tun-ipv4-src-grouping;
223             }
224             case dst-of-eth-src-case {
225                 uses nxm-of-eth-src-grouping;
226             }
227             case dst-of-eth-dst-case {
228                 uses nxm-of-eth-dst-grouping;
229             }
230             case dst-nx-nsp-case {
231                 uses nxm-nx-nsp-grouping;
232             }
233             case dst-nx-nsi-case {
234                 uses nxm-nx-nsi-grouping;
235             }
236             case dst-nx-nshc-1-case {
237                 uses nxm-nx-nshc-1-grouping;
238             }
239             case dst-nx-nshc-2-case {
240                 uses nxm-nx-nshc-2-grouping;
241             }
242             case dst-nx-nshc-3-case {
243                 uses nxm-nx-nshc-3-grouping;
244             }
245             case dst-nx-nshc-4-case {
246                 uses nxm-nx-nshc-4-grouping;
247             }
248             case dst-of-ip-src-case {
249                 uses nxm-of-ip-src-grouping;
250             }
251             case dst-of-ip-dst-case {
252                 uses nxm-of-ip-dst-grouping;
253             }
254             case dst-nx-ipv6-src-case {
255                 uses nxm-nx-ipv6-src-grouping;
256             }
257             case dst-nx-ipv6-dst-case {
258                 uses nxm-nx-ipv6-dst-grouping;
259             }
260             case dst-of-icmp-type-case {
261                 uses nxm-of-icmp-type-grouping;
262             }
263             case dst-nx-encap-eth-src-case {
264                 uses nxm-nx-encap-eth-src-grouping;
265             }
266             case dst-nx-encap-eth-dst-case {
267                 uses nxm-nx-encap-eth-dst-grouping;
268             }
269             case dst-nx-nsh-mdtype-case {
270                 uses nxm-nx-nsh-mdtype-grouping;
271             }
272             case dst-nx-nsh-np-case {
273                 uses nxm-nx-nsh-np-grouping;
274             }
275             case dst-nx-tun-gpe-np-case {
276                 uses nxm-nx-tun-gpe-np-grouping;
277             }
278         }
279     }
280
281     grouping src-choice-grouping {
282         choice src-choice {
283             case src-nx-reg-case {
284                 uses nxm-nx-reg-grouping;
285             }
286             case src-nx-tun-id-case {
287                 uses nxm-nx-tun-id-grouping;
288             }
289             case src-nx-of-mpls-label-case {
290                 uses oxm-of-mpls-label-grouping;
291             }
292             case src-nx-arp-sha-case {
293                 uses nxm-nx-arp-sha-grouping;
294             }
295             case src-nx-arp-tha-case {
296                 uses nxm-nx-arp-tha-grouping;
297             }
298             case src-of-arp-op-case {
299                 uses nxm-of-arp-op-grouping;
300             }
301             case src-of-arp-spa-case {
302                 uses nxm-of-arp-spa-grouping;
303             }
304             case src-of-arp-tpa-case {
305                 uses nxm-of-arp-tpa-grouping;
306             }
307             case src-nx-of-in-port-case {
308                 uses nxm-of-in-port-grouping;
309             }
310             case src-nx-tun-ipv4-dst-case {
311                 uses nxm-nx-tun-ipv4-dst-grouping;
312             }
313             case src-nx-tun-ipv4-src-case {
314                 uses nxm-nx-tun-ipv4-src-grouping;
315             }
316             case src-of-eth-src-case {
317                 uses nxm-of-eth-src-grouping;
318             }
319             case src-of-eth-dst-case {
320                 uses nxm-of-eth-dst-grouping;
321             }
322             case src-of-eth-type-case {
323                 uses nxm-of-eth-type-grouping;
324             }
325             case src-nx-nsp-case {
326                 uses nxm-nx-nsp-grouping;
327             }
328             case src-nx-nsi-case {
329                 uses nxm-nx-nsi-grouping;
330             }
331             case src-nx-nshc-1-case {
332                 uses nxm-nx-nshc-1-grouping;
333             }
334             case src-nx-nshc-2-case {
335                 uses nxm-nx-nshc-2-grouping;
336             }
337             case src-nx-nshc-3-case {
338                 uses nxm-nx-nshc-3-grouping;
339             }
340             case src-nx-nshc-4-case {
341                 uses nxm-nx-nshc-4-grouping;
342             }
343             case src-of-ip-src-case {
344                 uses nxm-of-ip-src-grouping;
345             }
346             case src-of-ip-dst-case {
347                 uses nxm-of-ip-dst-grouping;
348             }
349             case src-nx-ipv6-src-case {
350                 uses nxm-nx-ipv6-src-grouping;
351             }
352             case src-nx-ipv6-dst-case {
353                 uses nxm-nx-ipv6-dst-grouping;
354             }
355             case src-nx-encap-eth-src-case {
356                 uses nxm-nx-encap-eth-src-grouping;
357             }
358             case src-nx-encap-eth-dst-case {
359                 uses nxm-nx-encap-eth-dst-grouping;
360             }
361             case src-nx-nsh-mdtype-case {
362                 uses nxm-nx-nsh-mdtype-grouping;
363             }
364             case src-nx-nsh-np-case {
365                 uses nxm-nx-nsh-np-grouping;
366             }
367             case src-nx-tun-gpe-np-case {
368                 uses nxm-nx-tun-gpe-np-grouping;
369             }
370         }
371     }
372
373     grouping range-grouping {
374         leaf start {
375             description "Include value.";
376             type uint16;
377         }
378         leaf end {
379             description "Include value.";
380             type uint16;
381         }
382     }
383
384     grouping nx-action-reg-load-grouping {
385         container nx-reg-load {
386             container dst {
387                 description "Writes value to bits start through end, inclusive, in field dst.";
388                 uses dst-choice-grouping;
389                 uses range-grouping;
390             }
391             leaf value {
392                 type uint64;
393             }
394         }
395     }
396
397     grouping nx-action-reg-move-grouping {
398         container nx-reg-move {
399             container src {
400                 description "Writes value to bits start through end, inclusive, in field src.";
401                 uses src-choice-grouping;
402                 uses range-grouping;
403             }
404             container dst {
405                 description "Writes value to bits start through end, inclusive, in field dst.";
406                 uses dst-choice-grouping;
407                 uses range-grouping;
408             }
409         }
410     }
411     grouping nx-action-output-reg-grouping {
412         container nx-output-reg {
413             container src {
414                 description "Choose the register with the OpenFlow output port, using the number of
415 bits specified from the register.";
416                 uses src-choice-grouping;
417                 leaf ofs_nbits {
418                     type uint16;
419                 }
420             }
421             leaf max_len {
422                 description "The number of bytes to send when the chosen port is OFPP_CONTROLLER";
423                 type uint16;
424             }
425         }
426     }
427
428     grouping nx-action-resubmit-grouping {
429         container nx-resubmit {
430             description "Re-searches OpenFlow flow table (or the table whose number is specified by table)
431             with the in-port field replaced  by port (if port is specified) and executes the actions found";
432             leaf in-port {
433                 type uint16;
434                 default 0xfff8; // OFPP_INPORT
435             }
436             leaf table {
437                 type uint8 {
438                     range "0 .. 255";
439                 }
440                 default 255; // Current Table
441             }
442         }
443     }
444
445     grouping nx-action-fin-timeout-grouping {
446         container nx-action-fin-timeout {
447             leaf fin-idle-timeout {
448                 type uint16;
449             }
450             leaf fin-hard-timeout  {
451                 type uint16;
452             }
453         }
454     }
455
456     grouping nx-action-multipath-grouping {
457         container nx-multipath {
458             leaf fields {
459                 type nicira-action:ofj-nx-hash-fields;
460             }
461             leaf basis {
462                 type uint16;
463                 default 0x400;
464             }
465             leaf algorithm {
466                 type nicira-action:ofj-nx-mp-algorithm;
467             }
468             leaf max-link {
469                 type uint16;
470             }
471             leaf arg {
472                 type uint32;
473             }
474             container dst {
475                 description "Writes value to bits start through end, inclusive, in field dst.";
476                 uses dst-choice-grouping;
477                 uses range-grouping;
478             }
479         }
480     }
481
482     grouping nx-action-push-nsh-grouping {
483         container nx-push-nsh {
484             presence "no content action";
485             description "Push NSH header";
486         }
487     }
488     grouping nx-action-pop-nsh-grouping {
489         container nx-pop-nsh {
490             presence "no content action";
491             description "Pop NSH header";
492         }
493     }
494
495     grouping nx-action-conntrack-grouping {
496         container nx-conntrack {
497             leaf flags {
498                 type uint16;
499             }
500             leaf zone-src {
501                 type uint32;
502             }
503             leaf conntrack-zone {
504                 type uint16;
505             }
506             leaf recirc-table {
507                 type uint8;
508             }
509             list ct-actions{
510                 uses ofpact-actions;
511             }
512         }
513     }
514
515     grouping ofpact-actions {
516         description
517            "Actions to be performed with conntrack.";
518         choice ofpact-actions {
519             case nx-action-nat-case {
520                 container nx-action-nat {
521                     leaf flags {
522                         type uint16;
523                     }
524                     leaf range_present {
525                         type uint16;
526                     }
527                     leaf ip-address-min {
528                         type inet:ip-address;
529                     }
530                     leaf ip-address-max {
531                         type inet:ip-address;
532                     }
533                     leaf port-min {
534                         type uint16;
535                     }
536                     leaf port-max {
537                         type uint16;
538                     }
539                 }
540             }
541         }
542     }
543
544     grouping flow-mod-spec {
545         description
546            "flow mod spec indicates the actions that should be performed to create a new flow which was learned from learn action.";
547         choice flow-mod-spec{
548             case flow-mod-add-match-from-field-case{
549                 container flow-mod-add-match-from-field{
550                         leaf flow-mod-num-bits{
551                         type uint16;
552                     }
553
554                     leaf src-field{
555                         type uint32;
556                     }
557
558                     leaf src-ofs{
559                         type uint16;
560                     }
561
562                     leaf dst-field{
563                         type uint32;
564                     }
565
566                     leaf dst-ofs{
567                         type uint16;
568                     }
569                 }
570             }
571             case flow-mod-add-match-from-value-case{
572                 container flow-mod-add-match-from-value{
573                         leaf flow-mod-num-bits{
574                         type uint16;
575                     }
576
577                     leaf value{
578                         type uint16;
579                     }
580
581                     leaf src-field{
582                         type uint32;
583                     }
584
585                     leaf src-ofs{
586                         type uint16;
587                     }
588                 }
589             }
590             case flow-mod-copy-field-into-field-case{
591                 container flow-mod-copy-field-into-field{
592                         leaf flow-mod-num-bits{
593                         type uint16;
594                     }
595
596                     leaf src-field{
597                         type uint32;
598                     }
599
600                     leaf src-ofs{
601                         type uint16;
602                     }
603
604                     leaf dst-field{
605                         type uint32;
606                     }
607
608                     leaf dst-ofs{
609                         type uint16;
610                     }
611                 }
612             }
613             case flow-mod-copy-value-into-field-case{
614                 container flow-mod-copy-value-into-field{
615                         leaf flow-mod-num-bits{
616                         type uint16;
617                     }
618
619                     leaf value{
620                         type uint16;
621                     }
622
623                     leaf dst-field{
624                         type uint32;
625                     }
626
627                     leaf dst-ofs{
628                         type uint16;
629                     }
630                 }
631             }
632             case flow-mod-output-to-port-case{
633                 container flow-mod-output-to-port{
634                         leaf flow-mod-num-bits{
635                         type uint16;
636                     }
637
638                     leaf src-field{
639                         type uint32;
640                     }
641
642                     leaf src-ofs{
643                         type uint16;
644                     }
645                 }
646             }
647         }
648     }
649
650     grouping nx-action-learn-grouping {
651         container nx-learn {
652             leaf idle-timeout {
653                 type uint16;
654             }
655             leaf hard-timeout {
656                 type uint16;
657             }
658             leaf priority {
659                 type uint16;
660             }
661             leaf cookie {
662                 type uint64;
663             }
664             leaf flags {
665                 type uint16;
666             }
667             leaf table-id {
668                 type uint8;
669             }
670             leaf fin-idle-timeout {
671                 type uint16;
672             }
673             leaf fin-hard-timeout {
674                 type uint16;
675             }
676
677             list flow-mods{
678                 uses flow-mod-spec;
679             }
680         }
681     }
682
683
684     // ACTION augmentations
685     // RPCS
686     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" {
687         case nx-action-reg-load-rpc-add-flow-write-actions-case {
688             uses nx-action-reg-load-grouping;
689         }
690     }
691     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" {
692         case nx-action-reg-move-rpc-add-flow-write-actions-case {
693             uses nx-action-reg-move-grouping;
694         }
695     }
696     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" {
697         case nx-action-output-reg-rpc-add-flow-write-actions-case {
698             uses nx-action-output-reg-grouping;
699         }
700     }
701     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" {
702         case nx-action-resubmit-rpc-add-flow-write-actions-case {
703             uses nx-action-resubmit-grouping;
704         }
705     }
706     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" {
707         case nx-action-fin-timeout-rpc-add-flow-write-actions-case {
708             uses nx-action-fin-timeout-grouping;
709         }
710     }
711     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" {
712         case nx-action-multipath-rpc-add-flow-write-actions-case {
713             uses nx-action-multipath-grouping;
714         }
715     }
716     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" {
717         case nx-action-push-nsh-rpc-add-flow-write-actions-case {
718             uses nx-action-push-nsh-grouping;
719         }
720     }
721     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" {
722         case nx-action-pop-nsh-rpc-add-flow-write-actions-case {
723             uses nx-action-pop-nsh-grouping;
724         }
725     }
726     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" {
727         case nx-action-conntrack-rpc-add-flow-write-actions-case {
728             uses nx-action-conntrack-grouping;
729         }
730     }
731     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" {
732         case nx-action-learn-rpc-add-flow-write-actions-case {
733             uses nx-action-learn-grouping;
734         }
735     }
736
737     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" {
738         case nx-action-reg-load-rpc-add-flow-apply-actions-case {
739             uses nx-action-reg-load-grouping;
740         }
741     }
742     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" {
743         case nx-action-reg-move-rpc-add-flow-apply-actions-case {
744             uses nx-action-reg-move-grouping;
745         }
746     }
747     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" {
748         case nx-action-output-reg-rpc-add-flow-apply-actions-case {
749             uses nx-action-output-reg-grouping;
750         }
751     }
752     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" {
753         case nx-action-resubmit-rpc-add-flow-apply-actions-case {
754             uses nx-action-resubmit-grouping;
755         }
756     }
757     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" {
758         case nx-action-fin-timeout-rpc-add-flow-apply-actions-case {
759             uses nx-action-fin-timeout-grouping;
760         }
761     }
762     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" {
763         case nx-action-multipath-rpc-add-flow-apply-actions-case {
764             uses nx-action-multipath-grouping;
765         }
766     }
767     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" {
768         case nx-action-push-nsh-rpc-add-flow-apply-actions-case {
769             uses nx-action-push-nsh-grouping;
770         }
771     }
772     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" {
773         case nx-action-pop-nsh-rpc-add-flow-apply-actions-case {
774             uses nx-action-pop-nsh-grouping;
775         }
776     }
777
778     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" {
779         case nx-action-conntrack-rpc-add-flow-apply-actions-case {
780             uses nx-action-conntrack-grouping;
781         }
782     }
783     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" {
784         case nx-action-learn-rpc-add-flow-apply-actions-case {
785             uses nx-action-learn-grouping;
786         }
787     }
788
789     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" {
790         case "nx-action-reg-load-rpc-remove-flow-write-actions-case" {
791             uses nx-action-reg-load-grouping;
792         }
793     }
794     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" {
795         case "nx-action-reg-move-rpc-remove-flow-write-actions-case" {
796             uses nx-action-reg-move-grouping;
797         }
798     }
799     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" {
800         case "nx-action-output-reg-rpc-remove-flow-write-actions-case" {
801             uses nx-action-output-reg-grouping;
802         }
803     }
804     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" {
805         case nx-action-resubmit-rpc-remove-flow-write-actions-case {
806             uses nx-action-resubmit-grouping;
807         }
808     }
809     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" {
810         case nx-action-fin-timeout-rpc-remove-flow-write-actions-case {
811             uses nx-action-fin-timeout-grouping;
812         }
813     }
814     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" {
815         case nx-action-multipath-rpc-remove-flow-write-actions-case {
816             uses nx-action-multipath-grouping;
817         }
818     }
819     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" {
820         case nx-action-push-nsh-rpc-remove-flow-write-actions-case {
821             uses nx-action-push-nsh-grouping;
822         }
823     }
824     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" {
825         case nx-action-pop-nsh-rpc-remove-flow-write-actions-case {
826             uses nx-action-pop-nsh-grouping;
827         }
828     }
829     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" {
830         case nx-action-conntrack-rpc-remove-flow-write-actions-case {
831             uses nx-action-conntrack-grouping;
832         }
833     }
834     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" {
835         case nx-action-learn-rpc-remove-flow-write-actions-case {
836             uses nx-action-learn-grouping;
837         }
838     }
839
840     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" {
841         case "nx-action-reg-load-rpc-remove-flow-apply-actions-case" {
842             uses nx-action-reg-load-grouping;
843         }
844     }
845     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" {
846         case "nx-action-reg-move-rpc-remove-flow-apply-actions-case" {
847             uses nx-action-reg-move-grouping;
848         }
849     }
850     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" {
851         case "nx-action-output-reg-rpc-remove-flow-apply-actions-case" {
852             uses nx-action-output-reg-grouping;
853         }
854     }
855     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" {
856         case nx-action-resubmit-rpc-remove-flow-apply-actions-case {
857             uses nx-action-resubmit-grouping;
858         }
859     }
860     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" {
861         case nx-action-fin-timeout-rpc-remove-flow-apply-actions-case {
862             uses nx-action-fin-timeout-grouping;
863         }
864     }
865     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" {
866         case nx-action-multipath-rpc-remove-flow-apply-actions-case {
867             uses nx-action-multipath-grouping;
868         }
869     }
870     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" {
871         case nx-action-push-nsh-rpc-remove-flow-apply-actions-case {
872             uses nx-action-push-nsh-grouping;
873         }
874     }
875     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" {
876         case nx-action-pop-nsh-rpc-remove-flow-apply-actions-case {
877             uses nx-action-pop-nsh-grouping;
878         }
879     }
880     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" {
881         case nx-action-conntrack-rpc-remove-flow-apply-actions-case {
882             uses nx-action-conntrack-grouping;
883         }
884     }
885     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" {
886         case nx-action-learn-rpc-remove-flow-apply-actions-case {
887             uses nx-action-learn-grouping;
888         }
889     }
890
891     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" {
892         case "nx-action-reg-load-rpc-update-flow-original-write-actions-case" {
893             uses nx-action-reg-load-grouping;
894         }
895     }
896     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" {
897         case "nx-action-reg-move-rpc-update-flow-original-write-actions-case" {
898             uses nx-action-reg-move-grouping;
899         }
900     }
901     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" {
902         case "nx-action-output-reg-rpc-update-flow-original-write-actions-case" {
903             uses nx-action-output-reg-grouping;
904         }
905     }
906     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" {
907         case "nx-action-resubmit-rpc-update-flow-original-write-actions-case" {
908             uses nx-action-resubmit-grouping;
909         }
910     }
911     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" {
912         case "nx-action-fin-timeout-rpc-update-flow-original-write-actions-case" {
913             uses nx-action-fin-timeout-grouping;
914         }
915     }
916     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" {
917         case "nx-action-multipath-rpc-update-flow-original-write-actions-case" {
918             uses nx-action-multipath-grouping;
919         }
920     }
921     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" {
922         case "nx-action-push-nsh-rpc-update-flow-original-write-actions-case" {
923             uses nx-action-push-nsh-grouping;
924         }
925     }
926     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" {
927         case "nx-action-pop-nsh-rpc-update-flow-original-write-actions-case" {
928             uses nx-action-pop-nsh-grouping;
929         }
930     }
931     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" {
932         case "nx-action-conntrack-rpc-update-flow-original-write-actions-case" {
933             uses nx-action-conntrack-grouping;
934         }
935     }
936     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" {
937         case "nx-action-learn-rpc-update-flow-original-write-actions-case" {
938             uses nx-action-learn-grouping;
939         }
940     }
941
942     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" {
943         case "nx-action-reg-load-rpc-update-flow-original-apply-actions-case" {
944             uses nx-action-reg-load-grouping;
945         }
946     }
947     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" {
948         case "nx-action-reg-move-rpc-update-flow-original-apply-actions-case" {
949             uses nx-action-reg-move-grouping;
950         }
951     }
952     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" {
953         case "nx-action-output-reg-rpc-update-flow-original-apply-actions-case" {
954             uses nx-action-output-reg-grouping;
955         }
956     }
957     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" {
958         case "nx-action-resubmit-rpc-update-flow-original-apply-actions-case" {
959             uses nx-action-resubmit-grouping;
960         }
961     }
962     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" {
963         case "nx-action-fin-timeout-rpc-update-flow-original-apply-actions-case" {
964             uses nx-action-fin-timeout-grouping;
965         }
966     }
967     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" {
968         case "nx-action-multipath-rpc-update-flow-original-apply-actions-case" {
969             uses nx-action-multipath-grouping;
970         }
971     }
972     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" {
973         case "nx-action-push-nsh-rpc-update-flow-original-apply-actions-case" {
974             uses nx-action-push-nsh-grouping;
975         }
976     }
977     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" {
978         case "nx-action-pop-nsh-rpc-update-flow-original-apply-actions-case" {
979             uses nx-action-pop-nsh-grouping;
980         }
981     }
982     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" {
983         case "nx-action-conntrack-rpc-update-flow-original-apply-actions-case" {
984             uses nx-action-conntrack-grouping;
985         }
986     }
987     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" {
988         case "nx-action-learn-rpc-update-flow-original-apply-actions-case" {
989             uses nx-action-learn-grouping;
990         }
991     }
992
993     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" {
994         case "nx-action-reg-load-rpc-update-flow-updated-write-actions-case" {
995             uses nx-action-reg-load-grouping;
996         }
997     }
998     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" {
999         case "nx-action-reg-move-rpc-update-flow-updated-write-actions-case" {
1000             uses nx-action-reg-move-grouping;
1001         }
1002     }
1003     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" {
1004         case "nx-action-output-reg-rpc-update-flow-updated-write-actions-case" {
1005             uses nx-action-output-reg-grouping;
1006         }
1007     }
1008     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" {
1009         case "nx-action-resubmit-rpc-update-flow-updated-write-actions-case" {
1010             uses nx-action-resubmit-grouping;
1011         }
1012     }
1013     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" {
1014         case "nx-action-fin-timeout-rpc-update-flow-updated-write-actions-case" {
1015             uses nx-action-fin-timeout-grouping;
1016         }
1017     }
1018     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" {
1019         case "nx-action-multipath-rpc-update-flow-updated-write-actions-case" {
1020             uses nx-action-multipath-grouping;
1021         }
1022     }
1023     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" {
1024         case "nx-action-push-nsh-rpc-update-flow-updated-write-actions-case" {
1025             uses nx-action-push-nsh-grouping;
1026         }
1027     }
1028     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" {
1029         case "nx-action-pop-nsh-rpc-update-flow-updated-write-actions-case" {
1030             uses nx-action-pop-nsh-grouping;
1031         }
1032     }
1033     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" {
1034         case "nx-action-conntrack-rpc-update-flow-updated-write-actions-case" {
1035             uses nx-action-conntrack-grouping;
1036         }
1037     }
1038     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" {
1039         case "nx-action-learn-rpc-update-flow-updated-write-actions-case" {
1040             uses nx-action-learn-grouping;
1041         }
1042     }
1043
1044     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" {
1045         case "nx-action-reg-load-rpc-update-flow-updated-apply-actions-case" {
1046             uses nx-action-reg-load-grouping;
1047         }
1048     }
1049     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" {
1050         case "nx-action-reg-move-rpc-update-flow-updated-apply-actions-case" {
1051             uses nx-action-reg-move-grouping;
1052         }
1053     }
1054     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" {
1055         case "nx-action-output-reg-rpc-update-flow-updated-apply-actions-case" {
1056             uses nx-action-output-reg-grouping;
1057         }
1058     }
1059     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" {
1060         case "nx-action-resubmit-rpc-update-flow-updated-apply-actions-case" {
1061             uses nx-action-resubmit-grouping;
1062         }
1063     }
1064     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" {
1065         case "nx-action-fin-timeout-rpc-update-flow-updated-apply-actions-case" {
1066             uses nx-action-fin-timeout-grouping;
1067         }
1068     }
1069     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" {
1070         case "nx-action-multipath-rpc-update-flow-updated-apply-actions-case" {
1071             uses nx-action-multipath-grouping;
1072         }
1073     }
1074     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" {
1075         case "nx-action-push-nsh-rpc-update-flow-updated-apply-actions-case" {
1076             uses nx-action-push-nsh-grouping;
1077         }
1078     }
1079     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" {
1080         case "nx-action-pop-nsh-rpc-update-flow-updated-apply-actions-case" {
1081             uses nx-action-pop-nsh-grouping;
1082         }
1083     }
1084     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" {
1085         case "nx-action-conntrack-rpc-update-flow-updated-apply-actions-case" {
1086             uses nx-action-conntrack-grouping;
1087         }
1088     }
1089     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" {
1090         case "nx-action-learn-rpc-update-flow-updated-apply-actions-case" {
1091             uses nx-action-learn-grouping;
1092         }
1093     }
1094
1095     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1096         case "nx-action-reg-load-rpc-add-group-case" {
1097             uses nx-action-reg-load-grouping;
1098         }
1099     }
1100     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1101         case "nx-action-reg-move-rpc-add-group-case" {
1102             uses nx-action-reg-move-grouping;
1103         }
1104     }
1105     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1106         case "nx-action-output-reg-rpc-add-group-case" {
1107             uses nx-action-output-reg-grouping;
1108         }
1109     }
1110     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1111         case "nx-action-resubmit-rpc-add-group-case" {
1112             uses nx-action-resubmit-grouping;
1113         }
1114     }
1115     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1116         case "nx-action-fin-timeout-rpc-add-group-case" {
1117             uses nx-action-fin-timeout-grouping;
1118         }
1119     }
1120     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1121         case "nx-action-multipath-rpc-add-group-case" {
1122             uses nx-action-multipath-grouping;
1123         }
1124     }
1125     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1126         case "nx-action-push-nsh-rpc-add-group-case" {
1127             uses nx-action-push-nsh-grouping;
1128         }
1129     }
1130     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1131         case "nx-action-pop-nsh-rpc-add-group-case" {
1132             uses nx-action-pop-nsh-grouping;
1133         }
1134     }
1135     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1136         case "nx-action-conntrack-rpc-add-group-case" {
1137             uses nx-action-conntrack-grouping;
1138         }
1139     }
1140     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1141         case "nx-action-learn-rpc-add-group-case" {
1142             uses nx-action-learn-grouping;
1143         }
1144     }
1145
1146     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1147         case "nx-action-reg-load-rpc-remove-group-case" {
1148             uses nx-action-reg-load-grouping;
1149         }
1150     }
1151     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1152         case "nx-action-reg-move-rpc-remove-group-case" {
1153             uses nx-action-reg-move-grouping;
1154         }
1155     }
1156     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1157         case "nx-action-output-reg-rpc-remove-group-case" {
1158             uses nx-action-output-reg-grouping;
1159         }
1160     }
1161     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1162         case "nx-action-resubmit-rpc-remove-group-case" {
1163             uses nx-action-resubmit-grouping;
1164         }
1165     }
1166     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1167         case "nx-action-fin-timeout-rpc-remove-group-case" {
1168             uses nx-action-fin-timeout-grouping;
1169         }
1170     }
1171     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1172         case "nx-action-multipath-rpc-remove-group-case" {
1173             uses nx-action-multipath-grouping;
1174         }
1175     }
1176     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1177         case "nx-action-push-nsh-rpc-remove-group-case" {
1178             uses nx-action-push-nsh-grouping;
1179         }
1180     }
1181     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1182         case "nx-action-pop-nsh-rpc-remove-group-case" {
1183             uses nx-action-pop-nsh-grouping;
1184         }
1185     }
1186     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1187         case "nx-action-conntrack-rpc-remove-group-case" {
1188             uses nx-action-conntrack-grouping;
1189         }
1190     }
1191     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1192         case "nx-action-learn-rpc-remove-group-case" {
1193             uses nx-action-learn-grouping;
1194         }
1195     }
1196
1197     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1198         case "nx-action-reg-load-rpc-update-group-original-case" {
1199             uses nx-action-reg-load-grouping;
1200         }
1201     }
1202     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1203         case "nx-action-reg-move-rpc-update-group-original-case" {
1204             uses nx-action-reg-move-grouping;
1205         }
1206     }
1207     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1208         case "nx-action-output-reg-rpc-update-group-original-case" {
1209             uses nx-action-output-reg-grouping;
1210         }
1211     }
1212     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1213         case "nx-action-resubmit-rpc-update-group-original-case" {
1214             uses nx-action-resubmit-grouping;
1215         }
1216     }
1217     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1218         case "nx-action-fin-timeout-rpc-update-group-original-case" {
1219             uses nx-action-fin-timeout-grouping;
1220         }
1221     }
1222     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1223         case "nx-action-multipath-rpc-update-group-original-case" {
1224             uses nx-action-multipath-grouping;
1225         }
1226     }
1227     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1228         case "nx-action-push-nsh-rpc-update-group-original-case" {
1229             uses nx-action-push-nsh-grouping;
1230         }
1231     }
1232     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1233         case "nx-action-pop-nsh-rpc-update-group-original-case" {
1234             uses nx-action-pop-nsh-grouping;
1235         }
1236     }
1237     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1238         case "nx-action-conntrack-rpc-update-group-original-case" {
1239             uses nx-action-conntrack-grouping;
1240         }
1241     }
1242     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1243         case "nx-action-learn-rpc-update-group-original-case" {
1244             uses nx-action-learn-grouping;
1245         }
1246     }
1247
1248     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1249         case "nx-action-reg-load-rpc-update-group-updated-case" {
1250             uses nx-action-reg-load-grouping;
1251         }
1252     }
1253     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1254         case "nx-action-reg-move-rpc-update-group-updated-case" {
1255             uses nx-action-reg-move-grouping;
1256         }
1257     }
1258     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1259         case "nx-action-output-reg-rpc-update-group-updated-case" {
1260             uses nx-action-output-reg-grouping;
1261         }
1262     }
1263     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1264         case "nx-action-resubmit-rpc-update-group-updated-case" {
1265             uses nx-action-resubmit-grouping;
1266         }
1267     }
1268     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1269         case "nx-action-fin-timeout-rpc-update-group-updated-case" {
1270             uses nx-action-fin-timeout-grouping;
1271         }
1272     }
1273     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1274         case "nx-action-multipath-rpc-update-group-updated-case" {
1275             uses nx-action-multipath-grouping;
1276         }
1277     }
1278     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1279         case "nx-action-push-nsh-rpc-update-group-updated-case" {
1280             uses nx-action-push-nsh-grouping;
1281         }
1282     }
1283     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1284         case "nx-action-pop-nsh-rpc-update-group-updated-case" {
1285             uses nx-action-pop-nsh-grouping;
1286         }
1287     }
1288     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1289         case "nx-action-conntrack-rpc-update-group-updated-case" {
1290             uses nx-action-conntrack-grouping;
1291         }
1292     }
1293     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
1294         case "nx-action-learn-rpc-update-group-updated-case" {
1295             uses nx-action-learn-grouping;
1296         }
1297     }
1298
1299     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1300         case "nx-action-reg-load-rpc-transmit-packet-case" {
1301             uses nx-action-reg-load-grouping;
1302         }
1303     }
1304     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1305         case "nx-action-reg-move-rpc-transmit-packet-case" {
1306             uses nx-action-reg-move-grouping;
1307         }
1308     }
1309     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1310         case "nx-action-output-reg-rpc-transmit-packet-case" {
1311             uses nx-action-output-reg-grouping;
1312         }
1313     }
1314     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1315         case "nx-action-resubmit-rpc-transmit-packet-case" {
1316             uses nx-action-resubmit-grouping;
1317         }
1318     }
1319     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1320         case "nx-action-fin-timeout-rpc-transmit-packet-case" {
1321             uses nx-action-fin-timeout-grouping;
1322         }
1323     }
1324     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1325         case "nx-action-multipath-rpc-transmit-packet-case" {
1326             uses nx-action-multipath-grouping;
1327         }
1328     }
1329     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1330         case "nx-action-push-nsh-rpc-transmit-packet-case" {
1331             uses nx-action-push-nsh-grouping;
1332         }
1333     }
1334     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1335         case "nx-action-pop-nsh-rpc-transmit-packet-case" {
1336             uses nx-action-pop-nsh-grouping;
1337         }
1338     }
1339     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1340         case "nx-action-conntrack-rpc-transmit-packet-case" {
1341             uses nx-action-conntrack-grouping;
1342         }
1343     }
1344     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
1345         case "nx-action-learn-rpc-transmit-packet-case" {
1346             uses nx-action-learn-grouping;
1347         }
1348     }
1349
1350     // DATA
1351     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" {
1352         case "nx-action-reg-load-nodes-node-table-flow-write-actions-case" {
1353             uses nx-action-reg-load-grouping;
1354         }
1355     }
1356     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" {
1357         case "nx-action-reg-move-nodes-node-table-flow-write-actions-case" {
1358             uses nx-action-reg-move-grouping;
1359         }
1360     }
1361     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" {
1362         case "nx-action-output-reg-nodes-node-table-flow-write-actions-case" {
1363             uses nx-action-output-reg-grouping;
1364         }
1365     }
1366     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" {
1367         case "nx-action-resubmit-nodes-node-table-flow-write-actions-case" {
1368             uses nx-action-resubmit-grouping;
1369         }
1370     }
1371     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" {
1372         case "nx-action-fin-timeout-nodes-node-table-flow-write-actions-case" {
1373             uses nx-action-fin-timeout-grouping;
1374         }
1375     }
1376     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" {
1377         case "nx-action-multipath-nodes-node-table-flow-write-actions-case" {
1378             uses nx-action-multipath-grouping;
1379         }
1380     }
1381     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" {
1382         case "nx-action-push-nsh-nodes-node-table-flow-write-actions-case" {
1383             uses nx-action-push-nsh-grouping;
1384         }
1385     }
1386     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" {
1387         case "nx-action-pop-nsh-nodes-node-table-flow-write-actions-case" {
1388             uses nx-action-pop-nsh-grouping;
1389         }
1390     }
1391     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" {
1392         case "nx-action-conntrack-nodes-node-table-flow-write-actions-case" {
1393             uses nx-action-conntrack-grouping;
1394         }
1395     }
1396     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" {
1397         case "nx-action-learn-nodes-node-table-flow-write-actions-case" {
1398             uses nx-action-learn-grouping;
1399         }
1400     }
1401
1402     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" {
1403         case "nx-action-reg-load-nodes-node-table-flow-apply-actions-case" {
1404             uses nx-action-reg-load-grouping;
1405         }
1406     }
1407     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" {
1408         case "nx-action-reg-move-nodes-node-table-flow-apply-actions-case" {
1409             uses nx-action-reg-move-grouping;
1410         }
1411     }
1412     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" {
1413         case "nx-action-output-reg-nodes-node-table-flow-apply-actions-case" {
1414             uses nx-action-output-reg-grouping;
1415         }
1416     }
1417     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" {
1418         case "nx-action-resubmit-nodes-node-table-flow-apply-actions-case" {
1419             uses nx-action-resubmit-grouping;
1420         }
1421     }
1422     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" {
1423         case "nx-action-fin-timeout-nodes-node-table-flow-apply-actions-case" {
1424             uses nx-action-fin-timeout-grouping;
1425         }
1426     }
1427     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" {
1428         case "nx-action-multipath-nodes-node-table-flow-apply-actions-case" {
1429             uses nx-action-multipath-grouping;
1430         }
1431     }
1432     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" {
1433         case "nx-action-push-nsh-nodes-node-table-flow-apply-actions-case" {
1434             uses nx-action-push-nsh-grouping;
1435         }
1436     }
1437     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" {
1438         case "nx-action-pop-nsh-nodes-node-table-flow-apply-actions-case" {
1439             uses nx-action-pop-nsh-grouping;
1440         }
1441     }
1442     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" {
1443         case "nx-action-conntrack-nodes-node-table-flow-apply-actions-case" {
1444             uses nx-action-conntrack-grouping;
1445         }
1446     }
1447     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" {
1448         case "nx-action-learn-nodes-node-table-flow-apply-actions-case" {
1449             uses nx-action-learn-grouping;
1450         }
1451     }
1452
1453     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1454         case "nx-action-reg-load-nodes-node-group-buckets-bucket-actions-case" {
1455             uses nx-action-reg-load-grouping;
1456         }
1457     }
1458     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1459         case "nx-action-reg-move-nodes-node-group-buckets-bucket-actions-case" {
1460             uses nx-action-reg-move-grouping;
1461         }
1462     }
1463     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1464         case "nx-action-output-reg-nodes-node-group-buckets-bucket-actions-case" {
1465             uses nx-action-output-reg-grouping;
1466         }
1467     }
1468     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1469         case "nx-action-resubmit-nodes-node-group-buckets-bucket-actions-case" {
1470             uses nx-action-resubmit-grouping;
1471         }
1472     }
1473     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1474         case "nx-action-fin-timeout-nodes-node-group-buckets-bucket-actions-case" {
1475             uses nx-action-fin-timeout-grouping;
1476         }
1477     }
1478     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1479         case "nx-action-multipath-nodes-node-group-buckets-bucket-actions-case" {
1480             uses nx-action-multipath-grouping;
1481         }
1482     }
1483     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1484         case "nx-action-push-nsh-nodes-node-group-buckets-bucket-actions-case" {
1485             uses nx-action-push-nsh-grouping;
1486         }
1487     }
1488     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1489         case "nx-action-pop-nsh-nodes-node-group-buckets-bucket-actions-case" {
1490             uses nx-action-pop-nsh-grouping;
1491         }
1492     }
1493     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1494         case "nx-action-conntrack-nodes-node-group-buckets-bucket-actions-case" {
1495             uses nx-action-conntrack-grouping;
1496         }
1497     }
1498     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
1499         case "nx-action-learn-nodes-node-group-buckets-bucket-actions-case" {
1500             uses nx-action-learn-grouping;
1501         }
1502     }
1503
1504     // NOTIFICATIONS
1505     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" {
1506         case "nx-action-reg-load-notif-flows-statistics-update-write-actions-case" {
1507             uses nx-action-reg-load-grouping;
1508         }
1509     }
1510     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" {
1511         case "nx-action-reg-move-notif-flows-statistics-update-write-actions-case" {
1512             uses nx-action-reg-move-grouping;
1513         }
1514     }
1515     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" {
1516         case "nx-action-output-reg-notif-flows-statistics-update-write-actions-case" {
1517             uses nx-action-output-reg-grouping;
1518         }
1519     }
1520     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" {
1521         case "nx-action-resubmit-notif-flows-statistics-update-write-actions-case" {
1522             uses nx-action-resubmit-grouping;
1523         }
1524     }
1525     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" {
1526         case "nx-action-fin-timeout-notif-flows-statistics-update-write-actions-case" {
1527             uses nx-action-fin-timeout-grouping;
1528         }
1529     }
1530     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" {
1531         case "nx-action-multipath-notif-flows-statistics-update-write-actions-case" {
1532             uses nx-action-multipath-grouping;
1533         }
1534     }
1535     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" {
1536         case "nx-action-push-nsh-notif-flows-statistics-update-write-actions-case" {
1537             uses nx-action-push-nsh-grouping;
1538         }
1539     }
1540     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" {
1541         case "nx-action-pop-nsh-notif-flows-statistics-update-write-actions-case" {
1542             uses nx-action-pop-nsh-grouping;
1543         }
1544     }
1545     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" {
1546         case "nx-action-conntrack-notif-flows-statistics-update-write-actions-case" {
1547             uses nx-action-conntrack-grouping;
1548         }
1549     }
1550     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" {
1551         case "nx-action-learn-notif-flows-statistics-update-write-actions-case" {
1552             uses nx-action-learn-grouping;
1553         }
1554     }
1555
1556     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" {
1557         case "nx-action-reg-load-notif-flows-statistics-update-apply-actions-case" {
1558             uses nx-action-reg-load-grouping;
1559         }
1560     }
1561     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" {
1562         case "nx-action-reg-move-notif-flows-statistics-update-apply-actions-case" {
1563             uses nx-action-reg-move-grouping;
1564         }
1565     }
1566     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" {
1567         case "nx-action-output-reg-notif-flows-statistics-update-apply-actions-case" {
1568             uses nx-action-output-reg-grouping;
1569         }
1570     }
1571     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" {
1572         case "nx-action-resubmit-notif-flows-statistics-update-apply-actions-case" {
1573             uses nx-action-resubmit-grouping;
1574         }
1575     }
1576     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" {
1577         case "nx-action-fin-timeout-notif-flows-statistics-update-apply-actions-case" {
1578             uses nx-action-fin-timeout-grouping;
1579         }
1580     }
1581     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" {
1582         case "nx-action-multipath-notif-flows-statistics-update-apply-actions-case" {
1583             uses nx-action-multipath-grouping;
1584         }
1585     }
1586     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" {
1587         case "nx-action-push-nsh-notif-flows-statistics-update-apply-actions-case" {
1588             uses nx-action-push-nsh-grouping;
1589         }
1590     }
1591     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" {
1592         case "nx-action-pop-nsh-notif-flows-statistics-update-apply-actions-case" {
1593             uses nx-action-pop-nsh-grouping;
1594         }
1595     }
1596     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" {
1597         case "nx-action-conntrack-notif-flows-statistics-update-apply-actions-case" {
1598             uses nx-action-conntrack-grouping;
1599         }
1600     }
1601     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" {
1602         case "nx-action-learn-notif-flows-statistics-update-apply-actions-case" {
1603             uses nx-action-learn-grouping;
1604         }
1605     }
1606
1607     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" {
1608         case "nx-action-reg-load-notif-group-desc-stats-updated-case" {
1609             uses nx-action-reg-load-grouping;
1610         }
1611     }
1612     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" {
1613         case "nx-action-reg-move-notif-group-desc-stats-updated-case" {
1614             uses nx-action-reg-move-grouping;
1615         }
1616     }
1617     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" {
1618         case "nx-action-output-reg-notif-group-desc-stats-updated-case" {
1619             uses nx-action-output-reg-grouping;
1620         }
1621     }
1622     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" {
1623         case "nx-action-resubmit-notif-group-desc-stats-updated-case" {
1624             uses nx-action-resubmit-grouping;
1625         }
1626     }
1627     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" {
1628         case "nx-action-fin-timeout-notif-group-desc-stats-updated-case" {
1629             uses nx-action-fin-timeout-grouping;
1630         }
1631     }
1632     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" {
1633         case "nx-action-multipath-notif-group-desc-stats-updated-case" {
1634             uses nx-action-multipath-grouping;
1635         }
1636     }
1637     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" {
1638         case "nx-action-push-nsh-notif-group-desc-stats-updated-case" {
1639             uses nx-action-push-nsh-grouping;
1640         }
1641     }
1642     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" {
1643         case "nx-action-pop-nsh-notif-group-desc-stats-updated-case" {
1644             uses nx-action-pop-nsh-grouping;
1645         }
1646     }
1647     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" {
1648         case "nx-action-conntrack-notif-group-desc-stats-updated-case" {
1649             uses nx-action-conntrack-grouping;
1650         }
1651     }
1652     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" {
1653         case "nx-action-learn-notif-group-desc-stats-updated-case" {
1654             uses nx-action-learn-grouping;
1655         }
1656     }
1657     augment "/directstat:get-flow-statistics/directstat:output/directstat:flow-and-statistics-map-list/directstat:instructions/directstat:instruction/directstat:instruction/directstat:apply-actions-case/directstat:apply-actions/directstat:action/directstat:action" {
1658         case "nx-action-reg-load-notif-direct-statistics-update-apply-actions-case" {
1659             uses nx-action-reg-load-grouping;
1660         }
1661         case "nx-action-reg-move-notif-direct-statistics-update-apply-actions-case" {
1662             uses nx-action-reg-move-grouping;
1663         }
1664         case "nx-action-output-reg-notif-direct-statistics-update-apply-actions-case" {
1665             uses nx-action-output-reg-grouping;
1666         }
1667         case "nx-action-resubmit-notif-direct-statistics-update-apply-actions-case" {
1668             uses nx-action-resubmit-grouping;
1669         }
1670         case "nx-action-fin-timeout-notif-direct-statistics-update-apply-actions-case" {
1671             uses nx-action-fin-timeout-grouping;
1672         }
1673         case "nx-action-multipath-notif-direct-statistics-update-apply-actions-case" {
1674             uses nx-action-multipath-grouping;
1675         }
1676         case "nx-action-push-nsh-notif-direct-statistics-update-apply-actions-case" {
1677             uses nx-action-push-nsh-grouping;
1678         }
1679         case "nx-action-pop-nsh-notif-direct-statistics-update-apply-actions-case" {
1680             uses nx-action-pop-nsh-grouping;
1681         }
1682         case "nx-action-conntrack-notif-direct-statistics-update-apply-actions-case" {
1683             uses nx-action-conntrack-grouping;
1684         }
1685         case "nx-action-learn-notif-direct-statistics-update-apply-actions-case" {
1686             uses nx-action-learn-grouping;
1687         }
1688     }
1689
1690     augment "/directstat:get-flow-statistics/directstat:output/directstat:flow-and-statistics-map-list/directstat:instructions/directstat:instruction/directstat:instruction/directstat:write-actions-case/directstat:write-actions/directstat:action/directstat:action" {
1691         case "nx-action-reg-load-notif-direct-statistics-update-write-actions-case" {
1692             uses nx-action-reg-load-grouping;
1693         }
1694         case "nx-action-reg-move-notif-direct-statistics-update-write-actions-case" {
1695             uses nx-action-reg-move-grouping;
1696         }
1697         case "nx-action-output-reg-notif-direct-statistics-update-write-actions-case" {
1698             uses nx-action-output-reg-grouping;
1699         }
1700         case "nx-action-resubmit-notif-direct-statistics-update-write-actions-case" {
1701             uses nx-action-resubmit-grouping;
1702         }
1703         case "nx-action-fin-timeout-notif-direct-statistics-update-write-actions-case" {
1704             uses nx-action-fin-timeout-grouping;
1705         }
1706         case "nx-action-multipath-notif-direct-statistics-update-write-actions-case" {
1707             uses nx-action-multipath-grouping;
1708         }
1709         case "nx-action-push-nsh-notif-direct-statistics-update-write-actions-case" {
1710             uses nx-action-push-nsh-grouping;
1711         }
1712         case "nx-action-pop-nsh-notif-direct-statistics-update-write-actions-case" {
1713             uses nx-action-pop-nsh-grouping;
1714         }
1715         case "nx-action-conntrack-notif-direct-statistics-update-write-actions-case" {
1716             uses nx-action-conntrack-grouping;
1717         }
1718         case "nx-action-learn-notif-direct-statistics-update-write-actions-case" {
1719             uses nx-action-learn-grouping;
1720         }
1721     }
1722 }