bbf-gbond-state

This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on bonding of physical int...

  • Version: 2022-05-23

    bbf-gbond-state@2022-05-23


    
      module bbf-gbond-state {
    
        yang-version 1.1;
    
        namespace "urn:bbf:yang:bbf-gbond-state";
    
        prefix bbf-gbond-state;
    
        import iana-if-type {
          prefix ianaift;
        }
        import ietf-interfaces {
          prefix if;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import bbf-fastdsl {
          prefix bbf-fastdsl;
        }
        import bbf-gbond {
          prefix bbf-gbond;
        }
        import bbf-interfaces-performance-management {
          prefix bbf-if-pm;
        }
        import bbf-yang-types {
          prefix bbf-yang;
        }
    
        organization
          "Broadband Forum <https://www.broadband-forum.org>
         Common YANG Work Area";
    
        contact
          "Comments or questions about this Broadband Forum YANG module
         should be directed to <mailto:help@broadband-forum.org>.
    
         Editor:      Ken Kerpez, ASSIA, Inc.
    
         Editor:      Joey Boyd, Adtran
    
         PS Leader:   Joey Boyd, Adtran
    
         WA Director: Sven Ooghe, Nokia
    
         WA Director: Joey Boyd, Adtran";
    
        description
          "This module contains a collection of YANG definitions for
         supporting the Broadband Forum requirements on bonding of
         physical interfaces as defined in ITU-T G.998.1, ITU-T G.998.2,
         ITU-T G.998.3 and BBF TR-159. As such, this module is specfic to
         access network equipment (e.g., BBF-specified Access Nodes and
         FTTdp DPUs).
    
         Specifically, this module is to be used when the server does not
         support Network Management Datastore Architecture (NMDA) as
         defined in RFC 8342.
    
         Copyright (c) 2016-2022 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-355a4; see
         the TR itself for full legal notices.";
    
        revision "2022-05-23" {
          description
            "Amendment 4.
           * Approval Date:    2022-05-23
           * Publication Date: 2022-05-23.";
          reference
            "TR-355a4: YANG Modules for FTTdp Management
            	    <https://www.broadband-forum.org/download/
            		   TR-355_Amendment-4.pdf>";
    
        }
    
        revision "2020-10-13" {
          description
            "Amendment 3.
           * Approval Date:    2020-10-13
           * Publication Date: 2020-10-13.";
          reference
            "TR-355a3: YANG Modules for FTTdp Management
            	    <https://www.broadband-forum.org/download/
            		   TR-355_Amendment-3.pdf>";
    
        }
    
    
        grouping bonding-group-performance-counters {
          description
            "Bonding group performance counters.";
          leaf errored-seconds {
            type yang:counter64;
            description
              "A count of Errored Seconds(ES) on the Generic Bonded
             Sub-layer (GBS) in the specified performance interval.
    
             The definition of an Errored Second is dependent on
             the bonding scheme currently in use.";
          }
    
          leaf severely-errored-seconds {
            type yang:counter64;
            description
              "A count of Severely Errored Seconds(SES) on the Generic
             Bonded Sub-layer (GBS) in the specified performance interval.
    
             The definition of a Severly Errored Second is
             dependent on the bonding scheme currently in use.";
          }
    
          leaf unavailable-seconds {
            type yang:counter64;
            description
              "A count of Unavailable Seconds(UAS) on the Generic Bonded
             Sub-layer (GBS) in the specified performance interval.
    
             The definition of an Unavailable Second is
             dependent on the bonding scheme currently in use.";
          }
        }  // grouping bonding-group-performance-counters
    
        grouping bonding-group-performance {
          description
            "Bonding group performance.";
          container gbs-c {
            description
              "Performance associated with the Generic Bonded Sub-layer,
             CO side (GBS-C).";
            uses bonding-group-performance-counters;
          }  // container gbs-c
        }  // grouping bonding-group-performance
    
        augment /if:interfaces-state/if:interface {
          when
            "derived-from-or-self(if:type,'ianaift:g9981') or "
              + "derived-from-or-self(if:type,'ianaift:g9982') or "
              + "derived-from-or-self(if:type,'ianaift:g9983')" {
            description
              "Only applicable if the interface type is G.998.1, G.998.2,
             G.998.3, or derived from one of those types.";
          }
          description
            "Augment the basic interface state data with parameters
           associated with a G.bond bonding group.";
          container bonding-group {
            description
              "State parameters associated with a G.bond bonding group.";
            container status {
              description
                "Status data nodes associated with a bonding group.";
              leaf upstream-data-rate {
                type bbf-yang:data-rate32-or-undetermined;
                mandatory true;
                description
                  "The current operating data rate of the Generic Bonded
                 Sub-layer (GBS) in the upstream direction, in kilobits
                 per second. A special value, 'undetermined', is used when
                 the bonding group is not operational.
    
                 For G.fast, the upstream data rate represents the sum of
                 the Gamma Data Rates (GDR) of the G.fast lines associated
                 with this GBS.
    
                 For VDSL, the upstream data rate represents the sum of
                 the Net Data Rates (NDR) of the VDSL lines associated
                 with this GBS.";
                reference
                  "TR-159 section 5.5.1.15, aGroupUpRate.";
    
              }
    
              leaf downstream-data-rate {
                type bbf-yang:data-rate32-or-undetermined;
                mandatory true;
                description
                  "The current operating data rate of the Generic Bonded
                 Sub-layer (GBS) in the downstream direction, in kilobits
                 per second. A special value, 'undetermined', is used when
                 the bonding group is not operational.
    
                 For G.fast, the downstream data rate represents the sum
                 of the Gamma Data Rates (GDR) of the G.fast lines
                 associated with this GBS.
    
                 For VDSL, the downstream data rate represents the sum of
                 the Net Data Rates (NDR) of the VDSL lines associated
                 with this GBS.";
                reference
                  "TR-159 section 5.5.1.16, aGroupDownRate.";
    
              }
    
              leaf number-of-channels {
                type uint32;
                mandatory true;
                description
                  "The number of channels that are actually aggregated/
                 bonded by this particular G.998.x port (Generic Bonded
                 Sub-layer (GBS)). Within each G.998.x port, the Bonded
                 Channel Entities (BCE) are uniquely numbered in the range
                 from 1 to 'capacity'. Some BCEs may not be present in a
                 given GBS instance, in which case 'number-of-channels' is
                 less than 'capacity'. The number of BCEs present is never
                 greater than 'capacity'.";
                reference
                  "TR-159 section 5.5.1.14, aGroupNumChannels.";
    
              }
    
              leaf fault-status {
                type bits {
                  bit no-peer {
                    position 0;
                    description
                      "Indicates that the peer physical layer is unreachable
                     (e.g., no Bonded Channel Entity (BCE) is associated
                     with this Generic Bonded Sub-layer (GBS), no BCE is
                     operationally 'up').";
                  }
                  bit peer-power-loss {
                    position 1;
                    description
                      "Indicates that the local device received a 'dying
                     gasp' message (preceding a loss-of-power) from the
                     peer device.";
                  }
                  bit
                    peer-bond-scheme-mismatch {
                    position 2;
                    description
                      "Indicates that the operating bonding scheme of the
                     peer port is different from the local one.";
                  }
                  bit low-rate {
                    position 3;
                    description
                      "Indicates that either 'upstream-data-rate' or
                     'downstream-data-rate' value has dropped to or below
                     'low-upstream-data-rate-threshold' or
                     'low-downstream-data-rate-threshold', respectively.";
                  }
                  bit aggregation-error {
                    position 4;
                    description
                      "Indicates an error during the aggregation control
                     protocol, e.g. 'no common Generic Bonded Sub-layer,
                     RT side (GBS-R)' or 'Physical Medium Entity
                     Identifier (PME-ID) allocation error'.";
                  }
                }
                mandatory true;
                description
                  "The current fault status of a bonding group.";
                reference
                  "TR-159 section 5.5.1.9, aGroupStatus.";
    
              }
    
              container g9982 {
                when
                  "../../../if:type='ianaift:g9982'" {
                  description
                    "Only applicable when the bonding group type is
                   G.998.2.";
                }
                description
                  "Status specific to ITU-T G.998.2.";
                leaf operational-control-protocol {
                  type identityref {
                    base bbf-gbond:control-protocol;
                  }
                  description
                    "Reports the control protocol currently in used on the
                   line.";
                  reference
                    "TR-159 section 5.5.3.2, aEthAdminCP.";
    
                }
              }  // container g9982
            }  // container status
    
            container capabilities {
              description
                "Capabilities associated with a bonding group.";
              container gbs-c {
                description
                  "Capabilities associated with the Generic Bonded
                 Sub-layer, CO side (GBS-C).";
                leaf capacity {
                  type uint8 {
                    range "1..32";
                  }
                  mandatory true;
                  description
                    "The 'capacity' is the maximum number of channels that
                   can be aggregated by a particular G.998.x port (Generic
                   Bonded Sub-layer (GBS)). Within each G.998.x port, the
                   Bonded Channel Entities (BCE) are uniquely numbered in
                   the range from 1 to 'capacity'. Some BCEs may not be
                   present in a given GBS instance, in which case the
                   actual number of BCEs present is less than 'capacity'.
                   The number of BCEs present is never greater than
                   'capacity'.";
                  reference
                    "TR-159 section 5.5.1.12, aGroupCapacity.";
    
                }
              }  // container gbs-c
            }  // container capabilities
    
            container statistics {
              if-feature bbf-gbond:bonding-group-statistics;
              description
                "Statistics associated with a bonding group.";
              container g9982 {
                when
                  "../../../if:type='ianaift:g9982'" {
                  description
                    "Only applicable when the bonding group type is
                   G.998.2.";
                }
                description
                  "Statistics specific to ITU-T G.998.2.";
                container gbs-c {
                  description
                    "Statistics associated with the Generic Bonded
                   Sub-layer, CO side (GBS-C).";
                  leaf in-errors {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of errored fragments that have been received
                     across the gamma interface and discarded.";
                    reference
                      "TR-159 section 5.5.3.7, aEthRxErrors.";
    
                  }
    
                  leaf in-small-fragments {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of fragments smaller than minimum fragment
                     size (64 Bytes), that have been received across the
                     gamma interface and discarded.";
                    reference
                      "TR-159 section 5.5.3.8, aEthRxSmallFragments.";
    
                  }
    
                  leaf in-large-fragments {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of fragments larger than maximum fragment
                     size (512 Bytes), that have been received across the
                     gamma interface and discarded.";
                    reference
                      "TR-159 section 5.5.3.9, aEthRxLargeFragments.";
    
                  }
    
                  leaf in-bad-fragments {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of fragments which do not fit into the
                     sequence expected by the frame assembly function,
                     that have been received across the gamma interface
                     and discarded.";
                    reference
                      "TR-159 section 5.5.3.10, aEthRxBadFragments.";
    
                  }
    
                  leaf in-lost-fragments {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of gaps in the sequence of fragments that
                     have been received across the gamma interface (the
                     frame buffer is flushed to the next valid frame
                     start, when fragment/fragments expected by the frame
                     assembly function is/are not received).";
                    reference
                      "TR-159 section 5.5.3.11 aEthRxLostFragments.";
    
                  }
    
                  leaf in-lost-starts {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of missing 'start of packet' indicators
                     expected by the frame assembly function.";
                    reference
                      "TR-159 section 5.5.3.12, aEthRxLostStarts.";
    
                  }
    
                  leaf in-lost-ends {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A number of missing 'end of packet' indicators
                     expected by the frame assembly function.";
                    reference
                      "TR-159 section 5.5.3.13, aEthRxLostEnds.";
    
                  }
    
                  leaf in-overflows {
                    type yang:counter64;
                    mandatory true;
                    description
                      "A numbers of fragments, received across the gamma
                     interface and discarded, which would have caused the
                     frame assembly buffer to overflow.";
                    reference
                      "TR-159 section 5.5.3.14, aEthRxOverflows.";
    
                  }
                }  // container gbs-c
              }  // container g9982
            }  // container statistics
          }  // container bonding-group
        }
    
        augment /if:interfaces-state/if:interface/bbf-fastdsl:line {
          description
            "Augment the basic interface state data with state data
           associated with a G.bond line and associated bonded channel
           entity.";
          container bonded-channel-entity {
            description
              "State data of the Bonded Channel Entity (BCE) associated
             with this line.";
            container status {
              description
                "Status associated with a Bonded Channel Entity (BCE).";
              leaf group-id {
                type union {
                  type bbf-gbond:undefined;
                  type uint8 {
                    range "0..31";
                  }
                }
                description
                  "A value identifying a particular bonding channel
                 within a bonding group, i.e. logical number of a Bonded
                 Channel Entity (BCE) in a Generic Bonded Sub-layer (GBS),
                 if such a logical number is defined for the BCE.
    
                 This data node maps to the Physical Medium Entity
                 Identifier (PME ID) variable of G.998.2 Amendment 2 or to
                 the aPairID attribute of G.998.3 or to the Tx link number
                 of G.998.1.";
                reference
                  "TR-159 section 5.5.7.2, aChannelGroupID.";
    
              }
            }  // container status
    
            container capabilities {
              presence
                "Presence of this container indicates there are one or
               more data nodes associated with the capabilities of this
               line.";
              description
                "Capabilities associated with a Bonded Channel Entity
               (BCE).";
              container bce-c {
                description
                  "Bonding Channel Entity - CO side (BCE-C).";
                leaf bonding-scheme-supported {
                  type bbf-gbond:boolean-or-undefined;
                  description
                    "If true, the bonding scheme indicated by the interface
                   type, e.g. G.998.2, is supported.
    
                   This is reported per Bonding Channel Entity (BCE) which
                   is beyond the requirements of TR-159.";
                  reference
                    "TR-159 section 5.5.1.2, aGroupBondSchemesSupported.";
    
                }
    
                container g9982 {
                  presence
                    "The presence of this container indicates the interface
                   is capable of bonding using the G.998.2 bonding
                   scheme.";
                  description
                    "Capabilities specific to ITU-T G.998.2.";
                  leaf bacp-supported {
                    type bbf-gbond:boolean-or-undefined;
                    description
                      "If true, Bonding Aggregation Control Protocol (BACP)
                     is supported on the line.
    
                     This is reported per Bonding Channel Entity (BCE)
                     which is beyond the requirements of TR-159.";
                    reference
                      "TR-159 section 5.5.3.1, aEthBACPSupported";
    
                  }
                }  // container g9982
              }  // container bce-c
    
              container bce-r {
                description
                  "Bonding Channel Entity - RT (or CPE) side.";
                leaf bonding-scheme-supported {
                  type bbf-gbond:boolean-or-undefined;
                  description
                    "If true, the bonding scheme indicated by the interface
                   type, e.g. G.998.2, is supported.
    
                   This is reported per Bonding Channel Entity (BCE) which
                   is beyond the requirements of TR-159.";
                  reference
                    "TR-159 section 5.5.1.2, aGroupBondSchemesSupported.";
    
                }
    
                container g9982 {
                  presence
                    "The presence of this container indicates the interface
                   is capable of bonding using the G.998.2 bonding
                   scheme.";
                  description
                    "Capabilities specific to ITU-T G.998.2.";
                  leaf bacp-supported {
                    type bbf-gbond:boolean-or-undefined;
                    description
                      "If true, Bonding Aggregation Control Protocol (BACP)
                     is supported on the line.
    
                     This is reported per Bonding Channel Entity (BCE)
                     which is beyond the requirements of TR-159.";
                    reference
                      "TR-159 section 5.5.3.1, aEthBACPSupported";
    
                  }
                }  // container g9982
              }  // container bce-r
            }  // container capabilities
          }  // container bonded-channel-entity
        }
    
        augment /if:interfaces-state/if:interface/bbf-if-pm:performance/bbf-if-pm:intervals-15min/bbf-if-pm:current {
          when
            "derived-from-or-self(../../../if:type,'ianaift:g9981') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9982') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9983')" {
            description
              "Only applicable if the interface type is G.998.1, G.998.2,
             G.998.3, or derived from one of those types.";
          }
          description
            "Augment the current 15 minute interface performance counts
           with bonding group specific attributes.";
          container bonding-group {
            if-feature bbf-gbond:bonding-group-performance-15min;
            description
              "Current 15 minute bonding group performance counters.";
            uses bonding-group-performance;
          }  // container bonding-group
        }
    
        augment /if:interfaces-state/if:interface/bbf-if-pm:performance/bbf-if-pm:intervals-15min/bbf-if-pm:history {
          when
            "derived-from-or-self(../../../if:type,'ianaift:g9981') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9982') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9983')" {
            description
              "Only applicable if the interface type is G.998.1, G.998.2,
             G.998.3, or derived from one of those types.";
          }
          description
            "Augment the historic 15 minute interface performance counts
           with bonding group specific attributes.";
          container bonding-group {
            if-feature bbf-gbond:bonding-group-performance-15min;
            description
              "Historic 15 minute bonding group performance counters.";
            uses bonding-group-performance;
          }  // container bonding-group
        }
    
        augment /if:interfaces-state/if:interface/bbf-if-pm:performance/bbf-if-pm:intervals-24hr/bbf-if-pm:current {
          when
            "derived-from-or-self(../../../if:type,'ianaift:g9981') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9982') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9983')" {
            description
              "Only applicable if the interface type is G.998.1, G.998.2,
             G.998.3, or derived from one of those types.";
          }
          if-feature bbf-if-pm:performance-24hr and
    bbf-gbond:bonding-group-performance-24hr;
          description
            "Augment the current 24 hour interface performance counts with
           bonding group specific attributes.";
          container bonding-group {
            description
              "Current 24 hour bonding group performance counters.";
            uses bonding-group-performance;
          }  // container bonding-group
        }
    
        augment /if:interfaces-state/if:interface/bbf-if-pm:performance/bbf-if-pm:intervals-24hr/bbf-if-pm:history {
          when
            "derived-from-or-self(../../../if:type,'ianaift:g9981') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9982') or "
              + "derived-from-or-self(../../../if:type,'ianaift:g9983')" {
            description
              "Only applicable if the interface type is G.998.1, G.998.2,
             G.998.3, or derived from one of those types.";
          }
          if-feature bbf-if-pm:performance-24hr and
    bbf-gbond:bonding-group-performance-24hr;
          description
            "Augment the historic 24 hour interface performance counts with
           bonding group specific attributes.";
          container bonding-group {
            description
              "Historic 24 hour bonding group performance counters.";
            uses bonding-group-performance;
          }  // container bonding-group
        }
      }  // module bbf-gbond-state
    

© 2023 YumaWorks, Inc. All rights reserved.