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%2Fgroup-types.yang;h=4442fbb3358001297434fee652faad30bb5712c4;hp=244fedb3e7e0dc0baf4dc59455749156babe0e8a;hb=9212fed678702583f4a555641208cf1c7b45b829;hpb=14df760be3e27b9493275d42f125c43b7685d989 diff --git a/opendaylight/md-sal/model/model-flow-base/src/main/yang/group-types.yang b/opendaylight/md-sal/model/model-flow-base/src/main/yang/group-types.yang index 244fedb3e7..4442fbb335 100644 --- a/opendaylight/md-sal/model/model-flow-base/src/main/yang/group-types.yang +++ b/opendaylight/md-sal/model/model-flow-base/src/main/yang/group-types.yang @@ -14,6 +14,10 @@ module opendaylight-group-types { type uint32; } + typedef bucket-id { + type uint32; + } + typedef group-types { type enumeration { enum group-all; @@ -32,6 +36,57 @@ module opendaylight-group-types { } } + identity group-type { + description "Base identity for all the available group types"; + } + + identity group-all { + base group-type; + description "All (multicast/broadcast) group"; + } + + identity group-select { + base group-type; + description "Select group"; + } + + identity group-indirect { + base group-type; + description "Indirect group"; + } + + identity group-ff { + base group-type; + description "Fast failover group"; + } + + identity group-capability { + description "Base identity for all the supported group capabilities"; + } + + identity select-weight{ + base group-capability; + description "Support weight for select groups"; + } + + identity select-liveness{ + base group-capability; + description "Support liveness for select groups"; + } + + identity chaining{ + base group-capability; + description "Support chaining groups"; + } + + identity chaining-checks{ + base group-capability; + description "Check chaining for loops and delete"; + } + + typedef group-ref { + type instance-identifier; + } grouping group { @@ -51,19 +106,15 @@ module opendaylight-group-types { type string; } - leaf install { - type boolean; - } - leaf barrier { type boolean; } container buckets { list bucket { - key "order"; - leaf order { - type int32; + key "bucket-id"; + leaf bucket-id { + type bucket-id; } leaf weight { @@ -86,7 +137,7 @@ module opendaylight-group-types { grouping group-statistics { leaf group-id { - type int32; + type group-id; } leaf ref-count { @@ -112,9 +163,9 @@ module opendaylight-group-types { container buckets { list bucket-counter { - key "order"; - leaf order { - type int32; + key "bucket-id"; + leaf bucket-id { + type bucket-id; } leaf packet-count { @@ -129,23 +180,18 @@ module opendaylight-group-types { } grouping group-features { - leaf types { - type bits { - bit group-all; - bit group-select; - bit group-indirect; - bit group-ff; - } - } + + leaf-list group-types-supported { + type identityref { + base group-type; + } + } - leaf capabilities { - type bits { - bit select-weight; - bit select-liveness; - bit chaining; - bit chaining-checks; - } - } + leaf-list group-capabilities-supported { + type identityref { + base group-capability; + } + } leaf-list max-groups { type uint32; @@ -163,9 +209,8 @@ module opendaylight-group-types { grouping group-statistics-request { list group-stats { key "group-id"; - leaf group-id { - type int32; + type group-id; } } } @@ -174,11 +219,7 @@ module opendaylight-group-types { grouping group-statistics-reply { list group-stats { - key "group-stats-order"; - leaf group-stats-order { - type int32; - } - + key "group-id"; uses group-statistics; } } @@ -186,11 +227,7 @@ module opendaylight-group-types { grouping group-desc-stats-reply { list group-desc-stats { - key "order-id"; - leaf order-id { - type int32; - } - + key "group-id"; uses group; } } @@ -199,4 +236,12 @@ module opendaylight-group-types { uses group-features; } + grouping groups { + list group { + key "group-id"; + + uses group; + } + } + } \ No newline at end of file