bbf-xpongemtcont

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

  • Version: 2020-10-13

    bbf-xpongemtcont@2020-10-13


    
      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:      Joey Boyd, ADTRAN
    
    Editor:      Igor Ternovsky, Broadcom
    
    Editor:      Robert Peschi, Nokia
    
    WA Director: Marta Seda, Calix
    
    WA Director: Samuel Chen, Broadcom";
    
        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-2020, 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-385i2; see
    the TR itself for full legal notices.";
    
        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 the value should be in [256..4095] and
    for XG-PON, XGS-PON and NG-PON2 it should be in
    [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";
    
        }
    
        // 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/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/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/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)))";
              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
              "List of Transmission Containers (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 the value should be in [256..4095] and
    for XG-PON, XGS-PON and NG-PON2 it should be in
    [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";
    
            }
    
            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
              "List of Transmission Containers (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";
    
            }
          }  // 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
              "List of G-PON Encapsulation Method (GEM) ports.";
            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 the value should be in [0..4095] and not conflicting
    with the 'management-gemport-id', for XG-PON it should be
    in [1023..65534] and for XGS-PON and NG-PON2 it should be
    in [1021..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";
    
            }
    
            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";
    
            }
    
            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";
    
            }
    
            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
              "List of G-PON Encapsulation Method (GEM) ports.";
            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";
    
            }
          }  // 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.