Flow removed switch event. Group and Meter update RPC
[controller.git] / opendaylight / md-sal / model / model-flow-service / src / main / yang / flow-service.yang
index 113cb1287db71bf7d361e92f1b362de6e85540f3..f8589193d7cba41d76789782619c700243fceae9 100644 (file)
@@ -2,25 +2,34 @@ module sal-flow {
     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;}
 
     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;
         }
@@ -29,6 +38,8 @@ module sal-flow {
 
     /** Base configuration structure **/
     grouping flow-update {
+        uses "inv:node-context-ref";
+
         container original-flow {
             uses types:flow;
         }
@@ -40,18 +51,30 @@ module sal-flow {
     rpc add-flow {
         input {
             uses node-flow;
+            uses tr:transaction-aware;            
+        }
+        output {
+            uses tr:transaction-aware;
         }
     }
 
     rpc remove-flow {
         input {
             uses node-flow;
+            uses tr:transaction-aware;            
+        }
+        output {
+            uses tr:transaction-aware;
         }
     }
 
     rpc update-flow {
         input {
-            uses node-flow;
+            uses flow-update;
+            uses tr:transaction-aware;            
+        }
+        output {
+            uses tr:transaction-aware;
         }
     }
 
@@ -66,16 +89,8 @@ module sal-flow {
     notification flow-removed {
         uses node-flow;
     }
-
-    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;
     }
 }
\ No newline at end of file