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
