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 bbfxponift;
  }
  
  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:help@broadband-forum.org>.

     Editor:      Joey Boyd, ADTRAN

     Editor:      Samuel Chen, Broadcom

     Editor:      Robert Peschi, Nokia

     WA Director: Marta Seda, Calix

     WA Director: Lin Wei, Huawei";
  description
    "This submodule contains a collection of YANG definitions for
     managing channel groups.

     Copyright (c) 2018, 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-385; see
     the TR itself for full legal notices.";

  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 Alloc-ID values in
       ascending order, between 1024 to 16383 for G.9807.1
       XGS-PON/G.989.3 NGPON2 compliant OLTs and
       256 to 4095 for G.984.3 GPON-compliant OLTs.

       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'.";
  }

  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/GEM port-ID values in
       ascending order, between 1021 to 65534  for G.9807.1
       XGS-PON/G.989.3 NGPON2 compliant OLTs and
       254 to 4095 for G.984.3 GPON-compliant OLTs.

       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'.";
  }

  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 ONU-ID values in
       ascending order, between 0 to 1020 for G.9807.1
       XGS-PON/G.989.3 NGPON2 compliant OLTs and
       0 to 253 for G.984.3 GPON-compliant OLTs.

       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'.";
  }

  feature pon-pools {
    description
      "Assignable PON resource (Alloc-ID, xGEM port, ONU-id)
       into PON pool feature.";
  }

  grouping channel-group-config-data {
    description
      "All config data for a channel group.";
    leaf polling-period {
      type uint32 {
        range "1..864000";
      }
      units "0.1 second";
      default "100";
      description
        "The period between two consecutive times the
         autodetection 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 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 administation.
         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, servie 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 "pon-pools";
      description
        "This container describes 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
          "This container describes the allocated PON pool of
           Alloc-IDs, GEM port-IDs and ONU-IDs.";
        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,"
             + "'bbfxponift: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 alloc-IDs between 1024 to
             16383 for G.9807.1 XGS-PON/G.989.3 NGPON2 compliant
             OLTs and 256 to 4095 for G.984.3 GPON-compliant OLTs..
             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'.";
        }
        leaf gemport-values {
          type gemport-values;
          description
            "The list of assignable GEM port/xGEM port-ID between
             1021 to 65534 for G.9807.1 XGS-PON/G.989.3 NGPON2
             compliant OLTs and 254 to 4095 for G.984.3
             GPON-compliant OLTs.

             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'.";
        }
        leaf onu-id-values {
          type onu-id-values;
          description
            "The list of assignable ONU-ID values between
             0 to 1020 for G.9807.1 XGS-PON/G.989.3 NGPON2
             compliant OLTs and 0 to 253 for G.984.3
             GPON-compliant OLTs.

             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'.";
        }
      }
    }
  }

  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 allocated to the
         channel group. For NG-PON2, the applicable values are
         in [0..7], for XGS-PON a dedicated value 'xgs' is
         applicable rather than value '0': this is not to a
         priori forbid in yang model the coexistence of XGS-PON
         with NG-PON2 using channel-id=0. This list is a helper
         to avoid upstream channel-id conflicts when allocating
         channel pairs to a channel group.";
      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'.";
      }
    }
    container allocated-downstream-channel-ids {
      description
        "The list maintained by the system of all the downstream
         channel-id's which are already allocated to the
         channel group. For NG-PON2, the applicable values are
         in [0..7], for XGS-PON a dedicated value 'xgs' is
         applicable rather than value '0': this is not to a
         priori forbid in yang model the coexistence of XGS-PON
         with NG-PON2 using channel-id=0. This list is a helper
         to avoid downstream channel-id conflicts when allocating
         channel pairs to a channel group.";
      leaf-list downstream-channel-id {
        type bbf-xpon-types:composite-channel-id-type;
        description
          "A downstreamchannel-id in use on the channel group.
           For NG-PON2, value must be in [0..7].
           For XGS-PON, value must be 'xgs'.";
      }
    }
    container allocated-downstream-wavelengths {
      description
        "The list maintained by the system of all the downstream
         wavelengths already allocated to the channel group
         including all of the NG-PON2, XGS-PON, XG-PON and G-PON
         cases.
         This list is a helper to avoid wavelength conflicts
         when allocating channel pairs to a channel group.";
      leaf-list wavelength {
        type bbf-xpon-types:composite-downstream-wavelength-type;
        description
          "A downstream wavelength already allocated to the
           channel group. For NG-PON2 it must be a value in
           [156000..161000] expressed in hundredths of nm to fit
           ITU-T precision requirements. For the XGS-PON, XG-PON
           and G-PON cases, it must have resp. the value 'xgs',
           'xgpon' or 'gpon'.";
      }
    }
    container pon-pools {
      if-feature "pon-pools";
      description
        "This container describes the list of available and consumed
         and unusable PON resources that a channel termination in a
         channel group may have.";
      list pon-pool {
        key "name";
        min-elements 1;
        max-elements 8;
        description
          "This container describes the current characteristics of the
           PON pool of Alloc-IDs, GEM port-IDs and ONU-IDs.";
        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,"
             + "'bbfxponift: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 Alloc-IDs.
               For example: '1024-1300,1301,1303-1310'.";
          }
          leaf gemport-values {
            type gemport-values;
            description
              "The list of consumed GEM port-IDs/xGEM port-IDs.
               For example: '1024-1300,1301,1303-1310'.";
          }
          leaf onu-ids {
            type onu-id-values;
            description
              "The list of consumed ONU-IDs.
               For example: '1,30-60,70,90-100'.";
          }
        }
        container available-resources {
          description
            "The available/unused PON resources.";
          leaf alloc-id-values {
            type alloc-id-values;
            description
              "The list of available Alloc-IDs.
               For example: '1024-1300,1301,1303-1310'.";
          }
          leaf gemport-values {
            type gemport-values;
            description
              "The list of available GEM port-IDs/xGEM port-IDs.
               For example: '1024-1300,1301,1303-1310'.";
          }
          leaf onu-ids {
            type onu-id-values;
            description
              "The list of available ONU-IDs.
               For example: '1,30-60,70,90-100'.";
          }
        }
      }
    }
  }

  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;
  }
}
