blob: 2096f526e984d608c236a19fe2e4f92962b00f4b [file] [log] [blame]
submodule bbf-xpon-channel-group-body {
yang-version 1.1;
belongs-to bbf-xpon {
prefix bbf-xpon;
}
import bbf-xpon-types {
prefix bbf-xpon-types;
}
import bbf-yang-types {
prefix bbf-yang;
}
import ietf-interfaces {
prefix if;
}
import bbf-xpon-if-type {
prefix bbfxponift;
}
include bbf-xpon-base;
include bbf-xpon-channel-partition-body;
organization
"Broadband Forum <https://www.broadband-forum.org>
Fiber Access Networks Work Area";
contact
"Comments or questions about this Broadband Forum YANG module
should be directed to <mailto:help@broadband-forum.org>.
Editor: Joey Boyd, ADTRAN
Editor: Samuel Chen, Broadcom
Editor: Robert Peschi, Nokia
WA Director: Marta Seda, Calix
WA Director: Lin Wei, Huawei";
description
"This submodule contains a collection of YANG definitions for
managing channel groups.
Copyright (c) 2018, Broadband Forum
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<https://www.broadband-forum.org/ipr-policy>.
Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.
This version of this YANG module is part of TR-385; see
the TR itself for full legal notices.";
revision 2019-02-25 {
description
"Initial revision.
* Approval Date: 2019-02-25.
* Publication Date: 2019-02-25.";
reference
"TR-385: ITU-T PON YANG Modules
<https://www.broadband-forum.org/technical/download/
TR-385.pdf>";
}
typedef alloc-id-values {
type string {
pattern '((25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-'
+ '9][0-9]|1[0-6][0-3][0-8][0-3])([,-](25[6-9]|2[6-9]['
+ '0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|1[0-6][0-'
+ '3][0-8][0-3]))*)?';
}
description
"A list of non-overlapping Alloc-ID values in
ascending order, between 1024 to 16383 for G.9807.1
XGS-PON/G.989.3 NGPON2 compliant OLTs and
256 to 4095 for G.984.3 GPON-compliant OLTs.
The format of this string can be any of the following:
single value
Example: '1024'
comma separated list of values
Example: '1024,1030,16000'
range of values
Example: '1024-1300'
comma separated list of ranges
Example: '1025-1300,1301-1400,1500-1600'
comma separated list of values and ranges
Example: '1024-1300,1301,1303-1310'.";
}
typedef gemport-values {
type string {
pattern '((25[4-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-'
+ '9][0-9]|[1-6][0-5][0-5][0-3][0-4])([,-](25[4-9]|2[6-'
+ '9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6]['
+ '0-5][0-5][0-3][0-4]))*)?';
}
description
"A list of non-overlapping xGEM/GEM port-ID values in
ascending order, between 1021 to 65534 for G.9807.1
XGS-PON/G.989.3 NGPON2 compliant OLTs and
254 to 4095 for G.984.3 GPON-compliant OLTs.
The format of this string can be any of the following:
single value
Example: '1024'
comma separated list of values
Example: '1024,1030,16000'
range of values
Example: '1024-1300'
comma separated list of ranges
Example: '1025-1300,1301-1400,1500-1600'
comma separated list of values and ranges
Example: '1024-1300,1301,1303-1310'.";
}
typedef onu-id-values {
type string {
pattern '(([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0)([,-](['
+ '0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0))*)?';
}
description
"A list of non-overlapping ONU-ID values in
ascending order, between 0 to 1020 for G.9807.1
XGS-PON/G.989.3 NGPON2 compliant OLTs and
0 to 253 for G.984.3 GPON-compliant OLTs.
The format of this string can be any of the following:
single value
Example: '1020'
comma separated list of values
Example: '1,30,600'
range of values
Example: '30-60'
comma separated list of ranges
Example: '30-60,80-90'
comma separated list of values and ranges
Example: '1,30-60,70,90-100'.";
}
feature pon-pools {
description
"Assignable PON resource (Alloc-ID, xGEM port, ONU-id)
into PON pool feature.";
}
grouping channel-group-config-data {
description
"All config data for a channel group.";
leaf polling-period {
type uint32 {
range "1..864000";
}
units "0.1 second";
default "100";
description
"The period between two consecutive times the
autodetection procedure on each pair in the
group is executed.
Used in NG-PON2 for quiet window control.
Value represents tenths of seconds.
(e.g. 1 = 0.1 second, 864000 = 24 hours).";
}
leaf raman-mitigation {
type bbf-xpon-types:raman-mitigation-type;
default "raman-none";
description
"NG-PON2 Raman mitigation coding schemes when using RF video
overlay.";
reference
"ITU-T G.989.2 Appendix IX";
}
leaf system-id {
type string {
pattern '[0-9a-fA-F]{5}';
}
description
"A 20-bit number that identifies a specific NG-PON2 system
(typically a channel group) among multiple NG-PON2 systems
under a common administation.
It is defined as NGSYS ID in G.989.3 clause 6.1.5.2 and may
be coded to support administration such as name, geographical
location, servie profile (see also G.989.3 table VIII.2).";
reference
"ITU-T G.989.3 clause 6.1.5.2;
ITU-T G.989.3 table VIII.2";
}
container pon-pools {
if-feature "pon-pools";
description
"This container describes per channel termination
PON resources allocation. A channel termination can only
be a member of a single channel group. Within
a channel group, PON resources should not
overlap and only be assigned to a single
channel termination.";
list pon-pool {
key "name";
min-elements 1;
max-elements 8;
description
"This container describes the allocated PON pool of
Alloc-IDs, GEM port-IDs and ONU-IDs.";
leaf name {
type bbf-yang:string-ascii64;
description
"Name of the PON pool.";
}
leaf channel-termination-ref {
type if:interface-ref;
must "derived-from-or-self(/if:interfaces/"
+ "if:interface[if:name = current()]/if:type,"
+ "'bbfxponift:channel-termination')" {
error-message
"Referenced interface must be of type
'channel-termination'.";
}
description
"Reference to a channel termination to which PON resource
pools will be assigned.";
}
leaf alloc-id-values {
type alloc-id-values;
description
"The list of assignable alloc-IDs between 1024 to
16383 for G.9807.1 XGS-PON/G.989.3 NGPON2 compliant
OLTs and 256 to 4095 for G.984.3 GPON-compliant OLTs..
A single value or range of values can be specified.
The format of this string can be any of the following:
single value
Example: '1024'
comma separated list of values
Example: '1024,1030,16000'
range of values
Example: '1024-1300'
comma separated list of ranges
Example: '1025-1300,1301-1400,1500-1600'
comma separated list of values and ranges
Example: '1024-1300,1301,1303-1310'.";
}
leaf gemport-values {
type gemport-values;
description
"The list of assignable GEM port/xGEM port-ID between
1021 to 65534 for G.9807.1 XGS-PON/G.989.3 NGPON2
compliant OLTs and 254 to 4095 for G.984.3
GPON-compliant OLTs.
A single value or range of values can be specified.
single value
Example: '1024'
comma separated list of values
Example: '1024,1030,16000'
range of values
Example: '1024-1300'
comma separated list of ranges
Example: '1025-1300,1301-1400,1500-1600'
comma separated list of values and ranges
Example: '1024-1300,1301,1303-1310'.";
}
leaf onu-id-values {
type onu-id-values;
description
"The list of assignable ONU-ID values between
0 to 1020 for G.9807.1 XGS-PON/G.989.3 NGPON2
compliant OLTs and 0 to 253 for G.984.3
GPON-compliant OLTs.
The format of this string can be any of the following:
single value
Example: '1020'
comma separated list of values
Example: '1,30,600'
range of values
Example: '30-60'
comma separated list of ranges
Example: '30-60,80-90'
comma separated list of values and ranges
Example: '1,30-60,70,90-100'.";
}
}
}
}
grouping channel-group-state-data {
description
"All state data for a channel group.";
container allocated-upstream-channel-ids {
description
"The list maintained by the system of all the upstream
channel-id's which are already allocated to the
channel group. For NG-PON2, the applicable values are
in [0..7], for XGS-PON a dedicated value 'xgs' is
applicable rather than value '0': this is not to a
priori forbid in yang model the coexistence of XGS-PON
with NG-PON2 using channel-id=0. This list is a helper
to avoid upstream channel-id conflicts when allocating
channel pairs to a channel group.";
leaf-list channel-id {
type bbf-xpon-types:composite-channel-id-type;
description
"An upstream channel-id in use on the channel group.
For NG-PON2, value must be in [0..7].
For XGS-PON, value must be 'xgs'.";
}
}
container allocated-downstream-channel-ids {
description
"The list maintained by the system of all the downstream
channel-id's which are already allocated to the
channel group. For NG-PON2, the applicable values are
in [0..7], for XGS-PON a dedicated value 'xgs' is
applicable rather than value '0': this is not to a
priori forbid in yang model the coexistence of XGS-PON
with NG-PON2 using channel-id=0. This list is a helper
to avoid downstream channel-id conflicts when allocating
channel pairs to a channel group.";
leaf-list downstream-channel-id {
type bbf-xpon-types:composite-channel-id-type;
description
"A downstreamchannel-id in use on the channel group.
For NG-PON2, value must be in [0..7].
For XGS-PON, value must be 'xgs'.";
}
}
container allocated-downstream-wavelengths {
description
"The list maintained by the system of all the downstream
wavelengths already allocated to the channel group
including all of the NG-PON2, XGS-PON, XG-PON and G-PON
cases.
This list is a helper to avoid wavelength conflicts
when allocating channel pairs to a channel group.";
leaf-list wavelength {
type bbf-xpon-types:composite-downstream-wavelength-type;
description
"A downstream wavelength already allocated to the
channel group. For NG-PON2 it must be a value in
[156000..161000] expressed in hundredths of nm to fit
ITU-T precision requirements. For the XGS-PON, XG-PON
and G-PON cases, it must have resp. the value 'xgs',
'xgpon' or 'gpon'.";
}
}
container pon-pools {
if-feature "pon-pools";
description
"This container describes the list of available and consumed
and unusable PON resources that a channel termination in a
channel group may have.";
list pon-pool {
key "name";
min-elements 1;
max-elements 8;
description
"This container describes the current characteristics of the
PON pool of Alloc-IDs, GEM port-IDs and ONU-IDs.";
leaf name {
type bbf-yang:string-ascii64;
description
"Name of the PON pool.";
}
leaf channel-termination-ref {
type if:interface-state-ref;
must "derived-from-or-self(/if:interfaces-state"
+ "/if:interface[if:name = current()]/if:type,"
+ "'bbfxponift:channel-termination')";
description
"Reference the configured channel termination
that is being reported against.";
}
container consumed-resources {
description
"The consumed PON resources.";
leaf alloc-id-values {
type alloc-id-values;
description
"The list of consumed Alloc-IDs.
For example: '1024-1300,1301,1303-1310'.";
}
leaf gemport-values {
type gemport-values;
description
"The list of consumed GEM port-IDs/xGEM port-IDs.
For example: '1024-1300,1301,1303-1310'.";
}
leaf onu-ids {
type onu-id-values;
description
"The list of consumed ONU-IDs.
For example: '1,30-60,70,90-100'.";
}
}
container available-resources {
description
"The available/unused PON resources.";
leaf alloc-id-values {
type alloc-id-values;
description
"The list of available Alloc-IDs.
For example: '1024-1300,1301,1303-1310'.";
}
leaf gemport-values {
type gemport-values;
description
"The list of available GEM port-IDs/xGEM port-IDs.
For example: '1024-1300,1301,1303-1310'.";
}
leaf onu-ids {
type onu-id-values;
description
"The list of available ONU-IDs.
For example: '1,30-60,70,90-100'.";
}
}
}
}
}
augment '/if:interfaces/if:interface/bbf-xpon:channel-group' {
description
"Configuration of an xPON channel group.";
uses channel-group-config-data;
}
augment '/if:interfaces-state/if:interface/bbf-xpon:channel-group' {
description
"State data of an xPON channel group.";
uses channel-group-state-data;
}
}