+++ /dev/null
-module sal-flow {
- namespace "urn:opendaylight:flow:service";
- prefix flow;
-
- 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 types;revision-date "2013-10-26";}
- import opendaylight-group-types {prefix group-type;revision-date 2013-10-18;}
- import opendaylight-meter-types {prefix meter-type;revision-date "2013-09-18";}
- import flow-capable-transaction {prefix tr;}
- import flow-errors {prefix error;}
-
- revision "2013-08-19" {
- description "Initial revision of flow service";
- }
-
- typedef flow-table-ref {
- type instance-identifier;
- }
-
- grouping node-flow-removed {
- leaf node {
- ext:context-reference "inv:node-context";
- type inv:node-ref;
- }
- leaf flow-table {
- type flow-table-ref;
- }
- uses types:flow-mod-removed;
- }
-
- grouping node-flow {
- uses "inv:node-context-ref";
-
- leaf flow-table {
- type flow-table-ref;
- }
- uses types:flow;
- }
-
- grouping base-node-error-notification {
- leaf node {
- ext:context-reference "inv:node-context";
- type inv:node-ref;
- }
- }
-
- grouping node-error-reference {
- choice object-reference {
- case flow-ref{
- leaf flow-ref {
- type types:flow-ref;
- }
- }
- case group-ref{
- leaf group-ref {
- type group-type:group-ref;
- }
- }
- case meter-ref{
- leaf meter-ref {
- type meter-type:meter-ref;
- }
- }
- }
- }
-
- /** Base configuration structure **/
- grouping flow-update {
- uses "inv:node-context-ref";
-
- container original-flow {
- uses types:flow;
- }
- container updated-flow {
- uses types:flow;
- }
- }
-
- rpc add-flow {
- input {
- uses tr:transaction-metadata;
- leaf flow-ref {
- type types:flow-ref;
- }
- uses node-flow;
- }
- output {
- uses tr:transaction-aware;
- }
- }
-
- rpc remove-flow {
- input {
- uses tr:transaction-metadata;
- leaf flow-ref {
- type types:flow-ref;
- }
- uses node-flow;
- }
- output {
- uses tr:transaction-aware;
- }
- }
-
- rpc update-flow {
- input {
- uses tr:transaction-metadata;
- leaf flow-ref {
- type types:flow-ref;
- }
- uses flow-update;
- }
- output {
- uses tr:transaction-aware;
- }
- }
-
- notification flow-added {
- uses tr:transaction-metadata;
- leaf flow-ref {
- type types:flow-ref;
- }
- uses node-flow;
- uses tr:transaction-aware;
- }
-
- notification flow-updated {
- uses tr:transaction-metadata;
- leaf flow-ref {
- type types:flow-ref;
- }
- uses node-flow;
- uses tr:transaction-aware;
- }
-
- notification flow-removed {
- uses tr:transaction-metadata;
- leaf flow-ref {
- type types:flow-ref;
- }
- uses node-flow;
- uses tr:transaction-aware;
- }
-
- notification switch-flow-removed {
- uses node-flow-removed;
- }
-
- notification node-error-notification {
- uses error:error-message;
- uses tr:transaction-aware;
- uses tr:transaction-metadata;
- uses node-error-reference;
- uses base-node-error-notification;
- }
-
- notification node-experimenter-error-notification {
- uses error:experimenter-error-message;
- uses tr:transaction-aware;
- }
-}