X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmodel%2Fmodel-flow-statistics%2Fsrc%2Fmain%2Fyang%2Fflow-statistics.yang;h=7bbcca3a1258a36997449ccfc17c3858bb0d362f;hb=9212fed678702583f4a555641208cf1c7b45b829;hp=7e00a36c0d8a9ba27c21868321bc4440f2a30e6e;hpb=fe024ad74b8656c3ee61b9ddff6009a779aa2189;p=controller.git diff --git a/opendaylight/md-sal/model/model-flow-statistics/src/main/yang/flow-statistics.yang b/opendaylight/md-sal/model/model-flow-statistics/src/main/yang/flow-statistics.yang index 7e00a36c0d..7bbcca3a12 100644 --- a/opendaylight/md-sal/model/model-flow-statistics/src/main/yang/flow-statistics.yang +++ b/opendaylight/md-sal/model/model-flow-statistics/src/main/yang/flow-statistics.yang @@ -2,69 +2,152 @@ module opendaylight-flow-statistics { namespace "urn:opendaylight:flow:statistics"; prefix flowstat; - import yang-ext {prefix ext;} - import opendaylight-inventory {prefix inv;} - import opendaylight-flow-types {prefix flow-types;} + import yang-ext {prefix ext; revision-date "2013-07-09";} + import ietf-yang-types {prefix yang; revision-date "2010-09-24";} + import opendaylight-inventory {prefix inv;revision-date "2013-08-19";} + import opendaylight-flow-types {prefix flow-types;revision-date "2013-10-26";} + import opendaylight-statistics-types {prefix stat-types;revision-date "2013-09-25";} + import opendaylight-table-types {prefix table-types;revision-date "2013-10-26";} + import flow-node-inventory {prefix flow-node;revision-date "2013-08-19";} + import flow-capable-transaction {prefix tr;} import sal-flow {prefix flow;} - import opendaylight-statistics-types {prefix stat-types;} + revision "2013-08-19" { - description "Initial revision of flow service"; + description "Initial revision of flow statistics service"; } - - rpc get-node-connector-statistics { + + //Augment flow statistics data to the flow-capable-node->table->flow + augment "/inv:nodes/inv:node/flow-node:table/flow-node:flow" { + ext:augment-identifier "flow-statistics-data"; + uses flow-statistics; + } + + grouping flow-statistics { + container flow-statistics { + //config "false"; + uses flow-types:flow; + uses stat-types:generic-statistics; + } + } + + typedef flow-id { + description "flow id"; + type yang:counter32; + } + + grouping flow-and-statistics-map-list { + description "List of flow and statistics map"; + list flow-and-statistics-map-list { + key "flow-id"; + leaf flow-id { + type flow-id; + } + uses flow-and-statistics-map; + } + } + + grouping flow-and-statistics-map{ + description "Mapping between flow and its statistics"; + uses flow-types:flow; + uses stat-types:generic-statistics; + } + + // RPC calls to fetch flow statistics + rpc get-all-flows-statistics-from-all-flow-tables { + description "Fetch statistics of all the flow present in all the flow tables of the switch"; input { - leaf node { - ext:context-reference "node-context"; - type inv:node-ref; - } - leaf node-connector { - type inv:node-connector-ref; - } + uses inv:node-context-ref; } output { - uses stat-types:node-connector-statistics; + uses flow-and-statistics-map-list; + uses tr:transaction-aware; } + } - notification node-connector-statistics-updated { - uses stat-types:node-connector-statistics; + rpc get-all-flow-statistics-from-flow-table { + description "Fetch statistics of all the flow present in the specific flow table of the switch"; + input { + uses inv:node-context-ref; + leaf table-id { + type table-types:table-id; + } + } + output { + uses flow-and-statistics-map-list; + uses tr:transaction-aware; + } } - rpc get-flow-statistics { + rpc get-flow-statistics-from-flow-table { + description "Fetch statistics of the specific flow present in the specific flow table of the switch"; input { - leaf node { - ext:context-reference "node-context"; - type inv:node-ref; - } + uses inv:node-context-ref; uses flow-types:flow; } output { - uses flow-types:flow-statistics; + uses flow-and-statistics-map-list; + uses tr:transaction-aware; } } - notification flow-statistics-updated { - uses flow-types:flow-statistics; + notification flows-statistics-update { + description "Flows statistics sent by switch"; + leaf moreReplies { + type boolean; + } + uses inv:node; + uses flow-and-statistics-map-list; + uses tr:transaction-aware; } - rpc get-flow-table-statistics { + //Models for aggregate flow statistics collection + augment "/inv:nodes/inv:node/flow-node:table" { + ext:augment-identifier "aggregate-flow-statistics-data"; + uses aggregate-flow-statistics; + } + + grouping aggregate-flow-statistics { + container aggregate-flow-statistics { + //config "false"; + uses stat-types:aggregate-flow-statistics; + } + } + + // RPC calls to fetch aggregate flow statistics + rpc get-aggregate-flow-statistics-from-flow-table-for-all-flows { + description "Fetch aggregate statistics for all the flows present in the specific flow table of the switch"; input { - leaf node { - ext:context-reference "node-context"; - type inv:node-ref; + uses inv:node-context-ref; + leaf table-id { + type table-types:table-id; } } output { - uses flow-types:flow-table-statistics; + uses stat-types:aggregate-flow-statistics; + uses tr:transaction-aware; } } - - notification flow-table-statistics-updated { - leaf flow-table { - type flow:flow-table-ref; + rpc get-aggregate-flow-statistics-from-flow-table-for-given-match { + description "Fetch aggregate statistics for all the flow matches to the given match from the given table of the switch"; + input { + uses inv:node-context-ref; + uses flow-types:flow; + } + output { + uses stat-types:aggregate-flow-statistics; + uses tr:transaction-aware; } - uses flow-types:flow-table-statistics; } -} \ No newline at end of file + notification aggregate-flow-statistics-update { + description "Aggregate flow statistics for a table, sent by switch"; + leaf moreReplies { + type boolean; + } + uses inv:node; + uses stat-types:aggregate-flow-statistics; + uses tr:transaction-aware; + } +}