identity nxm-nx-multipath {
base ofaction:experimenter-action-sub-type;
}
- identity nxm-nx-set-nsp {
+ identity nxm-nx-push-nsh {
base ofaction:experimenter-action-sub-type;
}
- identity nxm-nx-set-nsi {
+ identity nxm-nx-pop-nsh {
base ofaction:experimenter-action-sub-type;
}
identity nxm-nx-conntrack {
base ofaction:experimenter-action-sub-type;
}
+ identity nxm-nx-learn {
+ base ofaction:experimenter-action-sub-type;
+ }
grouping ofj-nx-action-reg-load-grouping {
container nx-action-reg-load {
}
}
- grouping ofj-nx-action-set-nsp-grouping {
- container nx-action-set-nsp {
- leaf nsp {
- type uint32;
- }
+ grouping ofj-nx-action-push-nsh-grouping {
+ container nx-action-push-nsh {
leaf experimenter-id {
type oft:experimenter-id;
}
}
}
-
- grouping ofj-nx-action-set-nsi-grouping {
- container nx-action-set-nsi {
- leaf nsi {
- type uint8;
- }
+ grouping ofj-nx-action-pop-nsh-grouping {
+ container nx-action-pop-nsh {
leaf experimenter-id {
type oft:experimenter-id;
}
}
}
- grouping ofj-nx-action-set-nshc-grouping {
- leaf nshc {
- type uint32;
- }
- leaf experimenter-id {
- type oft:experimenter-id;
- }
- }
-
- grouping ofj-nx-action-set-nshc-1-grouping {
- container nx-action-set-nshc-1 {
- uses ofj-nx-action-set-nshc-grouping;
- }
- }
- grouping ofj-nx-action-set-nshc-2-grouping {
- container nx-action-set-nshc-2 {
- uses ofj-nx-action-set-nshc-grouping;
- }
- }
- grouping ofj-nx-action-set-nshc-3-grouping {
- container nx-action-set-nshc-3 {
- uses ofj-nx-action-set-nshc-grouping;
- }
- }
- grouping ofj-nx-action-set-nshc-4-grouping {
- container nx-action-set-nshc-4 {
- uses ofj-nx-action-set-nshc-grouping;
- }
- }
-
grouping ofj-nx-action-conntrack-grouping {
container nx-action-conntrack {
leaf flags {
}
}
+ 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-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 ofj-nx-action-learn-grouping {
+ container nx-action-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;
+ }
+ }
+ }
+
augment "/ofaction:action-container/ofaction:action-choice" {
ext:augment-identifier "ofj-aug-nx-action";
case action-reg-load {
case action-multipath {
uses ofj-nx-action-multipath-grouping;
}
- case action-set-nsp {
- uses ofj-nx-action-set-nsp-grouping;
+ case action-push-nsh {
+ uses ofj-nx-action-push-nsh-grouping;
}
- case action-set-nsi {
- uses ofj-nx-action-set-nsi-grouping;
- }
- case action-set-nshc-1 {
- uses ofj-nx-action-set-nshc-1-grouping;
- }
- case action-set-nshc-2 {
- uses ofj-nx-action-set-nshc-2-grouping;
- }
- case action-set-nshc-3 {
- uses ofj-nx-action-set-nshc-3-grouping;
- }
- case action-set-nshc-4 {
- uses ofj-nx-action-set-nshc-4-grouping;
+ case action-pop-nsh {
+ uses ofj-nx-action-pop-nsh-grouping;
}
case action-conntrack {
uses ofj-nx-action-conntrack-grouping;
}
+ case action-learn {
+ uses ofj-nx-action-learn-grouping;
+ }
}
}