blob: 2096f526e984d608c236a19fe2e4f92962b00f4b [file] [log] [blame]
Elia Battiston4750d3c2022-07-14 13:24:56 +00001submodule bbf-xpon-channel-group-body {
2 yang-version 1.1;
3 belongs-to bbf-xpon {
4 prefix bbf-xpon;
5 }
6
7 import bbf-xpon-types {
8 prefix bbf-xpon-types;
9 }
10 import bbf-yang-types {
11 prefix bbf-yang;
12 }
13 import ietf-interfaces {
14 prefix if;
15 }
16 import bbf-xpon-if-type {
17 prefix bbfxponift;
18 }
19
20 include bbf-xpon-base;
21 include bbf-xpon-channel-partition-body;
22
23 organization
24 "Broadband Forum <https://www.broadband-forum.org>
25 Fiber Access Networks Work Area";
26 contact
27 "Comments or questions about this Broadband Forum YANG module
28 should be directed to <mailto:help@broadband-forum.org>.
29
30 Editor: Joey Boyd, ADTRAN
31
32 Editor: Samuel Chen, Broadcom
33
34 Editor: Robert Peschi, Nokia
35
36 WA Director: Marta Seda, Calix
37
38 WA Director: Lin Wei, Huawei";
39 description
40 "This submodule contains a collection of YANG definitions for
41 managing channel groups.
42
43 Copyright (c) 2018, Broadband Forum
44
45 Redistribution and use in source and binary forms, with or
46 without modification, are permitted provided that the following
47 conditions are met:
48
49 1. Redistributions of source code must retain the above copyright
50 notice, this list of conditions and the following disclaimer.
51
52 2. Redistributions in binary form must reproduce the above
53 copyright notice, this list of conditions and the following
54 disclaimer in the documentation and/or other materials
55 provided with the distribution.
56
57 3. Neither the name of the copyright holder nor the names of its
58 contributors may be used to endorse or promote products
59 derived from this software without specific prior written
60 permission.
61
62 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
63 CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
64 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
65 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
66 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
67 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
68 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
69 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
70 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
71 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
72 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
73 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
74 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
75
76 The above license is used as a license under copyright only.
77 Please reference the Forum IPR Policy for patent licensing terms
78 <https://www.broadband-forum.org/ipr-policy>.
79
80 Any moral rights which are necessary to exercise under the above
81 license grant are also deemed granted under this license.
82
83 This version of this YANG module is part of TR-385; see
84 the TR itself for full legal notices.";
85
86 revision 2019-02-25 {
87 description
88 "Initial revision.
89 * Approval Date: 2019-02-25.
90 * Publication Date: 2019-02-25.";
91 reference
92 "TR-385: ITU-T PON YANG Modules
93 <https://www.broadband-forum.org/technical/download/
94 TR-385.pdf>";
95 }
96
97 typedef alloc-id-values {
98 type string {
99 pattern '((25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-'
100 + '9][0-9]|1[0-6][0-3][0-8][0-3])([,-](25[6-9]|2[6-9]['
101 + '0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|1[0-6][0-'
102 + '3][0-8][0-3]))*)?';
103 }
104 description
105 "A list of non-overlapping Alloc-ID values in
106 ascending order, between 1024 to 16383 for G.9807.1
107 XGS-PON/G.989.3 NGPON2 compliant OLTs and
108 256 to 4095 for G.984.3 GPON-compliant OLTs.
109
110 The format of this string can be any of the following:
111
112 single value
113 Example: '1024'
114 comma separated list of values
115 Example: '1024,1030,16000'
116 range of values
117 Example: '1024-1300'
118 comma separated list of ranges
119 Example: '1025-1300,1301-1400,1500-1600'
120 comma separated list of values and ranges
121 Example: '1024-1300,1301,1303-1310'.";
122 }
123
124 typedef gemport-values {
125 type string {
126 pattern '((25[4-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-'
127 + '9][0-9]|[1-6][0-5][0-5][0-3][0-4])([,-](25[4-9]|2[6-'
128 + '9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6]['
129 + '0-5][0-5][0-3][0-4]))*)?';
130 }
131 description
132 "A list of non-overlapping xGEM/GEM port-ID values in
133 ascending order, between 1021 to 65534 for G.9807.1
134 XGS-PON/G.989.3 NGPON2 compliant OLTs and
135 254 to 4095 for G.984.3 GPON-compliant OLTs.
136
137 The format of this string can be any of the following:
138
139 single value
140 Example: '1024'
141 comma separated list of values
142 Example: '1024,1030,16000'
143 range of values
144 Example: '1024-1300'
145 comma separated list of ranges
146 Example: '1025-1300,1301-1400,1500-1600'
147 comma separated list of values and ranges
148 Example: '1024-1300,1301,1303-1310'.";
149 }
150
151 typedef onu-id-values {
152 type string {
153 pattern '(([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0)([,-](['
154 + '0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0))*)?';
155 }
156 description
157 "A list of non-overlapping ONU-ID values in
158 ascending order, between 0 to 1020 for G.9807.1
159 XGS-PON/G.989.3 NGPON2 compliant OLTs and
160 0 to 253 for G.984.3 GPON-compliant OLTs.
161
162 The format of this string can be any of the following:
163
164 single value
165 Example: '1020'
166 comma separated list of values
167 Example: '1,30,600'
168 range of values
169 Example: '30-60'
170 comma separated list of ranges
171 Example: '30-60,80-90'
172 comma separated list of values and ranges
173 Example: '1,30-60,70,90-100'.";
174 }
175
176 feature pon-pools {
177 description
178 "Assignable PON resource (Alloc-ID, xGEM port, ONU-id)
179 into PON pool feature.";
180 }
181
182 grouping channel-group-config-data {
183 description
184 "All config data for a channel group.";
185 leaf polling-period {
186 type uint32 {
187 range "1..864000";
188 }
189 units "0.1 second";
190 default "100";
191 description
192 "The period between two consecutive times the
193 autodetection procedure on each pair in the
194 group is executed.
195 Used in NG-PON2 for quiet window control.
196 Value represents tenths of seconds.
197 (e.g. 1 = 0.1 second, 864000 = 24 hours).";
198 }
199 leaf raman-mitigation {
200 type bbf-xpon-types:raman-mitigation-type;
201 default "raman-none";
202 description
203 "NG-PON2 Raman mitigation coding schemes when using RF video
204 overlay.";
205 reference
206 "ITU-T G.989.2 Appendix IX";
207 }
208 leaf system-id {
209 type string {
210 pattern '[0-9a-fA-F]{5}';
211 }
212 description
213 "A 20-bit number that identifies a specific NG-PON2 system
214 (typically a channel group) among multiple NG-PON2 systems
215 under a common administation.
216 It is defined as NGSYS ID in G.989.3 clause 6.1.5.2 and may
217 be coded to support administration such as name, geographical
218 location, servie profile (see also G.989.3 table VIII.2).";
219 reference
220 "ITU-T G.989.3 clause 6.1.5.2;
221 ITU-T G.989.3 table VIII.2";
222 }
223 container pon-pools {
224 if-feature "pon-pools";
225 description
226 "This container describes per channel termination
227 PON resources allocation. A channel termination can only
228 be a member of a single channel group. Within
229 a channel group, PON resources should not
230 overlap and only be assigned to a single
231 channel termination.";
232 list pon-pool {
233 key "name";
234 min-elements 1;
235 max-elements 8;
236 description
237 "This container describes the allocated PON pool of
238 Alloc-IDs, GEM port-IDs and ONU-IDs.";
239 leaf name {
240 type bbf-yang:string-ascii64;
241 description
242 "Name of the PON pool.";
243 }
244 leaf channel-termination-ref {
245 type if:interface-ref;
246 must "derived-from-or-self(/if:interfaces/"
247 + "if:interface[if:name = current()]/if:type,"
248 + "'bbfxponift:channel-termination')" {
249 error-message
250 "Referenced interface must be of type
251 'channel-termination'.";
252 }
253 description
254 "Reference to a channel termination to which PON resource
255 pools will be assigned.";
256 }
257 leaf alloc-id-values {
258 type alloc-id-values;
259 description
260 "The list of assignable alloc-IDs between 1024 to
261 16383 for G.9807.1 XGS-PON/G.989.3 NGPON2 compliant
262 OLTs and 256 to 4095 for G.984.3 GPON-compliant OLTs..
263 A single value or range of values can be specified.
264
265 The format of this string can be any of the following:
266 single value
267 Example: '1024'
268 comma separated list of values
269 Example: '1024,1030,16000'
270 range of values
271 Example: '1024-1300'
272 comma separated list of ranges
273 Example: '1025-1300,1301-1400,1500-1600'
274 comma separated list of values and ranges
275 Example: '1024-1300,1301,1303-1310'.";
276 }
277 leaf gemport-values {
278 type gemport-values;
279 description
280 "The list of assignable GEM port/xGEM port-ID between
281 1021 to 65534 for G.9807.1 XGS-PON/G.989.3 NGPON2
282 compliant OLTs and 254 to 4095 for G.984.3
283 GPON-compliant OLTs.
284
285 A single value or range of values can be specified.
286
287 single value
288 Example: '1024'
289 comma separated list of values
290 Example: '1024,1030,16000'
291 range of values
292 Example: '1024-1300'
293 comma separated list of ranges
294 Example: '1025-1300,1301-1400,1500-1600'
295 comma separated list of values and ranges
296 Example: '1024-1300,1301,1303-1310'.";
297 }
298 leaf onu-id-values {
299 type onu-id-values;
300 description
301 "The list of assignable ONU-ID values between
302 0 to 1020 for G.9807.1 XGS-PON/G.989.3 NGPON2
303 compliant OLTs and 0 to 253 for G.984.3
304 GPON-compliant OLTs.
305
306 The format of this string can be any of the following:
307 single value
308 Example: '1020'
309 comma separated list of values
310 Example: '1,30,600'
311 range of values
312 Example: '30-60'
313 comma separated list of ranges
314 Example: '30-60,80-90'
315 comma separated list of values and ranges
316 Example: '1,30-60,70,90-100'.";
317 }
318 }
319 }
320 }
321
322 grouping channel-group-state-data {
323 description
324 "All state data for a channel group.";
325 container allocated-upstream-channel-ids {
326 description
327 "The list maintained by the system of all the upstream
328 channel-id's which are already allocated to the
329 channel group. For NG-PON2, the applicable values are
330 in [0..7], for XGS-PON a dedicated value 'xgs' is
331 applicable rather than value '0': this is not to a
332 priori forbid in yang model the coexistence of XGS-PON
333 with NG-PON2 using channel-id=0. This list is a helper
334 to avoid upstream channel-id conflicts when allocating
335 channel pairs to a channel group.";
336 leaf-list channel-id {
337 type bbf-xpon-types:composite-channel-id-type;
338 description
339 "An upstream channel-id in use on the channel group.
340 For NG-PON2, value must be in [0..7].
341 For XGS-PON, value must be 'xgs'.";
342 }
343 }
344 container allocated-downstream-channel-ids {
345 description
346 "The list maintained by the system of all the downstream
347 channel-id's which are already allocated to the
348 channel group. For NG-PON2, the applicable values are
349 in [0..7], for XGS-PON a dedicated value 'xgs' is
350 applicable rather than value '0': this is not to a
351 priori forbid in yang model the coexistence of XGS-PON
352 with NG-PON2 using channel-id=0. This list is a helper
353 to avoid downstream channel-id conflicts when allocating
354 channel pairs to a channel group.";
355 leaf-list downstream-channel-id {
356 type bbf-xpon-types:composite-channel-id-type;
357 description
358 "A downstreamchannel-id in use on the channel group.
359 For NG-PON2, value must be in [0..7].
360 For XGS-PON, value must be 'xgs'.";
361 }
362 }
363 container allocated-downstream-wavelengths {
364 description
365 "The list maintained by the system of all the downstream
366 wavelengths already allocated to the channel group
367 including all of the NG-PON2, XGS-PON, XG-PON and G-PON
368 cases.
369 This list is a helper to avoid wavelength conflicts
370 when allocating channel pairs to a channel group.";
371 leaf-list wavelength {
372 type bbf-xpon-types:composite-downstream-wavelength-type;
373 description
374 "A downstream wavelength already allocated to the
375 channel group. For NG-PON2 it must be a value in
376 [156000..161000] expressed in hundredths of nm to fit
377 ITU-T precision requirements. For the XGS-PON, XG-PON
378 and G-PON cases, it must have resp. the value 'xgs',
379 'xgpon' or 'gpon'.";
380 }
381 }
382 container pon-pools {
383 if-feature "pon-pools";
384 description
385 "This container describes the list of available and consumed
386 and unusable PON resources that a channel termination in a
387 channel group may have.";
388 list pon-pool {
389 key "name";
390 min-elements 1;
391 max-elements 8;
392 description
393 "This container describes the current characteristics of the
394 PON pool of Alloc-IDs, GEM port-IDs and ONU-IDs.";
395 leaf name {
396 type bbf-yang:string-ascii64;
397 description
398 "Name of the PON pool.";
399 }
400 leaf channel-termination-ref {
401 type if:interface-state-ref;
402 must "derived-from-or-self(/if:interfaces-state"
403 + "/if:interface[if:name = current()]/if:type,"
404 + "'bbfxponift:channel-termination')";
405 description
406 "Reference the configured channel termination
407 that is being reported against.";
408 }
409 container consumed-resources {
410 description
411 "The consumed PON resources.";
412 leaf alloc-id-values {
413 type alloc-id-values;
414 description
415 "The list of consumed Alloc-IDs.
416 For example: '1024-1300,1301,1303-1310'.";
417 }
418 leaf gemport-values {
419 type gemport-values;
420 description
421 "The list of consumed GEM port-IDs/xGEM port-IDs.
422 For example: '1024-1300,1301,1303-1310'.";
423 }
424 leaf onu-ids {
425 type onu-id-values;
426 description
427 "The list of consumed ONU-IDs.
428 For example: '1,30-60,70,90-100'.";
429 }
430 }
431 container available-resources {
432 description
433 "The available/unused PON resources.";
434 leaf alloc-id-values {
435 type alloc-id-values;
436 description
437 "The list of available Alloc-IDs.
438 For example: '1024-1300,1301,1303-1310'.";
439 }
440 leaf gemport-values {
441 type gemport-values;
442 description
443 "The list of available GEM port-IDs/xGEM port-IDs.
444 For example: '1024-1300,1301,1303-1310'.";
445 }
446 leaf onu-ids {
447 type onu-id-values;
448 description
449 "The list of available ONU-IDs.
450 For example: '1,30-60,70,90-100'.";
451 }
452 }
453 }
454 }
455 }
456
457 augment '/if:interfaces/if:interface/bbf-xpon:channel-group' {
458 description
459 "Configuration of an xPON channel group.";
460 uses channel-group-config-data;
461 }
462
463 augment '/if:interfaces-state/if:interface/bbf-xpon:channel-group' {
464 description
465 "State data of an xPON channel group.";
466 uses channel-group-state-data;
467 }
468}