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 description "Flow Capable Node extensions to the Inventory model";
16 revision "2013-08-19" {
17 description "added descriptions";
20 identity feature-capability {
23 identity flow-feature-capability-flow-stats {
24 description "Flow statistics";
25 base feature-capability;
28 identity flow-feature-capability-table-stats {
29 description "Table statistics";
30 base feature-capability;
33 identity flow-feature-capability-port-stats {
34 description "Port statistics";
35 base feature-capability;
38 identity flow-feature-capability-stp {
39 description "802.1d spanning tree";
40 base feature-capability;
43 identity flow-feature-capability-reserved {
44 description "Reserved, must be zero";
45 base feature-capability;
48 identity flow-feature-capability-ip-reasm {
49 description "Can reassemble IP fragments";
50 base feature-capability;
53 identity flow-feature-capability-queue-stats {
54 description "Queue statistics";
55 base feature-capability;
58 identity flow-feature-capability-arp-match-ip {
59 description "Match IP addresses in ARP pkts";
60 base feature-capability;
63 identity flow-feature-capability-group-stats {
64 description "Group statistics";
65 base feature-capability;
68 identity flow-feature-capability-port-blocked {
69 description "Switch will block looping ports";
70 base feature-capability;
74 description "Features supported by openflow device.";
76 type inv:support-type;
83 description "id for the specific queue";
86 container properties {
97 description "MD-SAL identifier of openflow flow. ";
102 description "Openflow table structure. Here flows are contained.";
110 uses table:table-features;
125 description "Openflow meter list.";
132 grouping ip-address-grouping {
133 description "Additional ip address info referring to device interface which connects to controller";
135 description "IP address of a flow capable node.";
136 type inet:ip-address;
140 grouping port-number-grouping {
142 description "Port number of a flow capable node.";
143 type inet:port-number;
148 description "Openflow node structure = device";
168 uses ip-address-grouping;
169 uses port-number-grouping;
171 container supported-match-types {
176 type string; // FIXME: Add identity
182 container supported-instructions {
183 list instruction-type {
187 type string; // FIXME: Add identity
192 container supported-actions {
198 type string; // FIXME: Add identity
203 container switch-features {
213 leaf-list capabilities {
215 base feature-capability;
222 grouping flow-node-connector {
223 description "Wrapper of openflow port. TODO::simplify/rename";
224 uses port:flow-capable-port;
227 augment "/inv:nodes/inv:node" {
228 ext:augment-identifier "flow-capable-node";
229 description "Top attach point of openflow node into node inventory tree.";
233 augment "/inv:nodes/inv:node/inv:node-connector" {
234 ext:augment-identifier "flow-capable-node-connector";
235 description "Openflow port into inventory tree.";
236 uses flow-node-connector;
239 augment "/inv:node-updated" {
240 ext:augment-identifier "flow-capable-node-updated";
241 description "Openflow node into node notification.";
245 augment "/inv:node-updated/inv:node-connector" {
246 //ext:identical-augment "flow-capable-node-connector";
247 ext:augment-identifier "flow-capable-node-connector-update-fields";
248 description "Openflow port into node notification.";
249 uses flow-node-connector;
252 augment "/inv:node-connector-updated" {
253 ext:augment-identifier "flow-capable-node-connector-updated";
254 description "Openflow port into node-connector notification.";
255 uses flow-node-connector;
258 augment "/inv:nodes/inv:node/table" {
259 ext:augment-identifier "flow-hash-id-mapping";
260 description "Flow is identified by match and priority on device. So Operational/DS
261 has to simulate that behavior and contract between FlowId and match+priority
262 identification should represent Flow hashCode. Flow has to contain only
263 match priority and flowCookie for create a hashCode";
264 list flow-hash-id-map {