MD-SAL Statistics Manager - Fixed keys of group and meter models and their sub component
[controller.git] / opendaylight / md-sal / model / model-flow-base / src / main / yang / meter-types.yang
index cf309f12268d961689eb3f64adbef4b37f37d663..b380af22129c44f068bb02d50aa57283e8bfbac0 100644 (file)
@@ -2,39 +2,74 @@ module opendaylight-meter-types {
     namespace "urn:opendaylight:meter:types";
     prefix meter;
 
-    import ietf-inet-types {prefix inet;}
-    import ietf-yang-types {prefix yang;}
+    import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
+    import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
 
 
     revision "2013-09-18" {
         description "Initial revision of meter service";
     }
 
-    typedef meter-ref {
-            type instance-identifier;
+    typedef meter-id {
+        type uint32;
+    }
+    typedef band-id {
+       type uint32;
     }
     
-    grouping meter-flags {
-        leaf flags {
-            type enumeration {
-                enum meter-kbps;
-                enum meter_pktps;
-                enum meter_burst;
-                enum meter_stats;
-            }
-        }
+    typedef meter-flags {        
+        type bits {
+            bit meter-kbps;
+            bit meter-pktps;
+            bit meter-burst;
+            bit meter-stats;
+        }        
     }
     
-    grouping meter-band-type {
-        leaf flags {
-            type enumeration {
-                enum ofpmbt-drop;
-                enum ofpmbt-dscp-remark;
-                enum ofpmbt-experimenter;               
-            }
+    identity meter-capability {
+       description "Base identity for all the supported meter capabilities/flags";
+    }
+    identity meter-kbps {
+       base meter-capability;
+       description "Rate value in kb/s (kilo-bit per second)";
+    } 
+    identity meter-pktps {
+       base meter-capability;
+       description "Rate value in packet/sec.";
+    } 
+    identity meter-burst {
+       base meter-capability;
+       description "Do burst size.";
+    } 
+    identity meter-stats {
+       base meter-capability;
+       description "Collect statistics.";
+    } 
+    
+    typedef meter-band-type {
+        type bits {
+            bit ofpmbt-drop;
+            bit ofpmbt-dscp-remark;
+            bit ofpmbt-experimenter;               
         }
     }
     
+    identity meter-band {
+       description "Base identity for all the band type available";
+    }
+    identity meter-band-drop {
+       base meter-band;
+       description "Drop packet";
+    }
+    identity meter-band-dscp-remark {
+       base meter-band;
+       description "Remark DSCP in the IP header";
+    }
+    identity meter-band-experimenter {
+       base meter-band;
+       description "Experimenter meter band";
+    }
+
     grouping band-type {
         choice band-type {
             case drop {
@@ -79,23 +114,42 @@ module opendaylight-meter-types {
     
     grouping meter {
         
-        uses meter-flags;        
+        leaf flags {
+           type meter-flags;        
+        }
         
         leaf meter-id {
-            type meter-ref;
+            type meter-id;
+        }
+        
+        leaf install {
+            type boolean; 
+        }
+        leaf meter-name {
+            type string;
+        }
+        
+        leaf container-name {
+            type string; 
         }
         
         container meter-band-headers {
             list meter-band-header {
-                key "order";
-                leaf order {
-                    type int32;
+                key "band-id";
+                leaf band-id {
+                    type band-id;
                 }
                 
                 container meter-band-types {
-                    uses meter-band-type;
+                    leaf flags {
+                        type meter-band-type;
+                    }
                 }
             
+                leaf rate {
+                    type uint32;
+                }
+        
                 leaf burst-size {
                     type uint32;
                 }
@@ -104,20 +158,10 @@ module opendaylight-meter-types {
         }
     }
     
-    grouping meter-stats-config-request {
-        list meter-stats {
-            key "meter-id";         
-            
-            leaf meter-id {
-                type int32;
-            }           
-        }
-    }
-    
     grouping meter-statistics {
             
         leaf meter-id {
-            type int32;
+            type meter-id;
         }
         
         leaf flow-count {
@@ -143,9 +187,9 @@ module opendaylight-meter-types {
         
         container meter-band-stats {
             list band-stat {
-                key "order";
-                leaf order {
-                    type int32;
+                key "band-id";
+                leaf band-id {
+                    type band-id;
                 }
             
                 leaf packet-band-count {
@@ -159,55 +203,58 @@ module opendaylight-meter-types {
         }
     }
 
+    grouping meter-features {
+                           
+        leaf max_meter {
+            type yang:counter32;
+        }
+           
+       leaf-list meter-band-supported {
+               type identityref {
+                       base meter-band;
+               }
+               }
+        
+       leaf-list meter-capabilities-supported {
+               type identityref {
+                       base meter-capability;
+               }
+               }
+        
+        leaf max_bands {
+            type uint8;
+        }
+        
+        leaf max_color {
+            type uint8;
+        }
+    }
+
+    grouping meter-stats-config-request {
+        list meter-stats {
+            key "meter-id";         
+            leaf meter-id {
+                type meter-id;
+            }           
+        }
+    }
+    
     grouping meter-statistics-reply {
         list meter-stats {
-            key "meter-stats-order";
-            leaf meter-stats-order {
-                type int32;
-            }
+            key "meter-id";
             uses meter-statistics;
         }
     }
     
-    grouping meter-config-stats {
+    grouping meter-config-stats-reply {
         list meter-config-stats {
-            key "meter-config-order";
-            
-            leaf meter-config-order {
-                type int32;
-            }
-            
+            key "meter-id";
             uses meter;
         } 
     }
     
-    grouping meter-features {
-        list meter-features {
-            key "meter-feature-order";
-            
-            leaf meter-feature-order {
-                type yang:counter32;
-            }          
-            
-            leaf max_meter {
-                type yang:counter32;
-            }
-            
-            leaf band_types {
-                type yang:counter32;
-            }
-            
-            leaf capabilities {
-                type yang:counter32;
-            }
-            
-            leaf max_bands {
-                type uint8;
-            }
-            
-            leaf max_color {
-                type uint8;
-            }
-        }
-    }    
+    grouping meter-features-reply {
+       uses meter-features;
+    }
+    
 }
\ No newline at end of file