blob: 4b5371bbd88693e6dc16abedf5786f1c69271442 [file] [log] [blame]
Scott Bakerfdbad762022-01-03 16:00:45 -08001// SPDX-FileCopyrightText: 2021 Open Networking Foundation
2//
3// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
4
Sean Condon11d6f422022-01-14 13:02:03 +00005submodule onf-device-group {
6 belongs-to onf-enterprise { prefix ent; }
Scott Bakerfdbad762022-01-03 16:00:45 -08007
8 import ietf-yang-types{ prefix yg; }
9 import onf-aether-types { prefix at; }
Sean Condon11d6f422022-01-14 13:02:03 +000010
11 include onf-ip-domain;
12 include onf-traffic-class;
Scott Bakerfdbad762022-01-03 16:00:45 -080013
14 organization "Open Networking Foundation.";
15 contact "Scott Baker";
16 description
17 "An aether device group represents a list of device IMSIS.
18 This list is expressed as a set of ranges,
19 [(from_imsi, to_imsi),
20 (from_imsi, to_imsi),
21 ...].
22 Each device group belongs to a site and has associated
23 with it an ip-profile that determines the IP address
24 and DNS settings that apply to devices within the
25 group";
26
Sean Condon11d6f422022-01-14 13:02:03 +000027 revision "2022-01-14" {
28 description "Refactored as submodule";
29 reference "RFC 6020";
30 }
31
Scott Bakerfdbad762022-01-03 16:00:45 -080032 revision "2021-06-02" {
33 description "An Aether Device Group";
34 reference "RFC 6087";
35 }
36
37 typedef device-group-id {
38 type yg:yang-identifier {
39 length 1..32;
40 }
41 description "The typedef for device-group-id";
42 }
43
Sean Condon11d6f422022-01-14 13:02:03 +000044 grouping device-group {
45 description "The device-group grouping";
Scott Bakerfdbad762022-01-03 16:00:45 -080046
47 list device-group {
Sean Condon11d6f422022-01-14 13:02:03 +000048 key "dg-id";
Scott Bakerfdbad762022-01-03 16:00:45 -080049 description
50 "List of device groups";
51
Sean Condon11d6f422022-01-14 13:02:03 +000052 leaf dg-id {
Scott Bakerfdbad762022-01-03 16:00:45 -080053 type device-group-id;
54 description "ID for this device group.";
55 }
56
57 leaf description {
58 type at:description;
59 description "description of this device group";
60 }
61
62 leaf display-name {
63 type string {
64 length 1..80;
65 }
66 description "display name to use in GUI or CLI";
67 }
68
69 list imsis {
70 // TODO: imsi-range-from cannot be used as a list index
71 key "imsi-id";
72 leaf imsi-id {
73 type yg:yang-identifier;
74 description
75 "Id of this imsi-range";
76 }
77 leaf imsi-range-from {
78 type uint64;
79 description
80 "value of imsi-range-from";
81 }
82 leaf imsi-range-to {
83 type uint64;
84 description
85 "value of imsi-range-to";
86 }
87 leaf display-name {
88 type string {
89 length 1..80;
90 }
91 description "display name to use in GUI or CLI";
92 }
93 description
94 "List of imsi ranges that comprise this group. It's acceptable for
95 a range to degenerate to being a singleton";
96 }
97
98 leaf ip-domain {
99 type leafref {
Sean Condon11d6f422022-01-14 13:02:03 +0000100 path "../../ip-domain/ip-id";
Scott Bakerfdbad762022-01-03 16:00:45 -0800101 }
102 description
103 "Link to ip-domain settings that determine the pool of IP addresses,
104 as well as the domain resolver settings to use";
105 }
106
107 container device {
108 description "Per-device QOS Settings";
109 container mbr {
110 description "Maximum bitrate";
111 leaf uplink {
112 type at:bitrate;
113 units bps;
114 mandatory true;
115 description "Per-device MBR uplink data rate in bps";
116 }
117
118 leaf downlink {
119 type at:bitrate;
120 units bps;
121 mandatory true;
122 description "Per-device MBR downlink data rate in bps";
123 }
124 }
125 leaf traffic-class {
126 type leafref {
Sean Condon11d6f422022-01-14 13:02:03 +0000127 path "../../../../traffic-class/tc-id";
Scott Bakerfdbad762022-01-03 16:00:45 -0800128 }
129 mandatory true;
130 description
131 "Link to traffic class";
132 }
133 }
Scott Bakerfdbad762022-01-03 16:00:45 -0800134 }
135 }
136}