This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on management of ITU-T Pas...
Version: 2024-04-23
module bbf-xpongemtcont { yang-version 1.1; namespace "urn:bbf:yang:bbf-xpongemtcont"; prefix bbf-xpongemtcont; include bbf-xpongemtcont-base; include bbf-xpongemtcont-traffic-descriptor-profile-body; include bbf-xpongemtcont-tcont-body; include bbf-xpongemtcont-gemport-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:info@broadband-forum.org>. Editor: Robert Peschi, Nokia PS Leader: Joey Boyd, Adtran WA Director: Marta Seda, Calix"; description "This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on management of ITU-T Passive Optical Network (PON) interfaces as defined in ITU-T G.984.x, G.987.x, ITU-T G.989.x and ITU-T G.9807.x. As such, this module is specific to access network equipment (e.g., BBF-specified Access Nodes and FTTdp DPUs). Specifically, this module defines management of G-PON Encapsulation Method (GEM) ports, Transmission Containers (T-CONT) and traffic descriptors. Copyright (c) 2018-2024, 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-385i3; see the TR itself for full legal notices."; revision "2024-04-23" { description "Issue 3. * Approval Date: 2024-04-23. * Publication Date: 2024-04-23."; reference "TR-385i3: YANG Modules for PON Management <https://www.broadband-forum.org/technical/download/ TR-385_Issue-3.pdf>"; } revision "2023-06-21" { description "Issue 2 Amendment 1. * Approval Date: 2023-06-21. * Publication Date: 2023-06-21."; reference "TR-385i2a1: ITU-T PON YANG Modules <https://www.broadband-forum.org/technical/download/ TR-385_Issue-2_Amendment-1.pdf>"; } revision "2020-10-13" { description "Issue 2. * Approval Date: 2020-10-13. * Publication Date: 2020-10-13."; reference "TR-385i2: ITU-T PON YANG Modules <https://www.broadband-forum.org/technical/download/ TR-385_Issue-2.pdf>"; } 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>"; } // features feature configurable-alloc-id { description "Indicates support for configuration of the Allocation Identifier (Alloc-ID)."; } feature configurable-gemport-id { description "Indicates support for configuration of the G-PON Encapsulation Method (GEM) port ID."; } // typedefs typedef alloc-id { type uint16; description "Transmission Container (T-CONT) Allocation Identifier (Alloc-ID). For G-PON, range is 256..4095. For XG-PON, range is 1024..16383. For XGS-PON, range is 1024..16383. For NG-PON2, range is 1024..16383. For 25GS-PON, range is 1024..16383. For 50G-PON, range is 1024..16383."; reference "ITU-T G.984.3 Clause 5.5.3; ITU-T G.987.3 Clause 6.4.3; ITU-T G.9807.1 Clause C.6.1.5.7; ITU-T G.989.3 Clause 6.1.5.7; ITU-T G.9804.2 Clause 6.5.2.6; MSA 25GS-PON Section C.6.1.5.7"; } // groupings grouping traffic-descriptor-profile-data { description "All configuration data for traffic descriptor profile."; reference "ITU-T G.989.3"; list traffic-descriptor-profile { key "name"; description "List of traffic descriptor profiles."; leaf name { type string; description "Traffic descriptor profile name."; } leaf fixed-bandwidth { type uint64; units "bits per second"; default "0"; description "Represents the reserved portion of the link capacity that is allocated to the given traffic flow, regardless of its traffic demand and the overall traffic load conditions."; reference "ITU-T G.984.3 Clause 7.4.4.3"; } leaf assured-bandwidth { type uint64; units "bits per second"; default "0"; description "Represents a portion of the link capacity that is allocated to the given traffic flow as long as the flow has unsatisfied traffic demand, regardless of the overall traffic conditions."; reference "ITU-T G.984.3 Clause 7.4.4.3"; } leaf maximum-bandwidth { type uint64; units "bits per second"; must "(boolean(../fixed-bandwidth) and boolean(../assured-bandwidth) and (. >= ../fixed-bandwidth + ../assured-bandwidth)) or (boolean(../fixed-bandwidth) and not(boolean(../assured-bandwidth)) and (. >= ../fixed-bandwidth)) or (not(boolean(../fixed-bandwidth)) and boolean(../assured-bandwidth) and (. >= ../assured-bandwidth)) or (not(boolean(../fixed-bandwidth)) and not(boolean(../assured-bandwidth)))" { error-message "The maximum bandwidth must be greater than or equal to the sum of the configured fixed and assured bandwidth."; description "The maximum bandwidth must be greater than or equal to the sum of any configured fixed and assured bandwidth."; } mandatory true; description "Represents the upper limit on the total bandwidth that can be allocated to the traffic flow under any traffic conditions."; reference "ITU-T G.984.3 Clause 7.4.4.3"; } leaf priority { type uint8 { range "1..8"; } description "Used for scheduling traffic on a Transmission Container (T-CONT)."; reference "ITU-T G.984.3 Clause 7.4.5"; } leaf weight { type uint8; description "Used for scheduling traffic on a Transmission Container (T-CONT)."; reference "ITU-T G.984.3 Clause 7.4.5"; } leaf additional-bw-eligibility-indicator { type enumeration { enum "non-assured-sharing" { value 0; description "The Transmission Container (T-CONT) is eligible for non-assured bandwidth in addition to the bandwidth described by this traffic descriptor."; } enum "best-effort-sharing" { value 1; description "The Transmission Container (T-CONT) is eligible for best effort bandwidth in addition to the bandwidth described by this traffic descriptor."; } enum "none" { value 2; description "The Transmission Container (T-CONT) is not eligible for any additional bandwidth beyond the bandwidth described by this traffic descriptor."; } } must ". = 'non-assured-sharing' or . = 'best-effort-sharing' or (. = 'none' and ((boolean(../fixed-bandwidth) and boolean(../assured-bandwidth) and (../maximum-bandwidth = ../fixed-bandwidth + ../assured-bandwidth)) or (boolean(../fixed-bandwidth) and not(boolean(../assured-bandwidth)) and (../maximum-bandwidth = ../fixed-bandwidth)) or (not(boolean(../fixed-bandwidth)) and boolean(../assured-bandwidth) and (../maximum-bandwidth = ../assured-bandwidth)) or (not(boolean(../fixed-bandwidth)) and not(boolean(../assured-bandwidth)) and ../maximum-bandwidth = 0)))" { error-message "Additional bandwidth eligibility is configured to 'none' and 'maximum-bandwidth' does not equal the sum of 'fixed-bandwidth' and 'assured-bandwidth'."; description "If no bandwidth eligibility is configured, the maximum bandwidth must be the sum of the fixed and assured bandwidths."; } description "In case of rate-proportional assignment of additional bandwidth, additional bandwidth eligibility can be provisioned to either value (non-assured-sharing, best-effort-sharing, or none). The additional bandwidth is described as: maximum-bandwidth - (fixed-bandwidth + assured-bandwidth)."; reference "ITU-T G.984.3 Clause 7.4.4.3; ITU-T G.989.3 Clause 7.3.5"; } } // list traffic-descriptor-profile } // grouping traffic-descriptor-profile-data grouping tconts-config-data { description "The configuration data for all Transmission Containers (T-CONT)."; list tcont { key "name"; description "A Transmission Container (T-CONT)."; leaf name { type bbf-yang:string-ascii64; description "Name of the Transmission Container (T-CONT)."; } leaf alloc-id { if-feature bbf-xpongemtcont:configurable-alloc-id; type alloc-id; description "Transmission Container (T-CONT) Allocation Identifier (Alloc-ID). When configured this is the value which must actually be used between the Optical Line Termination (OLT) device and Optical Network Unit (ONU) device for this T-CONT. For G-PON, range is 256..4095. For XG-PON, range is 1024..16383. For XGS-PON, range is 1024..16383. For NG-PON2, range is 1024..16383. For 25GS-PON, range is 1024..16383. For 50G-PON, range is 1024..16383."; reference "ITU-T G.984.3 Clause 5.5.3; ITU-T G.987.3 Clause 6.4.3; ITU-T G.9807.1 Clause C.6.1.5.7; ITU-T G.989.3 Clause 6.1.5.7; ITU-T G.9804.2 Clause 6.5.2.6; MSA 25GS-PON Section C.6.1.5.7"; } leaf interface-reference { type if:interface-ref; must "derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type,'bbf-xponift:v-ani') or derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type,'bbf-xponift:ani')" { error-message "Must reference an interface of type 'v-ani' or 'ani'."; } description "Reference to 'v-ani' or 'ani' type interface."; } leaf traffic-descriptor-profile-ref { type leafref { path "/bbf-xpongemtcont:xpongemtcont/bbf-xpongemtcont:traffic-descriptor-profiles/bbf-xpongemtcont:traffic-descriptor-profile/bbf-xpongemtcont:name"; } description "References an existing traffic descriptor profile."; } } // list tcont } // grouping tconts-config-data grouping tconts-state-data { description "The state data for all Transmission Containers (T-CONT)."; list tcont { key "name"; description "A Transmission Container (T-CONT)."; leaf name { type bbf-yang:string-ascii64; description "Name of the Transmission Container (T-CONT)."; } leaf actual-alloc-id { type alloc-id; description "Transmission Container (T-CONT) Allocation Identifier (Alloc-ID). This is the value which is actually used between the Optical Line Termination (OLT) device and Optical Network Unit (ONU) device for this T-CONT."; reference "ITU-T G.984.3 Clause 5.5.3; ITU-T G.987.3 Clause 6.4.3; ITU-T G.9807.1 Clause C.6.1.5.7; ITU-T G.989.3 Clause 6.1.5.7; ITU-T G.9804.2 Clause 6.5.2.6"; } } // list tcont } // grouping tconts-state-data grouping gemports-config-data { description "The configuration data for all G-PON Encapsulation Method (GEM) ports."; list gemport { key "name"; description "A G-PON Encapsulation Method (GEM) port."; leaf name { type bbf-yang:string-ascii64; description "Name of G-PON Encapsulation Method (GEM) port."; } leaf gemport-id { if-feature bbf-xpongemtcont:configurable-gemport-id; type uint32; description "ID of G-PON Encapsulation Method (GEM) port. When configured this is the value which must actually be used between the Optical Line Termination (OLT) device and Optical Network Unit (ONU) device for this GEM port. For G-PON, range is 0..4095 and not conflicting with the 'management-gemport-id'. For XG-PON, range is 1023..65534. For XGS-PON, range is 1021..65534. For NG-PON2, range is 1021..65534. For 25GS-PON, range is 1021..65534. For 50G-PON, range is 1020..65534."; reference "ITU-T G.984.3 Clause 5.5.5; ITU-T G.987.3 Clause 6.4.4; ITU-T G.9807.1 Clause C.6.1.5.8; ITU-T G.989.3 Clause 6.1.5.8; ITU-T G.9804.2 Clause 6.5.2.7; MSA 25GS-PON Section 5"; } leaf interface { type if:interface-ref; description "Points to an interface."; } leaf traffic-class { type uint8 { range "0..7"; } description "Traffic Class value."; } leaf downstream-aes-indicator { type boolean; default "false"; description "Used to designate whether Advanced Encryption Standard (AES) should be enabled/disabled for this G-PON Encapsulation Method (GEM) port for the downstream direction."; reference "ITU-T G.984.3 Clause 12.1; ITU-T G.987.3 Clause 15.5.1; ITU-T G.9807.1 Clause C.15.5.1; ITU-T G.989.3 Clause 15.5.1; ITU-T G.9804.2 Clause 15.5.1"; } leaf upstream-aes-indicator { type boolean; default "false"; description "Used to designate whether Advanced Encryption Standard (AES) should be enabled/disabled for this G-PON Encapsulation Method (GEM) port for the upstream direction. This is not applicable for G-PON. Any configured value will be ignored."; reference "ITU-T G.987.3 Clause 15.5.1; ITU-T G.9807.1 Clause C.15.5.1; ITU-T G.989.3 Clause 15.5.1; ITU-T G.9804.2 Clause 15.5.1"; } leaf tcont-ref { type leafref { path "/bbf-xpongemtcont:xpongemtcont/bbf-xpongemtcont:tconts/bbf-xpongemtcont:tcont/bbf-xpongemtcont:name"; } description "For the purpose of upstream scheduling in the Optical Network Unit (ONU), a G-PON Encapsulation Method (GEM) port needs to refer to the Transmission Container (T-CONT) into which it feeds upstream traffic."; } } // list gemport } // grouping gemports-config-data grouping gemports-state-data { description "The state data for all G-PON Encapsulation Method (GEM) ports."; list gemport { key "name"; description "A G-PON Encapsulation Method (GEM) port."; leaf name { type bbf-yang:string-ascii64; description "Name of G-PON Encapsulation Method (GEM) port."; } leaf actual-gemport-id { type uint32; mandatory true; description "TC layer ID of the G-PON Encapsulation Method (GEM) port. This is the value which is actually used between the Optical Line Termination (OLT) device and Optical Network Unit (ONU) device for this GEM port."; reference "ITU-T G.984.3 Clause 5.5.5; ITU-T G.987.3 Clause 6.4.4; ITU-T G.9807.1 Clause C.6.1.5.8; ITU-T G.989.3 Clause 6.1.5.8; ITU-T G.9804.2 Clause 6.5.2.7"; } } // list gemport } // grouping gemports-state-data // objects container xpongemtcont { description "Configuration associated with xPON G-PON Encapsulation Method (GEM) ports, T-CONTs, and traffic descriptors."; } // container xpongemtcont container xpongemtcont-state { config false; description "State data associated with xPON G-PON Encapsulation Method (GEM) ports, T-CONTs, and traffic descriptors."; } // container xpongemtcont-state augment /bbf-xpongemtcont:xpongemtcont { description "Augment the xPON G-PON Encapsulation Method (GEM) port and Transmission Container (T-CONT) configuration with traffic descriptor profile specific configuration."; container traffic-descriptor-profiles { description "Traffic descriptor profile configuration."; uses traffic-descriptor-profile-data; } // container traffic-descriptor-profiles } augment /bbf-xpongemtcont:xpongemtcont { description "Augment the xPON G-PON Encapsulation Method (GEM) port and Transmission Container (T-CONT) configuration with T-CONT specific configuration."; container tconts { description "Transmission Container (T-CONT) configuration data."; uses tconts-config-data; } // container tconts } augment /bbf-xpongemtcont:xpongemtcont-state { description "Augment the xPON G-PON Encapsulation Method (GEM) port and Transmission Container (T-CONT) state data with T-CONT specific state data."; container tconts { description "Transmission Container (T-CONT) state data."; uses tconts-state-data; } // container tconts } augment /bbf-xpongemtcont:xpongemtcont { description "Augment the xPON G-PON Encapsulation Method (GEM) port and Transmission Container (T-CONT) configuration with GEM port specific configuration."; container gemports { description "G-PON Encapsulation Method (GEM) port configuration data."; uses gemports-config-data; } // container gemports } augment /bbf-xpongemtcont:xpongemtcont-state { description "Augment the xPON G-PON Encapsulation Method (GEM) port and Transmission Container (T-CONT) state data with GEM port specific state data."; container gemports { config false; description "G-PON Encapsulation Method (GEM) port state data."; uses gemports-state-data; } // container gemports } } // module bbf-xpongemtcont
© 2023 YumaWorks, Inc. All rights reserved.