X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmodel%2Fmodel-flow-base%2Fsrc%2Fmain%2Fyang%2Fmeter-types.yang;h=d84b2f08511f466848886cb75aa4f418341d5563;hp=cf309f12268d961689eb3f64adbef4b37f37d663;hb=c541f7868e6e2d654b8080b5426bb12a39bddf11;hpb=6b64494fd8e4654a298312afb4b8e6e827b75d5d diff --git a/opendaylight/md-sal/model/model-flow-base/src/main/yang/meter-types.yang b/opendaylight/md-sal/model/model-flow-base/src/main/yang/meter-types.yang index cf309f1226..d84b2f0851 100644 --- a/opendaylight/md-sal/model/model-flow-base/src/main/yang/meter-types.yang +++ b/opendaylight/md-sal/model/model-flow-base/src/main/yang/meter-types.yang @@ -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 { @@ -77,25 +112,49 @@ module opendaylight-meter-types { } } + typedef meter-ref { + type instance-identifier; + } + grouping meter { - uses meter-flags; + leaf flags { + type meter-flags; + } leaf meter-id { - type meter-ref; + type meter-id; + } + + leaf barrier { + 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 +163,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 +192,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 +208,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