1 module flow-node-inventory {
2 namespace "urn:opendaylight:flow:inventory";
5 import yang-ext {prefix ext; revision-date "2013-07-09";}
6 import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
7 import opendaylight-port-types {prefix port;revision-date "2013-09-25";}
8 import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
9 import opendaylight-table-types {prefix table;revision-date "2013-10-26";}
10 import opendaylight-flow-types {prefix flow;revision-date "2013-10-26";}
11 import opendaylight-group-types {prefix group;revision-date "2013-10-18";}
12 import opendaylight-meter-types {prefix meter;revision-date "2013-09-18";}
14 revision "2013-08-19" {
15 description "Flow Capable Node extensions to the Inventory model";
18 identity feature-capability {
21 identity flow-feature-capability-flow-stats {
22 description "Flow statistics";
23 base feature-capability;
26 identity flow-feature-capability-table-stats {
27 description "Table statistics";
28 base feature-capability;
31 identity flow-feature-capability-port-stats {
32 description "Port statistics";
33 base feature-capability;
36 identity flow-feature-capability-stp {
37 description "802.1d spanning tree";
38 base feature-capability;
41 identity flow-feature-capability-reserved {
42 description "Reserved, must be zero";
43 base feature-capability;
46 identity flow-feature-capability-ip-reasm {
47 description "Can reassemble IP fragments";
48 base feature-capability;
51 identity flow-feature-capability-queue-stats {
52 description "Queue statistics";
53 base feature-capability;
56 identity flow-feature-capability-arp-match-ip {
57 description "Match IP addresses in ARP pkts";
58 base feature-capability;
61 identity flow-feature-capability-group-stats {
62 description "Group statistics";
63 base feature-capability;
66 identity flow-feature-capability-port-blocked {
67 description "Switch will block looping ports";
68 base feature-capability;
73 type inv:support-type;
80 description "id for the specific queue";
83 container properties {
105 uses table:table-features;
126 grouping ip-address-grouping {
128 description "IP address of a flow capable node.";
129 type inet:ip-address;
153 uses ip-address-grouping;
156 container supported-match-types {
161 type string; // FIXME: Add identity
167 container supported-instructions {
168 list instruction-type {
172 type string; // FIXME: Add identity
177 container supported-actions {
183 type string; // FIXME: Add identity
188 container switch-features {
198 leaf-list capabilities {
200 base feature-capability;
207 grouping flow-node-connector {
209 uses port:flow-capable-port;
212 augment "/inv:nodes/inv:node" {
213 ext:augment-identifier "flow-capable-node";
217 augment "/inv:nodes/inv:node/inv:node-connector" {
218 ext:augment-identifier "flow-capable-node-connector";
219 uses flow-node-connector;
222 augment "/inv:node-updated" {
223 ext:augment-identifier "flow-capable-node-updated";
227 augment "/inv:node-updated/inv:node-connector" {
228 //ext:identical-augment "flow-capable-node-connector";
229 ext:augment-identifier "flow-capable-node-connector-update-fields";
230 uses flow-node-connector;
233 augment "/inv:node-connector-updated" {
234 ext:augment-identifier "flow-capable-node-connector-updated";
235 uses flow-node-connector;
238 augment "/inv:nodes/inv:node/table" {
239 ext:augment-identifier "flow-hash-id-mapping";
240 description "Flow is identified by match and priority on device. So Operational/DS
241 has to simulate that behavior and contract between FlowId and match+priority
242 identification should represent Flow hashCode. Flow has to contain only
243 match priority and flowCookie for create a hashCode";
244 list flow-hash-id-map {