bbf-xpongemtcont

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

  • Version: 2023-06-21

    bbf-xpongemtcont@2023-06-21


    
      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
    
    Editor:      Kevin Noll, Vecima
    
    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-2023, 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-385i2a1; see
    the TR itself for full legal notices.";
    
        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 GPON Encapsulation
    Method (GEM) port ID.";
        }
    
        // typedefs
        typedef alloc-id {
          type uint16;
          description
            "Transmission Container (T-CONT) Allocation Identifier
    (Alloc-ID). For GPON 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";
    
        }
    
        // objects
        container xpongemtcont {
          description
            "Configuration associated with xPON GPON Encapsulation Method
    (GEM) ports, T-CONTs, and traffic descriptors.";
          container traffic-descriptor-profiles {
            description
              "Traffic descriptor profile configuration.";
            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
          }  // container traffic-descriptor-profiles
    
          container tconts {
            description
              "Transmission Container (T-CONT) configuration data.";
            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 GPON 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.";
              }
    
              container tm-root {
                presence
                  "Indicates the interface supports queues, either directly or
    through a scheduling hierarchy. Interfaces that support
    queues are typically the lowest layer of an interface stack
    that is Ethernet frame aware.";
                description
                  "The attributes of the root in the scheduling tree.";
                choice children-type {
                  description
                    "Choice of a tm-root's child data node types.";
                  case queues {
                    description
                      "In this mode the interface related to the tm-root can
    directly be selected by the forwarding process and has
    its own set of queues. Hence the scheduling of a frame
    from a forwarder to the egress queue takes place in a
    single stage.";
                    list queue {
                      key "local-queue-id";
                      description "A queue.";
                      leaf local-queue-id {
                        type queue-id;
                        description
                          "The unique ID of this queue.";
                      }
    
                      leaf bac-name {
                        type leafref {
                          path "/bbf-qos-tm:tm-profiles/bbf-qos-tm:bac-entry/bbf-qos-tm:name";
                        }
                        description
                          "The name of a referenced BAC entry.";
                      }
    
                      choice queue-scheduling-cfg-type {
                        description
                          "Choice of queue scheduling types.";
                        case inline {
                          description
                            "The queue parameters are directly configured here.";
                          leaf priority {
                            type scheduling-priority;
                            description
                              "The priority used to schedule frames from a queue or
    scheduler, relative to the priority assigned to other queues
    or schedulers that are defined in the same traffic scheduling
    context. For example the set of queues defined for a
    particular interface form the context for scheduling outgoing
    traffic to this interface.";
                          }
    
                          leaf weight {
                            type scheduling-weight;
                            description
                              "Queues or schedulers that are defined in a particular
    context, e.g., queues defined to schedule outgoing traffic to
    an interface, can have the same priority. The weight defines
    the portion of traffic that will be taken from this queue or
    scheduler by comparing the weight of this queue or scheduler
    against the sum of the weights of all queues or schedulers
    with the same scope and the same priority.";
                          }
    
                          leaf extended-weight {
                            if-feature bbf-qos-tm:extended-scheduling-weight;
                            type extended-scheduling-weight;
                            must
                              "not(boolean(../weight))" {
                              error-message
                                "'extended-weight' and 'weight' are configured at the same time.";
                              description
                                "Both weight and extended weight must not be configured at
    the same time.";
                            }
                            description
                              "Queues or schedulers that are defined in a particular
    context, e.g., queues defined to schedule outgoing traffic to
    an interface, can have the same priority. The weight defines
    the portion of traffic that will be taken from this queue or
    scheduler by comparing the weight of this queue or scheduler
    against the sum of the weights of all queues or schedulers
    with the same scope and the same priority.";
                          }
                        }  // case inline
    
                        case dual-rate-scheduling {
                          if-feature bbf-qos-tm:dual-rate-scheduling-from-queue;
                          description
                            "The queue parameters are directly configured here.";
                          container dual-rate-scheduling {
                            description
                              "Configuration which determines the separate processing
    of CIR and EIR traffic.";
                            container cir-traffic {
                              description
                                "Configuration for the CIR type of traffic from the
    child scheduler that is used by the parent
    scheduler.";
                              leaf priority {
                                type extended-scheduling-priority;
                                description
                                  "The priority used to schedule frames from a queue or
    scheduler, relative to the priority assigned to other queues
    or schedulers that are defined in the same traffic scheduling
    context. For example the set of queues defined for a
    particular interface form the context for scheduling outgoing
    traffic to this interface.";
                              }
    
                              leaf extended-weight {
                                type extended-scheduling-weight;
                                description
                                  "Queues or schedulers that are defined in a particular
    context, e.g., queues defined to schedule outgoing traffic to
    an interface, can have the same priority. The weight defines
    the portion of traffic that will be taken from this queue or
    scheduler by comparing the weight of this queue or scheduler
    against the sum of the weights of all queues or schedulers
    with the same scope and the same priority.";
                              }
                            }  // container cir-traffic
    
                            container eir-traffic {
                              description
                                "Configuration for the EIR type of traffic from the
    child scheduler that is used by the parent
    scheduler.";
                              leaf priority {
                                type extended-scheduling-priority;
                                description
                                  "The priority used to schedule frames from a queue or
    scheduler, relative to the priority assigned to other queues
    or schedulers that are defined in the same traffic scheduling
    context. For example the set of queues defined for a
    particular interface form the context for scheduling outgoing
    traffic to this interface.";
                              }
    
                              leaf extended-weight {
                                type extended-scheduling-weight;
                                description
                                  "Queues or schedulers that are defined in a particular
    context, e.g., queues defined to schedule outgoing traffic to
    an interface, can have the same priority. The weight defines
    the portion of traffic that will be taken from this queue or
    scheduler by comparing the weight of this queue or scheduler
    against the sum of the weights of all queues or schedulers
    with the same scope and the same priority.";
                              }
                            }  // container eir-traffic
                          }  // container dual-rate-scheduling
                        }  // case dual-rate-scheduling
                      }  // choice queue-scheduling-cfg-type
    
                      leaf pre-emption {
                        if-feature bbf-qos-tm:pre-emption;
                        type boolean;
                        description
                          "Indicates whether the transmission of a frames from this
    queue can be interrupted in favor of frames from a higher
    priority queue.";
                      }
                    }  // list queue
    
                    leaf queue-statistics-enable {
                      if-feature bbf-qos-tm:queue-statistics;
                      type boolean;
                      description
                        "If 'true', enable statistics collection per queue. When
    transitioning from false to true (disabled to enabled), any
    existing counts should be cleared.
    
    The leaf not existing has the same meaning as queue
    statistics being disabled.";
                    }
                  }  // case queues
    
                  case queues-from-template {
                    if-feature bbf-qos-tm:queue-templates and bbf-qos-tm:queue-template-in-tm-root;
                    description
                      "The child data nodes are a list of queues, however these
    queues are not explicitly configured. Instead a reference
    is provided to a template that contains the definition of
    queues to be created.
    
    The queues' state data is as for case 'queue', i.e., when
    queue statistics collection is enabled, then the state
    data will contain data statistics per queue. The
    'queue-id' of the queues is the 'queue-id' used in the
    template.";
                    container queues-from-template {
                      description
                        "Data for defining queues using a template.";
                      leaf queue-template {
                        type leafref {
                          path "/bbf-qos-tm:tm-profiles/bbf-qos-tm:queue-templates/bbf-qos-tm:template/bbf-qos-tm:name";
                        }
                        description
                          "A reference to a queues template.";
                      }
    
                      leaf queue-statistics-enable {
                        if-feature bbf-qos-tm:queue-statistics;
                        type boolean;
                        description
                          "If 'false', no statistics will be collected. If
    'true', enable statistics collection per queue. When
    transitioning from false to true (disabled to
    enabled), any existing counts should be cleared.
    
    Note that statistics collection can also be enabled
    from within the template. This leaf defined here
    overrules the setting inside the template.
    
    When the leaf defined here is not configured (does
    not exist) it means the setting within the template
    will be applied. When there is also no setting in the
    template it has the same meaning as queue statistics
    being disabled.";
                      }
                    }  // container queues-from-template
                  }  // case queues-from-template
                }  // choice children-type
    
                leaf tc-id-2-queue-id-mapping-profile-name {
                  if-feature bbf-qos-tm:tc-id-2-queue-id-mapping-config;
                  type leafref {
                    path "/bbf-qos-tm:tm-profiles/bbf-qos-tm:tc-id-2-queue-id-mapping-profile/bbf-qos-tm:name";
                  }
                  description
                    "The name of a referenced traffic class ID to queue ID mapping
    profile.";
                }
              }  // container tm-root
            }  // list tcont
          }  // container tconts
    
          container gemports {
            description
              "GPON Encapsulation Method (GEM) port configuration data.";
            list gemport {
              key "name";
              description
                "A GPON Encapsulation Method (GEM) port.";
              leaf name {
                type bbf-yang:string-ascii64;
                description
                  "Name of GPON Encapsulation Method (GEM) port.";
              }
    
              leaf gemport-id {
                if-feature bbf-xpongemtcont:configurable-gemport-id;
                type uint32;
                description
                  "ID of GPON 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
    GPON 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 GPON
    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 GPON
    Encapsulation Method (GEM) port for the upstream direction.
    
    This is not applicable for GPON. 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 GPON Encapsulation Method (GEM) port
    needs to refer to the Transmission Container (T-CONT) into
    which it feeds upstream traffic.";
              }
    
              container performance {
                description
                  "Performance parameters.";
                leaf enable {
                  type boolean;
                  default "false";
                  description
                    "If true, enables counting of performance statistics.
    Then performance statistics will be available in
    /xpongemtcont-state/gemports/gemport/performance.
    i.e., 15 minutes statistics and 24 hours statistics,
    and for both there are current statistics and history
    data.
    
    If false, then there are no performance statistics.";
                }
              }  // container performance
            }  // list gemport
          }  // container gemports
        }  // container xpongemtcont
    
        container xpongemtcont-state {
          config false;
          description
            "State data associated with xPON GPON Encapsulation Method
    (GEM) ports, T-CONTs, and traffic descriptors.";
          container tconts {
            description
              "Transmission Container (T-CONT) state data.";
            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";
    
              }
            }  // list tcont
          }  // container tconts
    
          container gemports {
            config false;
            description
              "GPON Encapsulation Method (GEM) port state data.";
            list gemport {
              key "name";
              description
                "A GPON Encapsulation Method (GEM) port.";
              leaf name {
                type bbf-yang:string-ascii64;
                description
                  "Name of GPON Encapsulation Method (GEM) port.";
              }
    
              leaf actual-gemport-id {
                type uint32;
                mandatory true;
                description
                  "TC layer ID of the GPON 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";
    
              }
    
              container performance {
                description
                  "Performance counters associated with GPON Encapsulation
    Method (GEM) ports.";
                container intervals-15min {
                  description
                    "15 minute interval performance history.";
                  container current {
                    description
                      "Current 15 minute interval counters.";
                    container ani-side {
                      description
                        "Counters from the Optical Network Unit's (ONU) perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container ani-side
    
                    container v-ani-side {
                      description
                        "Counters from the Optical Line Termination's (OLT)
    perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container v-ani-side
                  }  // container current
    
                  leaf number-of-intervals {
                    type performance-15min-interval;
                    description
                      "The total number of 15-minute PM intervals for which data
    was collected.";
                  }
    
                  leaf non-valid-intervals {
                    type performance-15min-interval;
                    description
                      "The number of 15-minute PM intervals for which the data
    is considered to be invalid or incomplete.";
                  }
    
                  list history {
                    key "interval-number";
                    max-elements 96;
                    description
                      "A history of 15 minute intervals.";
                    leaf interval-number {
                      type bbf-if-pm:performance-15min-history-interval;
                      description
                        "The number of the interval relative to the current
    interval.";
                    }
    
                    leaf measured-time {
                      type uint32;
                      description
                        "Reports the amount of time, measured in seconds, that
    statistics for this interval have been counted.";
                    }
    
                    leaf invalid-data-flag {
                      type boolean;
                      description
                        "Reports the validity of the corresponding PM data.";
                    }
    
                    leaf time-stamp {
                      type yang:date-and-time;
                      description
                        "Reports the start date/time for this interval.";
                    }
    
                    container ani-side {
                      description
                        "Counters from the Optical Network Unit's (ONU) perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container ani-side
    
                    container v-ani-side {
                      description
                        "Counters from the Optical Line Termination's (OLT)
    perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container v-ani-side
                  }  // list history
                }  // container intervals-15min
    
                container intervals-24hr {
                  if-feature bbf-if-pm:performance-24hr;
                  description
                    "24 hour interval performance history.";
                  container current {
                    description
                      "Current 24 hour interval counters.";
                    container ani-side {
                      description
                        "Counters from the Optical Network Unit's (ONU) perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container ani-side
    
                    container v-ani-side {
                      description
                        "Counters from the Optical Line Termination's (OLT)
    perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container v-ani-side
                  }  // container current
    
                  leaf number-of-intervals {
                    type performance-24hr-interval;
                    description
                      "The total number of 24-hour PM intervals for which data
    was collected.";
                  }
    
                  leaf non-valid-intervals {
                    type performance-24hr-interval;
                    description
                      "The number of 24-hour PM intervals for which the data
    is considered to be invalid or incomplete.";
                  }
    
                  list history {
                    key "interval-number";
                    max-elements 7;
                    description
                      "A history of 24 hour intervals.";
                    leaf interval-number {
                      type bbf-if-pm:performance-24hr-history-interval;
                      description
                        "The number of the interval relative to the current
    interval.";
                    }
    
                    leaf measured-time {
                      type uint32;
                      description
                        "Reports the amount of time, measured in seconds, that
    statistics for this interval have been counted.";
                    }
    
                    leaf invalid-data-flag {
                      type boolean;
                      description
                        "Reports the validity of the corresponding PM data.";
                    }
    
                    leaf time-stamp {
                      type yang:date-and-time;
                      description
                        "Reports the start date/time for this interval.";
                    }
    
                    container ani-side {
                      description
                        "Counters from the Optical Network Unit's (ONU) perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container ani-side
    
                    container v-ani-side {
                      description
                        "Counters from the Optical Line Termination's (OLT)
    perspective.";
                      leaf out-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    transmitted.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Transmitted XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Transmitted XGEM frames per XGEM port";
    
                      }
    
                      leaf in-frames {
                        type bbf-yang:performance-counter64;
                        description
                          "Total number of GPON Encapsulation Method (GEM) frames
    received.";
                        reference
                          "ITU-T G.987.3 (01/2014)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.989.3 (2015)/Amd.2 (11/2018)
                          Table 14-1 Received XGEM frames per XGEM port
                          
                          ITU-T G.9807.1 (2016)/Amd.1 (10/2017)
                          Table C.14.1 Received XGEM frames per XGEM port";
    
                      }
                    }  // container v-ani-side
                  }  // list history
                }  // container intervals-24hr
              }  // container performance
            }  // list gemport
          }  // container gemports
        }  // container xpongemtcont-state
      }  // module bbf-xpongemtcont
    

© 2023 YumaWorks, Inc. All rights reserved.