bbf-xpongemtcont

This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on management of ITU-T Pas...

  • Version: 2024-04-23

    bbf-xpongemtcont@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.