import yang-ext {prefix ext; revision-date "2013-07-09";}
import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
- 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";}
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;
}
typedef flow-id {
- type uint32; // Note: This doesn't really belong here, and not sure if unint32 is right
+ type inet:uri;
}
grouping tables {
uses meter:meter;
}
}
-
+
+
grouping flow-node {
leaf manufacturer {
container supported-match-types {
list match-type {
+ key "match";
uses feature;
leaf match {
type string; // FIXME: Add identity
container supported-instructions {
list instruction-type {
+ key "instruction";
uses feature;
leaf instruction {
type string; // FIXME: Add identity
container supported-actions {
list action-type {
+ key "action";
uses feature;
leaf action {
}
}
}
+
+ 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
+
+}