+ grouping action-grouping {
+ choice action-choice {
+ case output-action-case {
+ container output-action {
+ leaf port {
+ type oft:port-number;
+ }
+ leaf max-length {
+ type uint16;
+ }
+ }
+ }
+ case copy-ttl-out-case {
+ // empty action
+ }
+ case copy-ttl-in-case {
+ // empty action
+ }
+ case set-mpls-ttl-case {
+ container set-mpls-ttl-action {
+ leaf mpls-ttl {
+ type uint8;
+ }
+ }
+ }
+ case dec-mpls-ttl-case {
+ // empty action
+ }
+ case push-vlan-case {
+ container push-vlan-action {
+ leaf ethertype {
+ type oft:ether-type;
+ }
+ }
+ }
+ case pop-vlan-case {
+ // empty action
+ }
+ case push-mpls-case {
+ container push-mpls-action {
+ leaf ethertype {
+ type oft:ether-type;
+ }
+ }
+ }
+ case pop-mpls-case {
+ container pop-mpls-action {
+ leaf ethertype {
+ type oft:ether-type;
+ }
+ }
+ }
+ case set-queue-case {
+ container set-queue-action {
+ leaf queue-id {
+ type uint32;
+ }
+ }
+ }
+ case group-case {
+ container group-action {
+ leaf group-id {
+ type uint32;
+ }
+ }
+ }
+ case set-nw-ttl-case {
+ container set-nw-ttl-action {
+ leaf nw-ttl {
+ type uint8;
+ }
+ }
+ }
+ case dec-nw-ttl-case {
+ // empty action
+ }
+ case set-field-case {
+ container set-field-action {
+ uses oxm:match-entries-grouping;
+ }
+ }
+ case push-pbb-case {
+ container push-pbb-action {
+ leaf ethertype {
+ type oft:ether-type;
+ }
+ }
+ }
+ case pop-pbb-case {
+ // empty action
+ }
+ // OF1.0 structures
+ case set-vlan-vid-case {
+ container set-vlan-vid-action {
+ leaf vlan-vid {
+ type uint16;
+ }
+ }
+ }
+ case set-vlan-pcp-case {
+ container set-vlan-pcp-action {
+ leaf vlan-pcp {
+ type uint8;
+ }
+ }
+ }
+ case strip-vlan-case {
+ // empty action
+ }
+ case set-dl-src-case {
+ container set-dl-src-action {
+ leaf dl-src-address {
+ type yang:mac-address;
+ }
+ }
+ }
+ case set-dl-dst-case {
+ container set-dl-dst-action {
+ leaf dl-dst-address {
+ type yang:mac-address;
+ }
+ }
+ }
+ case set-nw-src-case {
+ container set-nw-src-action {
+ leaf ip-address {
+ type inet:ipv4-address;
+ }
+ }
+ }
+ case set-nw-dst-case {
+ container set-nw-dst-action {
+ leaf ip-address {
+ type inet:ipv4-address;
+ }
+ }
+ }
+ case set-nw-tos-case {
+ container set-nw-tos-action {
+ leaf nw-tos {
+ type uint8;
+ }
+ }
+ }
+ case set-tp-src-case {
+ container set-tp-src-action {
+ leaf port {
+ type oft:port-number;
+ }
+ }
+ }
+ case set-tp-dst-case {
+ container set-tp-dst-action {
+ leaf port {
+ type oft:port-number;
+ }
+ }
+ }
+ case enqueue-case {
+ container enqueue-action {
+ leaf port {
+ type oft:port-number;
+ }
+ leaf queue-id {
+ type oft:queue-id;
+ }