module opendaylight-flow-statistics { namespace "urn:opendaylight:flow:statistics"; prefix flowstat; import yang-ext {prefix ext; revision-date "2013-07-09";} 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 ietf-inet-types {prefix inet; revision-date "2013-07-15";} description "Openflow statistics polling."; revision "2013-08-19" { description "Initial revision of flow statistics service"; } augment "/inv:nodes/inv:node/flow-node:table/flow-node:flow" { ext:augment-identifier "flow-statistics-data"; description "Openflow flow statistics data into the flow-capable-node->table->flow"; uses flow-statistics; } grouping flow-statistics { container flow-statistics { uses stat-types:generic-statistics; } } typedef flow-id { description "flow id, TODO:: replace with inv: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 { status deprecated; description "Fetch statistics of all the flow present in all the flow tables of the switch"; input { uses inv:node-context-ref; } output { uses flow-and-statistics-map-list; uses tr:transaction-aware; } } rpc get-all-flow-statistics-from-flow-table { status deprecated; 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-from-flow-table { status deprecated; description "Fetch statistics of the specific flow present in the specific flow table of the switch"; input { uses inv:node-context-ref; uses flow-types:flow; } output { uses flow-and-statistics-map-list; uses tr:transaction-aware; } } notification flows-statistics-update { status deprecated; description "Flows statistics sent by switch"; leaf moreReplies { type boolean; } uses inv:node; uses flow-and-statistics-map-list; uses tr:transaction-aware; } //Models for aggregate flow statistics collection augment "/inv:nodes/inv:node/flow-node:table" { status deprecated; ext:augment-identifier "aggregate-flow-statistics-data"; uses aggregate-flow-statistics; } grouping aggregate-flow-statistics { container aggregate-flow-statistics { uses stat-types:aggregate-flow-statistics; } } // RPC calls to fetch aggregate flow statistics rpc get-aggregate-flow-statistics-from-flow-table-for-all-flows { status deprecated; description "Fetch aggregate statistics for all the flows 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 stat-types:aggregate-flow-statistics; uses tr:transaction-aware; } } rpc get-aggregate-flow-statistics-from-flow-table-for-given-match { description "Fetch aggregate statistics for flows filtered by - table (eventually all tables) - match - port - group - cookie This values are contained in flow (among others). TODO:: filter values should be modeled more exact - omitting unusable fields."; input { uses inv:node-context-ref; uses flow-types:flow; } output { list aggregated-flow-statistics { uses stat-types:aggregate-flow-statistics; } uses tr:transaction-aware; } } notification aggregate-flow-statistics-update { status deprecated; description "Aggregate flow statistics for a table, sent by switch"; uses inv:node; uses stat-types:aggregate-flow-statistics; uses tr:multipart-transaction-aware; } }