namespace "urn:opendaylight:flow:service";
prefix flow;
- import yang-ext {prefix ext;}
- import opendaylight-inventory {prefix inv;}
- import ietf-inet-types {prefix inet;}
- import opendaylight-flow-types {prefix types;}
-
+ import yang-ext {prefix ext; revision-date "2013-07-09";}
+ import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
+ import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
+ import opendaylight-flow-types {prefix types;revision-date "2013-10-26";}
+ 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 {
+ 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;
}
/** Base configuration structure **/
grouping flow-update {
+ uses "inv:node-context-ref";
+
container original-flow {
uses types:flow;
}
rpc add-flow {
input {
- uses node-flow;
+ uses tr:transaction-metadata;
+ leaf flow-ref {
+ type types:flow-ref;
+ }
+ uses node-flow;
+ }
+ output {
+ uses tr:transaction-aware;
}
}
rpc remove-flow {
input {
- uses node-flow;
+ uses tr:transaction-metadata;
+ leaf flow-ref {
+ type types:flow-ref;
+ }
+ uses node-flow;
+ }
+ output {
+ uses tr:transaction-aware;
}
}
rpc update-flow {
input {
- leaf node {
- ext:context-reference "inv:node-context";
- type inv:node-ref;
+ uses tr:transaction-metadata;
+ leaf flow-ref {
+ type types:flow-ref;
}
- uses flow-update;
+ 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;
}
-
- augment "/inv:nodes/inv:node" {
- ext:augment-identifier "flow-capable-node";
- container flow-tables {
- list table {
- key "id";
- leaf "id" {
- type inet:uri;
- }
- }
- }
+
+ notification switch-flow-removed {
+ uses node-flow-removed;
+ }
+
+ notification node-error-notification {
+ uses error:error-message;
+ uses tr:transaction-aware;
+ uses tr:transaction-metadata;
+ }
+
+ notification node-experimenter-error-notification {
+ uses error:experimenter-error-message;
+ uses tr:transaction-aware;
}
}
\ No newline at end of file