import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
import opendaylight-port-types {prefix port;revision-date "2013-09-25";}
import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
+ import opendaylight-table-types {prefix table;revision-date "2013-10-26";}
+ import opendaylight-flow-types {prefix flow;revision-date "2013-10-26";}
+ import opendaylight-group-types {prefix group;revision-date "2013-10-18";}
+ import opendaylight-meter-types {prefix meter;revision-date "2013-09-18";}
revision "2013-08-19" {
description "Flow Capable Node extensions to the Inventory model";
}
-
+
+ identity feature-capability {
+ }
+
+ identity flow-feature-capability-flow-stats {
+ description "Flow statistics";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-table-stats {
+ description "Table statistics";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-port-stats {
+ description "Port statistics";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-stp {
+ description "802.1d spanning tree";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-reserved {
+ description "Reserved, must be zero";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-ip-reasm {
+ description "Can reassemble IP fragments";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-queue-stats {
+ description "Queue statistics";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-arp-match-ip {
+ description "Match IP addresses in ARP pkts";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-group-stats {
+ description "Group statistics";
+ base feature-capability;
+ }
+
+ identity flow-feature-capability-port-blocked {
+ description "Switch will block looping ports";
+ base feature-capability;
+ }
+
grouping feature {
leaf support-state {
type inv:support-type;
}
}
- grouping table {
-
-
+ typedef flow-id {
+ type inet:uri;
}
+ grouping tables {
+ list table {
+ key "id";
+
+ leaf id {
+ type uint8;
+ }
+
+ uses table:table-features;
+
+ list flow {
+ key "id";
+
+ leaf id {
+ type flow-id;
+ }
+
+ uses flow:flow;
+ }
+ }
+ }
+
+ grouping meters {
+ list meter {
+ key "meter-id";
+ uses meter:meter;
+ }
+ }
+
+
grouping flow-node {
leaf manufacturer {
type string;
}
- container tables {
- uses feature;
- list table {
- uses table;
- }
- }
-
- container group-tables {
- uses feature;
- }
+ uses tables;
+ uses group:groups;
+ uses meters;
+ // TODO: ports
container supported-match-types {
list match-type {
}
}
}
+
+ container switch-features {
+
+ leaf max_buffers {
+ type uint32;
+ }
+
+ leaf max_tables {
+ type uint8;
+ }
+
+ leaf-list capabilities {
+ type identityref {
+ base feature-capability;
+ }
+ }
+
+ }
}
grouping flow-node-connector {
ext:augment-identifier "flow-capable-node-connector-update-fields";
uses flow-node-connector;
}
-
+
augment "/inv:node-connector-updated" {
ext:augment-identifier "flow-capable-node-connector-updated";
uses flow-node-connector;
}
+
}
\ No newline at end of file