import opendaylight-flow-types {prefix flow;revision-date "2013-10-26";}
import opendaylight-action-types {prefix action;}
+ import opendaylight-multipart-types { prefix multipart; revision-date "2017-01-12"; }
revision "2013-10-26" {
description "Initial revision of table service";
}
typedef table-id {
- type uint8;
+ type uint8;
}
typedef table-ref {
type instance-identifier;
}
-
+
typedef table-config {
type bits {
bit DEPRECATED-MASK;
grouping set-field-match {
list set-field-match {
- key "match-type";
+ key "match-type";
leaf match-type {
type identityref {
base match-field;
}
leaf has-mask {
type boolean;
- }
+ }
}
}
-
+
grouping table-feature-prop-type {
choice table-feature-prop-type {
- case instructions {
+ case instructions {
container instructions {
uses flow:instruction-list;
- }
+ }
}
-
- case instructions-miss {
+
+ case instructions-miss {
container instructions-miss {
uses flow:instruction-list;
- }
+ }
}
- case next-table {
+ case next-table {
container tables {
leaf-list table-ids {
type uint8;
+ ordered-by user;
}
- }
+ }
}
-
- case next-table-miss {
+
+ case next-table-miss {
container tables-miss {
leaf-list table-ids {
type uint8;
+ ordered-by user;
}
- }
+ }
}
-
- case write-actions {
+
+ case write-actions {
container write-actions {
uses action:action-list;
- }
+ }
}
-
- case write-actions-miss {
+
+ case write-actions-miss {
container write-actions-miss {
uses action:action-list;
- }
+ }
}
-
- case apply-actions {
+
+ case apply-actions {
container apply-actions {
uses action:action-list;
- }
+ }
}
-
- case apply-actions-miss {
+
+ case apply-actions-miss {
container apply-actions-miss {
uses action:action-list;
- }
+ }
}
-
+
case match {
- container match-setfield {
- uses set-field-match;
- }
+ container match-setfield {
+ uses set-field-match;
+ }
}
-
- case wildcards {
- container wildcard-setfield {
+
+ case wildcards {
+ container wildcard-setfield {
uses set-field-match;
}
}
-
- case write-setfield {
- container write-setfield {
+
+ case write-setfield {
+ container write-setfield {
uses set-field-match;
}
}
-
- case write-setfield-miss {
+
+ case write-setfield-miss {
container write-setfield-miss {
uses set-field-match;
}
}
-
- case apply-setfield {
+
+ case apply-setfield {
container apply-setfield {
- uses set-field-match;
+ uses set-field-match;
}
}
-
- case apply-setfield-miss {
+
+ case apply-setfield-miss {
container apply-setfield-miss {
- uses set-field-match;
+ uses set-field-match;
}
}
}
- }
-
+ }
+
grouping table-features {
list table-features {
key "table-id";
-
+
leaf table-id {
type uint8;
- }
-
+ }
+
leaf name {
description "Name of the table";
- type string;
+ type string;
}
-
+
leaf metadata-match {
description "Bits of metadata table can match";
- type uint64;
+ type uint64;
}
-
+
leaf metadata-write {
description "Bits of metadata table can write";
- type uint64;
+ type uint64;
}
-
+
leaf max-entries {
description "Max number of entries supported";
- type uint32;
+ type uint32;
}
-
+
leaf config {
description "Bitmap of OFPTC_ values";
type table-config;
}
-
+
container table-properties {
list table-feature-properties {
key "order";
}
}
}
- }
+ }
+
+ augment "/multipart:multipart-reply/multipart:multipart-reply-body" {
+ case multipart-reply-table-features {
+ uses table-features;
+ }
+ }
+
+ augment "/multipart:multipart-request/multipart:multipart-request-body" {
+ case multipart-request-table-features {
+ uses table-features;
+ }
+ }
}