module openflowplugin-extension-nicira-action { yang-version 1; namespace "urn:opendaylight:openflowplugin:extension:nicira:action"; prefix "openflowplugin-nicira-action"; import yang-ext {prefix ext; revision-date "2013-07-09";} import flow-node-inventory {prefix fni; revision-date 2013-08-19; } import opendaylight-inventory {prefix inv;revision-date "2013-08-19";} import sal-flow {prefix sal-flow;revision-date "2013-08-19";} import sal-group {prefix sal-group;revision-date "2013-09-18";} import packet-processing {prefix sal-packet;revision-date "2013-07-09";} import opendaylight-flow-statistics {prefix odl-flow-stats;revision-date "2013-08-19";} import opendaylight-group-statistics {prefix odl-group-stats;revision-date "2013-11-11";} import nicira-match {prefix nicira-match;revision-date "2014-04-21";} import openflowplugin-extension-general {prefix ext-gen;revision-date "2014-07-14";} import openflow-action {prefix ofaction;revision-date "2015-02-03";} import nicira-action {prefix nicira-action;revision-date "2014-04-21";} import opendaylight-direct-statistics {prefix directstat;revision-date "2016-05-11";} description "Nicira openflow action extensions."; revision "2014-07-14" { description "Initial revision"; } identity nx-action-reg-load-key { base ext-gen:extension-key; } identity nx-action-reg-move-key { base ext-gen:extension-key; } grouping nxm-nx-reg-grouping { leaf nx-reg { type identityref { base nicira-match:nxm-nx-reg; } } } grouping nxm-nx-tun-id-grouping { leaf nx-tun-id { type empty; } } grouping nxm-nx-arp-sha-grouping { leaf nx-arp-sha { type empty; } } grouping nxm-nx-arp-tha-grouping { leaf nx-arp-tha { type empty; } } grouping oxm-of-mpls-label-grouping { leaf of-mpls-label { type empty; } } grouping nxm-of-arp-op-grouping { leaf of-arp-op { type empty; } } grouping nxm-of-arp-spa-grouping { leaf of-arp-spa { type empty; } } grouping nxm-of-arp-tpa-grouping { leaf of-arp-tpa { type empty; } } grouping nxm-of-in-port-grouping { leaf of-in-port { type empty; } } grouping nxm-nx-tun-ipv4-dst-grouping { leaf nx-tun-ipv4-dst { type empty; } } grouping nxm-nx-tun-ipv4-src-grouping { leaf nx-tun-ipv4-src { type empty; } } grouping nxm-of-eth-src-grouping { leaf of-eth-src { type empty; } } grouping nxm-of-eth-dst-grouping { leaf of-eth-dst { type empty; } } grouping nxm-of-eth-type-grouping { leaf of-eth-type { type empty; } } grouping nxm-nx-nsp-grouping { leaf nx-nsp-dst { type empty; } } grouping nxm-nx-nsi-grouping { leaf nx-nsi-dst { type empty; } } grouping nxm-nx-nshc-1-grouping { leaf nx-nshc-1-dst { type empty; } } grouping nxm-nx-nshc-2-grouping { leaf nx-nshc-2-dst { type empty; } } grouping nxm-nx-nshc-3-grouping { leaf nx-nshc-3-dst { type empty; } } grouping nxm-nx-nshc-4-grouping { leaf nx-nshc-4-dst { type empty; } } grouping nxm-of-ip-src-grouping { leaf of-ip-src { type empty; } } grouping nxm-of-ip-dst-grouping { leaf of-ip-dst { type empty; } } grouping nxm-of-icmp-type-grouping { leaf of-icmp-type { type empty; } } grouping nxm-nx-encap-eth-src-grouping { leaf nx-encap-eth-src { type empty; } } grouping nxm-nx-encap-eth-dst-grouping { leaf nx-encap-eth-dst { type empty; } } grouping nxm-nx-nsh-mdtype-grouping { leaf nx-nsh-mdtype { type empty; } } grouping nxm-nx-nsh-np-grouping { leaf nx-nsh-np { type empty; } } grouping nxm-nx-tun-gpe-np-grouping { leaf nx-tun-gpe-np { type empty; } } grouping dst-choice-grouping { choice dst-choice { case dst-nx-reg-case { uses nxm-nx-reg-grouping; } case dst-nx-tun-id-case { uses nxm-nx-tun-id-grouping; } case dst-of-mpls-label-case { uses oxm-of-mpls-label-grouping; } case dst-nx-arp-sha-case { uses nxm-nx-arp-sha-grouping; } case dst-nx-arp-tha-case { uses nxm-nx-arp-tha-grouping; } case dst-of-arp-op-case { uses nxm-of-arp-op-grouping; } case dst-of-arp-spa-case { uses nxm-of-arp-spa-grouping; } case dst-of-arp-tpa-case { uses nxm-of-arp-tpa-grouping; } case dst-nx-of-in-port-case { uses nxm-of-in-port-grouping; } case dst-nx-tun-ipv4-dst-case { uses nxm-nx-tun-ipv4-dst-grouping; } case dst-nx-tun-ipv4-src-case { uses nxm-nx-tun-ipv4-src-grouping; } case dst-of-eth-src-case { uses nxm-of-eth-src-grouping; } case dst-of-eth-dst-case { uses nxm-of-eth-dst-grouping; } case dst-nx-nsp-case { uses nxm-nx-nsp-grouping; } case dst-nx-nsi-case { uses nxm-nx-nsi-grouping; } case dst-nx-nshc-1-case { uses nxm-nx-nshc-1-grouping; } case dst-nx-nshc-2-case { uses nxm-nx-nshc-2-grouping; } case dst-nx-nshc-3-case { uses nxm-nx-nshc-3-grouping; } case dst-nx-nshc-4-case { uses nxm-nx-nshc-4-grouping; } case dst-of-ip-src-case { uses nxm-of-ip-src-grouping; } case dst-of-ip-dst-case { uses nxm-of-ip-dst-grouping; } case dst-of-icmp-type-case { uses nxm-of-icmp-type-grouping; } case dst-nx-encap-eth-src-case { uses nxm-nx-encap-eth-src-grouping; } case dst-nx-encap-eth-dst-case { uses nxm-nx-encap-eth-dst-grouping; } case dst-nx-nsh-mdtype-case { uses nxm-nx-nsh-mdtype-grouping; } case dst-nx-nsh-np-case { uses nxm-nx-nsh-np-grouping; } case dst-nx-tun-gpe-np-case { uses nxm-nx-tun-gpe-np-grouping; } } } grouping src-choice-grouping { choice src-choice { case src-nx-reg-case { uses nxm-nx-reg-grouping; } case src-nx-tun-id-case { uses nxm-nx-tun-id-grouping; } case src-nx-of-mpls-label-case { uses oxm-of-mpls-label-grouping; } case src-nx-arp-sha-case { uses nxm-nx-arp-sha-grouping; } case src-nx-arp-tha-case { uses nxm-nx-arp-tha-grouping; } case src-of-arp-op-case { uses nxm-of-arp-op-grouping; } case src-of-arp-spa-case { uses nxm-of-arp-spa-grouping; } case src-of-arp-tpa-case { uses nxm-of-arp-tpa-grouping; } case src-nx-of-in-port-case { uses nxm-of-in-port-grouping; } case src-nx-tun-ipv4-dst-case { uses nxm-nx-tun-ipv4-dst-grouping; } case src-nx-tun-ipv4-src-case { uses nxm-nx-tun-ipv4-src-grouping; } case src-of-eth-src-case { uses nxm-of-eth-src-grouping; } case src-of-eth-dst-case { uses nxm-of-eth-dst-grouping; } case src-of-eth-type-case { uses nxm-of-eth-type-grouping; } case src-nx-nsp-case { uses nxm-nx-nsp-grouping; } case src-nx-nsi-case { uses nxm-nx-nsi-grouping; } case src-nx-nshc-1-case { uses nxm-nx-nshc-1-grouping; } case src-nx-nshc-2-case { uses nxm-nx-nshc-2-grouping; } case src-nx-nshc-3-case { uses nxm-nx-nshc-3-grouping; } case src-nx-nshc-4-case { uses nxm-nx-nshc-4-grouping; } case src-of-ip-src-case { uses nxm-of-ip-src-grouping; } case src-of-ip-dst-case { uses nxm-of-ip-dst-grouping; } case src-nx-encap-eth-src-case { uses nxm-nx-encap-eth-src-grouping; } case src-nx-encap-eth-dst-case { uses nxm-nx-encap-eth-dst-grouping; } case src-nx-nsh-mdtype-case { uses nxm-nx-nsh-mdtype-grouping; } case src-nx-nsh-np-case { uses nxm-nx-nsh-np-grouping; } case src-nx-tun-gpe-np-case { uses nxm-nx-tun-gpe-np-grouping; } } } grouping range-grouping { leaf start { description "Include value."; type uint16; } leaf end { description "Include value."; type uint16; } } grouping nx-action-reg-load-grouping { container nx-reg-load { container dst { description "Writes value to bits start through end, inclusive, in field dst."; uses dst-choice-grouping; uses range-grouping; } leaf value { type uint64; } } } grouping nx-action-reg-move-grouping { container nx-reg-move { container src { description "Writes value to bits start through end, inclusive, in field src."; uses src-choice-grouping; uses range-grouping; } container dst { description "Writes value to bits start through end, inclusive, in field dst."; uses dst-choice-grouping; uses range-grouping; } } } grouping nx-action-output-reg-grouping { container nx-output-reg { container src { description "Choose the register with the OpenFlow output port, using the number of bits specified from the register."; uses src-choice-grouping; leaf ofs_nbits { type uint16; } } leaf max_len { description "The number of bytes to send when the chosen port is OFPP_CONTROLLER"; type uint16; } } } grouping nx-action-resubmit-grouping { container nx-resubmit { description "Re-searches OpenFlow flow table (or the table whose number is specified by table) with the in-port field replaced by port (if port is specified) and executes the actions found"; leaf in-port { type uint16; default 0xfff8; // OFPP_INPORT } leaf table { type uint8 { range "0 .. 255"; } default 255; // Current Table } } } grouping nx-action-fin-timeout-grouping { container nx-action-fin-timeout { leaf fin-idle-timeout { type uint16; } leaf fin-hard-timeout { type uint16; } } } grouping nx-action-multipath-grouping { container nx-multipath { leaf fields { type nicira-action:ofj-nx-hash-fields; } leaf basis { type uint16; default 0x400; } leaf algorithm { type nicira-action:ofj-nx-mp-algorithm; } leaf max-link { type uint16; } leaf arg { type uint32; } container dst { description "Writes value to bits start through end, inclusive, in field dst."; uses dst-choice-grouping; uses range-grouping; } } } grouping nx-action-push-nsh-grouping { container nx-push-nsh { presence "no content action"; description "Push NSH header"; } } grouping nx-action-pop-nsh-grouping { container nx-pop-nsh { presence "no content action"; description "Pop NSH header"; } } grouping nx-action-conntrack-grouping { container nx-conntrack { leaf flags { type uint16; } leaf zone-src { type uint32; } leaf conntrack-zone { type uint16; } leaf recirc-table { type uint8; } } } grouping flow-mod-spec { description "flow mod spec indicates the actions that should be performed to create a new flow which was learned from learn action."; choice flow-mod-spec{ case flow-mod-add-match-from-field-case{ container flow-mod-add-match-from-field{ leaf flow-mod-num-bits{ type uint16; } leaf src-field{ type uint32; } leaf src-ofs{ type uint16; } leaf dst-field{ type uint32; } leaf dst-ofs{ type uint16; } } } case flow-mod-add-match-from-value-case{ container flow-mod-add-match-from-value{ leaf flow-mod-num-bits{ type uint16; } leaf value{ type uint16; } leaf src-field{ type uint32; } leaf src-ofs{ type uint16; } } } case flow-mod-copy-field-into-field-case{ container flow-mod-copy-field-into-field{ leaf flow-mod-num-bits{ type uint16; } leaf src-field{ type uint32; } leaf src-ofs{ type uint16; } leaf dst-field{ type uint32; } leaf dst-ofs{ type uint16; } } } case flow-mod-copy-value-into-field-case{ container flow-mod-copy-value-into-field{ leaf flow-mod-num-bits{ type uint16; } leaf value{ type uint16; } leaf dst-field{ type uint32; } leaf dst-ofs{ type uint16; } } } case flow-mod-output-to-port-case{ container flow-mod-output-to-port{ leaf flow-mod-num-bits{ type uint16; } leaf src-field{ type uint32; } leaf src-ofs{ type uint16; } } } } } grouping nx-action-learn-grouping { container nx-learn { leaf idle-timeout { type uint16; } leaf hard-timeout { type uint16; } leaf priority { type uint16; } leaf cookie { type uint64; } leaf flags { type uint16; } leaf table-id { type uint8; } leaf fin-idle-timeout { type uint16; } leaf fin-hard-timeout { type uint16; } list flow-mods{ uses flow-mod-spec; } } } // ACTION augmentations // RPCS 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" { case nx-action-reg-load-rpc-add-flow-write-actions-case { uses nx-action-reg-load-grouping; } } 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" { case nx-action-reg-move-rpc-add-flow-write-actions-case { uses nx-action-reg-move-grouping; } } 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" { case nx-action-output-reg-rpc-add-flow-write-actions-case { uses nx-action-output-reg-grouping; } } 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" { case nx-action-resubmit-rpc-add-flow-write-actions-case { uses nx-action-resubmit-grouping; } } 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" { case nx-action-fin-timeout-rpc-add-flow-write-actions-case { uses nx-action-fin-timeout-grouping; } } 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" { case nx-action-multipath-rpc-add-flow-write-actions-case { uses nx-action-multipath-grouping; } } 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" { case nx-action-push-nsh-rpc-add-flow-write-actions-case { uses nx-action-push-nsh-grouping; } } 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" { case nx-action-pop-nsh-rpc-add-flow-write-actions-case { uses nx-action-pop-nsh-grouping; } } 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" { case nx-action-conntrack-rpc-add-flow-write-actions-case { uses nx-action-conntrack-grouping; } } 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" { case nx-action-learn-rpc-add-flow-write-actions-case { uses nx-action-learn-grouping; } } 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" { case nx-action-reg-load-rpc-add-flow-apply-actions-case { uses nx-action-reg-load-grouping; } } 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" { case nx-action-reg-move-rpc-add-flow-apply-actions-case { uses nx-action-reg-move-grouping; } } 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" { case nx-action-output-reg-rpc-add-flow-apply-actions-case { uses nx-action-output-reg-grouping; } } 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" { case nx-action-resubmit-rpc-add-flow-apply-actions-case { uses nx-action-resubmit-grouping; } } 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" { case nx-action-fin-timeout-rpc-add-flow-apply-actions-case { uses nx-action-fin-timeout-grouping; } } 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" { case nx-action-multipath-rpc-add-flow-apply-actions-case { uses nx-action-multipath-grouping; } } 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" { case nx-action-push-nsh-rpc-add-flow-apply-actions-case { uses nx-action-push-nsh-grouping; } } 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" { case nx-action-pop-nsh-rpc-add-flow-apply-actions-case { uses nx-action-pop-nsh-grouping; } } 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" { case nx-action-conntrack-rpc-add-flow-apply-actions-case { uses nx-action-conntrack-grouping; } } 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" { case nx-action-learn-rpc-add-flow-apply-actions-case { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-rpc-remove-flow-write-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-rpc-remove-flow-write-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-rpc-remove-flow-write-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case nx-action-resubmit-rpc-remove-flow-write-actions-case { uses nx-action-resubmit-grouping; } } 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" { case nx-action-fin-timeout-rpc-remove-flow-write-actions-case { uses nx-action-fin-timeout-grouping; } } 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" { case nx-action-multipath-rpc-remove-flow-write-actions-case { uses nx-action-multipath-grouping; } } 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" { case nx-action-push-nsh-rpc-remove-flow-write-actions-case { uses nx-action-push-nsh-grouping; } } 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" { case nx-action-pop-nsh-rpc-remove-flow-write-actions-case { uses nx-action-pop-nsh-grouping; } } 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" { case nx-action-conntrack-rpc-remove-flow-write-actions-case { uses nx-action-conntrack-grouping; } } 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" { case nx-action-learn-rpc-remove-flow-write-actions-case { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-rpc-remove-flow-apply-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-rpc-remove-flow-apply-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-rpc-remove-flow-apply-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case nx-action-resubmit-rpc-remove-flow-apply-actions-case { uses nx-action-resubmit-grouping; } } 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" { case nx-action-fin-timeout-rpc-remove-flow-apply-actions-case { uses nx-action-fin-timeout-grouping; } } 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" { case nx-action-multipath-rpc-remove-flow-apply-actions-case { uses nx-action-multipath-grouping; } } 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" { case nx-action-push-nsh-rpc-remove-flow-apply-actions-case { uses nx-action-push-nsh-grouping; } } 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" { case nx-action-pop-nsh-rpc-remove-flow-apply-actions-case { uses nx-action-pop-nsh-grouping; } } 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" { case nx-action-conntrack-rpc-remove-flow-apply-actions-case { uses nx-action-conntrack-grouping; } } 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" { case nx-action-learn-rpc-remove-flow-apply-actions-case { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-rpc-update-flow-original-write-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-rpc-update-flow-original-write-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-rpc-update-flow-original-write-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-rpc-update-flow-original-write-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-rpc-update-flow-original-write-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-rpc-update-flow-original-write-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-rpc-update-flow-original-write-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-rpc-update-flow-original-write-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-rpc-update-flow-original-write-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-rpc-update-flow-original-write-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-rpc-update-flow-original-apply-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-rpc-update-flow-original-apply-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-rpc-update-flow-original-apply-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-rpc-update-flow-original-apply-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-rpc-update-flow-original-apply-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-rpc-update-flow-original-apply-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-rpc-update-flow-original-apply-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-rpc-update-flow-original-apply-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-rpc-update-flow-original-apply-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-rpc-update-flow-original-apply-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-rpc-update-flow-updated-write-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-rpc-update-flow-updated-write-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-rpc-update-flow-updated-write-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-rpc-update-flow-updated-write-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-rpc-update-flow-updated-write-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-rpc-update-flow-updated-write-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-rpc-update-flow-updated-write-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-rpc-update-flow-updated-write-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-rpc-update-flow-updated-write-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-rpc-update-flow-updated-write-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-rpc-update-flow-updated-apply-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-rpc-update-flow-updated-apply-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-rpc-update-flow-updated-apply-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-rpc-update-flow-updated-apply-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-rpc-update-flow-updated-apply-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-rpc-update-flow-updated-apply-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-rpc-update-flow-updated-apply-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-rpc-update-flow-updated-apply-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-rpc-update-flow-updated-apply-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-rpc-update-flow-updated-apply-actions-case" { uses nx-action-learn-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-load-rpc-add-group-case" { uses nx-action-reg-load-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-move-rpc-add-group-case" { uses nx-action-reg-move-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-output-reg-rpc-add-group-case" { uses nx-action-output-reg-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-resubmit-rpc-add-group-case" { uses nx-action-resubmit-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-fin-timeout-rpc-add-group-case" { uses nx-action-fin-timeout-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-multipath-rpc-add-group-case" { uses nx-action-multipath-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-push-nsh-rpc-add-group-case" { uses nx-action-push-nsh-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-pop-nsh-rpc-add-group-case" { uses nx-action-pop-nsh-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-conntrack-rpc-add-group-case" { uses nx-action-conntrack-grouping; } } augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-learn-rpc-add-group-case" { uses nx-action-learn-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-load-rpc-remove-group-case" { uses nx-action-reg-load-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-move-rpc-remove-group-case" { uses nx-action-reg-move-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-output-reg-rpc-remove-group-case" { uses nx-action-output-reg-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-resubmit-rpc-remove-group-case" { uses nx-action-resubmit-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-fin-timeout-rpc-remove-group-case" { uses nx-action-fin-timeout-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-multipath-rpc-remove-group-case" { uses nx-action-multipath-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-push-nsh-rpc-remove-group-case" { uses nx-action-push-nsh-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-pop-nsh-rpc-remove-group-case" { uses nx-action-pop-nsh-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-conntrack-rpc-remove-group-case" { uses nx-action-conntrack-grouping; } } augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-learn-rpc-remove-group-case" { uses nx-action-learn-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-load-rpc-update-group-original-case" { uses nx-action-reg-load-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-move-rpc-update-group-original-case" { uses nx-action-reg-move-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-output-reg-rpc-update-group-original-case" { uses nx-action-output-reg-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-resubmit-rpc-update-group-original-case" { uses nx-action-resubmit-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-fin-timeout-rpc-update-group-original-case" { uses nx-action-fin-timeout-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-multipath-rpc-update-group-original-case" { uses nx-action-multipath-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-push-nsh-rpc-update-group-original-case" { uses nx-action-push-nsh-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-pop-nsh-rpc-update-group-original-case" { uses nx-action-pop-nsh-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-conntrack-rpc-update-group-original-case" { uses nx-action-conntrack-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-learn-rpc-update-group-original-case" { uses nx-action-learn-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-load-rpc-update-group-updated-case" { uses nx-action-reg-load-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-reg-move-rpc-update-group-updated-case" { uses nx-action-reg-move-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-output-reg-rpc-update-group-updated-case" { uses nx-action-output-reg-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-resubmit-rpc-update-group-updated-case" { uses nx-action-resubmit-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-fin-timeout-rpc-update-group-updated-case" { uses nx-action-fin-timeout-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-multipath-rpc-update-group-updated-case" { uses nx-action-multipath-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-push-nsh-rpc-update-group-updated-case" { uses nx-action-push-nsh-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-pop-nsh-rpc-update-group-updated-case" { uses nx-action-pop-nsh-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-conntrack-rpc-update-group-updated-case" { uses nx-action-conntrack-grouping; } } augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" { case "nx-action-learn-rpc-update-group-updated-case" { uses nx-action-learn-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-reg-load-rpc-transmit-packet-case" { uses nx-action-reg-load-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-reg-move-rpc-transmit-packet-case" { uses nx-action-reg-move-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-output-reg-rpc-transmit-packet-case" { uses nx-action-output-reg-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-resubmit-rpc-transmit-packet-case" { uses nx-action-resubmit-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-fin-timeout-rpc-transmit-packet-case" { uses nx-action-fin-timeout-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-multipath-rpc-transmit-packet-case" { uses nx-action-multipath-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-push-nsh-rpc-transmit-packet-case" { uses nx-action-push-nsh-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-pop-nsh-rpc-transmit-packet-case" { uses nx-action-pop-nsh-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-conntrack-rpc-transmit-packet-case" { uses nx-action-conntrack-grouping; } } augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" { case "nx-action-learn-rpc-transmit-packet-case" { uses nx-action-learn-grouping; } } // DATA 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" { case "nx-action-reg-load-nodes-node-table-flow-write-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-nodes-node-table-flow-write-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-nodes-node-table-flow-write-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-nodes-node-table-flow-write-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-nodes-node-table-flow-write-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-nodes-node-table-flow-write-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-nodes-node-table-flow-write-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-nodes-node-table-flow-write-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-nodes-node-table-flow-write-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-nodes-node-table-flow-write-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-nodes-node-table-flow-apply-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-nodes-node-table-flow-apply-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-nodes-node-table-flow-apply-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-nodes-node-table-flow-apply-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-nodes-node-table-flow-apply-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-nodes-node-table-flow-apply-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-nodes-node-table-flow-apply-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-nodes-node-table-flow-apply-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-nodes-node-table-flow-apply-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-nodes-node-table-flow-apply-actions-case" { uses nx-action-learn-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-reg-load-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-reg-load-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-reg-move-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-reg-move-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-output-reg-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-output-reg-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-resubmit-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-resubmit-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-fin-timeout-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-fin-timeout-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-multipath-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-multipath-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-push-nsh-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-push-nsh-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-pop-nsh-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-pop-nsh-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-conntrack-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-conntrack-grouping; } } augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" { case "nx-action-learn-nodes-node-group-buckets-bucket-actions-case" { uses nx-action-learn-grouping; } } // NOTIFICATIONS 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" { case "nx-action-reg-load-notif-flows-statistics-update-write-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-notif-flows-statistics-update-write-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-notif-flows-statistics-update-write-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-notif-flows-statistics-update-write-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-notif-flows-statistics-update-write-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-notif-flows-statistics-update-write-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-notif-flows-statistics-update-write-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-notif-flows-statistics-update-write-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-notif-flows-statistics-update-write-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-notif-flows-statistics-update-write-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-notif-flows-statistics-update-apply-actions-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-notif-flows-statistics-update-apply-actions-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-notif-flows-statistics-update-apply-actions-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-notif-flows-statistics-update-apply-actions-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-notif-flows-statistics-update-apply-actions-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-notif-flows-statistics-update-apply-actions-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-notif-flows-statistics-update-apply-actions-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-notif-flows-statistics-update-apply-actions-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-notif-flows-statistics-update-apply-actions-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-notif-flows-statistics-update-apply-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-notif-group-desc-stats-updated-case" { uses nx-action-reg-load-grouping; } } 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" { case "nx-action-reg-move-notif-group-desc-stats-updated-case" { uses nx-action-reg-move-grouping; } } 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" { case "nx-action-output-reg-notif-group-desc-stats-updated-case" { uses nx-action-output-reg-grouping; } } 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" { case "nx-action-resubmit-notif-group-desc-stats-updated-case" { uses nx-action-resubmit-grouping; } } 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" { case "nx-action-fin-timeout-notif-group-desc-stats-updated-case" { uses nx-action-fin-timeout-grouping; } } 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" { case "nx-action-multipath-notif-group-desc-stats-updated-case" { uses nx-action-multipath-grouping; } } 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" { case "nx-action-push-nsh-notif-group-desc-stats-updated-case" { uses nx-action-push-nsh-grouping; } } 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" { case "nx-action-pop-nsh-notif-group-desc-stats-updated-case" { uses nx-action-pop-nsh-grouping; } } 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" { case "nx-action-conntrack-notif-group-desc-stats-updated-case" { uses nx-action-conntrack-grouping; } } 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" { case "nx-action-learn-notif-group-desc-stats-updated-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-notif-direct-statistics-update-apply-actions-case" { uses nx-action-reg-load-grouping; } case "nx-action-reg-move-notif-direct-statistics-update-apply-actions-case" { uses nx-action-reg-move-grouping; } case "nx-action-output-reg-notif-direct-statistics-update-apply-actions-case" { uses nx-action-output-reg-grouping; } case "nx-action-resubmit-notif-direct-statistics-update-apply-actions-case" { uses nx-action-resubmit-grouping; } case "nx-action-fin-timeout-notif-direct-statistics-update-apply-actions-case" { uses nx-action-fin-timeout-grouping; } case "nx-action-multipath-notif-direct-statistics-update-apply-actions-case" { uses nx-action-multipath-grouping; } case "nx-action-push-nsh-notif-direct-statistics-update-apply-actions-case" { uses nx-action-push-nsh-grouping; } case "nx-action-pop-nsh-notif-direct-statistics-update-apply-actions-case" { uses nx-action-pop-nsh-grouping; } case "nx-action-conntrack-notif-direct-statistics-update-apply-actions-case" { uses nx-action-conntrack-grouping; } case "nx-action-learn-notif-direct-statistics-update-apply-actions-case" { uses nx-action-learn-grouping; } } 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" { case "nx-action-reg-load-notif-direct-statistics-update-write-actions-case" { uses nx-action-reg-load-grouping; } case "nx-action-reg-move-notif-direct-statistics-update-write-actions-case" { uses nx-action-reg-move-grouping; } case "nx-action-output-reg-notif-direct-statistics-update-write-actions-case" { uses nx-action-output-reg-grouping; } case "nx-action-resubmit-notif-direct-statistics-update-write-actions-case" { uses nx-action-resubmit-grouping; } case "nx-action-fin-timeout-notif-direct-statistics-update-write-actions-case" { uses nx-action-fin-timeout-grouping; } case "nx-action-multipath-notif-direct-statistics-update-write-actions-case" { uses nx-action-multipath-grouping; } case "nx-action-push-nsh-notif-direct-statistics-update-write-actions-case" { uses nx-action-push-nsh-grouping; } case "nx-action-pop-nsh-notif-direct-statistics-update-write-actions-case" { uses nx-action-pop-nsh-grouping; } case "nx-action-conntrack-notif-direct-statistics-update-write-actions-case" { uses nx-action-conntrack-grouping; } case "nx-action-learn-notif-direct-statistics-update-write-actions-case" { uses nx-action-learn-grouping; } } }