}
typedef meter-id {
- type uint32;
+ type uint32;
+ }
+ typedef band-id {
+ type uint32;
}
- grouping meter-flags {
- leaf flags {
- type bits {
- bit meter-kbps;
- bit meter-pktps;
- bit meter-burst;
- bit 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 bits {
- bit ofpmbt-drop;
- bit ofpmbt-dscp-remark;
- bit 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 {
grouping meter {
- uses meter-flags;
+ leaf flags {
+ type meter-flags;
+ }
leaf meter-id {
type meter-id;
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;
}
}
}
- 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 {
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 {
}
}
+ 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