X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmodel%2Fmodel-flow-statistics%2Fsrc%2Fmain%2Fyang%2Fflow-statistics.yang;h=2b1d99302629fa842ee04ed2ddb208392851e9aa;hp=fb6f82d05bb1b74e3db340617104ba2afbb81ac7;hb=45b75a6ba76bf8b453b5f0de11ceb0c3bba1e842;hpb=4f5a4b3e71e81c6149a1ca78ca418866e152c45b 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 fb6f82d05b..2b1d993026 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,99 +2,153 @@ 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;} - + import ietf-inet-types {prefix inet; revision-date "2010-09-24";} + 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 inet:uri; + } + + 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 "inv: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; } + } - rpc get-flow-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 { - leaf node { - ext:context-reference "inv:node-context"; - type inv:node-ref; + uses inv:node-context-ref; + leaf table-id { + type table-types:table-id; } - uses flow-types:flow; } output { - uses flow-types:flow-statistics; + uses flow-and-statistics-map-list; + uses tr:transaction-aware; } } - rpc get-all-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 "inv:node-context"; - type inv:node-ref; - } + uses inv:node-context-ref; + uses flow-types:flow; } output { - list flow-statistics { - uses flow-types:flow-statistics; - } + uses flow-and-statistics-map-list; + uses tr:transaction-aware; } } - rpc get-all-node-connector-statistics { - input { - leaf node { - ext:context-reference "inv:node-context"; - type inv:node-ref; - } - } - output { - list node-connector-statistics { - uses stat-types:node-connector-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; } - notification flow-statistics-updated { - uses flow-types:flow-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; } - - rpc get-flow-table-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 "inv: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; } - notification node-connector-statistics-updated { - uses stat-types:node-connector-statistics; + 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; } - - }