4 namespace "urn:opendaylight:openflowjava:nx:action";
5 prefix "nicira-action";
7 import openflow-action {prefix ofaction; revision-date "2015-02-03";}
8 import openflow-types {prefix oft;}
9 import yang-ext {prefix ext; revision-date "2013-07-09";}
10 import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; }
13 "Nicira openflow extensions of action.";
15 revision "2014-04-21" {
16 description "Initial revision";
19 identity nxm-nx-reg-load {
20 base ofaction:experimenter-action-sub-type;
22 identity nxm-nx-reg-move {
23 base ofaction:experimenter-action-sub-type;
25 identity nxm-nx-output-reg {
26 base ofaction:experimenter-action-sub-type;
28 identity nxm-nx-resubmit {
29 base ofaction:experimenter-action-sub-type;
31 identity nxm-nx-fin-timeout {
32 base ofaction:experimenter-action-sub-type;
34 identity nxm-nx-multipath {
35 base ofaction:experimenter-action-sub-type;
37 identity nxm-nx-push-nsh {
38 base ofaction:experimenter-action-sub-type;
40 identity nxm-nx-pop-nsh {
41 base ofaction:experimenter-action-sub-type;
43 identity nxm-nx-conntrack {
44 base ofaction:experimenter-action-sub-type;
46 identity nxm-nx-ct-clear {
47 base ofaction:experimenter-action-sub-type;
49 identity nxm-nx-learn {
50 base ofaction:experimenter-action-sub-type;
52 identity nxm-nx-encap {
53 base ofaction:experimenter-action-sub-type;
55 identity nxm-nx-decap {
56 base ofaction:experimenter-action-sub-type;
59 grouping ofj-nx-action-reg-load-grouping {
60 container nx-action-reg-load {
70 leaf experimenter-id {
71 type oft:experimenter-id;
75 grouping ofj-nx-action-reg-move-grouping {
76 container nx-action-reg-move {
92 leaf experimenter-id {
93 type oft:experimenter-id;
97 grouping ofj-nx-action-output-reg-grouping {
98 container nx-action-output-reg {
108 leaf experimenter-id {
109 type oft:experimenter-id;
114 grouping ofj-nx-action-resubmit-grouping {
115 container nx-action-resubmit {
118 default 0xfff8; // OFPP_INPORT
124 default 255; // Current Table
126 leaf experimenter-id {
127 type oft:experimenter-id;
132 grouping ofj-nx-action-fin-timeout-grouping {
133 container nx-action-fin-timeout {
134 leaf fin-idle-timeout {
137 leaf fin-hard-timeout {
140 leaf experimenter-id {
141 type oft:experimenter-id;
146 typedef ofj-nx-hash-fields {
148 enum NX_HASH_FIELDS_ETH_SRC {
150 description "eth src address only";
152 enum NX_HASH_FIELDS_SYMMETRIC_L4 {
154 description "L2 through L4 fields";
159 typedef ofj-nx-mp-algorithm {
161 enum NX_MP_ALG_MODULO_N {
164 enum NX_MP_ALG_HASH_THRESHOLD {
170 enum NX_MP_ALG_ITER_HASH {
176 typedef nx-action-nat-range-present {
178 enum NX_NAT_RANGE_IPV4_MIN {
180 description "IPV4 minimum value is present";
182 enum NX_NAT_RANGE_IPV4_MAX {
184 description "IPV4 maximum value is present";
186 enum NX_NAT_RANGE_IPV6_MIN {
188 description "IPV6 minimum value is present in range";
190 enum NX_NAT_RANGE_IPV6_MAX {
192 description "IPV6 maximum value is present in range";
194 enum NX_NAT_RANGE_PROTO_MIN {
196 description "Port minimum value is present in range";
198 enum NX_NAT_RANGE_PROTO_MAX {
200 description "Port maximum value is present in range";
205 typedef nx-action-nat-flags {
209 description "Source nat is selected ,Mutually exclusive with NX_NAT_F_DST";
213 description "Destination nat is selected";
215 enum NX_NAT_F_PERSISTENT {
217 description "Persistant flag is selected";
219 enum NX_NAT_F_PROTO_HASH {
221 description "Hash mode is selected for port mapping, Mutually exclusive with PROTO_RANDOM ";
223 enum NX_NAT_F_PROTO_RANDOM {
225 description "Port mapping will be randomized";
230 grouping ofj-nx-action-multipath-grouping {
231 container nx-action-multipath {
233 type ofj-nx-hash-fields;
240 type ofj-nx-mp-algorithm;
254 leaf experimenter-id {
255 type oft:experimenter-id;
260 grouping ofj-nx-action-push-nsh-grouping {
261 container nx-action-push-nsh {
262 leaf experimenter-id {
263 type oft:experimenter-id;
267 grouping ofj-nx-action-pop-nsh-grouping {
268 container nx-action-pop-nsh {
269 leaf experimenter-id {
270 type oft:experimenter-id;
275 grouping ofj-nx-action-conntrack-grouping {
276 container nx-action-conntrack {
283 leaf conntrack-zone {
289 leaf experimenter-id {
290 type oft:experimenter-id;
298 grouping ofj-nx-action-ct-clear-grouping {
299 container nx-action-ct-clear {
300 leaf experimenter-id {
301 type oft:experimenter-id;
306 grouping ofpact-actions {
308 "Actions to be performed with conntrack.";
309 choice ofpact-actions {
310 case nx-action-nat-case {
311 container nx-action-nat {
318 leaf ip-address-min {
319 type inet:ip-address;
321 leaf ip-address-max {
322 type inet:ip-address;
332 case nx-action-ct-mark-case {
333 container nx-action-ct-mark {
337 // TODO: ct_mark mask is not supported yet
343 grouping flow-mod-spec {
345 "flow mod spec indicates the actions that should be performed to create a new flow which was learned from learn action.";
346 choice flow-mod-spec{
347 case flow-mod-add-match-from-field-case{
348 container flow-mod-add-match-from-field{
349 leaf flow-mod-num-bits{
370 case flow-mod-add-match-from-value-case{
371 container flow-mod-add-match-from-value{
372 leaf flow-mod-num-bits{
389 case flow-mod-copy-field-into-field-case{
390 container flow-mod-copy-field-into-field{
391 leaf flow-mod-num-bits{
412 case flow-mod-copy-value-into-field-case{
413 container flow-mod-copy-value-into-field{
414 leaf flow-mod-num-bits{
431 case flow-mod-output-to-port-case{
432 container flow-mod-output-to-port{
433 leaf flow-mod-num-bits{
449 grouping ofj-nx-action-learn-grouping {
450 container nx-action-learn {
469 leaf fin-idle-timeout {
472 leaf fin-hard-timeout {
482 grouping ofj-nx-action-encap-grouping {
483 container nx-action-encap {
487 leaf experimenter-id {
488 type oft:experimenter-id;
493 grouping ofj-nx-action-decap-grouping {
494 container nx-action-decap {
498 leaf experimenter-id {
499 type oft:experimenter-id;
504 augment "/ofaction:action-container/ofaction:action-choice" {
505 ext:augment-identifier "ofj-aug-nx-action";
506 case action-reg-load {
507 uses ofj-nx-action-reg-load-grouping;
509 case action-reg-move {
510 uses ofj-nx-action-reg-move-grouping;
512 case action-output-reg {
513 uses ofj-nx-action-output-reg-grouping;
515 case action-resubmit {
516 uses ofj-nx-action-resubmit-grouping;
518 case action-fin-timeout {
519 uses ofj-nx-action-fin-timeout-grouping;
521 case action-multipath {
522 uses ofj-nx-action-multipath-grouping;
524 case action-push-nsh {
525 uses ofj-nx-action-push-nsh-grouping;
527 case action-pop-nsh {
528 uses ofj-nx-action-pop-nsh-grouping;
530 case action-conntrack {
531 uses ofj-nx-action-conntrack-grouping;
533 case action-ct-clear {
534 uses ofj-nx-action-ct-clear-grouping;
537 uses ofj-nx-action-learn-grouping;
540 uses ofj-nx-action-encap-grouping;
543 uses ofj-nx-action-decap-grouping;