+module opendaylight-table-types {
+ namespace "urn:opendaylight:table:types";
+ prefix table;
+
+ import ietf-inet-types {prefix inet;}
+ import ietf-yang-types {prefix yang;}
+ import opendaylight-flow-types {prefix flow;}
+
+
+ revision "2013-10-26" {
+ description "Initial revision of table service";
+ }
+
+ typedef table-ref {
+ type instance-identifier;
+ }
+
+ typedef table-config {
+ type bits {
+ bit DEPRECATED-MASK;
+ }
+ }
+
+ grouping table-feature-prop-type {
+ choice table-feature-prop-type {
+ case instructions {
+ container instructions {
+ uses flow:instruction-list;
+ }
+ }
+
+ case instructions-miss {
+ container instructions-miss {
+ uses flow:instruction-list;
+ }
+ }
+
+ case next-table {
+ container tables {
+ list table-id {
+ key "table";
+
+ leaf table-id {
+ type table-ref;
+ }
+ }
+ }
+ }
+
+ case next-table-miss {
+ container tables {
+ list table-id {
+ key "table-id";
+
+ leaf table-id {
+ type table-ref;
+ }
+ }
+ }
+ }
+
+ case write-actions {
+ container write-actions {
+ uses flow:action-list;
+ }
+ }
+
+ case write-actions-miss {
+ container write-actions-miss {
+ uses flow:action-list;
+ }
+ }
+
+ case apply-actions {
+ container apply-actions {
+ uses flow:action-list;
+ }
+ }
+
+ case apply-actions-miss {
+ container apply-actions-miss {
+ uses flow:action-list;
+ }
+ }
+
+ case match {
+ container matches {
+ leaf-list match {
+ type uint32;
+ }
+ }
+ }
+
+ case wildcards {
+ container wildcards {
+ leaf-list wildcard {
+ type uint32;
+ }
+ }
+ }
+
+ case write-setfield {
+ container write-setfield {
+ leaf-list setfield {
+ type uint32;
+ }
+ }
+ }
+
+ case write-setfield-miss {
+ container write-setfield-miss {
+ leaf-list setfield {
+ type uint32;
+ }
+ }
+ }
+
+ case apply-setfield {
+ container apply-setfield {
+ leaf-list setfield {
+ type uint32;
+ }
+ }
+ }
+
+ case apply-setfield-miss {
+ container apply-setfield-miss {
+ leaf-list setfield {
+ type uint32;
+ }
+ }
+ }
+ }
+ }
+
+ grouping table-features {
+ list table-features {
+ key "table-id";
+
+ leaf table-id {
+ type table-ref;
+ }
+
+ leaf name {
+ description "Name of the table";
+ type string;
+ }
+
+ leaf metadata-match {
+ description "Bits of metadata table can match";
+ type uint64;
+ }
+
+ leaf metadata-write {
+ description "Bits of metadata table can write";
+ type uint64;
+ }
+
+ leaf max-entries {
+ description "Max number of entries supported";
+ type uint32;
+ }
+
+ leaf config {
+ description "Bitmap of OFPTC_ values";
+ type table-config;
+ }
+
+ container table-properties {
+ list instruction-id {
+ key "order";
+ leaf order {
+ type int32;
+ }
+
+ uses table-feature-prop-type;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file