bbf-xpon-channel-group-body

This submodule contains a collection of YANG definitions for managing channel groups. Copyright (c) 2018-2024, Broadband Forum ...

  • Version: 2024-04-23

    bbf-xpon-channel-group-body@2024-04-23


    
      submodule bbf-xpon-channel-group-body {
    
        yang-version 1.1;
    
        belongs-to bbf-xpon {
            prefix bbf-xpon;
        }
    
        import bbf-xpon-types {
          prefix bbf-xpon-types;
        }
        import bbf-yang-types {
          prefix bbf-yang;
        }
        import ietf-interfaces {
          prefix if;
        }
        import bbf-xpon-if-type {
          prefix bbf-xponift;
        }
    
        include bbf-xpon-base;
        include bbf-xpon-channel-partition-body;
    
        organization
          "Broadband Forum <https://www.broadband-forum.org>
    Fiber Access Networks Work Area";
    
        contact
          "Comments or questions about this Broadband Forum YANG module
    should be directed to <mailto:info@broadband-forum.org>.
    
    Editor:      Robert Peschi, Nokia
    
    PS Leader:   Joey Boyd, Adtran
    
    WA Director: Marta Seda, Calix";
    
        description
          "This submodule contains a collection of YANG definitions for
    managing channel groups.
    
    Copyright (c) 2018-2024, Broadband Forum
    
    Redistribution and use in source and binary forms, with or
    without modification, are permitted provided that the following
    conditions are met:
    
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    
    2. Redistributions in binary form must reproduce the above
       copyright notice, this list of conditions and the following
       disclaimer in the documentation and/or other materials
       provided with the distribution.
    
    3. Neither the name of the copyright holder nor the names of its
       contributors may be used to endorse or promote products
       derived from this software without specific prior written
       permission.
    
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
    ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    
    The above license is used as a license under copyright only.
    Please reference the Forum IPR Policy for patent licensing terms
    <https://www.broadband-forum.org/ipr-policy>.
    
    Any moral rights which are necessary to exercise under the above
    license grant are also deemed granted under this license.
    
    This version of this YANG module is part of TR-385i3; see
    the TR itself for full legal notices.";
    
        revision "2024-04-23" {
          description
            "Issue 3.
    * Approval Date:    2024-04-23.
    * Publication Date: 2024-04-23.";
          reference
            "TR-385i3: YANG Modules for PON Management
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385_Issue-3.pdf>";
    
        }
    
        revision "2023-06-21" {
          description
            "Issue 2 Amendment 1.
    * Approval Date:    2023-06-21.
    * Publication Date: 2023-06-21.";
          reference
            "TR-385i2a1: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385_Issue-2_Amendment-1.pdf>";
    
        }
    
        revision "2020-10-13" {
          description
            "Issue 2.
    * Approval Date:    2020-10-13.
    * Publication Date: 2020-10-13.";
          reference
            "TR-385i2: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385_Issue-2.pdf>";
    
        }
    
        revision "2019-02-25" {
          description
            "Initial revision.
    * Approval Date:    2019-02-25.
    * Publication Date: 2019-02-25.";
          reference
            "TR-385: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385.pdf>";
    
        }
    
    
        typedef alloc-id-values {
          type string {
            pattern
              '((25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|1[0-6][0-3][0-8][0-3])([,-](25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|1[0-6][0-3][0-8][0-3]))*)?';
          }
          description
            "A list of non-overlapping Allocation Identifier (Alloc-ID)
    values in ascending order.
    For G-PON, range is 256..4095.
    For XG-PON, range is 1024..16383.
    For XGS-PON, range is 1024..16383.
    For NG-PON2, range is 1024..16383.
    For 25GS-PON, range is 1024..16383.
    For 50G-PON, range is 1024..16383.
    
    The format of this string can be any of the following:
    
      single value
        Example: '1024'
      comma separated list of values
        Example: '1024,1030,16000'
      range of values
        Example: '1024-1300'
      comma separated list of ranges
        Example: '1025-1300,1301-1400,1500-1600'
      comma separated list of values and ranges
        Example: '1024-1300,1301,1303-1310'
    .";
          reference
            "ITU-T G.984.3 Clause 5.5.3;
            ITU-T G.987.3 Clause 6.4.3;
            ITU-T G.9807.1 Clause C.6.1.5.7;
            ITU-T G.989.3 Clause 6.1.5.7;
            ITU-T G.9804.2 Clause 6.5.2.6;
            MSA 25GS-PON Section C.6.1.5.7";
    
        }
    
        typedef gemport-values {
          type string {
            pattern
              '((25[4-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6][0-5][0-5][0-3][0-4])([,-](25[4-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6][0-5][0-5][0-3][0-4]))*)?';
          }
          description
            "A list of non-overlapping xGEM/G-PON Encapsulation Method (GEM)
    port-ID values in ascending order.
    For G-PON, range is 254..4095.
    For XG-PON, range is 1023..65534.
    For XGS-PON, range is 1021..65534.
    For NG-PON2, range is 1021..65534.
    For 25GS-PON, range is 1021..65534.
    For 50G-PON, range is 1020..65534.
    
    The format of this string can be any of the following:
    
      single value
        Example: '1024'
      comma separated list of values
        Example: '1024,1030,16000'
      range of values
        Example: '1024-1300'
      comma separated list of ranges
        Example: '1025-1300,1301-1400,1500-1600'
      comma separated list of values and ranges
        Example: '1024-1300,1301,1303-1310'
    .";
          reference
            "ITU-T G.984.3 Clause 5.5.5;
            ITU-T G.987.3 Clause 6.4.4;
            ITU-T G.9807.1 Clause C.6.1.5.8;
            ITU-T G.989.3 Clause 6.1.5.8;
            ITU-T G.9804.2 Clause 6.5.2.7;
            MSA 25GS-PON Section 5";
    
        }
    
        typedef onu-id-values {
          type string {
            pattern
              '(([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0)([,-]([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0))*)?';
          }
          description
            "A list of non-overlapping Optical Network Unit Identifier
    (ONU-ID) values in ascending order.
    For G-PON, range is 0..253.
    For XG-PON, range is 0..1022.
    For XGS-PON, range is 0..1020.
    For NG-PON2, range is 0..1020.
    For 25GS-PON, range is 0..1018.
    For 50G-PON, range is 0..1019.
    
    The format of this string can be any of the following:
    
      single value
        Example: '1020'
      comma separated list of values
        Example: '1,30,600'
      range of values
        Example: '30-60'
      comma separated list of ranges
        Example: '30-60,80-90'
      comma separated list of values and ranges
        Example: '1,30-60,70,90-100'
    .";
          reference
            "ITU-T G.984.3 Clause 5.5.2;
            ITU-T G.987.3 Clause 6.4.2;
            ITU-T G.9807.1 Clause C.6.1.5.6;
            ITU-T G.989.3 Clause 6.1.5.6;
            ITU-T G.9804.2 Clause 6.5.2.5;
            MSA 25GS-PON Section C.6.1.5.7";
    
        }
    
        feature pon-pools {
          description
            "Indicates support of assignable PON resources (Allocation
    Identifier (Alloc-ID), G-PON Encapsulation Method port
    Identifier (GEM port-ID), Optical Network Unit Identifier
    (ONU-ID) into PON pools.";
        }
    
        grouping channel-group-config-data {
          description
            "All configuration data for a channel group.";
          leaf polling-period {
            type uint32 {
              range "1..864000";
            }
            units "0.1 seconds";
            default "100";
            description
              "The period between two consecutive times the auto-detection
    procedure on each pair in the group is executed.
    Used in NG-PON2 for quiet window control.
    Value represents tenths of seconds.
    (e.g., 1 = 0.1 second, 864000 = 24 hours).";
          }
    
          leaf raman-mitigation {
            type bbf-xpon-types:raman-mitigation-type;
            default "raman-none";
            description
              "NG-PON2 Raman mitigation coding schemes when using Radio
    Frequency (RF) video overlay.";
            reference
              "ITU-T G.989.2 Appendix IX";
    
          }
    
          leaf system-id {
            type string {
              pattern '[0-9a-fA-F]{5}';
            }
            description
              "A 20-bit number that identifies a specific NG-PON2 system
    (typically a channel group) among multiple NG-PON2 systems
    under a common administration.
    It is defined as NGSYS ID in G.989.3 clause 6.1.5.2 and may
    be coded to support administration such as name, geographical
    location, service profile (see also G.989.3 table VIII.2).";
            reference
              "ITU-T G.989.3 Clause 6.1.5.2;
              ITU-T G.989.3 Table VIII.2";
    
          }
    
          container pon-pools {
            if-feature bbf-xpon:pon-pools;
            description
              "Manages per channel termination PON resources allocation.
    A channel termination can only be a member of a
    single channel group. Within a channel group, PON resources
    should not overlap and only be assigned to a single
    channel termination.";
            list pon-pool {
              key "name";
              min-elements 1;
              max-elements 8;
              description
                "The allocated PON pools of Allocation Identifiers
    (Alloc-ID), G-PON Encapsulation Method port Identifiers
    (GEM port-ID) and Optical Network Unit Identifiers
    (ONU-ID).";
              leaf name {
                type bbf-yang:string-ascii64;
                description
                  "Name of the PON pool.";
              }
    
              leaf channel-termination-ref {
                type if:interface-ref;
                must
                  "derived-from-or-self(/if:interfaces/if:interface[if:name = current()]/if:type,'bbf-xponift:channel-termination')" {
                  error-message
                    "Referenced interface must be of type 'channel-termination'.";
                }
                description
                  "Reference to a channel termination to which PON resource
    pools will be assigned.";
              }
    
              leaf alloc-id-values {
                type alloc-id-values;
                description
                  "The list of assignable Allocation Identifiers (Alloc-ID)
    For G-PON, range is 256..4095.
    For XG-PON, range is 1024..16383.
    For XGS-PON, range is 1024..16383.
    For NG-PON2, range is 1024..16383.
    For 25GS-PON, range is 1024..16383.
    For 50G-PON, range is 1024..16383.
    
    A single value or range of values can be specified.
    
    The format of this string can be any of the following:
     single value
       Example: '1024'
     comma separated list of values
       Example: '1024,1030,16000'
     range of values
       Example: '1024-1300'
     comma separated list of ranges
       Example: '1025-1300,1301-1400,1500-1600'
     comma separated list of values and ranges
       Example: '1024-1300,1301,1303-1310'
    .";
                reference
                  "ITU-T G.984.3 Clause 5.5.3;
                  ITU-T G.987.3 Clause 6.4.3;
                  ITU-T G.9807.1 Clause C.6.1.5.7;
                  ITU-T G.989.3 Clause 6.1.5.7;
                  ITU-T G.9804.2 Clause 6.5.2.6;
                  MSA 25GS-PON Section C.6.1.5.7";
    
              }
    
              leaf gemport-values {
                type gemport-values;
                description
                  "The list of assignable G-PON Encapsulation Method (GEM)
    port Identifiers (IDs).
    For G-PON, range is 0..4095 and not conflicting
    with the 'management-gemport-id'.
    For XG-PON, range is 1023..65534.
    For XGS-PON, range is 1021..65534.
    For NG-PON2, range is 1021..65534.
    For 25GS-PON, range is 1021..65534.
    For 50G-PON, range is 1020..65534.
    
    A single value or range of values can be specified.
    
      single value
        Example: '1024'
      comma separated list of values
        Example: '1024,1030,16000'
      range of values
        Example: '1024-1300'
      comma separated list of ranges
        Example: '1025-1300,1301-1400,1500-1600'
      comma separated list of values and ranges
        Example: '1024-1300,1301,1303-1310'
    .";
                reference
                  "ITU-T G.984.3 Clause 5.5.5;
                  ITU-T G.987.3 Clause 6.4.4;
                  ITU-T G.9807.1 Clause C.6.1.5.8;
                  ITU-T G.989.3 Clause 6.1.5.8;
                  ITU-T G.9804.2 Clause 6.5.2.7;
                  MSA 25GS-PON Section 5";
    
              }
    
              leaf onu-id-values {
                type onu-id-values;
                description
                  "The list of assignable Optical Network Unit Identifier
    (ONU-ID) values.
    For G-PON, range is 0..253.
    For XG-PON, range is 0..1022.
    For XGS-PON, range is 0..1020.
    For NG-PON2, range is 0..1020.
    For 25GS-PON, range is 0..1018.
    For 50G-PON, range is 0..1019.
    
    The format of this string can be any of the following:
    
      single value
        Example: '1020'
      comma separated list of values
        Example: '1,30,600'
      range of values
        Example: '30-60'
      comma separated list of ranges
        Example: '30-60,80-90'
      comma separated list of values and ranges
        Example: '1,30-60,70,90-100'
    .";
                reference
                  "ITU-T G.984.3 Clause 5.5.2;
                  ITU-T G.987.3 Clause 6.4.2;
                  ITU-T G.9807.1 Clause C.6.1.5.6;
                  ITU-T G.989.3 Clause 6.1.5.6;
                  ITU-T G.9804.2 Clause 6.5.2.5;
                  MSA 25GS-PON Section C.6.1.5.7";
    
              }
            }  // list pon-pool
          }  // container pon-pools
        }  // grouping channel-group-config-data
    
        grouping channel-group-state-data {
          description
            "All state data for a channel group.";
          container allocated-upstream-channel-ids {
            description
              "The list maintained by the system of all the upstream
    channel-id's which are already in use on the channel
    group. For NG-PON2, the applicable values are [0..7], for
    XGS-PON and 25GS-PON, a dedicated value 'xgs' or
    'twentyfivegs', respectively is applicable rather than
    value '0': this is to allow the coexistence of XGS-PON
    and 25GS-PON with NG-PON2 using channel-id=0. This list
    can be used to avoid upstream channel-id conflicts when
    allocating channel pairs to a channel group when the OLT
    is already in operation.";
            leaf-list channel-id {
              type bbf-xpon-types:composite-channel-id-type;
              description
                "An upstream channel-id in use on the channel group.
    For NG-PON2, value must be in [0..7].
    For XGS-PON, value must be 'xgs'.
    For 25GS-PON, value must be 'twentyfivegs'.";
            }
          }  // container allocated-upstream-channel-ids
    
          container allocated-downstream-channel-ids {
            description
              "The list maintained by the system of all the downstream
    channel-id's which are already in use on the
    channel group. For NG-PON2, the applicable values are
    in [0..7], for XGS-PON and 25GS-PON, a dedicated value
    'xgs' or 'twentyfivegs', respectively is applicable
    rather than value '0': this is to allow the coexistence
    of XGS-PON and 25GS-PON with NG-PON2 using channel-id=0.
    This list can be used to avoid downstream channel-id
    conflicts when allocating channel pairs to a channel
    group when the OLT is already in operation.";
            leaf-list downstream-channel-id {
              type bbf-xpon-types:composite-channel-id-type;
              description
                "A downstream channel-id in use on the channel group.
    For NG-PON2, value must be in [0..7].
    For XGS-PON, value must be 'xgs'.
    For 25GS-PON, value must be 'twentyfivegs'.";
            }
          }  // container allocated-downstream-channel-ids
    
          container allocated-downstream-wavelengths {
            description
              "The list maintained by the system of all the downstream
    wavelengths already in use on the channel group.
    This list can be used to avoid wavelength conflicts
    when allocating channel pairs to a channel group when
    the OLT is already in operation.";
            leaf-list wavelength {
              type bbf-xpon-types:composite-downstream-wavelength-type;
              description
                "A downstream wavelength used for 25GS-PON, NG-PON2
    or XGS should be reported as a numeric value expressed
    in hundredths of nm to fit ITU-T precision requirements.
    A wavelength used for XG-PON or G-PON can be reported as
    a numeric value expressed in hundredths of nm or
    alternately with enum value 'xgpon' or 'gpon',
    respectively.
    The enum value 'xgs' should be avoided: it makes sense
    only when the OLT supports only one of the XGS 'Basic'
    or 'Optional' wavelength sets; the 'xgs' enum value is
    ambiguous otherwise.";
              reference
                "ITU-T G.9807.1 Clause A.8.2";
    
            }
          }  // container allocated-downstream-wavelengths
    
          container pon-pools {
            if-feature bbf-xpon:pon-pools;
            description
              "Reports the available and consumed per channel termination
    PON resources allocation.";
            list pon-pool {
              key "name";
              min-elements 1;
              max-elements 8;
              description
                "A channel termination's current pool
    of Allocation Identifiers (Alloc-ID), G-PON
    Encapsulation Method port Identifiers (GEM port-ID) and
    Optical Network Unit Identifiers (ONU-ID).";
              leaf name {
                type bbf-yang:string-ascii64;
                description
                  "Name of the PON pool.";
              }
    
              leaf channel-termination-ref {
                type if:interface-state-ref;
                must
                  "derived-from-or-self(/if:interfaces-state/if:interface[if:name = current()]/if:type,'bbf-xponift:channel-termination')";
                description
                  "Reference the configured channel termination
    that is being reported against.";
              }
    
              container consumed-resources {
                description
                  "The consumed PON resources.";
                leaf alloc-id-values {
                  type alloc-id-values;
                  description
                    "The list of consumed Allocation Identifiers (Alloc-ID).
    For example: '1024-1300,1301,1303-1310'.";
                }
    
                leaf gemport-values {
                  type gemport-values;
                  description
                    "The list of consumed G-PON Encapsulation Method port
    Identifiers (GEM port-ID).
    For example: '1024-1300,1301,1303-1310'.";
                }
    
                leaf onu-ids {
                  type onu-id-values;
                  description
                    "The list of consumed Optical Network Unit Identifiers
    (ONU-ID).
    For example: '1,30-60,70,90-100'.";
                }
              }  // container consumed-resources
    
              container available-resources {
                description
                  "The available/unused PON resources.";
                leaf alloc-id-values {
                  type alloc-id-values;
                  description
                    "The list of available Allocation Identifiers
    (Alloc-ID).
    For example: '1024-1300,1301,1303-1310'.";
                }
    
                leaf gemport-values {
                  type gemport-values;
                  description
                    "The list of available G-PON Encapsulation Method port
    Identifiers (GEM port-IDs).
    For example: '1024-1300,1301,1303-1310'.";
                }
    
                leaf onu-ids {
                  type onu-id-values;
                  description
                    "The list of available Optical Network Unit Identifiers
    (ONU-ID).
    For example: '1,30-60,70,90-100'.";
                }
              }  // container available-resources
            }  // list pon-pool
          }  // container pon-pools
        }  // grouping channel-group-state-data
    
        augment /if:interfaces/if:interface/bbf-xpon:channel-group {
          description
            "Configuration of an xPON channel group.";
          uses channel-group-config-data;
        }
    
        augment /if:interfaces-state/if:interface/bbf-xpon:channel-group {
          description
            "State data of an xPON channel group.";
          uses channel-group-state-data;
        }
      }  // submodule bbf-xpon-channel-group-body
    

© 2023 YumaWorks, Inc. All rights reserved.