diff --git a/build/yang-files/notification/submodules/bbf-xpon-channel-group-body.yang b/build/yang-files/notification/submodules/bbf-xpon-channel-group-body.yang
new file mode 100644
index 0000000..2096f52
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-channel-group-body.yang
@@ -0,0 +1,468 @@
+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;
+  }
+}
