BUG-2613: Migrating Openflow Specific models from controller project to openflowplugi...
[openflowplugin.git] / model / model-flow-statistics / src / main / yang / opendaylight-meter-statistics.yang
diff --git a/model/model-flow-statistics/src/main/yang/opendaylight-meter-statistics.yang b/model/model-flow-statistics/src/main/yang/opendaylight-meter-statistics.yang
new file mode 100644 (file)
index 0000000..0055dc3
--- /dev/null
@@ -0,0 +1,109 @@
+module opendaylight-meter-statistics {
+    namespace "urn:opendaylight:meter:statistics";
+    prefix meterstat;
+
+    import yang-ext {prefix ext; revision-date "2013-07-09";}
+    import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
+    import flow-node-inventory {prefix flow-node;revision-date "2013-08-19";}
+    import opendaylight-meter-types {prefix meter-types;revision-date "2013-09-18";}
+    import flow-capable-transaction {prefix tr;}
+    
+    contact
+        "Anilkumar Vishnoi
+        Email: avishnoi@in.ibm.com";
+
+    revision "2013-11-11" {
+        description "Initial revision of meter statistics service";
+    }
+
+    augment "/inv:nodes/inv:node/flow-node:meter" {
+        ext:augment-identifier "node-meter-statistics";
+        container meter-statistics {
+            //config "false";
+            uses meter-types:meter-statistics;
+        }
+    }
+
+    augment "/inv:nodes/inv:node/flow-node:meter" {
+        ext:augment-identifier "node-meter-config-stats";
+        container meter-config-stats {
+            //config "false";
+            uses meter-types:meter;
+        }
+    }
+    
+    augment "/inv:nodes/inv:node" {
+        ext:augment-identifier "node-meter-features";
+        container meter-features {
+            //config "false";
+            uses meter-types:meter-features-reply;
+        }
+    }
+
+    // RPC calls
+    rpc get-all-meter-statistics {
+        input {
+            uses inv:node-context-ref;
+        }
+        output {
+            uses meter-types:meter-statistics-reply;
+            uses tr:transaction-aware;
+        }
+    
+    }
+    
+    rpc get-meter-statistics {
+        input {
+            uses inv:node-context-ref;
+            leaf meter-id{
+                type meter-types:meter-id;
+            }
+        }
+        output {
+            uses meter-types:meter-statistics-reply;
+            uses tr:transaction-aware;
+        }
+    
+    }
+    
+    rpc get-all-meter-config-statistics {
+        input {
+            uses inv:node-context-ref;
+        }
+        output {
+               uses meter-types:meter-config-stats-reply;
+            uses tr:transaction-aware;
+        }
+    }
+    
+    rpc get-meter-features {
+        input {
+            uses inv:node-context-ref;
+        }
+        output {
+            uses meter-types:meter-features-reply;
+            uses tr:transaction-aware;
+        }
+    }
+    
+
+    //Notification calls
+    
+    notification meter-statistics-updated {
+        uses inv:node;
+        uses meter-types:meter-statistics-reply;
+        uses tr:multipart-transaction-aware;
+    }
+    
+    notification meter-config-stats-updated {
+        uses inv:node;
+        uses meter-types:meter-config-stats-reply;
+        uses tr:multipart-transaction-aware;
+    }
+
+    notification meter-features-updated {
+        uses inv:node;
+        uses meter-types:meter-features-reply;
+        uses tr:multipart-transaction-aware;
+    }
+}