diff --git a/build/yang-files/bbf-device-aggregation.yang b/build/yang-files/devices/bbf-device-aggregation.yang
similarity index 100%
rename from build/yang-files/bbf-device-aggregation.yang
rename to build/yang-files/devices/bbf-device-aggregation.yang
diff --git a/build/yang-files/bbf-device-types.yang b/build/yang-files/devices/bbf-device-types.yang
similarity index 100%
rename from build/yang-files/bbf-device-types.yang
rename to build/yang-files/devices/bbf-device-types.yang
diff --git a/build/yang-files/bbf-yang-types.yang b/build/yang-files/devices/bbf-yang-types.yang
similarity index 100%
rename from build/yang-files/bbf-yang-types.yang
rename to build/yang-files/devices/bbf-yang-types.yang
diff --git a/build/yang-files/iana-hardware@2018-03-13.yang b/build/yang-files/devices/iana-hardware@2018-03-13.yang
similarity index 100%
rename from build/yang-files/iana-hardware@2018-03-13.yang
rename to build/yang-files/devices/iana-hardware@2018-03-13.yang
diff --git a/build/yang-files/ietf-hardware@2018-03-13.yang b/build/yang-files/devices/ietf-hardware@2018-03-13.yang
similarity index 100%
rename from build/yang-files/ietf-hardware@2018-03-13.yang
rename to build/yang-files/devices/ietf-hardware@2018-03-13.yang
diff --git a/build/yang-files/iana-if-type@2021-06-21.yang b/build/yang-files/notification/iana-if-type@2021-06-21.yang
similarity index 100%
rename from build/yang-files/iana-if-type@2021-06-21.yang
rename to build/yang-files/notification/iana-if-type@2021-06-21.yang
diff --git a/build/yang-files/services/bbf-dot1q-types.yang b/build/yang-files/services/bbf-dot1q-types.yang
new file mode 100644
index 0000000..e934c43
--- /dev/null
+++ b/build/yang-files/services/bbf-dot1q-types.yang
@@ -0,0 +1,290 @@
+module bbf-dot1q-types {
+  yang-version 1.1;
+  namespace "urn:bbf:yang:bbf-dot1q-types";
+  prefix bbf-dot1qt;
+
+  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:      Nick Hancock, ADTRAN
+
+     Editor:      Ludwig Pauwels, Nokia
+
+     PS Leader:   Joey Boyd, ADTRAN
+
+     PS Leader:   Sowrirajan Padmanabhan, Nokia
+
+     WA Director: Joey Boyd, ADTRAN
+
+     WA Director: Sven Ooghe, Nokia";
+  description
+    "This module contains a collection of YANG definitions for
+     supporting the Broadband Forum requirements on reusable data
+     types as applicable to access network equipment. As such, this
+     module is specific to access network equipment (e.g.,
+     BBF-specified Access Nodes and FTTdp DPUs).
+
+     Specifically, this module defines common types for support of
+     IEEE 802.1Q.
+
+     Copyright (c) 2017-2021, 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-383a4; see
+     the TR itself for full legal notices.";
+
+  revision 2021-06-02 {
+    description
+      "Amendment 4.
+       * Approval Date:    2021-06-02.
+       * Publication Date: 2021-06-02.";
+    reference
+      "TR-383a4: Common YANG Modules
+                 <https://www.broadband-forum.org/technical/download/
+                          TR-383_Amendment-4.pdf>";
+  }
+  revision 2020-10-13 {
+    description
+      "Amendment 3.
+       * Approval Date:    2020-10-13.
+       * Publication Date: 2020-10-13.";
+    reference
+      "TR-383a3: Common YANG Modules
+                 <https://www.broadband-forum.org/technical/download/
+                          TR-383_Amendment-3.pdf>";
+  }
+  revision 2018-07-13 {
+    description
+      "Amendment 1.
+       * Approval Date:    2018-06-04.
+       * Publication Date: see revision date above.";
+    reference
+      "TR-383: Common YANG Modules
+               <https://www.broadband-forum.org/technical/download/
+                        TR-383_Amendment-1.pdf>";
+  }
+  revision 2017-05-08 {
+    description
+      "Initial revision.
+       * Approval Date:    see revision date above.
+       * Publication Date: 2017-06-02.";
+    reference
+      "TR-383: Common YANG Modules
+               <https://www.broadband-forum.org/technical/download/
+                        TR-383.pdf>";
+  }
+
+  identity dot1q-tag-vlan-type {
+    description
+      "Base identity from which all IEEE 802.1Q VLAN tag types are
+       derived.";
+  }
+
+  identity c-vlan {
+    base dot1q-tag-vlan-type;
+    description
+      "An IEEE 802.1Q Customer VLAN tag, using the 0x8100
+       Ethertype.";
+  }
+
+  identity s-vlan {
+    base dot1q-tag-vlan-type;
+    description
+      "An IEEE 802.1Q Service VLAN tag, using a the 0x88a8 Ethertype,
+       originally introduced in IEEE 802.1ad, and incorporated into
+       IEEE 802.1Q-2014.";
+  }
+
+  typedef dot1q-tag-type {
+    type identityref {
+      base dot1q-tag-vlan-type;
+    }
+    description
+      "Identifies a specific IEEE 802.1Q tag type.";
+    reference
+      "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
+  }
+
+  typedef vlan-id {
+    type uint16 {
+      range "1..4094";
+    }
+    description
+      "The type uniquely identifies a VLAN. This is the
+       12-bit VLAN ID used in the VLAN tag header.
+       The range 1..4094 is defined by the referenced
+       specification.";
+    reference
+      "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
+  }
+
+  typedef vlan-id-or-0 {
+    type uint16 {
+      range "0..4094";
+    }
+    description
+      "The type uniquely identifies a VLAN. This is the
+       12-bit VLAN ID used in the VLAN tag header.
+       The range 1..4094 is defined by the referenced specification.
+       The value 0 allows support of priority-tagged frames.";
+    reference
+      "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
+  }
+
+  typedef vlan-id-range {
+    type string {
+      pattern '(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-3][0-9][0-9]['
+            + '0-9]|40[0-8][0-9]|409[0-4])([,-]([1-9]|[1-9][0-9]|['
+            + '1-9][0-9][0-9]|[1-3][0-9][0-9][0-9]|40[0-8][0-9]|'
+            + '409[0-4]))*)?';
+    }
+    description
+      "A list of VLAN IDs, or non overlapping VLAN ranges, in
+       ascending order, between 1 and 4094.
+
+       The format of this string can be any of the following:
+
+         single value
+           Example: '23'
+         comma separated list of values
+           Example: '1,2,100'
+         range of values
+           Example: '1-1000'
+         comma separated list of ranges
+           Example: '1-1000,2001-2999'
+         comma separated list of values and ranges
+           Example: '1-1000,1500,2001-2999'";
+  }
+
+  typedef pbit {
+    type uint8 {
+      range "0..7";
+    }
+    description
+      "Priority Code Point. PCP is a 3-bit field that refers to the
+       class of service applied to a VLAN tagged frame.  The
+       field specifies a priority value between 0 and 7, these values
+       can be used by quality of service (QoS) to prioritize
+       different classes of traffic.";
+    reference
+      "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
+  }
+
+  typedef pbit-list {
+    type string {
+      pattern '([0-7](-[0-7])?(,[0-7](-[0-7])?)*)';
+    }
+    description
+      "A list of p-bits values, or non overlapping p-bits value
+       ranges, in ascending order. Each p-bits value shall be between
+       0 and 7.
+
+       Example: 0,2-4,7
+      ";
+  }
+
+  typedef dei {
+    type uint8 {
+      range "0..1";
+    }
+    description
+      "Drop Eligible Indicator. DEI is a 1-bit field in the VLAN tag.
+       May be used separately or in conjunction with PCP to indicate
+       frames eligible to be dropped in the presence of congestion.";
+    reference
+      "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
+  }
+
+  typedef ether-type {
+    type uint16;
+    description
+      "The Ethernet Type (or Length) value.";
+    reference
+      "IEEE 802.3-2012: IEEE Standard for Ethernet, clause 3.2.6";
+  }
+
+  typedef ether-type-hex {
+    type string {
+      pattern '0x[A-Fa-f0-9]{4}';
+    }
+    description
+      "The Ethernet Type (or Length) value expressed as a 4 hex digits
+       in the form 0xABCD.";
+    reference
+      "IEEE 802.3-2012: IEEE Standard for Ethernet, clause 3.2.6";
+  }
+
+  typedef ether-type-or-acronym {
+    type union {
+      type ether-type;
+      type enumeration {
+        enum any {
+          description
+            "Matches any Ethertype value.";
+        }
+        enum ipv4 {
+          description
+            "Matches the Ethertype value 0x0800 or 0x0806 or
+             0x8035.";
+        }
+        enum pppoe {
+          description
+            "Matches the Ethertype value 0x8863 or 0x8864.";
+        }
+        enum ipv6 {
+          description
+            "Matches the Ethertype value 0x86DD.";
+        }
+      }
+      type ether-type-hex;
+    }
+    description
+      "This type allows to specify
+       - a specific integer value identifying a particular Ethertype
+         value of frames,
+       - a 'pre-defined' enumeration value identifying one or more
+         specific Ethertype values,
+       - the enumeration value 'any' that identifies all frames.";
+  }
+}
diff --git a/build/yang-files/services/bbf-l2-access-attributes.yang b/build/yang-files/services/bbf-l2-access-attributes.yang
new file mode 100644
index 0000000..85bf697
--- /dev/null
+++ b/build/yang-files/services/bbf-l2-access-attributes.yang
@@ -0,0 +1,342 @@
+module bbf-l2-access-attributes {
+  yang-version 1.1;
+  namespace "urn:bbf:yang:bbf-l2-access-attributes";
+  prefix bbf-l2access-attr;
+
+  import bbf-dot1q-types {
+    prefix bbf-dot1qt;
+  }
+  import ietf-network {
+    prefix nw;
+  }
+  import ietf-network-topology {
+    prefix nt;
+  }
+
+  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:      TBD
+
+     PS Leader:   TBD
+
+     WA Director: TBD";
+  description
+    "This module contains a collection of YANG definitions for
+     simplifying the Access Device Model as exposed over NBI of BAA.
+
+     Copyright (c) 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-383a4; see
+     the TR itself for full legal notices.";
+
+  revision 2021-09-30 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 8944: A YANG Data Model for Layer 2 Network Topologies";
+  }
+
+  grouping access-tag {
+    leaf tag-type {
+      type union {
+        type bbf-dot1qt:dot1q-tag-type;
+        type uint16;
+        type enumeration {
+          enum any {
+            description
+              "Matches any tag type.";
+          }
+        }
+      }
+      default "any";
+      description
+        "VLAN tag type.";
+    }
+    leaf vlan-id {
+      type union {
+        type bbf-dot1qt:vlan-id-range;
+        type enumeration {
+          enum any {
+            description
+              "Matches any VLAN-ID in the range 1 to 4094, or
+               matches priority tagged frames.";
+          }
+          enum priority-tagged {
+            description
+              "Priority-tagged frames are frames with a VLAN tag
+               present and that match VLAN-ID 0.";
+          }
+          enum vlan-id-is-a-parameter {
+            description
+              "The VLAN ID is not
+               specified inside this profile but has to be
+               specified at the place where this profile
+               is referenced.";
+          }
+        }
+      }
+      mandatory true;
+      description
+        "Allowed VLAN-IDs.";
+    }
+    leaf pbit {
+      type union {
+        type bbf-dot1qt:pbit-list;
+        type enumeration {
+          enum any {
+            description
+              "Matches any pbit value in the range of 0 to 7.";
+          }
+        }
+      }
+      description
+        "Allowed PBIT values.";
+    }
+  }
+
+  grouping access-vlan-tag-match {
+    description
+      "Flexible match on the VLAN tags of Ethernet frames.";
+    choice vlan-tag-match-type {
+      description
+        "Provides a choice of how the frames may be matched.";
+      case untagged {
+        leaf untagged {
+          type empty;
+          description
+            "Untagged match. Matches all untagged traffic.";
+        }
+      }
+      case vlan-tagged {
+        container outer-tag {
+          description
+            "Classifies traffic using the outermost VLAN tag on the
+             frame.";
+          uses access-tag;
+        }
+        container second-tag {
+          description
+            "Classifies traffic using the second outermost VLAN tag
+             on the frame.";
+          uses access-tag;
+        }
+      }
+    }
+  }
+
+  grouping access-vlan-tag-rewrite {
+    description
+      "Flexible match on the VLAN tags of Ethernet frames.";
+    leaf pop-tags {
+      type uint8 {
+        range "0..2";
+      }
+      description
+        "The number of tags to pop.";
+    }
+    container push-outer-tag {
+      description
+        "The outermost VLAN tag to push onto the frame.";
+      uses access-tag;
+    }
+    container push-second-tag {
+      description
+        "The second outermost VLAN tag to push onto the frame.";
+      uses access-tag;
+    }
+  }
+
+  grouping vlan-match-and-rewrite {
+    description
+      "Configuration of frame vlan tag processing, include frame classification and vlan tag rewrite";
+    container match-criteria {
+      description
+        "This container collects match criteria for various frame fields.";
+      uses access-vlan-tag-match;
+    }
+    container ingress-rewrite {
+      description
+        "Ingress rewrite refers to the supported tag manipulations
+         before the frame is offered to a higher layer interface or
+         to a forwarder or to a destination termination-point.";
+      uses access-vlan-tag-rewrite;
+    }
+  }
+
+  grouping l2-access-attributes {
+    description
+      "Flexible match on the VLAN tags of Ethernet frames.";
+    container vlan-translation {
+      leaf translation-profile {
+        type leafref {
+          path
+            "/bbf-l2access-attr:vlan-translation-profiles/bbf-l2access-attr:"
+          + "vlan-translation-profile/bbf-l2access-attr:name";
+        }
+        description
+          "A reference to a vlan translation profile that contains
+           frame vlan classification and vlan tag rewrite.";
+      }
+      leaf outer-vlan-id {
+        when
+          '/bbf-l2access-attr:vlan-translation-profiles/'
+        + 'bbf-l2access-attr:vlan-translation-profile[bbf-l2access-attr:'
+        + 'name = current()/../../vlan-translation-profile]/'
+        + 'match-criteria/outer-tag/vlan-id = '
+        + '"vlan-id-is-a-parameter" ' {
+          description
+            "Match criteria for the outer VLAN tag of a frame that
+             overrules the match criteria provided through the
+             referenced vlan translaton profile.";
+        }
+        type bbf-dot1qt:vlan-id;
+      }
+      leaf second-vlan-id {
+        when
+          '/bbf-l2access-attr:vlan-translation-profiles/'
+        + 'bbf-l2access-attr:vlan-translation-profile[bbf-l2access-attr:'
+        + 'name = current()/../../vlan-translation-profile]/'
+        + 'match-criteria/second-tag/vlan-id = '
+        + '"vlan-id-is-a-parameter" ' {
+          description
+            "Match criteria for the second VLAN tag of a frame that
+             overrules the match criteria provided through the
+             referenced vlan translaton profile.";
+        }
+        type bbf-dot1qt:vlan-id;
+      }
+      leaf push-outer-vlan-id {
+        when
+          '/bbf-l2access-attr:vlan-translation-profiles/'
+        + 'bbf-l2access-attr:vlan-translation-profile[bbf-l2access-attr:'
+        + 'name = current()/../../vlan-translation-profile]/'
+        + 'ingress-rewrite/push-outer-tag/vlan-id = '
+        + '"vlan-id-is-a-parameter" ' {
+          description
+            "Indicates the VLAN ID of the pushed outer VLAN tag,
+             which overwrites the outer VLAN tag rewritten
+             by the referenced VLAN translation profile.";
+        }
+        type bbf-dot1qt:vlan-id;
+      }
+      leaf push-second-vlan-id {
+        when
+          '/bbf-l2access-attr:vlan-translation-profiles/'
+        + 'bbf-l2access-attr:vlan-translation-profile[bbf-l2access-attr:'
+        + 'name = current()/../../vlan-translation-profile]/'
+        + 'ingress-rewrite/push-second-tag/vlan-id = '
+        + '"vlan-id-is-a-parameter" ' {
+          description
+            "Indicates the VLAN ID of the pushed seconed VLAN tag,
+             which overwrites the seconed VLAN tag rewritten
+             by the referenced VLAN translation profile.";
+        }
+        type bbf-dot1qt:vlan-id;
+      }
+    }
+  }
+
+  container vlan-translation-profiles {
+    description
+      "Configuration of VLAN translation profiles.";
+    list vlan-translation-profile {
+      key "name";
+      description
+        "A translation profile defines the vlan match criteria and
+             vlan tag rewrite.";
+      leaf name {
+        type string;
+        description
+          "vlan translaton profile name.";
+      }
+      uses vlan-match-and-rewrite;
+    }
+  }
+  container vlan-forwarding-profiles {
+    description
+      "Configuration of VLAN forwarding profiles.";
+    list vlan-forwarding-profile {
+      key "name";
+      description
+        "A forwarding profile defines the network-side
+         forwarding of traffic in a forwarding VLAN.";
+      leaf name {
+        type string;
+        description
+          "vlan forwrding profile name.";
+      }
+      container forwarding-ports {
+        description
+          "Network-side forwarding ports in the forwarding profile.";
+        list port {
+          key "name";
+          leaf name {
+            type string;
+            description
+              "forwarding port name.";
+          }
+          leaf node-ref {
+            type leafref {
+              path "/nw:networks/nw:network/nw:node/nw:node-id";
+              require-instance false;
+            }
+            description
+              "This leaf references a network side node.";
+          }
+          leaf tp-ref {
+            type leafref {
+              path "/nw:networks/nw:network/"
+                 + "nw:node/nt:termination-point/nt:tp-id";
+              require-instance false;
+            }
+            description
+              "This leaf references a network side termination point types.";
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/build/yang-files/services/bbf-nt-line-profile.yang b/build/yang-files/services/bbf-nt-line-profile.yang
new file mode 100644
index 0000000..f17e781
--- /dev/null
+++ b/build/yang-files/services/bbf-nt-line-profile.yang
@@ -0,0 +1,197 @@
+module bbf-nt-line-profile {
+  yang-version 1.1;
+  namespace "urn:bbf:yang:bbf-nt-line-profile";
+  prefix bbf-nt-line-prof;
+
+  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:      TBD
+
+     PS Leader:   TBD
+
+     WA Director: TBD";
+  description
+    "This module contains a collection of YANG definitions for
+     simplifying the Access Device Model as exposed over NBI of BAA.
+
+     Copyright (c) 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-383a4; see
+     the TR itself for full legal notices.";
+
+  revision 2021-09-14 {
+    description
+      "Initial revision.";
+    reference
+      "";
+  }
+
+  typedef line-profile-ref {
+    type leafref {
+      path
+        "/bbf-nt-line-prof:line-profiles/bbf-nt-line-prof:line-profile/bbf-nt-line-prof:name";
+    }
+    description
+      "A reference to a network termination line profile.";
+  }
+
+  typedef line-bandwidth-ref {
+    type leafref {
+      path
+        "/bbf-nt-line-prof:line-bandwidth-profiles/bbf-nt-line-prof:line-bandwidth-profile/bbf-nt-line-prof:name";
+    }
+    description
+      "A reference to a network termination bandwidth profile.";
+  }
+
+  container line-bandwidth-profiles {
+    list line-bandwidth-profile {
+      key "name";
+      description
+        "List of line profiles.";
+      leaf name {
+        type string {
+          length "1..32";
+        }
+        description
+          "The line bandwidth profile name.";
+      }
+      leaf fixed-bandwidth {
+        type uint64;
+        units "bits/second";
+        default "0";
+        description
+          "Represents the reserved portion of the bandwidth capacity that
+           is allocated to the given traffic flow, regardless of its
+           traffic demand and the overall traffic load conditions.";
+      }
+      leaf assured-bandwidth {
+        type uint64;
+        units "bits/second";
+        default "0";
+        description
+          "Represents a portion of the bandwidth capacity that is allocated
+           to the given traffic flow as long as the flow has
+           unsatisfied traffic demand, regardless of the overall
+           traffic conditions.";
+      }
+      leaf maximum-bandwidth {
+        type uint64;
+        units "bits/second";
+        description
+          "Represents the upper limit on the total bandwidth that can
+           be allocated to the traffic flow under any traffic
+           conditions. The maximum bandwidth must be greater than or equal
+           to the sum of any configured fixed and assured
+           bandwidth";
+      }
+    }
+  }
+  container line-profiles {
+    description
+      "All config data for line profile.";
+    list line-profile {
+      key "name";
+      description
+        "List of line profiles.";
+      leaf name {
+        type string {
+          length "1..32";
+        }
+        description
+          "The line profile name.";
+      }
+      container virtual-ports {
+        description
+          "All config data for virtual ports of the network termination.";
+        list virtual-port {
+          key "name";
+          description
+            "List of virtual ports.";
+          leaf name {
+            type string;
+            description
+              "Name of virtual port.";
+          }
+          leaf line-bandwidth-ref {
+            type line-bandwidth-ref;
+            description
+              "A reference to a network termination line bandwidth profile.";
+          }
+          list match-criteria {
+            key "name";
+            description
+              "List of match criterias.";
+            leaf name {
+              type string;
+              description
+                "Name of match criteria.";
+            }
+            leaf uni-port {
+              type uint8;
+              description
+                "Indicates the user-side port of the network termination.";
+            }
+            leaf vlan {
+              type uint32 {
+                range "0.. 4095 | 65533";
+              }
+              description
+                "Indicates the VLAN ID of the service. The value 65533 indicates untag traffic stream.";
+            }
+            leaf priority {
+              type uint32 {
+                range "0..7";
+              }
+              description
+                "Indicates the priority of the service.";
+            }
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/build/yang-files/services/bbf-nt-service-profile-voltha.yang b/build/yang-files/services/bbf-nt-service-profile-voltha.yang
new file mode 100644
index 0000000..e63c56f
--- /dev/null
+++ b/build/yang-files/services/bbf-nt-service-profile-voltha.yang
@@ -0,0 +1,165 @@
+module bbf-nt-service-profile-voltha {
+  yang-version 1.1;
+
+  namespace "urn:bbf:yang:bbf-nt-service-profile-voltha";
+  prefix bbf-voltha-srv-prof;
+
+  import bbf-nt-service-profile {
+    prefix bbf-nt-srv-prof;
+  }
+  import bbf-nt-line-profile {
+    prefix bbf-nt-line-prof;
+  }
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  organization
+    "Broadband Forum <https://www.broadband-forum.org>
+     SDN/NFV Work Area";
+  contact
+    "Comments or questions about this Broadband Forum YANG module
+     should be directed to <mailto:help@broadband-forum.org>.
+
+     Editor:      TBD
+
+     WA Director: Mengmeng Li, China Mobile
+
+     WA Director: Bruno Cornaglia, Vodafone";
+  description
+    "TBD.
+
+     Copyright (c) 2019-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-451; see
+     the TR itself for full legal notices.";
+
+  revision 2022-03-22 {
+    description
+      "Initial revision.";
+    reference
+      "TBD";
+  }
+
+  augment "/bbf-nt-srv-prof:service-profiles"
+    + "/bbf-nt-srv-prof:service-profile/bbf-nt-srv-prof:ports"
+    + "/bbf-nt-srv-prof:port" {
+    description
+      "Augmentation of the service profile to add bandwidth profiles
+       and VOLTHA specific values";
+    
+    leaf technology-profile-id {
+      type uint32;
+      description
+        "ID of the technology profile, that has to be already
+         configured in VOLTHA.
+         The technology profile protobuf definitation can be found
+         here https://github.com/opencord/voltha-protos/blob/" +
+         "master/protos/voltha_protos/tech_profile.proto";
+    }
+    leaf upstream-subscriber-bp-name {
+      type leafref {
+        path
+          "/bbf-nt-line-prof:line-bandwidth-profiles"
+          + "/bbf-nt-line-prof:line-bandwidth-profile"
+          + "/bbf-nt-line-prof:name";
+      }
+      description
+       "Name of the UNI upstream bandwidth profile";
+    }
+    leaf downstream-subscriber-bp-name {
+      type leafref {
+        path
+          "/bbf-nt-line-prof:line-bandwidth-profiles"
+          + "/bbf-nt-line-prof:line-bandwidth-profile"
+          + "/bbf-nt-line-prof:name";
+      }
+      description
+       "Name of the UNI downstream bandwidth profile";
+    }
+    leaf upstream-olt-bp-name {
+      type leafref {
+        path
+          "/bbf-nt-line-prof:line-bandwidth-profiles"
+          + "/bbf-nt-line-prof:line-bandwidth-profile"
+          + "/bbf-nt-line-prof:name";
+      }
+      description
+       "Name of the OLT upstream bandwidth profile";
+    }
+    leaf downstream-olt-bp-name {
+      type leafref {
+        path
+          "/bbf-nt-line-prof:line-bandwidth-profiles"
+          + "/bbf-nt-line-prof:line-bandwidth-profile"
+          + "/bbf-nt-line-prof:name";
+      }
+      description
+       "Name of the OLT downstream bandwidth profile";
+    }
+    leaf mac-learning-enabled {
+      type boolean;
+      description
+        "Whether or not MAC learning has to be enabled for
+         this service";
+    }
+    leaf dhcp-required {
+      type boolean;
+      description
+       "Whether or not DHCP is required for this service";
+    }
+    leaf igmp-required {
+      type boolean;
+      description
+       "Whether or not IGMP is required for this service";
+    }
+    leaf pppoe-required {
+      type boolean;
+      description
+       "Whether or not PPPoE is required for this service";
+    }
+    leaf configured-mac-address {
+      type yang:mac-address;
+      description
+      "MAC address for the service";
+    }
+  }
+}
diff --git a/build/yang-files/services/bbf-nt-service-profile.yang b/build/yang-files/services/bbf-nt-service-profile.yang
new file mode 100644
index 0000000..799bc93
--- /dev/null
+++ b/build/yang-files/services/bbf-nt-service-profile.yang
@@ -0,0 +1,134 @@
+module bbf-nt-service-profile {
+  yang-version 1.1;
+  namespace "urn:bbf:yang:bbf-nt-service-profile";
+  prefix bbf-nt-srv-prof;
+
+  import bbf-l2-access-attributes {
+    prefix bbf-l2access-attr;
+  }
+
+  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:      TBD
+
+     PS Leader:   TBD
+
+     WA Director: TBD";
+  description
+    "This module contains a collection of YANG definitions for
+     simplifying the Access Device Model as exposed over NBI of BAA.
+
+     Copyright (c) 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-383a4; see
+     the TR itself for full legal notices.";
+
+  revision 2021-09-14 {
+    description
+      "Initial revision.";
+    reference
+      "";
+  }
+
+  typedef srv-profile-ref {
+    type leafref {
+      path
+        "/bbf-nt-srv-prof:service-profiles/bbf-nt-srv-prof:service-profile/bbf-nt-srv-prof:name";
+    }
+    description
+      "A reference to a service profile.";
+  }
+
+  container service-profiles {
+    description
+      "All config data for service profile.";
+    list service-profile {
+      key "name";
+      description
+        "List of service profiles.";
+      leaf name {
+        type string {
+          length "1..32";
+        }
+        description
+          "The service profile name.";
+      }
+      container ports {
+        description
+          "All config data for ports.";
+        list port {
+          key "name";
+          description
+            "List of the port attribute.";
+          leaf name {
+            type string {
+              length "1..64";
+            }
+            description
+              "This object indicates the name of the port.";
+          }
+          container port-vlans {
+            description
+              "All config data for port vlan.";
+            list port-vlan {
+              key "name";
+              description
+                "This is used to add a user-side port on the network termination to a VLAN";
+              leaf name {
+                type leafref {
+                  path
+                    "/bbf-l2access-attr:vlan-translation-profiles/bbf-l2access-attr:vlan-translation-profile/bbf-l2access-attr:name";
+                }
+                description
+                  "Name of the port VLAN.";
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/build/yang-files/services/bbf-voltha-vlan-translation.yang b/build/yang-files/services/bbf-voltha-vlan-translation.yang
new file mode 100644
index 0000000..4b82d2f
--- /dev/null
+++ b/build/yang-files/services/bbf-voltha-vlan-translation.yang
@@ -0,0 +1,124 @@
+module bbf-voltha-vlan-translation {
+  yang-version 1.1;
+
+  namespace "urn:bbf:yang:bbf-voltha-vlan-translation";
+  prefix bbf-voltha-vlan-tr;
+
+  import bbf-l2-access-attributes {
+    prefix bbf-l2access-attr;
+  }
+  import bbf-dot1q-types {
+    prefix bbf-dot1qt;
+  }
+
+  organization
+    "Broadband Forum <https://www.broadband-forum.org>
+     SDN/NFV Work Area";
+  contact
+    "Comments or questions about this Broadband Forum YANG module
+     should be directed to <mailto:help@broadband-forum.org>.
+
+     Editor:      TBD
+
+     WA Director: Mengmeng Li, China Mobile
+
+     WA Director: Bruno Cornaglia, Vodafone";
+  description
+    "TBD.
+
+     Copyright (c) 2019-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-451; see
+     the TR itself for full legal notices.";
+
+  revision 2022-03-22 {
+    description
+      "Initial revision.";
+    reference
+      "TBD";
+  }
+
+  augment "/bbf-l2access-attr:vlan-translation-profiles"
+    + "/bbf-l2access-attr:vlan-translation-profile"
+    + "/bbf-l2access-attr:ingress-rewrite"
+    + "/bbf-l2access-attr:push-outer-tag" {
+    description
+      "Augmentation of the vlan translation profile outer tag with
+       downstream pbit";
+    
+    leaf d-pbit {
+      type union {
+        type bbf-dot1qt:pbit-list;
+        type enumeration {
+          enum any {
+            description
+              "Matches any pbit value in the range of 0 to 7.";
+          }
+        }
+      }
+      description
+        "Allowed downstream PBIT values.";
+    }
+  }
+
+  augment "/bbf-l2access-attr:vlan-translation-profiles"
+    + "/bbf-l2access-attr:vlan-translation-profile"
+    + "/bbf-l2access-attr:ingress-rewrite"
+    + "/bbf-l2access-attr:push-second-tag" {
+    description
+      "Augmentation of the vlan translation profile second tag with
+       downstream pbit";
+    
+    leaf d-pbit {
+      type union {
+        type bbf-dot1qt:pbit-list;
+        type enumeration {
+          enum any {
+            description
+              "Matches any pbit value in the range of 0 to 7.";
+          }
+        }
+      }
+      description
+        "Allowed downstream PBIT values.";
+    }
+  }
+}
diff --git a/build/yang-files/services/ietf-network-topology@2018-02-26.yang b/build/yang-files/services/ietf-network-topology@2018-02-26.yang
new file mode 100644
index 0000000..1ec944d
--- /dev/null
+++ b/build/yang-files/services/ietf-network-topology@2018-02-26.yang
@@ -0,0 +1,294 @@
+module ietf-network-topology {
+  yang-version 1.1;
+  namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
+  prefix nt;
+
+  import ietf-inet-types {
+    prefix inet;
+    reference
+      "RFC 6991: Common YANG Data Types";
+  }
+  import ietf-network {
+    prefix nw;
+    reference
+      "RFC 8345: A YANG Data Model for Network Topologies";
+  }
+
+  organization
+    "IETF I2RS (Interface to the Routing System) Working Group";
+
+  contact
+    "WG Web:    <https://datatracker.ietf.org/wg/i2rs/>
+     WG List:   <mailto:i2rs@ietf.org>
+
+     Editor:    Alexander Clemm
+                <mailto:ludwig@clemm.org>
+
+     Editor:    Jan Medved
+                <mailto:jmedved@cisco.com>
+
+     Editor:    Robert Varga
+                <mailto:robert.varga@pantheon.tech>
+
+     Editor:    Nitin Bahadur
+                <mailto:nitin_bahadur@yahoo.com>
+
+     Editor:    Hariharan Ananthakrishnan
+                <mailto:hari@packetdesign.com>
+
+     Editor:    Xufeng Liu
+                <mailto:xufeng.liu.ietf@gmail.com>";
+
+  description
+    "This module defines a common base model for a network topology,
+     augmenting the base network data model with links to connect
+     nodes, as well as termination points to terminate links
+     on nodes.
+
+     Copyright (c) 2018 IETF Trust and the persons identified as
+     authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject
+     to the license terms contained in, the Simplified BSD License
+     set forth in Section 4.c of the IETF Trust's Legal Provisions
+     Relating to IETF Documents
+     (https://trustee.ietf.org/license-info).
+
+     This version of this YANG module is part of RFC 8345;
+     see the RFC itself for full legal notices.";
+
+  revision 2018-02-26 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 8345: A YANG Data Model for Network Topologies";
+  }
+
+  typedef link-id {
+    type inet:uri;
+    description
+      "An identifier for a link in a topology.  The precise
+       structure of the link-id will be up to the implementation.
+       The identifier SHOULD be chosen such that the same link in a
+       real network topology will always be identified through the
+       same identifier, even if the data model is instantiated in
+       separate datastores.  An implementation MAY choose to capture
+       semantics in the identifier -- for example, to indicate the
+       type of link and/or the type of topology of which the link is
+       a part.";
+  }
+
+  typedef tp-id {
+    type inet:uri;
+    description
+      "An identifier for termination points on a node.  The precise
+       structure of the tp-id will be up to the implementation.
+       The identifier SHOULD be chosen such that the same termination
+       point in a real network topology will always be identified
+       through the same identifier, even if the data model is
+       instantiated in separate datastores.  An implementation MAY
+       choose to capture semantics in the identifier -- for example,
+       to indicate the type of termination point and/or the type of
+       node that contains the termination point.";
+  }
+
+  grouping link-ref {
+    description
+      "This grouping can be used to reference a link in a specific
+       network.  Although it is not used in this module, it is
+       defined here for the convenience of augmenting modules.";
+    leaf link-ref {
+      type leafref {
+        path "/nw:networks/nw:network[nw:network-id=current()/../"+
+          "network-ref]/nt:link/nt:link-id";
+        require-instance false;
+      }
+      description
+        "A type for an absolute reference to a link instance.
+         (This type should not be used for relative references.
+         In such a case, a relative path should be used instead.)";
+    }
+    uses nw:network-ref;
+  }
+
+  grouping tp-ref {
+    description
+      "This grouping can be used to reference a termination point
+       in a specific node.  Although it is not used in this module,
+       it is defined here for the convenience of augmenting
+       modules.";
+    leaf tp-ref {
+      type leafref {
+        path "/nw:networks/nw:network[nw:network-id=current()/../"+
+          "network-ref]/nw:node[nw:node-id=current()/../"+
+          "node-ref]/nt:termination-point/nt:tp-id";
+        require-instance false;
+      }
+      description
+        "A type for an absolute reference to a termination point.
+         (This type should not be used for relative references.
+         In such a case, a relative path should be used instead.)";
+    }
+    uses nw:node-ref;
+  }
+
+  augment "/nw:networks/nw:network" {
+    description
+      "Add links to the network data model.";
+    list link {
+      key "link-id";
+      description
+        "A network link connects a local (source) node and
+         a remote (destination) node via a set of the respective
+         node's termination points.  It is possible to have several
+         links between the same source and destination nodes.
+         Likewise, a link could potentially be re-homed between
+         termination points.  Therefore, in order to ensure that we
+         would always know to distinguish between links, every link
+         is identified by a dedicated link identifier.  Note that a
+         link models a point-to-point link, not a multipoint link.";
+      leaf link-id {
+        type link-id;
+        description
+          "The identifier of a link in the topology.
+           A link is specific to a topology to which it belongs.";
+      }
+      container source {
+        description
+          "This container holds the logical source of a particular
+           link.";
+        leaf source-node {
+          type leafref {
+            path "../../../nw:node/nw:node-id";
+            require-instance false;
+          }
+          description
+            "Source node identifier.  Must be in the same topology.";
+        }
+        leaf source-tp {
+          type leafref {
+            path "../../../nw:node[nw:node-id=current()/../"+
+              "source-node]/termination-point/tp-id";
+            require-instance false;
+          }
+          description
+            "This termination point is located within the source node
+             and terminates the link.";
+        }
+      }
+
+      container destination {
+        description
+          "This container holds the logical destination of a
+           particular link.";
+        leaf dest-node {
+          type leafref {
+            path "../../../nw:node/nw:node-id";
+          require-instance false;
+          }
+          description
+            "Destination node identifier.  Must be in the same
+             network.";
+        }
+        leaf dest-tp {
+          type leafref {
+            path "../../../nw:node[nw:node-id=current()/../"+
+              "dest-node]/termination-point/tp-id";
+            require-instance false;
+          }
+          description
+            "This termination point is located within the
+             destination node and terminates the link.";
+        }
+      }
+      list supporting-link {
+        key "network-ref link-ref";
+        description
+          "Identifies the link or links on which this link depends.";
+        leaf network-ref {
+          type leafref {
+            path "../../../nw:supporting-network/nw:network-ref";
+          require-instance false;
+          }
+          description
+            "This leaf identifies in which underlay topology
+             the supporting link is present.";
+        }
+
+        leaf link-ref {
+          type leafref {
+            path "/nw:networks/nw:network[nw:network-id=current()/"+
+              "../network-ref]/link/link-id";
+            require-instance false;
+          }
+          description
+            "This leaf identifies a link that is a part
+             of this link's underlay.  Reference loops in which
+             a link identifies itself as its underlay, either
+             directly or transitively, are not allowed.";
+        }
+      }
+    }
+  }
+  augment "/nw:networks/nw:network/nw:node" {
+    description
+      "Augments termination points that terminate links.
+       Termination points can ultimately be mapped to interfaces.";
+    list termination-point {
+      key "tp-id";
+      description
+        "A termination point can terminate a link.
+         Depending on the type of topology, a termination point
+         could, for example, refer to a port or an interface.";
+      leaf tp-id {
+        type tp-id;
+        description
+          "Termination point identifier.";
+      }
+      list supporting-termination-point {
+        key "network-ref node-ref tp-ref";
+        description
+          "This list identifies any termination points on which a
+           given termination point depends or onto which it maps.
+           Those termination points will themselves be contained
+           in a supporting node.  This dependency information can be
+           inferred from the dependencies between links.  Therefore,
+           this item is not separately configurable.  Hence, no
+           corresponding constraint needs to be articulated.
+           The corresponding information is simply provided by the
+           implementing system.";
+
+        leaf network-ref {
+          type leafref {
+            path "../../../nw:supporting-node/nw:network-ref";
+          require-instance false;
+          }
+          description
+            "This leaf identifies in which topology the
+             supporting termination point is present.";
+        }
+        leaf node-ref {
+          type leafref {
+            path "../../../nw:supporting-node/nw:node-ref";
+          require-instance false;
+          }
+          description
+            "This leaf identifies in which node the supporting
+             termination point is present.";
+        }
+        leaf tp-ref {
+          type leafref {
+            path "/nw:networks/nw:network[nw:network-id=current()/"+
+              "../network-ref]/nw:node[nw:node-id=current()/../"+
+              "node-ref]/termination-point/tp-id";
+            require-instance false;
+          }
+          description
+            "Reference to the underlay node (the underlay node must
+             be in a different topology).";
+        }
+      }
+    }
+  }
+}
diff --git a/build/yang-files/services/ietf-network@2018-02-26.yang b/build/yang-files/services/ietf-network@2018-02-26.yang
new file mode 100644
index 0000000..6a03d7e
--- /dev/null
+++ b/build/yang-files/services/ietf-network@2018-02-26.yang
@@ -0,0 +1,192 @@
+module ietf-network {
+  yang-version 1.1;
+  namespace "urn:ietf:params:xml:ns:yang:ietf-network";
+  prefix nw;
+
+  import ietf-inet-types {
+    prefix inet;
+    reference
+      "RFC 6991: Common YANG Data Types";
+  }
+
+  organization
+    "IETF I2RS (Interface to the Routing System) Working Group";
+
+  contact
+    "WG Web:    <https://datatracker.ietf.org/wg/i2rs/>
+     WG List:   <mailto:i2rs@ietf.org>
+
+     Editor:    Alexander Clemm
+                <mailto:ludwig@clemm.org>
+
+     Editor:    Jan Medved
+                <mailto:jmedved@cisco.com>
+
+     Editor:    Robert Varga
+                <mailto:robert.varga@pantheon.tech>
+
+     Editor:    Nitin Bahadur
+                <mailto:nitin_bahadur@yahoo.com>
+
+     Editor:    Hariharan Ananthakrishnan
+                <mailto:hari@packetdesign.com>
+
+     Editor:    Xufeng Liu
+                <mailto:xufeng.liu.ietf@gmail.com>";
+  description
+    "This module defines a common base data model for a collection
+     of nodes in a network.  Node definitions are further used
+     in network topologies and inventories.
+
+     Copyright (c) 2018 IETF Trust and the persons identified as
+     authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject
+     to the license terms contained in, the Simplified BSD License
+     set forth in Section 4.c of the IETF Trust's Legal Provisions
+     Relating to IETF Documents
+     (https://trustee.ietf.org/license-info).
+
+     This version of this YANG module is part of RFC 8345;
+     see the RFC itself for full legal notices.";
+
+  revision 2018-02-26 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 8345: A YANG Data Model for Network Topologies";
+  }
+
+  typedef node-id {
+    type inet:uri;
+    description
+      "Identifier for a node.  The precise structure of the node-id
+       will be up to the implementation.  For example, some
+       implementations MAY pick a URI that includes the network-id
+       as part of the path.  The identifier SHOULD be chosen
+       such that the same node in a real network topology will
+       always be identified through the same identifier, even if
+       the data model is instantiated in separate datastores.  An
+       implementation MAY choose to capture semantics in the
+       identifier -- for example, to indicate the type of node.";
+  }
+
+  typedef network-id {
+    type inet:uri;
+    description
+      "Identifier for a network.  The precise structure of the
+       network-id will be up to the implementation.  The identifier
+       SHOULD be chosen such that the same network will always be
+       identified through the same identifier, even if the data model
+       is instantiated in separate datastores.  An implementation MAY
+       choose to capture semantics in the identifier -- for example,
+       to indicate the type of network.";
+  }
+
+  grouping network-ref {
+    description
+      "Contains the information necessary to reference a network --
+       for example, an underlay network.";
+    leaf network-ref {
+      type leafref {
+        path "/nw:networks/nw:network/nw:network-id";
+      require-instance false;
+      }
+      description
+        "Used to reference a network -- for example, an underlay
+         network.";
+    }
+  }
+
+  grouping node-ref {
+    description
+      "Contains the information necessary to reference a node.";
+    leaf node-ref {
+      type leafref {
+        path "/nw:networks/nw:network[nw:network-id=current()/../"+
+          "network-ref]/nw:node/nw:node-id";
+        require-instance false;
+      }
+      description
+        "Used to reference a node.
+         Nodes are identified relative to the network that
+         contains them.";
+    }
+    uses network-ref;
+  }
+
+  container networks {
+    description
+      "Serves as a top-level container for a list of networks.";
+    list network {
+      key "network-id";
+      description
+        "Describes a network.
+         A network typically contains an inventory of nodes,
+         topological information (augmented through the
+         network-topology data model), and layering information.";
+      leaf network-id {
+        type network-id;
+        description
+          "Identifies a network.";
+      }
+      container network-types {
+        description
+          "Serves as an augmentation target.
+           The network type is indicated through corresponding
+           presence containers augmented into this container.";
+      }
+      list supporting-network {
+        key "network-ref";
+        description
+          "An underlay network, used to represent layered network
+           topologies.";
+        leaf network-ref {
+          type leafref {
+            path "/nw:networks/nw:network/nw:network-id";
+          require-instance false;
+          }
+          description
+            "References the underlay network.";
+        }
+      }
+
+      list node {
+        key "node-id";
+        description
+          "The inventory of nodes of this network.";
+        leaf node-id {
+          type node-id;
+          description
+            "Uniquely identifies a node within the containing
+             network.";
+        }
+        list supporting-node {
+          key "network-ref node-ref";
+          description
+            "Represents another node that is in an underlay network
+             and that supports this node.  Used to represent layering
+             structure.";
+          leaf network-ref {
+            type leafref {
+              path "../../../nw:supporting-network/nw:network-ref";
+            require-instance false;
+            }
+            description
+              "References the underlay network of which the
+               underlay node is a part.";
+          }
+          leaf node-ref {
+            type leafref {
+              path "/nw:networks/nw:network/nw:node/nw:node-id";
+            require-instance false;
+            }
+            description
+              "References the underlay node itself.";
+          }
+        }
+      }
+    }
+  }
+}
