X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmodel%2Fmodel-flow-service%2Fsrc%2Fmain%2Fyang%2Fflow-node-inventory.yang;h=65362a179094b98104c8345a0ec7dd28fced2296;hb=7ff2e7fd626af68b5d782bb4f8772a9969cee92c;hp=76c172bcf07fa8c11729731a9b06d7cb6aab40b4;hpb=21f869ef524f94594b04004867f6ab1b50e92b78;p=controller.git diff --git a/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-node-inventory.yang b/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-node-inventory.yang index 76c172bcf0..65362a1790 100644 --- a/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-node-inventory.yang +++ b/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-node-inventory.yang @@ -2,69 +2,231 @@ module flow-node-inventory { namespace "urn:opendaylight:flow:inventory"; prefix flownode; - import yang-ext {prefix ext;} - import ietf-inet-types {prefix inet;} - import ietf-yang-types {prefix yang;} - import opendaylight-inventory {prefix inv;} + import yang-ext {prefix ext; revision-date "2013-07-09";} + import ietf-inet-types {prefix inet; 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 nventory model"; + description "Flow Capable Node extensions to the Inventory model"; } - grouping flow-capable-node-capabilities { - container tables { - leaf support-state { - type inv:support-type; + 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 queue { + leaf queue-id { + type uint32; + description "id for the specific queue"; + mandatory true; + } + container properties { + leaf minimum-rate { + type uint32; + } + leaf maximum-rate{ + type uint32; } - } - - container group-tables { - + } + + 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; + } + leaf hardware { + type string; } + leaf software { + type string; + } + leaf serial-number { + type string; + } + leaf description { + type string; + } + + uses tables; + uses group:groups; + uses meters; + // TODO: ports container supported-match-types { list match-type { + key "match"; + uses feature; leaf match { type string; // FIXME: Add identity } - leaf support-state { - type inv:support-type; - } + } } container supported-instructions { list instruction-type { + key "instruction"; + uses feature; leaf instruction { type string; // FIXME: Add identity } - - leaf support-state { - type inv:support-type; - } } } container supported-actions { list action-type { + key "action"; + uses feature; + leaf action { type string; // FIXME: Add identity } - - leaf support-state { - type inv:support-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 { + + uses port:flow-capable-port; + } + augment "/inv:nodes/inv:node" { - augment-identifier "flow-capable-node"; - uses flow-capable-node-capabilities; + ext:augment-identifier "flow-capable-node"; + uses flow-node; + } + + augment "/inv:nodes/inv:node/inv:node-connector" { + ext:augment-identifier "flow-capable-node-connector"; + uses flow-node-connector; + } + + augment "/inv:node-updated" { + ext:augment-identifier "flow-capable-node-updated"; + uses flow-node; + } + + augment "/inv:node-updated/inv:node-connector" { + //ext:identical-augment "flow-capable-node-connector"; + ext:augment-identifier "flow-capable-node-connector-update-fields"; + uses flow-node-connector; } - notification node-capabilities-updated { - uses flow-capable-node-capabilities; + augment "/inv:node-connector-updated" { + ext:augment-identifier "flow-capable-node-connector-updated"; + uses flow-node-connector; } -} \ No newline at end of file + +}