diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/ietf-extra/ietf-interfaces@2018-02-20.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/ietf-extra/ietf-interfaces@2018-02-20.yang
new file mode 100644
index 0000000000000000000000000000000000000000..f66c205ce076e65b2ded1d388c944a91829a48b5
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/ietf-extra/ietf-interfaces@2018-02-20.yang
@@ -0,0 +1,1123 @@
+module ietf-interfaces {
+  yang-version 1.1;
+  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
+  prefix if;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  organization
+    "IETF NETMOD (Network Modeling) Working Group";
+
+  contact
+    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
+     WG List:  <mailto:netmod@ietf.org>
+
+     Editor:   Martin Bjorklund
+               <mailto:mbj@tail-f.com>";
+
+  description
+    "This module contains a collection of YANG definitions for
+     managing network interfaces.
+
+     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 8343; see
+     the RFC itself for full legal notices.";
+
+  revision 2018-02-20 {
+    description
+      "Updated to support NMDA.";
+    reference
+      "RFC 8343: A YANG Data Model for Interface Management";
+  }
+
+  revision 2014-05-08 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7223: A YANG Data Model for Interface Management";
+  }
+
+  /*
+   * Typedefs
+   */
+
+  typedef interface-ref {
+    type leafref {
+      path "/if:interfaces/if:interface/if:name";
+    }
+    description
+      "This type is used by data models that need to reference
+       interfaces.";
+  }
+
+  /*
+   * Identities
+   */
+
+  identity interface-type {
+    description
+      "Base identity from which specific interface types are
+       derived.";
+  }
+
+  /*
+   * Features
+   */
+
+  feature arbitrary-names {
+    description
+      "This feature indicates that the device allows user-controlled
+       interfaces to be named arbitrarily.";
+  }
+  feature pre-provisioning {
+    description
+      "This feature indicates that the device supports
+       pre-provisioning of interface configuration, i.e., it is
+       possible to configure an interface whose physical interface
+       hardware is not present on the device.";
+  }
+  feature if-mib {
+    description
+      "This feature indicates that the device implements
+       the IF-MIB.";
+    reference
+      "RFC 2863: The Interfaces Group MIB";
+  }
+
+  /*
+   * Data nodes
+   */
+
+  container interfaces {
+    description
+      "Interface parameters.";
+
+    list interface {
+      key "name";
+
+      description
+        "The list of interfaces on the device.
+
+         The status of an interface is available in this list in the
+         operational state.  If the configuration of a
+         system-controlled interface cannot be used by the system
+         (e.g., the interface hardware present does not match the
+         interface type), then the configuration is not applied to
+         the system-controlled interface shown in the operational
+         state.  If the configuration of a user-controlled interface
+         cannot be used by the system, the configured interface is
+         not instantiated in the operational state.
+
+         System-controlled interfaces created by the system are
+         always present in this list in the operational state,
+         whether or not they are configured.";
+
+     leaf name {
+        type string;
+        description
+          "The name of the interface.
+
+           A device MAY restrict the allowed values for this leaf,
+           possibly depending on the type of the interface.
+           For system-controlled interfaces, this leaf is the
+           device-specific name of the interface.
+
+           If a client tries to create configuration for a
+           system-controlled interface that is not present in the
+           operational state, the server MAY reject the request if
+           the implementation does not support pre-provisioning of
+           interfaces or if the name refers to an interface that can
+           never exist in the system.  A Network Configuration
+           Protocol (NETCONF) server MUST reply with an rpc-error
+           with the error-tag 'invalid-value' in this case.
+
+           If the device supports pre-provisioning of interface
+           configuration, the 'pre-provisioning' feature is
+           advertised.
+
+           If the device allows arbitrarily named user-controlled
+           interfaces, the 'arbitrary-names' feature is advertised.
+
+           When a configured user-controlled interface is created by
+           the system, it is instantiated with the same name in the
+           operational state.
+
+           A server implementation MAY map this leaf to the ifName
+           MIB object.  Such an implementation needs to use some
+           mechanism to handle the differences in size and characters
+           allowed between this leaf and ifName.  The definition of
+           such a mechanism is outside the scope of this document.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifName";
+      }
+
+      leaf description {
+        type string;
+        description
+          "A textual description of the interface.
+
+           A server implementation MAY map this leaf to the ifAlias
+           MIB object.  Such an implementation needs to use some
+           mechanism to handle the differences in size and characters
+           allowed between this leaf and ifAlias.  The definition of
+           such a mechanism is outside the scope of this document.
+
+           Since ifAlias is defined to be stored in non-volatile
+           storage, the MIB implementation MUST map ifAlias to the
+           value of 'description' in the persistently stored
+           configuration.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAlias";
+      }
+
+      leaf type {
+        type identityref {
+          base interface-type;
+        }
+        mandatory true;
+        description
+          "The type of the interface.
+
+           When an interface entry is created, a server MAY
+           initialize the type leaf with a valid value, e.g., if it
+           is possible to derive the type from the name of the
+           interface.
+
+           If a client tries to set the type of an interface to a
+           value that can never be used by the system, e.g., if the
+           type is not supported or if the type does not match the
+           name of the interface, the server MUST reject the request.
+           A NETCONF server MUST reply with an rpc-error with the
+           error-tag 'invalid-value' in this case.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifType";
+      }
+
+      leaf enabled {
+        type boolean;
+        default "true";
+        description
+          "This leaf contains the configured, desired state of the
+           interface.
+
+           Systems that implement the IF-MIB use the value of this
+           leaf in the intended configuration to set
+           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+           has been initialized, as described in RFC 2863.
+
+           Changes in this leaf in the intended configuration are
+           reflected in ifAdminStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+      }
+
+      leaf link-up-down-trap-enable {
+        if-feature if-mib;
+        type enumeration {
+          enum enabled {
+            value 1;
+            description
+              "The device will generate linkUp/linkDown SNMP
+               notifications for this interface.";
+          }
+          enum disabled {
+            value 2;
+            description
+              "The device will not generate linkUp/linkDown SNMP
+               notifications for this interface.";
+          }
+        }
+        description
+          "Controls whether linkUp/linkDown SNMP notifications
+           should be generated for this interface.
+
+           If this node is not configured, the value 'enabled' is
+           operationally used by the server for interfaces that do
+           not operate on top of any other interface (i.e., there are
+           no 'lower-layer-if' entries), and 'disabled' otherwise.";
+        reference
+          "RFC 2863: The Interfaces Group MIB -
+                     ifLinkUpDownTrapEnable";
+      }
+
+      leaf admin-status {
+        if-feature if-mib;
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+            description
+              "Not ready to pass packets and not in some test mode.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.";
+          }
+        }
+        config false;
+        mandatory true;
+        description
+          "The desired state of the interface.
+
+           This leaf has the same read semantics as ifAdminStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+      }
+
+      leaf oper-status {
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+
+            description
+              "The interface does not pass any packets.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.  No operational packets can
+               be passed.";
+          }
+          enum unknown {
+            value 4;
+            description
+              "Status cannot be determined for some reason.";
+          }
+          enum dormant {
+            value 5;
+            description
+              "Waiting for some external event.";
+          }
+          enum not-present {
+            value 6;
+            description
+              "Some component (typically hardware) is missing.";
+          }
+          enum lower-layer-down {
+            value 7;
+            description
+              "Down due to state of lower-layer interface(s).";
+          }
+        }
+        config false;
+        mandatory true;
+        description
+          "The current operational state of the interface.
+
+           This leaf has the same semantics as ifOperStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
+      }
+
+      leaf last-change {
+        type yang:date-and-time;
+        config false;
+        description
+          "The time the interface entered its current operational
+           state.  If the current state was entered prior to the
+           last re-initialization of the local network management
+           subsystem, then this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifLastChange";
+      }
+
+      leaf if-index {
+        if-feature if-mib;
+        type int32 {
+          range "1..2147483647";
+        }
+        config false;
+        mandatory true;
+        description
+          "The ifIndex value for the ifEntry represented by this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifIndex";
+      }
+
+      leaf phys-address {
+        type yang:phys-address;
+        config false;
+        description
+          "The interface's address at its protocol sub-layer.  For
+           example, for an 802.x interface, this object normally
+           contains a Media Access Control (MAC) address.  The
+           interface's media-specific modules must define the bit
+           and byte ordering and the format of the value of this
+           object.  For interfaces that do not have such an address
+           (e.g., a serial line), this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
+      }
+
+      leaf-list higher-layer-if {
+        type interface-ref;
+        config false;
+        description
+          "A list of references to interfaces layered on top of this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf-list lower-layer-if {
+        type interface-ref;
+        config false;
+
+        description
+          "A list of references to interfaces layered underneath this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf speed {
+        type yang:gauge64;
+        units "bits/second";
+        config false;
+        description
+            "An estimate of the interface's current bandwidth in bits
+             per second.  For interfaces that do not vary in
+             bandwidth or for those where no accurate estimation can
+             be made, this node should contain the nominal bandwidth.
+             For interfaces that have no concept of bandwidth, this
+             node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB -
+                     ifSpeed, ifHighSpeed";
+      }
+
+      container statistics {
+        config false;
+        description
+          "A collection of interface-related statistics objects.";
+
+        leaf discontinuity-time {
+          type yang:date-and-time;
+          mandatory true;
+          description
+            "The time on the most recent occasion at which any one or
+             more of this interface's counters suffered a
+             discontinuity.  If no such discontinuities have occurred
+             since the last re-initialization of the local management
+             subsystem, then this node contains the time the local
+             management subsystem re-initialized itself.";
+        }
+
+        leaf in-octets {
+          type yang:counter64;
+          description
+            "The total number of octets received on the interface,
+             including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
+        }
+
+        leaf in-unicast-pkts {
+          type yang:counter64;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were not addressed to a
+             multicast or broadcast address at this sub-layer.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
+        }
+
+        leaf in-broadcast-pkts {
+          type yang:counter64;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a broadcast
+             address at this sub-layer.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInBroadcastPkts";
+        }
+
+        leaf in-multicast-pkts {
+          type yang:counter64;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a multicast
+             address at this sub-layer.  For a MAC-layer protocol,
+             this includes both Group and Functional addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInMulticastPkts";
+        }
+
+        leaf in-discards {
+          type yang:counter32;
+          description
+            "The number of inbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being deliverable to a higher-layer
+             protocol.  One possible reason for discarding such a
+             packet could be to free up buffer space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
+        }
+
+        leaf in-errors {
+          type yang:counter32;
+          description
+            "For packet-oriented interfaces, the number of inbound
+             packets that contained errors preventing them from being
+             deliverable to a higher-layer protocol.  For character-
+             oriented or fixed-length interfaces, the number of
+             inbound transmission units that contained errors
+             preventing them from being deliverable to a higher-layer
+             protocol.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInErrors";
+        }
+
+        leaf in-unknown-protos {
+          type yang:counter32;
+
+          description
+            "For packet-oriented interfaces, the number of packets
+             received via the interface that were discarded because
+             of an unknown or unsupported protocol.  For
+             character-oriented or fixed-length interfaces that
+             support protocol multiplexing, the number of
+             transmission units received via the interface that were
+             discarded because of an unknown or unsupported protocol.
+             For any interface that does not support protocol
+             multiplexing, this counter is not present.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
+        }
+
+        leaf out-octets {
+          type yang:counter64;
+          description
+            "The total number of octets transmitted out of the
+             interface, including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
+        }
+
+        leaf out-unicast-pkts {
+          type yang:counter64;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were not addressed
+             to a multicast or broadcast address at this sub-layer,
+             including those that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
+        }
+
+        leaf out-broadcast-pkts {
+          type yang:counter64;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             broadcast address at this sub-layer, including those
+             that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutBroadcastPkts";
+        }
+
+        leaf out-multicast-pkts {
+          type yang:counter64;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             multicast address at this sub-layer, including those
+             that were discarded or not sent.  For a MAC-layer
+             protocol, this includes both Group and Functional
+             addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutMulticastPkts";
+        }
+
+        leaf out-discards {
+          type yang:counter32;
+          description
+            "The number of outbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being transmitted.  One possible reason
+             for discarding such a packet could be to free up buffer
+             space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
+        }
+
+        leaf out-errors {
+          type yang:counter32;
+          description
+            "For packet-oriented interfaces, the number of outbound
+             packets that could not be transmitted because of errors.
+             For character-oriented or fixed-length interfaces, the
+             number of outbound transmission units that could not be
+             transmitted because of errors.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
+        }
+      }
+
+    }
+  }
+
+  /*
+   * Legacy typedefs
+   */
+
+  typedef interface-state-ref {
+    type leafref {
+      path "/if:interfaces-state/if:interface/if:name";
+    }
+    status deprecated;
+    description
+      "This type is used by data models that need to reference
+       the operationally present interfaces.";
+  }
+
+  /*
+   * Legacy operational state data nodes
+   */
+
+  container interfaces-state {
+    config false;
+    status deprecated;
+    description
+      "Data nodes for the operational state of interfaces.";
+
+    list interface {
+      key "name";
+      status deprecated;
+
+      description
+        "The list of interfaces on the device.
+
+         System-controlled interfaces created by the system are
+         always present in this list, whether or not they are
+         configured.";
+
+      leaf name {
+        type string;
+        status deprecated;
+        description
+          "The name of the interface.
+
+           A server implementation MAY map this leaf to the ifName
+           MIB object.  Such an implementation needs to use some
+           mechanism to handle the differences in size and characters
+           allowed between this leaf and ifName.  The definition of
+           such a mechanism is outside the scope of this document.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifName";
+      }
+
+      leaf type {
+        type identityref {
+          base interface-type;
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The type of the interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifType";
+      }
+
+      leaf admin-status {
+        if-feature if-mib;
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+            description
+              "Not ready to pass packets and not in some test mode.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.";
+          }
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The desired state of the interface.
+
+           This leaf has the same read semantics as ifAdminStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+      }
+
+      leaf oper-status {
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+            description
+              "The interface does not pass any packets.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.  No operational packets can
+               be passed.";
+          }
+          enum unknown {
+            value 4;
+            description
+              "Status cannot be determined for some reason.";
+          }
+          enum dormant {
+            value 5;
+            description
+              "Waiting for some external event.";
+          }
+          enum not-present {
+            value 6;
+            description
+              "Some component (typically hardware) is missing.";
+          }
+          enum lower-layer-down {
+            value 7;
+            description
+              "Down due to state of lower-layer interface(s).";
+          }
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The current operational state of the interface.
+
+           This leaf has the same semantics as ifOperStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
+      }
+
+      leaf last-change {
+        type yang:date-and-time;
+        status deprecated;
+        description
+          "The time the interface entered its current operational
+           state.  If the current state was entered prior to the
+           last re-initialization of the local network management
+           subsystem, then this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifLastChange";
+      }
+
+      leaf if-index {
+        if-feature if-mib;
+        type int32 {
+          range "1..2147483647";
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The ifIndex value for the ifEntry represented by this
+           interface.";
+
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifIndex";
+      }
+
+      leaf phys-address {
+        type yang:phys-address;
+        status deprecated;
+        description
+          "The interface's address at its protocol sub-layer.  For
+           example, for an 802.x interface, this object normally
+           contains a Media Access Control (MAC) address.  The
+           interface's media-specific modules must define the bit
+           and byte ordering and the format of the value of this
+           object.  For interfaces that do not have such an address
+           (e.g., a serial line), this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
+      }
+
+      leaf-list higher-layer-if {
+        type interface-state-ref;
+        status deprecated;
+        description
+          "A list of references to interfaces layered on top of this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf-list lower-layer-if {
+        type interface-state-ref;
+        status deprecated;
+        description
+          "A list of references to interfaces layered underneath this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf speed {
+        type yang:gauge64;
+        units "bits/second";
+        status deprecated;
+        description
+            "An estimate of the interface's current bandwidth in bits
+             per second.  For interfaces that do not vary in
+             bandwidth or for those where no accurate estimation can
+
+             be made, this node should contain the nominal bandwidth.
+             For interfaces that have no concept of bandwidth, this
+             node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB -
+                     ifSpeed, ifHighSpeed";
+      }
+
+      container statistics {
+        status deprecated;
+        description
+          "A collection of interface-related statistics objects.";
+
+        leaf discontinuity-time {
+          type yang:date-and-time;
+          mandatory true;
+          status deprecated;
+          description
+            "The time on the most recent occasion at which any one or
+             more of this interface's counters suffered a
+             discontinuity.  If no such discontinuities have occurred
+             since the last re-initialization of the local management
+             subsystem, then this node contains the time the local
+             management subsystem re-initialized itself.";
+        }
+
+        leaf in-octets {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of octets received on the interface,
+             including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
+        }
+
+        leaf in-unicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were not addressed to a
+             multicast or broadcast address at this sub-layer.
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
+        }
+
+        leaf in-broadcast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a broadcast
+             address at this sub-layer.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInBroadcastPkts";
+        }
+
+        leaf in-multicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a multicast
+             address at this sub-layer.  For a MAC-layer protocol,
+             this includes both Group and Functional addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInMulticastPkts";
+        }
+
+        leaf in-discards {
+          type yang:counter32;
+          status deprecated;
+
+          description
+            "The number of inbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being deliverable to a higher-layer
+             protocol.  One possible reason for discarding such a
+             packet could be to free up buffer space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
+        }
+
+        leaf in-errors {
+          type yang:counter32;
+          status deprecated;
+          description
+            "For packet-oriented interfaces, the number of inbound
+             packets that contained errors preventing them from being
+             deliverable to a higher-layer protocol.  For character-
+             oriented or fixed-length interfaces, the number of
+             inbound transmission units that contained errors
+             preventing them from being deliverable to a higher-layer
+             protocol.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInErrors";
+        }
+
+        leaf in-unknown-protos {
+          type yang:counter32;
+          status deprecated;
+          description
+            "For packet-oriented interfaces, the number of packets
+             received via the interface that were discarded because
+             of an unknown or unsupported protocol.  For
+             character-oriented or fixed-length interfaces that
+             support protocol multiplexing, the number of
+             transmission units received via the interface that were
+             discarded because of an unknown or unsupported protocol.
+             For any interface that does not support protocol
+             multiplexing, this counter is not present.
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
+        }
+
+        leaf out-octets {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of octets transmitted out of the
+             interface, including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
+        }
+
+        leaf out-unicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were not addressed
+             to a multicast or broadcast address at this sub-layer,
+             including those that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
+        }
+
+        leaf out-broadcast-pkts {
+          type yang:counter64;
+          status deprecated;
+
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             broadcast address at this sub-layer, including those
+             that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutBroadcastPkts";
+        }
+
+        leaf out-multicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             multicast address at this sub-layer, including those
+             that were discarded or not sent.  For a MAC-layer
+             protocol, this includes both Group and Functional
+             addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutMulticastPkts";
+        }
+
+        leaf out-discards {
+          type yang:counter32;
+          status deprecated;
+          description
+            "The number of outbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being transmitted.  One possible reason
+             for discarding such a packet could be to free up buffer
+             space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
+        }
+
+        leaf out-errors {
+          type yang:counter32;
+          status deprecated;
+          description
+            "For packet-oriented interfaces, the number of outbound
+             packets that could not be transmitted because of errors.
+             For character-oriented or fixed-length interfaces, the
+             number of outbound transmission units that could not be
+             transmitted because of errors.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
+        }
+      }
+    }
+  }
+}
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/iana-if-type@2023-01-26.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/iana-if-type@2023-01-26.yang
new file mode 100644
index 0000000000000000000000000000000000000000..036e1f9145d2092f6218b85f7d8553cfed1d6c95
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/iana-if-type@2023-01-26.yang
@@ -0,0 +1,1852 @@
+module iana-if-type {
+  yang-version 1.1;
+  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
+  prefix ianaift;
+
+  import ietf-interfaces {
+    prefix if;
+  }
+
+  organization "IANA";
+  contact
+    "        Internet Assigned Numbers Authority
+
+     Postal: ICANN
+             12025 Waterfront Drive, Suite 300
+             Los Angeles, CA 90094-2536
+             United States
+
+     Tel:    +1 310 301 5800
+     <mailto:iana@iana.org>";
+  description
+    "This YANG module defines YANG identities for IANA-registered
+     interface types.
+
+     This YANG module is maintained by IANA and reflects the
+     'ifType definitions' registry.
+
+     The latest revision of this YANG module can be obtained from
+     the IANA web site.
+
+     Requests for new values should be made to IANA via
+     email (iana@iana.org).
+
+     Copyright (c) 2014 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
+     (http://trustee.ietf.org/license-info).
+
+     The initial version of this YANG module is part of RFC 7224;
+     see the RFC itself for full legal notices.";
+  reference
+    "IANA 'ifType definitions' registry.
+     <http://www.iana.org/assignments/smi-numbers>";
+
+  revision 2023-01-26 {
+    description
+      "Fix incorrect quotation for previous 3 revision statements.";
+  }
+  
+  revision 2022-08-24 {
+    description
+      "Updated reference for ifType 303.";
+  }
+
+  revision 2022-08-17 {
+    description
+      "Changed gpon description to refer to G.984.";
+  }
+
+  revision 2022-03-07 {
+    description
+      "Coalesced revision history entries for 2018-06-28.";
+  }
+
+  revision 2021-06-21 {
+    description
+      "Corrected reference for ifType 303.";
+  }
+
+  revision 2021-05-17 {
+    description
+      "Registered ifType 303.";
+  }
+
+  revision 2021-04-22 {
+    description
+      "Registered ifType 302.";
+  }
+
+  revision 2021-04-01 {
+    description
+      "Updated reference for 301.";
+  }
+
+  revision 2021-02-18 {
+    description
+      "Registered ifType 301.";
+  }
+
+  revision 2020-08-27 {
+    description
+      "Added missing references.";
+  }
+
+  revision 2020-07-13 {
+    description
+      "Added identity cpri.";
+  }
+
+  revision 2020-07-10 {
+    description
+      "Registered ifType 300.";
+  }
+
+  revision 2020-01-10 {
+    description
+      "Registered ifType 299.";
+  }
+
+  revision 2019-10-16 {
+    description
+      "Registered ifType 298.";
+  }
+  revision 2019-07-16 {
+    description
+      "Registered ifType 297.";
+  }
+  revision 2019-06-21 {
+    description
+      "Updated reference associated with ifTypes 295-296.";
+  }
+  
+  revision 2019-02-08 {
+    description
+      "Corrected formatting issue.";
+  }
+
+  revision 2019-01-31 {
+    description
+      "Registered ifTypes 295-296.";
+  }
+
+  revision 2018-07-03 {
+    description
+      "Corrected revision date.";
+  }
+
+  revision 2018-06-29 {
+    description
+      "Corrected formatting issue.";
+  }
+
+  revision 2018-06-28 {
+    description
+      "Registered ifTypes 293 and 294.";
+  }
+
+  revision 2018-06-22 {
+    description
+      "Registered ifType 292.";
+  }
+
+  revision 2018-06-21 {
+    description
+      "Registered ifType 291.";
+  }
+
+  revision 2017-03-30 {
+    description
+      "Registered ifType 290.";
+  }
+
+  revision 2017-01-19 {
+    description
+      "Registered ifType 289.";
+  }
+
+  revision 2016-11-23 {
+    description
+      "Registered ifTypes 283-288.";
+  }
+
+  revision 2016-06-09 {
+    description
+      "Registered ifType 282.";
+  }
+  revision 2016-05-03 {
+    description
+      "Registered ifType 281.";
+  }
+  revision 2015-06-12 {
+    description
+      "Corrected formatting issue.";
+  }  
+  revision 2014-09-24 {
+    description
+      "Registered ifType 280.";
+  }
+  revision 2014-09-19 {
+    description
+      "Registered ifType 279.";
+  }
+  revision 2014-07-03 {
+    description
+      "Registered ifTypes 277-278.";
+  }
+  revision 2014-05-19 {
+    description
+      "Updated the contact address.";
+  }
+  revision 2014-05-08 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7224: IANA Interface Type YANG Module";
+  }
+
+  identity iana-interface-type {
+    base if:interface-type;
+    description
+      "This identity is used as a base for all interface types
+       defined in the 'ifType definitions' registry.";
+  }
+
+  identity other {
+    base iana-interface-type;
+  }
+  identity regular1822 {
+    base iana-interface-type;
+  }
+  identity hdh1822 {
+    base iana-interface-type;
+  }
+  identity ddnX25 {
+    base iana-interface-type;
+  }
+  identity rfc877x25 {
+    base iana-interface-type;
+    reference
+      "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
+  }
+  identity ethernetCsmacd {
+    base iana-interface-type;
+    description
+      "For all Ethernet-like interfaces, regardless of speed,
+       as per RFC 3635.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+  identity iso88023Csmacd {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "Deprecated via RFC 3635.
+       Use ethernetCsmacd(6) instead.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+  identity iso88024TokenBus {
+    base iana-interface-type;
+  }
+  identity iso88025TokenRing {
+    base iana-interface-type;
+  }
+  identity iso88026Man {
+    base iana-interface-type;
+  }
+  identity starLan {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "Deprecated via RFC 3635.
+       Use ethernetCsmacd(6) instead.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+  identity proteon10Mbit {
+    base iana-interface-type;
+  }
+  identity proteon80Mbit {
+    base iana-interface-type;
+  }
+  identity hyperchannel {
+    base iana-interface-type;
+  }
+  identity fddi {
+    base iana-interface-type;
+    reference
+      "RFC 1512 - FDDI Management Information Base";
+  }
+  identity lapb {
+    base iana-interface-type;
+    reference
+      "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
+  }
+  identity sdlc {
+    base iana-interface-type;
+  }
+  identity ds1 {
+    base iana-interface-type;
+    description
+      "DS1-MIB.";
+    reference
+      "RFC 4805 - Definitions of Managed Objects for the
+                  DS1, J1, E1, DS2, and E2 Interface Types";
+  }
+  identity e1 {
+    base iana-interface-type;
+    status obsolete;
+    description
+      "Obsolete; see DS1-MIB.";
+    reference
+      "RFC 4805 - Definitions of Managed Objects for the
+                  DS1, J1, E1, DS2, and E2 Interface Types";
+  }
+  identity basicISDN {
+    base iana-interface-type;
+    description
+      "No longer used.  See also RFC 2127.";
+  }
+  identity primaryISDN {
+    base iana-interface-type;
+    description
+      "No longer used.  See also RFC 2127.";
+  }
+  identity propPointToPointSerial {
+    base iana-interface-type;
+    description
+      "Proprietary serial.";
+  }
+  identity ppp {
+    base iana-interface-type;
+  }
+  identity softwareLoopback {
+    base iana-interface-type;
+  }
+  identity eon {
+    base iana-interface-type;
+    description
+      "CLNP over IP.";
+  }
+  identity ethernet3Mbit {
+    base iana-interface-type;
+  }
+  identity nsip {
+    base iana-interface-type;
+    description
+      "XNS over IP.";
+  }
+  identity slip {
+    base iana-interface-type;
+    description
+      "Generic SLIP.";
+  }
+  identity ultra {
+    base iana-interface-type;
+    description
+      "Ultra Technologies.";
+  }
+  identity ds3 {
+    base iana-interface-type;
+    description
+      "DS3-MIB.";
+    reference
+      "RFC 3896 - Definitions of Managed Objects for the
+                  DS3/E3 Interface Type";
+  }
+  identity sip {
+    base iana-interface-type;
+    description
+      "SMDS, coffee.";
+    reference
+      "RFC 1694 - Definitions of Managed Objects for SMDS
+                  Interfaces using SMIv2";
+  }
+  identity frameRelay {
+    base iana-interface-type;
+    description
+      "DTE only.";
+    reference
+      "RFC 2115 - Management Information Base for Frame Relay
+                  DTEs Using SMIv2";
+  }
+  identity rs232 {
+    base iana-interface-type;
+    reference
+      "RFC 1659 - Definitions of Managed Objects for RS-232-like
+                  Hardware Devices using SMIv2";
+  }
+  identity para {
+    base iana-interface-type;
+    description
+      "Parallel-port.";
+    reference
+      "RFC 1660 - Definitions of Managed Objects for
+                  Parallel-printer-like Hardware Devices using
+                  SMIv2";
+  }
+  identity arcnet {
+    base iana-interface-type;
+    description
+      "ARCnet.";
+  }
+  identity arcnetPlus {
+    base iana-interface-type;
+    description
+      "ARCnet Plus.";
+  }
+  identity atm {
+    base iana-interface-type;
+    description
+      "ATM cells.";
+  }
+  identity miox25 {
+    base iana-interface-type;
+    reference
+      "RFC 1461 - SNMP MIB extension for Multiprotocol
+                  Interconnect over X.25";
+  }
+  identity sonet {
+    base iana-interface-type;
+    description
+      "SONET or SDH.";
+  }
+  identity x25ple {
+    base iana-interface-type;
+    reference
+      "RFC 2127 - ISDN Management Information Base using SMIv2";
+  }
+  identity iso88022llc {
+    base iana-interface-type;
+  }
+  identity localTalk {
+    base iana-interface-type;
+  }
+  identity smdsDxi {
+    base iana-interface-type;
+  }
+  identity frameRelayService {
+    base iana-interface-type;
+    description
+      "FRNETSERV-MIB.";
+    reference
+      "RFC 2954 - Definitions of Managed Objects for Frame
+                  Relay Service";
+  }
+  identity v35 {
+    base iana-interface-type;
+  }
+  identity hssi {
+    base iana-interface-type;
+  }
+  identity hippi {
+    base iana-interface-type;
+  }
+  identity modem {
+    base iana-interface-type;
+    description
+      "Generic modem.";
+  }
+  identity aal5 {
+    base iana-interface-type;
+    description
+      "AAL5 over ATM.";
+  }
+  identity sonetPath {
+    base iana-interface-type;
+  }
+  identity sonetVT {
+    base iana-interface-type;
+  }
+  identity smdsIcip {
+    base iana-interface-type;
+    description
+      "SMDS InterCarrier Interface.";
+  }
+  identity propVirtual {
+    base iana-interface-type;
+    description
+      "Proprietary virtual/internal.";
+    reference
+      "RFC 2863 - The Interfaces Group MIB";
+  }
+  identity propMultiplexor {
+    base iana-interface-type;
+    description
+      "Proprietary multiplexing.";
+    reference
+      "RFC 2863 - The Interfaces Group MIB";
+  }
+  identity ieee80212 {
+    base iana-interface-type;
+    description
+      "100BaseVG.";
+  }
+  identity fibreChannel {
+    base iana-interface-type;
+    description
+      "Fibre Channel.";
+  }
+  identity hippiInterface {
+    base iana-interface-type;
+    description
+      "HIPPI interfaces.";
+  }
+  identity frameRelayInterconnect {
+    base iana-interface-type;
+    status obsolete;
+    description
+      "Obsolete; use either
+       frameRelay(32) or frameRelayService(44).";
+  }
+  identity aflane8023 {
+    base iana-interface-type;
+    description
+      "ATM Emulated LAN for 802.3.";
+  }
+  identity aflane8025 {
+    base iana-interface-type;
+    description
+      "ATM Emulated LAN for 802.5.";
+  }
+  identity cctEmul {
+    base iana-interface-type;
+    description
+      "ATM Emulated circuit.";
+  }
+  identity fastEther {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "Obsoleted via RFC 3635.
+       ethernetCsmacd(6) should be used instead.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+  identity isdn {
+    base iana-interface-type;
+    description
+      "ISDN and X.25.";
+    reference
+      "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
+                  in the Packet Mode";
+  }
+  identity v11 {
+    base iana-interface-type;
+    description
+      "CCITT V.11/X.21.";
+  }
+  identity v36 {
+    base iana-interface-type;
+    description
+      "CCITT V.36.";
+  }
+  identity g703at64k {
+    base iana-interface-type;
+    description
+      "CCITT G703 at 64Kbps.";
+  }
+  identity g703at2mb {
+    base iana-interface-type;
+    status obsolete;
+    description
+      "Obsolete; see DS1-MIB.";
+  }
+  identity qllc {
+    base iana-interface-type;
+    description
+      "SNA QLLC.";
+  }
+  identity fastEtherFX {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "Obsoleted via RFC 3635.
+       ethernetCsmacd(6) should be used instead.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+  identity channel {
+    base iana-interface-type;
+    description
+      "Channel.";
+  }
+  identity ieee80211 {
+    base iana-interface-type;
+    description
+      "Radio spread spectrum.";
+  }
+  identity ibm370parChan {
+    base iana-interface-type;
+    description
+      "IBM System 360/370 OEMI Channel.";
+  }
+  identity escon {
+    base iana-interface-type;
+    description
+      "IBM Enterprise Systems Connection.";
+  }
+  identity dlsw {
+    base iana-interface-type;
+    description
+      "Data Link Switching.";
+  }
+  identity isdns {
+    base iana-interface-type;
+    description
+      "ISDN S/T interface.";
+  }
+  identity isdnu {
+    base iana-interface-type;
+    description
+      "ISDN U interface.";
+  }
+  identity lapd {
+    base iana-interface-type;
+    description
+      "Link Access Protocol D.";
+  }
+  identity ipSwitch {
+    base iana-interface-type;
+    description
+      "IP Switching Objects.";
+  }
+  identity rsrb {
+    base iana-interface-type;
+    description
+      "Remote Source Route Bridging.";
+  }
+  identity atmLogical {
+    base iana-interface-type;
+    description
+      "ATM Logical Port.";
+    reference
+      "RFC 3606 - Definitions of Supplemental Managed Objects
+                  for ATM Interface";
+  }
+  identity ds0 {
+    base iana-interface-type;
+    description
+      "Digital Signal Level 0.";
+    reference
+      "RFC 2494 - Definitions of Managed Objects for the DS0
+                  and DS0 Bundle Interface Type";
+  }
+  identity ds0Bundle {
+    base iana-interface-type;
+    description
+      "Group of ds0s on the same ds1.";
+    reference
+      "RFC 2494 - Definitions of Managed Objects for the DS0
+                  and DS0 Bundle Interface Type";
+  }
+  identity bsc {
+    base iana-interface-type;
+    description
+      "Bisynchronous Protocol.";
+  }
+  identity async {
+    base iana-interface-type;
+    description
+      "Asynchronous Protocol.";
+  }
+  identity cnr {
+    base iana-interface-type;
+    description
+      "Combat Net Radio.";
+  }
+  identity iso88025Dtr {
+    base iana-interface-type;
+    description
+      "ISO 802.5r DTR.";
+  }
+  identity eplrs {
+    base iana-interface-type;
+    description
+      "Ext Pos Loc Report Sys.";
+  }
+  identity arap {
+    base iana-interface-type;
+    description
+      "Appletalk Remote Access Protocol.";
+  }
+  identity propCnls {
+    base iana-interface-type;
+    description
+      "Proprietary Connectionless Protocol.";
+  }
+  identity hostPad {
+    base iana-interface-type;
+    description
+      "CCITT-ITU X.29 PAD Protocol.";
+  }
+  identity termPad {
+    base iana-interface-type;
+    description
+      "CCITT-ITU X.3 PAD Facility.";
+  }
+  identity frameRelayMPI {
+    base iana-interface-type;
+    description
+      "Multiproto Interconnect over FR.";
+  }
+  identity x213 {
+    base iana-interface-type;
+    description
+      "CCITT-ITU X213.";
+  }
+  identity adsl {
+    base iana-interface-type;
+    description
+      "Asymmetric Digital Subscriber Loop.";
+  }
+  identity radsl {
+    base iana-interface-type;
+    description
+      "Rate-Adapt. Digital Subscriber Loop.";
+  }
+  identity sdsl {
+    base iana-interface-type;
+    description
+      "Symmetric Digital Subscriber Loop.";
+  }
+  identity vdsl {
+    base iana-interface-type;
+    description
+      "Very H-Speed Digital Subscrib. Loop.";
+  }
+  identity iso88025CRFPInt {
+    base iana-interface-type;
+    description
+      "ISO 802.5 CRFP.";
+  }
+  identity myrinet {
+    base iana-interface-type;
+    description
+      "Myricom Myrinet.";
+  }
+  identity voiceEM {
+    base iana-interface-type;
+    description
+      "Voice recEive and transMit.";
+  }
+  identity voiceFXO {
+    base iana-interface-type;
+    description
+      "Voice Foreign Exchange Office.";
+  }
+  identity voiceFXS {
+    base iana-interface-type;
+    description
+      "Voice Foreign Exchange Station.";
+  }
+  identity voiceEncap {
+    base iana-interface-type;
+    description
+      "Voice encapsulation.";
+  }
+  identity voiceOverIp {
+    base iana-interface-type;
+    description
+      "Voice over IP encapsulation.";
+  }
+  identity atmDxi {
+    base iana-interface-type;
+    description
+      "ATM DXI.";
+  }
+  identity atmFuni {
+    base iana-interface-type;
+    description
+      "ATM FUNI.";
+  }
+  identity atmIma {
+    base iana-interface-type;
+    description
+      "ATM IMA.";
+  }
+  identity pppMultilinkBundle {
+    base iana-interface-type;
+    description
+      "PPP Multilink Bundle.";
+  }
+  identity ipOverCdlc {
+    base iana-interface-type;
+    description
+      "IBM ipOverCdlc.";
+  }
+  identity ipOverClaw {
+    base iana-interface-type;
+    description
+      "IBM Common Link Access to Workstn.";
+  }
+  identity stackToStack {
+    base iana-interface-type;
+    description
+      "IBM stackToStack.";
+  }
+  identity virtualIpAddress {
+    base iana-interface-type;
+    description
+      "IBM VIPA.";
+  }
+  identity mpc {
+    base iana-interface-type;
+    description
+      "IBM multi-protocol channel support.";
+  }
+  identity ipOverAtm {
+    base iana-interface-type;
+    description
+      "IBM ipOverAtm.";
+    reference
+      "RFC 2320 - Definitions of Managed Objects for Classical IP
+                  and ARP Over ATM Using SMIv2 (IPOA-MIB)";
+  }
+  identity iso88025Fiber {
+    base iana-interface-type;
+    description
+      "ISO 802.5j Fiber Token Ring.";
+  }
+  identity tdlc {
+    base iana-interface-type;
+    description
+      "IBM twinaxial data link control.";
+  }
+  identity gigabitEthernet {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "Obsoleted via RFC 3635.
+       ethernetCsmacd(6) should be used instead.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+  identity hdlc {
+    base iana-interface-type;
+    description
+      "HDLC.";
+  }
+  identity lapf {
+    base iana-interface-type;
+    description
+      "LAP F.";
+  }
+  identity v37 {
+    base iana-interface-type;
+    description
+      "V.37.";
+  }
+  identity x25mlp {
+    base iana-interface-type;
+    description
+      "Multi-Link Protocol.";
+  }
+  identity x25huntGroup {
+    base iana-interface-type;
+    description
+      "X25 Hunt Group.";
+  }
+  identity transpHdlc {
+    base iana-interface-type;
+    description
+      "Transp HDLC.";
+  }
+  identity interleave {
+    base iana-interface-type;
+    description
+      "Interleave channel.";
+  }
+  identity fast {
+    base iana-interface-type;
+    description
+      "Fast channel.";
+  }
+  identity ip {
+    base iana-interface-type;
+    description
+      "IP (for APPN HPR in IP networks).";
+  }
+  identity docsCableMaclayer {
+    base iana-interface-type;
+    description
+      "CATV Mac Layer.";
+  }
+  identity docsCableDownstream {
+    base iana-interface-type;
+    description
+      "CATV Downstream interface.";
+  }
+  identity docsCableUpstream {
+    base iana-interface-type;
+    description
+      "CATV Upstream interface.";
+  }
+  identity a12MppSwitch {
+    base iana-interface-type;
+    description
+      "Avalon Parallel Processor.";
+  }
+  identity tunnel {
+    base iana-interface-type;
+    description
+      "Encapsulation interface.";
+  }
+  identity coffee {
+    base iana-interface-type;
+    description
+      "Coffee pot.";
+    reference
+      "RFC 2325 - Coffee MIB";
+  }
+  identity ces {
+    base iana-interface-type;
+    description
+      "Circuit Emulation Service.";
+  }
+  identity atmSubInterface {
+    base iana-interface-type;
+    description
+      "ATM Sub Interface.";
+  }
+  identity l2vlan {
+    base iana-interface-type;
+    description
+      "Layer 2 Virtual LAN using 802.1Q.";
+  }
+  identity l3ipvlan {
+    base iana-interface-type;
+    description
+      "Layer 3 Virtual LAN using IP.";
+  }
+  identity l3ipxvlan {
+    base iana-interface-type;
+    description
+      "Layer 3 Virtual LAN using IPX.";
+  }
+  identity digitalPowerline {
+    base iana-interface-type;
+    description
+      "IP over Power Lines.";
+  }
+  identity mediaMailOverIp {
+    base iana-interface-type;
+    description
+      "Multimedia Mail over IP.";
+  }
+  identity dtm {
+    base iana-interface-type;
+    description
+      "Dynamic synchronous Transfer Mode.";
+  }
+  identity dcn {
+    base iana-interface-type;
+    description
+      "Data Communications Network.";
+  }
+  identity ipForward {
+    base iana-interface-type;
+    description
+      "IP Forwarding Interface.";
+  }
+  identity msdsl {
+    base iana-interface-type;
+    description
+      "Multi-rate Symmetric DSL.";
+  }
+  identity ieee1394 {
+    base iana-interface-type;
+
+    description
+      "IEEE1394 High Performance Serial Bus.";
+  }
+  identity if-gsn {
+    base iana-interface-type;
+    description
+      "HIPPI-6400.";
+  }
+  identity dvbRccMacLayer {
+    base iana-interface-type;
+    description
+      "DVB-RCC MAC Layer.";
+  }
+  identity dvbRccDownstream {
+    base iana-interface-type;
+    description
+      "DVB-RCC Downstream Channel.";
+  }
+  identity dvbRccUpstream {
+    base iana-interface-type;
+    description
+      "DVB-RCC Upstream Channel.";
+  }
+  identity atmVirtual {
+    base iana-interface-type;
+    description
+      "ATM Virtual Interface.";
+  }
+  identity mplsTunnel {
+    base iana-interface-type;
+    description
+      "MPLS Tunnel Virtual Interface.";
+  }
+  identity srp {
+    base iana-interface-type;
+    description
+      "Spatial Reuse Protocol.";
+  }
+  identity voiceOverAtm {
+    base iana-interface-type;
+    description
+      "Voice over ATM.";
+  }
+  identity voiceOverFrameRelay {
+    base iana-interface-type;
+    description
+      "Voice Over Frame Relay.";
+  }
+  identity idsl {
+    base iana-interface-type;
+    description
+      "Digital Subscriber Loop over ISDN.";
+  }
+  identity compositeLink {
+    base iana-interface-type;
+    description
+      "Avici Composite Link Interface.";
+  }
+  identity ss7SigLink {
+    base iana-interface-type;
+    description
+      "SS7 Signaling Link.";
+  }
+  identity propWirelessP2P {
+    base iana-interface-type;
+    description
+      "Prop. P2P wireless interface.";
+  }
+  identity frForward {
+    base iana-interface-type;
+    description
+      "Frame Forward Interface.";
+  }
+  identity rfc1483 {
+    base iana-interface-type;
+    description
+      "Multiprotocol over ATM AAL5.";
+    reference
+      "RFC 1483 - Multiprotocol Encapsulation over ATM
+                  Adaptation Layer 5";
+  }
+  identity usb {
+    base iana-interface-type;
+    description
+      "USB Interface.";
+  }
+  identity ieee8023adLag {
+    base iana-interface-type;
+    description
+      "IEEE 802.3ad Link Aggregate.";
+  }
+  identity bgppolicyaccounting {
+    base iana-interface-type;
+    description
+      "BGP Policy Accounting.";
+  }
+  identity frf16MfrBundle {
+    base iana-interface-type;
+    description
+      "FRF.16 Multilink Frame Relay.";
+  }
+  identity h323Gatekeeper {
+    base iana-interface-type;
+    description
+      "H323 Gatekeeper.";
+  }
+  identity h323Proxy {
+    base iana-interface-type;
+    description
+      "H323 Voice and Video Proxy.";
+  }
+  identity mpls {
+    base iana-interface-type;
+    description
+      "MPLS.";
+  }
+  identity mfSigLink {
+    base iana-interface-type;
+    description
+      "Multi-frequency signaling link.";
+  }
+  identity hdsl2 {
+    base iana-interface-type;
+    description
+      "High Bit-Rate DSL - 2nd generation.";
+  }
+  identity shdsl {
+    base iana-interface-type;
+    description
+      "Multirate HDSL2.";
+  }
+  identity ds1FDL {
+    base iana-interface-type;
+    description
+      "Facility Data Link (4Kbps) on a DS1.";
+  }
+  identity pos {
+    base iana-interface-type;
+    description
+      "Packet over SONET/SDH Interface.";
+  }
+  identity dvbAsiIn {
+    base iana-interface-type;
+    description
+      "DVB-ASI Input.";
+  }
+  identity dvbAsiOut {
+    base iana-interface-type;
+    description
+      "DVB-ASI Output.";
+  }
+  identity plc {
+    base iana-interface-type;
+    description
+      "Power Line Communications.";
+  }
+  identity nfas {
+    base iana-interface-type;
+    description
+      "Non-Facility Associated Signaling.";
+  }
+  identity tr008 {
+    base iana-interface-type;
+    description
+      "TR008.";
+  }
+  identity gr303RDT {
+    base iana-interface-type;
+    description
+      "Remote Digital Terminal.";
+  }
+  identity gr303IDT {
+    base iana-interface-type;
+    description
+      "Integrated Digital Terminal.";
+  }
+  identity isup {
+    base iana-interface-type;
+    description
+      "ISUP.";
+  }
+  identity propDocsWirelessMaclayer {
+    base iana-interface-type;
+    description
+      "Cisco proprietary Maclayer.";
+  }
+  identity propDocsWirelessDownstream {
+    base iana-interface-type;
+    description
+      "Cisco proprietary Downstream.";
+  }
+  identity propDocsWirelessUpstream {
+    base iana-interface-type;
+    description
+      "Cisco proprietary Upstream.";
+  }
+  identity hiperlan2 {
+    base iana-interface-type;
+    description
+      "HIPERLAN Type 2 Radio Interface.";
+  }
+  identity propBWAp2Mp {
+    base iana-interface-type;
+    description
+      "PropBroadbandWirelessAccesspt2Multipt (use of this value
+       for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
+       is deprecated, and ieee80216WMAN(237) should be used
+       instead).";
+  }
+  identity sonetOverheadChannel {
+    base iana-interface-type;
+    description
+      "SONET Overhead Channel.";
+  }
+  identity digitalWrapperOverheadChannel {
+    base iana-interface-type;
+    description
+      "Digital Wrapper.";
+  }
+  identity aal2 {
+    base iana-interface-type;
+    description
+      "ATM adaptation layer 2.";
+  }
+  identity radioMAC {
+    base iana-interface-type;
+    description
+      "MAC layer over radio links.";
+  }
+  identity atmRadio {
+    base iana-interface-type;
+    description
+      "ATM over radio links.";
+  }
+  identity imt {
+    base iana-interface-type;
+    description
+      "Inter-Machine Trunks.";
+  }
+  identity mvl {
+    base iana-interface-type;
+    description
+      "Multiple Virtual Lines DSL.";
+  }
+  identity reachDSL {
+    base iana-interface-type;
+    description
+      "Long Reach DSL.";
+  }
+  identity frDlciEndPt {
+    base iana-interface-type;
+    description
+      "Frame Relay DLCI End Point.";
+  }
+  identity atmVciEndPt {
+    base iana-interface-type;
+    description
+      "ATM VCI End Point.";
+  }
+  identity opticalChannel {
+    base iana-interface-type;
+    description
+      "Optical Channel.";
+  }
+  identity opticalTransport {
+    base iana-interface-type;
+    description
+      "Optical Transport.";
+  }
+  identity propAtm {
+    base iana-interface-type;
+    description
+      "Proprietary ATM.";
+  }
+  identity voiceOverCable {
+    base iana-interface-type;
+    description
+      "Voice Over Cable Interface.";
+  }
+  identity infiniband {
+    base iana-interface-type;
+    description
+      "Infiniband.";
+  }
+  identity teLink {
+    base iana-interface-type;
+    description
+      "TE Link.";
+  }
+  identity q2931 {
+    base iana-interface-type;
+    description
+      "Q.2931.";
+  }
+  identity virtualTg {
+    base iana-interface-type;
+    description
+      "Virtual Trunk Group.";
+  }
+  identity sipTg {
+    base iana-interface-type;
+    description
+      "SIP Trunk Group.";
+  }
+  identity sipSig {
+    base iana-interface-type;
+    description
+      "SIP Signaling.";
+  }
+  identity docsCableUpstreamChannel {
+    base iana-interface-type;
+    description
+      "CATV Upstream Channel.";
+  }
+  identity econet {
+    base iana-interface-type;
+    description
+      "Acorn Econet.";
+  }
+  identity pon155 {
+    base iana-interface-type;
+    description
+      "FSAN 155Mb Symetrical PON interface.";
+  }
+  identity pon622 {
+    base iana-interface-type;
+    description
+      "FSAN 622Mb Symetrical PON interface.";
+  }
+  identity bridge {
+    base iana-interface-type;
+    description
+      "Transparent bridge interface.";
+  }
+  identity linegroup {
+    base iana-interface-type;
+    description
+      "Interface common to multiple lines.";
+  }
+  identity voiceEMFGD {
+    base iana-interface-type;
+    description
+      "Voice E&M Feature Group D.";
+  }
+  identity voiceFGDEANA {
+    base iana-interface-type;
+    description
+      "Voice FGD Exchange Access North American.";
+  }
+  identity voiceDID {
+    base iana-interface-type;
+    description
+      "Voice Direct Inward Dialing.";
+  }
+  identity mpegTransport {
+    base iana-interface-type;
+    description
+      "MPEG transport interface.";
+  }
+  identity sixToFour {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "6to4 interface (DEPRECATED).";
+    reference
+      "RFC 4087 - IP Tunnel MIB";
+  }
+  identity gtp {
+    base iana-interface-type;
+    description
+      "GTP (GPRS Tunneling Protocol).";
+  }
+  identity pdnEtherLoop1 {
+    base iana-interface-type;
+    description
+      "Paradyne EtherLoop 1.";
+  }
+  identity pdnEtherLoop2 {
+    base iana-interface-type;
+    description
+      "Paradyne EtherLoop 2.";
+  }
+  identity opticalChannelGroup {
+    base iana-interface-type;
+    description
+      "Optical Channel Group.";
+  }
+  identity homepna {
+    base iana-interface-type;
+    description
+      "HomePNA ITU-T G.989.";
+  }
+  identity gfp {
+    base iana-interface-type;
+    description
+      "Generic Framing Procedure (GFP).";
+  }
+  identity ciscoISLvlan {
+    base iana-interface-type;
+    description
+      "Layer 2 Virtual LAN using Cisco ISL.";
+  }
+  identity actelisMetaLOOP {
+    base iana-interface-type;
+    description
+      "Acteleis proprietary MetaLOOP High Speed Link.";
+  }
+  identity fcipLink {
+    base iana-interface-type;
+    description
+      "FCIP Link.";
+  }
+  identity rpr {
+    base iana-interface-type;
+    description
+      "Resilient Packet Ring Interface Type.";
+  }
+  identity qam {
+    base iana-interface-type;
+    description
+      "RF Qam Interface.";
+  }
+  identity lmp {
+    base iana-interface-type;
+    description
+      "Link Management Protocol.";
+    reference
+      "RFC 4327 - Link Management Protocol (LMP) Management
+                  Information Base (MIB)";
+  }
+  identity cblVectaStar {
+    base iana-interface-type;
+    description
+      "Cambridge Broadband Networks Limited VectaStar.";
+  }
+  identity docsCableMCmtsDownstream {
+    base iana-interface-type;
+    description
+      "CATV Modular CMTS Downstream Interface.";
+  }
+  identity adsl2 {
+    base iana-interface-type;
+    status deprecated;
+    description
+      "Asymmetric Digital Subscriber Loop Version 2
+       (DEPRECATED/OBSOLETED - please use adsl2plus(238)
+       instead).";
+    reference
+      "RFC 4706 - Definitions of Managed Objects for Asymmetric
+                  Digital Subscriber Line 2 (ADSL2)";
+  }
+  identity macSecControlledIF {
+    base iana-interface-type;
+    description
+      "MACSecControlled.";
+  }
+  identity macSecUncontrolledIF {
+    base iana-interface-type;
+    description
+      "MACSecUncontrolled.";
+  }
+  identity aviciOpticalEther {
+    base iana-interface-type;
+    description
+      "Avici Optical Ethernet Aggregate.";
+  }
+  identity atmbond {
+    base iana-interface-type;
+    description
+      "atmbond.";
+  }
+  identity voiceFGDOS {
+    base iana-interface-type;
+    description
+      "Voice FGD Operator Services.";
+  }
+  identity mocaVersion1 {
+    base iana-interface-type;
+    description
+      "MultiMedia over Coax Alliance (MoCA) Interface
+       as documented in information provided privately to IANA.";
+  }
+  identity ieee80216WMAN {
+    base iana-interface-type;
+    description
+      "IEEE 802.16 WMAN interface.";
+  }
+  identity adsl2plus {
+    base iana-interface-type;
+    description
+      "Asymmetric Digital Subscriber Loop Version 2 -
+       Version 2 Plus and all variants.";
+  }
+  identity dvbRcsMacLayer {
+    base iana-interface-type;
+    description
+      "DVB-RCS MAC Layer.";
+    reference
+      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
+  }
+  identity dvbTdm {
+    base iana-interface-type;
+    description
+      "DVB Satellite TDM.";
+    reference
+      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
+  }
+  identity dvbRcsTdma {
+    base iana-interface-type;
+    description
+      "DVB-RCS TDMA.";
+    reference
+      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
+  }
+  identity x86Laps {
+    base iana-interface-type;
+    description
+      "LAPS based on ITU-T X.86/Y.1323.";
+  }
+  identity wwanPP {
+    base iana-interface-type;
+    description
+      "3GPP WWAN.";
+  }
+  identity wwanPP2 {
+    base iana-interface-type;
+    description
+      "3GPP2 WWAN.";
+  }
+  identity voiceEBS {
+    base iana-interface-type;
+    description
+      "Voice P-phone EBS physical interface.";
+  }
+  identity ifPwType {
+    base iana-interface-type;
+    description
+      "Pseudowire interface type.";
+    reference
+      "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
+  }
+  identity ilan {
+    base iana-interface-type;
+    description
+      "Internal LAN on a bridge per IEEE 802.1ap.";
+  }
+  identity pip {
+    base iana-interface-type;
+    description
+      "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
+  }
+  identity aluELP {
+    base iana-interface-type;
+    description
+      "Alcatel-Lucent Ethernet Link Protection.";
+  }
+  identity gpon {
+    base iana-interface-type;
+    description
+      "Gigabit-capable passive optical networks (G-PON) as per
+       ITU-T G.984.";
+  }
+  identity vdsl2 {
+    base iana-interface-type;
+    description
+      "Very high speed digital subscriber line Version 2
+       (as per ITU-T Recommendation G.993.2).";
+    reference
+      "RFC 5650 - Definitions of Managed Objects for Very High
+                  Speed Digital Subscriber Line 2 (VDSL2)";
+  }
+  identity capwapDot11Profile {
+    base iana-interface-type;
+    description
+      "WLAN Profile Interface.";
+    reference
+      "RFC 5834 - Control and Provisioning of Wireless Access
+                  Points (CAPWAP) Protocol Binding MIB for
+                  IEEE 802.11";
+  }
+  identity capwapDot11Bss {
+    base iana-interface-type;
+    description
+      "WLAN BSS Interface.";
+    reference
+      "RFC 5834 - Control and Provisioning of Wireless Access
+                  Points (CAPWAP) Protocol Binding MIB for
+                  IEEE 802.11";
+  }
+  identity capwapWtpVirtualRadio {
+    base iana-interface-type;
+    description
+      "WTP Virtual Radio Interface.";
+    reference
+      "RFC 5833 - Control and Provisioning of Wireless Access
+                  Points (CAPWAP) Protocol Base MIB";
+  }
+  identity bits {
+    base iana-interface-type;
+    description
+      "bitsport.";
+  }
+  identity docsCableUpstreamRfPort {
+    base iana-interface-type;
+    description
+      "DOCSIS CATV Upstream RF Port.";
+  }
+  identity cableDownstreamRfPort {
+    base iana-interface-type;
+    description
+      "CATV downstream RF Port.";
+  }
+  identity vmwareVirtualNic {
+    base iana-interface-type;
+    description
+      "VMware Virtual Network Interface.";
+  }
+  identity ieee802154 {
+    base iana-interface-type;
+    description
+      "IEEE 802.15.4 WPAN interface.";
+    reference
+      "IEEE 802.15.4-2006";
+  }
+  identity otnOdu {
+    base iana-interface-type;
+    description
+      "OTN Optical Data Unit.";
+  }
+  identity otnOtu {
+    base iana-interface-type;
+    description
+      "OTN Optical channel Transport Unit.";
+  }
+  identity ifVfiType {
+    base iana-interface-type;
+    description
+      "VPLS Forwarding Instance Interface Type.";
+  }
+  identity g9981 {
+    base iana-interface-type;
+    description
+      "G.998.1 bonded interface.";
+  }
+  identity g9982 {
+    base iana-interface-type;
+    description
+      "G.998.2 bonded interface.";
+  }
+  identity g9983 {
+    base iana-interface-type;
+    description
+      "G.998.3 bonded interface.";
+  }
+
+  identity aluEpon {
+    base iana-interface-type;
+    description
+      "Ethernet Passive Optical Networks (E-PON).";
+  }
+  identity aluEponOnu {
+    base iana-interface-type;
+    description
+      "EPON Optical Network Unit.";
+  }
+  identity aluEponPhysicalUni {
+    base iana-interface-type;
+    description
+      "EPON physical User to Network interface.";
+  }
+  identity aluEponLogicalLink {
+    base iana-interface-type;
+    description
+      "The emulation of a point-to-point link over the EPON
+       layer.";
+  }
+  identity aluGponOnu {
+    base iana-interface-type;
+    description
+      "GPON Optical Network Unit.";
+    reference
+      "ITU-T G.984.2";
+  }
+  identity aluGponPhysicalUni {
+    base iana-interface-type;
+    description
+      "GPON physical User to Network interface.";
+    reference
+      "ITU-T G.984.2";
+  }
+  identity vmwareNicTeam {
+    base iana-interface-type;
+    description
+      "VMware NIC Team.";
+  }
+  identity docsOfdmDownstream {
+    base iana-interface-type;
+    description
+      "CATV Downstream OFDM interface.";
+    reference
+      "Cable Modem Operations Support System Interface 
+       Specification";
+  }
+  identity docsOfdmaUpstream {
+    base iana-interface-type;
+    description
+      "CATV Upstream OFDMA interface.";
+    reference
+      "Cable Modem Operations Support System Interface 
+       Specification";
+  }
+  identity gfast {
+    base iana-interface-type;
+    description
+      "G.fast port.";
+    reference
+      "ITU-T G.9701";
+  }
+  identity sdci {
+    base iana-interface-type;
+    description
+      "SDCI (IO-Link).";
+    reference
+      "IEC 61131-9 Edition 1.0 2013-09";
+  }
+  identity xboxWireless {
+    base iana-interface-type;
+    description
+      "Xbox wireless.";
+  }
+  identity fastdsl {
+    base iana-interface-type;
+    description
+      "FastDSL.";
+    reference
+      "BBF TR-355";
+  }
+  identity docsCableScte55d1FwdOob {
+    base iana-interface-type;
+    description
+      "Cable SCTE 55-1 OOB Forward Channel.";
+    reference
+      "ANSI/SCTE 55-1 2009";
+  }
+  identity docsCableScte55d1RetOob {
+    base iana-interface-type;
+    description
+      "Cable SCTE 55-1 OOB Return Channel.";
+    reference
+      "ANSI/SCTE 55-1 2009";
+  }
+  identity docsCableScte55d2DsOob {
+    base iana-interface-type;
+    description
+      "Cable SCTE 55-2 OOB Downstream Channel.";
+    reference
+      "ANSI/SCTE 55-2 2008";
+  }
+  identity docsCableScte55d2UsOob {
+    base iana-interface-type;
+    description
+      "Cable SCTE 55-2 OOB Upstream Channel.";
+    reference
+      "ANSI/SCTE 55-2 2008";
+  }
+  identity docsCableNdf {
+    base iana-interface-type;
+    description
+      "Cable Narrowband Digital Forward.";
+  }
+  identity docsCableNdr {
+    base iana-interface-type;
+    description
+      "Cable Narrowband Digital Return.";
+  }
+  identity ptm {
+    base iana-interface-type;
+    description
+      "Packet Transfer Mode.";
+    reference
+      "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701";
+  }
+  identity ghn {
+    base iana-interface-type;
+    description
+      "G.hn port.";
+    reference
+      "IEEE G.9961";
+  }
+  identity otnOtsi {
+    base iana-interface-type;
+    description
+      "Optical Tributary Signal.";
+    reference
+      "ITU-T G.959.1";
+  }
+  identity otnOtuc {
+    base iana-interface-type;
+    description
+      "OTN OTUCn.";
+    reference
+      "ITU-T G.709/Y.1331";
+  }
+  identity otnOduc {
+    base iana-interface-type;
+    description
+      "OTN ODUC.";
+    reference
+      "ITU-T G.709";
+  }
+  identity otnOtsig {
+    base iana-interface-type;
+    description
+      "OTN OTUC Signal.";
+    reference
+      "ITU-T G.709";
+  }
+  identity microwaveCarrierTermination {
+    base iana-interface-type;
+    description
+      "air interface of a single microwave carrier.";
+    reference
+      "RFC 8561 - A YANG Data Model for Microwave Radio Link";
+  }
+  identity microwaveRadioLinkTerminal {
+    base iana-interface-type;
+    description
+      "radio link interface for one or several aggregated microwave carriers.";
+    reference
+      "RFC 8561 - A YANG Data Model for Microwave Radio Link";
+  }
+  identity ieee8021axDrni {
+    base iana-interface-type;
+    description
+      "IEEE 802.1AX Distributed Resilient Network Interface.";
+    reference
+      "IEEE 802.1AX-Rev-d2-0";
+  }
+  identity ax25 {
+    base iana-interface-type;
+    description
+      "AX.25 network interfaces.";
+    reference
+      "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2";
+  }
+  identity ieee19061nanocom {
+    base iana-interface-type;
+    description
+      "Nanoscale and Molecular Communication.";
+    reference
+      "IEEE 1906.1-2015";
+  }
+  identity cpri {
+    base iana-interface-type;
+    description
+      "Common Public Radio Interface.";
+    reference
+      "CPRI v7.0";
+  }
+  identity omni {
+    base iana-interface-type;
+    description
+      "Overlay Multilink Network Interface (OMNI).";
+    reference
+      "draft-templin-6man-omni-00";
+  }
+  identity roe {
+    base iana-interface-type;
+    description
+      "Radio over Ethernet Interface.";
+    reference
+      "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings";
+  }
+  identity p2pOverLan {
+    base iana-interface-type;
+    description
+      "Point to Point over LAN interface.";
+    reference
+      "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples";
+  }
+}
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-bridge.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-bridge.yang
new file mode 100644
index 0000000000000000000000000000000000000000..2c7d9f9d55ee877fbd50739a15c7f799d8cb735f
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-bridge.yang
@@ -0,0 +1,1795 @@
+module ieee802-dot1q-bridge {
+  yang-version "1.1";
+  namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge;
+  prefix dot1q;
+  import ieee802-types {
+    prefix ieee;
+  }
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import ietf-interfaces {
+    prefix if;
+  }
+  import iana-if-type {
+    prefix ianaif;
+  }
+  import ieee802-dot1q-types {
+    prefix dot1qtypes;
+  }
+  organization
+    "IEEE 802.1 Working Group";
+  contact
+    "WG-URL: http://ieee802.org/1/
+    WG-EMail: stds-802-1-l@ieee.org
+    
+    Contact: IEEE 802.1 Working Group Chair
+    Postal: C/O IEEE 802.1 Working Group
+            IEEE Standards Association
+            445 Hoes Lane
+            Piscataway, NJ 08854
+            USA
+    
+    E-mail: stds-802-1-chairs@ieee.org";
+  description
+    "This YANG module describes the bridge configuration model for the
+    following IEEE 802.1Q Bridges:
+       1) Two Port MAC Relays
+       2) Customer VLAN Bridges
+       3) Provider Bridges.
+    
+    Copyright (C) IEEE (2022).
+    
+    This version of this YANG module is part of IEEE Std 802.1Q; see the
+    standard itself for full legal notices.";
+  revision 2022-05-06 {
+    description
+      "Rebase Qrev with Qcw updates.";
+    reference
+      "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
+  }
+  revision 2022-01-19 {
+    description
+      "Published as part of IEEE Std 802.1Q-2022.";
+    reference
+      "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
+  }
+  revision 2020-11-06 {
+    description
+      "Published as part of IEEE Std 802.1Qcr-2020. Third version.";
+    reference
+      "IEEE Std 802.1Qcr-2020, Bridges and Bridged Networks -
+      Asynchronous Traffic Shaping.";
+  }
+  revision 2020-06-04 {
+    description
+      "Published as part of IEEE Std 802.1Qcx-2020. Second version.";
+    reference
+      "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data
+      Model for Connectivity Fault Management.";
+  }
+  revision 2018-03-07 {
+    description
+      "Published as part of IEEE Std 802.1Q-2018. Initial version.";
+    reference
+      "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
+  }
+  feature ingress-filtering {
+    description
+      "Each Port may support an Enable Ingress Filtering parameter. A
+      frame received on a Port that is not in the member set (8.8.10)
+      associated with the frames VID shall be discarded if this
+      parameter is set. The default value for this parameter is reset,
+      i.e., Disable Ingress Filtering, for all Ports. Any Port that
+      supports setting this parameter shall also support resetting it.
+      The parameter may be configured by the management operations
+      defined in Clause 12.";
+    reference
+      "8.6.2 of IEEE Std 802.1Q-2022";
+  }
+  feature extended-filtering-services {
+    description
+      "Extended Filtering Services support the filtering behavior
+      required for regions of a network in which potential recipients of
+      multicast frames exist, and where both the potential recipients of
+      frames and the Bridges are able to support dynamic configuration
+      of filtering information for group MAC addresses. In order to
+      integrate this extended filtering behavior with the needs of
+      regions of the network that support only Basic Filtering Services,
+      Bridges that support Extended Filtering Services can be statically
+      and dynamically configured to modify their filtering behavior on a
+      per-group MAC address basis, and also on the basis of the overall
+      filtering service provided by each outbound Port with regard to
+      multicast frames. The latter capability permits configuration of
+      the Ports default forwarding or filtering behavior with regard to
+      group MAC addresses for which no specific static or dynamic
+      filtering information has been configured.";
+    reference
+      "8.8.4, Clause 10 of IEEE Std 802.1Q-2022";
+  }
+  feature port-and-protocol-based-vlan {
+    description
+      "A VLAN-aware bridge component implementation in conformance to
+      the provisions of this standard for Port-and-Protocol-based VLAN
+      classification (5.4.1) shall 1) Support one or more of the
+      following Protocol Classifications and Protocol Template formats:
+      Ethernet, RFC_1042, SNAP_8021H, SNAP_Other, or LLC_Other (6.12);
+      and may 2) Support configuration of the contents of the Protocol
+      Group Database.";
+    reference
+      "5.4.1.2 of IEEE Std 802.1Q-2022";
+  }
+  feature flow-filtering {
+    description
+      "Flow filtering support enables Bridges to distinguish frames
+      belonging to different client flows and to use this information in
+      the forwarding process. Information related to client flows may be
+      used at the boundary of an SPT Domain to generate a flow hash
+      value. The flow hash, carried in an F-TAG, serves to distinguish
+      frames belonging to different flows and can be used in the
+      forwarding process to distribute frames over equal cost paths.
+      This provides for finer granularity load spreading while
+      maintaining frame order for each client flow.";
+    reference
+      "44.2 of IEEE Std 802.1Q-2022";
+  }
+  feature simple-bridge-port {
+    description
+      "A simple bridge port allows underlying (MAC) layers to share the
+      same Interface as the Bridge Port.";
+  }
+  feature flexible-bridge-port {
+    description
+      "A flexible bridge port supports an Interface that is a Bridge
+      Port to be a separate Interface from the underlying (MAC) layer.";
+  }
+  identity type-of-bridge {
+    description
+      "Represents the configured Bridge type.";
+  }
+  identity customer-vlan-bridge {
+    base type-of-bridge;
+    description
+      "Base identity for a Customer VLAN Bridge.";
+  }
+  identity provider-bridge {
+    base type-of-bridge;
+    description
+      "Base identity for a Provider Bridge (PB).";
+  }
+  identity provider-edge-bridge {
+    base type-of-bridge;
+    description
+      "Base identity for a Provider Edge Bridge (PEB).";
+  }
+  identity two-port-mac-relay-bridge {
+    base type-of-bridge;
+    description
+      "Base identity for a Two Port MAC Relay (TPMR).";
+  }
+  identity type-of-component {
+    description
+      "Represents the type of Component.";
+  }
+  identity c-vlan-component {
+    base type-of-component;
+    description
+      "Base identity for a C-VLAN component.";
+  }
+  identity s-vlan-component {
+    base type-of-component;
+    description
+      "Base identity for a S-VLAN component.";
+  }
+  identity d-bridge-component {
+    base type-of-component;
+    description
+      "Base identity for a VLAN unaware component.";
+  }
+  identity edge-relay-component {
+    base type-of-component;
+    description
+      "Base identity for an EVB station ER component.";
+  }
+  identity type-of-port {
+    description
+      "Represents the type of Bridge port.";
+  }
+  identity c-vlan-bridge-port {
+    base type-of-port;
+    description
+      "Indicates the port can be a C-TAG aware port of an enterprise
+      VLAN aware Bridge.";
+  }
+  identity provider-network-port {
+    base type-of-port;
+    description
+      "Indicates the port can be an S-TAG aware port of a Provider
+      Bridge or Backbone Edge Bridge used for connections within a PBN
+      (Provider Bridged Network) or PBBN (Provider Backbone Bridged
+      Network).";
+  }
+  identity customer-network-port {
+    base type-of-port;
+    description
+      "Indicates the port can be an S-TAG aware port of a Provider
+      Bridge or Backbone Edge Bridge used for connections to the
+      exterior of a PBN (Provider Bridged Network) or PBBN (Provider
+      Backbone Bridged Network).";
+  }
+  identity customer-edge-port {
+    base type-of-port;
+    description
+      "Indicates the port can be a C-TAG aware port of a Provider Bridge
+      used for connections to the exterior of a PBN (Provider Bridged
+      Network) or PBBN (Provider Backbone Bridged Network).";
+  }
+  identity d-bridge-port {
+    base type-of-port;
+    description
+      "Indicates the port can be a VLAN-unaware member of an 802.1Q
+      Bridge.";
+  }
+  identity remote-customer-access-port {
+    base type-of-port;
+    description
+      "Indicates the port can be an S-TAG aware port of a Provider
+      Bridge capable of providing Remote Customer Service Interfaces.";
+  }
+  identity bridge-interface {
+    description
+      "Generic interface property that represents any interface that can
+      be associated with an IEEE 802.1Q compliant Bridge component. Any
+      new Interface types would derive from this identity to
+      automatically pick up Bridge related configuration or operational
+      data.";
+  }
+  container bridges {
+    description
+      "Contains the Bridge(s) configuration information.";
+    list bridge {
+      key "name";
+      unique "address";
+      description
+        "Provides configuration data in support of the Bridge
+        Configuration resources. There is a single bridge data node per
+        Bridge.";
+      leaf name {
+        type dot1qtypes:name-type;
+        description
+          "A text string associated with the Bridge, of locally
+          determined significance.";
+        reference
+          "12.4 of IEEE Std 802.1Q-2022";
+      }
+      leaf address {
+        type ieee:mac-address;
+        mandatory true;
+        description
+          "The MAC address for the Bridge from which the Bridge
+          Identifiers used by the STP, RSTP, and MSTP are derived.";
+        reference
+          "12.4 of IEEE Std 802.1Q-2022";
+      }
+      leaf bridge-type {
+        type identityref {
+          base type-of-bridge;
+        }
+        mandatory true;
+        description
+          "The type of Bridge.";
+      }
+      leaf ports {
+        type uint16 {
+          range "1..4095";
+        }
+        config false;
+        description
+          "The number of Bridge Ports (MAC Entities)";
+        reference
+          "12.4 of IEEE Std 802.1Q-2022";
+      }
+      leaf up-time {
+        type yang:zero-based-counter32;
+        units "seconds";
+        config false;
+        description
+          "The count in seconds of the time elapsed since the Bridge was
+          last reset or initialized.";
+        reference
+          "12.4 of IEEE Std 802.1Q-2022";
+      }
+      leaf components {
+        type uint32;
+        config false;
+        description
+          "The number of components associated with the Bridge.";
+      }
+      list component {
+        key "name";
+        description
+          "The set of components associated with a given Bridge. For
+          example, - A TPMR is associated with a single VLAN unaware
+          component. - A Customer VLAN Bridge is associated with a
+          single VLAN aware component. - A Provider Bridge is associated
+          with a single S-VLAN component and zero or more C-VLAN
+          components.";
+        reference
+          "Item 1)a in 12.4.1.5 of IEEE Std 802.1Q-2022";
+        leaf name {
+          type string;
+          description
+            "The name of the Component.";
+        }
+        leaf id {
+          type uint32;
+          description
+            "Unique identifier for a particular Bridge component within
+            the system.";
+          reference
+            "Item l) in 12.3 of IEEE Std 802.1Q-2022";
+        }
+        leaf type {
+          type identityref {
+            base type-of-component;
+          }
+          mandatory true;
+          description
+            "The type of component used to classify a particular Bridge
+            component within a Bridge system comprising multiple
+            components.";
+          reference
+            "Item m) in 12.3 of IEEE Std 802.1Q-2022";
+        }
+        leaf address {
+          type ieee:mac-address;
+          description
+            "Unique EUI-48 Universally Administered MAC address assigned
+            to a Bridge component.";
+          reference
+            "13.24, 8.13.8 of IEEE Std 802.1Q-2022";
+        }
+        leaf traffic-class-enabled {
+          type boolean;
+          default "true";
+          description
+            "Indication of Traffic Classes enablement associated with
+            the Bridge Component. A value of True indicates that Traffic
+            Classes are enabled on this Bridge Component. A value of
+            False indicates that the Bridge Component operates with a
+            single priority level for all traffic.";
+          reference
+            "12.4.1.5.1 of IEEE Std 802.1Q-2022";
+        }
+        leaf ports {
+          type uint16 {
+            range "1..4095";
+          }
+          config false;
+          description
+            "The number of Bridge Ports associated with the Bridge
+            Component.";
+          reference
+            "Item c) in 12.4.1.1.3 of IEEE Std 802.1Q-2022";
+        }
+        leaf-list bridge-port {
+          type if:interface-ref;
+          config false;
+          description
+            "List of bridge-port references.";
+        }
+        container capabilities {
+          config false;
+          description
+            "Array of Boolean values of the feature capabilities
+            associated with a given Bridge Component.";
+          reference
+            "Item b) in 12.10.1.1.3, 12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          leaf extended-filtering {
+            type boolean;
+            default "false";
+            description
+              "Can perform filtering on individual multicast addresses
+              controlled by MMRP.";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf traffic-classes {
+            type boolean;
+            default "false";
+            description
+              "Can map priority to multiple traffic classes.";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf static-entry-individual-port {
+            type boolean;
+            default "false";
+            description
+              "Static entries per port.";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf ivl-capable {
+            type boolean;
+            default "true";
+            description
+              "Independent VLAN Learning (IVL).";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf svl-capable {
+            type boolean;
+            default "false";
+            description
+              "Shared VLAN Learning (SVL).";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf hybrid-capable {
+            type boolean;
+            default "false";
+            description
+              "Both IVL and SVL simultaneously.";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf configurable-pvid-tagging {
+            type boolean;
+            default "false";
+            description
+              "Whether the implementation supports the ability to
+              override the default PVID setting and its egress status
+              (VLAN-tagged or Untagged) on each port.";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf local-vlan-capable {
+            type boolean;
+            default "false";
+            description
+              "Can support multiple local Bridges, outside the scope of
+              802.1Q defined VLANs.";
+            reference
+              "12.4.1.5.2 of IEEE Std 802.1Q-2022";
+          }
+        }
+        container filtering-database {
+          when
+            "not(derived-from-or-self(../../bridge-type, "+
+            "'two-port-mac-relay-bridge'))" {
+            description
+              "Applies to non TPMRs.";
+          }
+          description
+            "Contains filtering information used by the Forwarding
+            Process in deciding through which Ports of the Bridge frames
+            should be forwarded.";
+          reference
+            "12.7 of IEEE Std 802.1Q-2022";
+          leaf aging-time {
+            type uint32 {
+              range "10..10000000";
+            }
+            units "seconds";
+            default "300";
+            description
+              "The timeout period in seconds for aging out
+              dynamically-learned forwarding information.";
+            reference
+              "12.7, 8.8.3 of IEEE Std 802.1Q-2022";
+          }
+          leaf size {
+            type yang:gauge32;
+            config false;
+            description
+              "The maximum number of entries that can be held in the
+              FDB.";
+            reference
+              "12.7 of IEEE Std 802.1Q-2022";
+          }
+          leaf static-entries {
+            type yang:gauge32;
+            config false;
+            description
+              "The number of Static Filtering entries currently in the
+              FDB.";
+            reference
+              "12.7, 8.8.1 of IEEE Std 802.1Q-2022";
+          }
+          leaf dynamic-entries {
+            type yang:gauge32;
+            config false;
+            description
+              "The number of Dynamic Filtering entries currently in the
+              FDB.";
+            reference
+              "12.7, 8.8.3 of IEEE Std 802.1Q-2022";
+          }
+          leaf static-vlan-registration-entries {
+            type yang:gauge32;
+            config false;
+            description
+              "The number of Static VLAN Registration entries currently
+              in the FDB.";
+            reference
+              "12.7, 8.8.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf dynamic-vlan-registration-entries {
+            type yang:gauge32;
+            config false;
+            description
+              "The number of Dynamic VLAN Registration entries currently
+              in the FDB.";
+            reference
+              "12.7, 8.8.5 of IEEE Std 802.1Q-2022";
+          }
+          leaf mac-address-registration-entries {
+            if-feature "extended-filtering-services";
+            type yang:gauge32;
+            config false;
+            description
+              "The number of MAC Address Registration entries currently
+              in the FDB.";
+            reference
+              "12.7, 8.8.4 of IEEE Std 802.1Q-2022";
+          }
+          list filtering-entry {
+            key "database-id vids address";
+            description
+              "Information for the entries associated with the Permanent
+              Database.";
+            leaf database-id {
+              type uint32;
+              description
+                "The identity of this Filtering Database.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf address {
+              type ieee:mac-address;
+              description
+                "A MAC address (unicast, multicast, broadcast) for which
+                the device has forwarding and/or filtering information.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf vids {
+              type dot1qtypes:vid-range-type;
+              description
+                "The set of VLAN identifiers to which this entry
+                applies.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf entry-type {
+              type enumeration {
+                enum static {
+                  description
+                    "Static entry type";
+                }
+                enum dynamic {
+                  description
+                    "Dynamic/learnt entry type";
+                }
+              }
+              description
+                "The type of filtering entry. Whether static or dynamic.
+                Static entries can be created, deleted, and retrieved.
+                However, dynamic entries can only be deleted or
+                retrieved by the management entity. Consequently, a
+                Bridge is not required to accept a command that can
+                alter the dynamic entries except delete a dynamic entry.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            uses dot1qtypes:port-map-grouping;
+            leaf status {
+              type enumeration {
+                enum other {
+                  description
+                    "None of the following. This may include the case
+                    where some other object is being used to determine
+                    if and how frames addressed to the value of the
+                    corresponding instance of 'address' are being
+                    forwarded.";
+                }
+                enum invalid {
+                  description
+                    "This entry is no longer valid (e.g., it was learned
+                    but has since aged out), but has not yet been
+                    flushed from the table.";
+                }
+                enum learned {
+                  description
+                    "The value of the corresponding instance of the port
+                    node was learned and is being used.";
+                }
+                enum self {
+                  description
+                    "The value of the corresponding instance of the
+                    address node representing one of the devices
+                    address.";
+                }
+                enum mgmt {
+                  description
+                    "The value of the corresponding instance of address
+                    node that is also the value of an existing instance.";
+                }
+              }
+              config false;
+              description
+                "The status of this entry.";
+            }
+          }
+          list vlan-registration-entry {
+            key "database-id vids";
+            description
+              "The VLAN Registration Entries models the operations that
+              can be performed on a single VLAN Registration Entry in
+              the FDB. The set of VLAN Registration Entries within the
+              FDB changes under management control and also as a result
+              of MVRP exchanges";
+            reference
+              "12.7.5 of IEEE Std 802.1Q-2022";
+            leaf database-id {
+              type uint32;
+              description
+                "The identity of this Filtering Database.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf vids {
+              type dot1qtypes:vid-range-type;
+              description
+                "The set of VLAN identifiers to which this entry
+                applies.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf entry-type {
+              type enumeration {
+                enum static {
+                  description
+                    "Static entry type";
+                }
+                enum dynamic {
+                  description
+                    "Dynamic/learnt entry type";
+                }
+              }
+              description
+                "The type of filtering entry. Whether static or dynamic.
+                Static entries can be created, deleted, and retrieved.
+                However, dynamic entries can only be deleted or
+                retrieved by the management entity. Consequently, a
+                Bridge is not required to accept a command that can
+                alter the dynamic entries except delete a dynamic entry.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            uses dot1qtypes:port-map-grouping;
+          }
+        }
+        container permanent-database {
+          description
+            "The Permanent Database container models the operations that
+            can be performed on, or affect, the Permanent Database.
+            There is a single Permanent Database per FDB.";
+          leaf size {
+            type yang:gauge32;
+            config false;
+            description
+              "The maximum number of entries that can be held in the
+              FDB.";
+            reference
+              "12.7.6 of IEEE Std 802.1Q-2022";
+          }
+          leaf static-entries {
+            type yang:gauge32;
+            config false;
+            description
+              "The number of Static Filtering entries currently in the
+              FDB.";
+            reference
+              "12.7.6 of IEEE Std 802.1Q-2022";
+          }
+          leaf static-vlan-registration-entries {
+            type yang:gauge32;
+            config false;
+            description
+              "The number of Static VLAN Registration entries currently
+              in the FDB.";
+            reference
+              "12.7.6 of IEEE Std 802.1Q-2022";
+          }
+          list filtering-entry {
+            key "database-id vids address";
+            description
+              "Information for the entries associated with the Permanent
+              Database.";
+            leaf database-id {
+              type uint32;
+              description
+                "The identity of this Filtering Database.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf address {
+              type ieee:mac-address;
+              description
+                "A MAC address (unicast, multicast, broadcast) for which
+                the device has forwarding and/or filtering information.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf vids {
+              type dot1qtypes:vid-range-type;
+              description
+                "The set of VLAN identifiers to which this entry
+                applies.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf status {
+              type enumeration {
+                enum other {
+                  description
+                    "None of the following. This may include the case
+                    where some other object is being used to determine
+                    if and how frames addressed to the value of the
+                    corresponding instance of 'address' are being
+                    forwarded.";
+                }
+                enum invalid {
+                  description
+                    "This entry is no longer valid (e.g., it was learned
+                    but has since aged out), but has not yet been
+                    flushed from the table.";
+                }
+                enum learned {
+                  description
+                    "The value of the corresponding instance of the port
+                    node was learned and is being used.";
+                }
+                enum self {
+                  description
+                    "The value of the corresponding instance of the
+                    address node representing one of the devices
+                    address.";
+                }
+                enum mgmt {
+                  description
+                    "The value of the corresponding instance of address
+                    node that is also the value of an existing instance.";
+                }
+              }
+              config false;
+              description
+                "The status of this entry.";
+            }
+            uses dot1qtypes:port-map-grouping;
+          }
+        }
+        container bridge-vlan {
+          when
+            "not(derived-from-or-self(../../bridge-type, "+
+            "'two-port-mac-relay-bridge'))" {
+            description
+              "Applies to non TPMRs.";
+          }
+          description
+            "The Bridge VLAN container models configuration information
+            that modify, or inquire about, the overall configuration of
+            the Bridges VLAN resources. There is a single Bridge VLAN
+            Configuration managed object per Bridge.";
+          reference
+            "12.10 of IEEE Std 802.1Q-2022";
+          leaf version {
+            type uint16;
+            config false;
+            description
+              "The version number supported.";
+            reference
+              "12.10.1.3 of IEEE Std 802.1Q-2022";
+          }
+          leaf max-vids {
+            type uint16;
+            config false;
+            description
+              "The maximum number of VIDs supported.";
+            reference
+              "12.10.1.3 of IEEE Std 802.1Q-2022";
+          }
+          leaf override-default-pvid {
+            type boolean;
+            default "false";
+            config false;
+            description
+              "Indicates if the default PVID can be overridden, and its
+              egress status (VLAN-tagged or untagged) on each port.";
+            reference
+              "12.10.1.3 of IEEE Std 802.1Q-2022";
+          }
+          leaf protocol-template {
+            if-feature "port-and-protocol-based-vlan";
+            type dot1qtypes:protocol-frame-format-type;
+            config false;
+            description
+              "The data-link encapsulation format or the
+              detagged_frame_type in a Protocol Template";
+            reference
+              "12.10.1.7 of IEEE Std 802.1Q-2022";
+          }
+          leaf max-msti {
+            type uint16;
+            config false;
+            description
+              "The maximum number of MSTIs supported within an MST
+              region (i.e., the number of spanning tree instances that
+              can be supported in addition to the CIST), for MST
+              Bridges. For SST Bridges, this parameter may be either
+              omitted or reported as 0.";
+            reference
+              "12.10.1.7 of IEEE Std 802.1Q-2022";
+          }
+          list vlan {
+            key "vid";
+            description
+              "List of VLAN related configuration nodes associated with
+              the Bridge.";
+            reference
+              "12.10.2 of IEEE Std 802.1Q-2022";
+            leaf vid {
+              type dot1qtypes:vlan-index-type;
+              description
+                "The VLAN identifier to which this entry applies.";
+              reference
+                "12.10.2 of IEEE Std 802.1Q-2022";
+            }
+            leaf name {
+              type dot1qtypes:name-type;
+              description
+                "A text string of up to 32 characters of locally
+                determined significance.";
+              reference
+                "12.10.2 of IEEE Std 802.1Q-2022";
+            }
+            leaf-list untagged-ports {
+              type if:interface-ref;
+              config false;
+              description
+                "The set of ports in the untagged set for this VID.";
+              reference
+                "12.10.2.1.3, 8.8.2 of IEEE Std 802.1Q-2022";
+            }
+            leaf-list egress-ports {
+              type if:interface-ref;
+              config false;
+              description
+                "The set of egress ports in the member set for this VID.";
+              reference
+                "12.10.2.1.3, 8.8.10 of IEEE Std 802.1Q-2022";
+            }
+          }
+          list protocol-group-database {
+            if-feature "port-and-protocol-based-vlan";
+            key "db-index";
+            description
+              "List of the protocol group database entries.";
+            reference
+              "12.10.1.7, 6.12.3 of IEEE Std 802.1Q-2022";
+            leaf db-index {
+              type uint16;
+              description
+                "The protocol group database index.";
+            }
+            leaf frame-format-type {
+              type dot1qtypes:protocol-frame-format-type;
+              description
+                "The data-link encapsulation format or the
+                detagged_frame_type in a Protocol Template";
+              reference
+                "12.10.1.7 of IEEE Std 802.1Q-2022";
+            }
+            choice frame-format {
+              description
+                "The identification of the protocol above the data-link
+                layer in a Protocol Template. Depending on the frame
+                type, the octet string will have one of the following
+                values: - For ethernet, rfc1042 and snap8021H, this is
+                the 16-bit (2-octet) IEEE 802 Clause 9.3 EtherType
+                field. - For snapOther, this is the 40-bit (5-octet)
+                PID. - For llcOther, this is the 2-octet IEEE 802.2 Link
+                Service Access Point (LSAP) pair: first octet for
+                Destination Service Access Point (DSAP) and second octet
+                for Source Service Access Point (SSAP).";
+              reference
+                "12.10.1.7 of IEEE Std 802.1Q-2022";
+              case ethernet-rfc1042-snap8021H {
+                when
+                  "frame-format-type = 'Ethernet' or "+
+                  "frame-format-type = 'rfc1042' or frame-format-type "+
+                  "= 'snap8021H'" {
+                  description
+                    "Applies to Ethernet, RFC 1042, SNAP 8021H frame
+                    formats.";
+                }
+                description
+                  "Identifier used if Ethenet, RFC1042, or SNAP 8021H.";
+                leaf ethertype {
+                  type dot1qtypes:ethertype-type;
+                  description
+                    "Format containing the 16-bit IEEE 802 EtherType
+                    field.";
+                  reference
+                    "9.3 of IEEE Std 802-2014";
+                }
+              }
+              case snap-other {
+                when
+                  "frame-format-type = 'snapOther'" {
+                  description
+                    "Applies to Snap Other frame formats.";
+                }
+                description
+                  "Identifier used if SNAP other.";
+                leaf protocol-id {
+                  type string {
+                    pattern "[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){4}";
+                  }
+                  description
+                    "Format containing the 40-bit protocol identifier
+                    (PID). The canonical representation uses uppercase
+                    characters.";
+                  reference
+                    "12.10.1.7.1 of IEEE Std 802.1Q-2022";
+                }
+              }
+              case llc-other {
+                when
+                  "frame-format-type = 'llcOther'" {
+                  description
+                    "Applies to LLC Other frame formats";
+                }
+                description
+                  "Identifier used if LLC other.";
+                container dsap-ssap-pairs {
+                  description
+                    "A pair of ISO/IEC 8802-2 DSAP and SSAP address
+                    field values, for matching frame formats of
+                    LLC_Other.";
+                  leaf llc-address {
+                    type string {
+                      pattern "[0-9a-fA-F]{2}-[0-9a-fA-F]{2}";
+                    }
+                    description
+                      "A pair of ISO/IEC 8802-2 DSAP and SSAP address
+                      field values, for matching frame formats of
+                      LLC_Other. The canonical representation uses
+                      uppercase characters.";
+                    reference
+                      "12.10.1.7.1 of IEEE Std 802.1Q-2022";
+                  }
+                }
+              }
+            }
+            leaf group-id {
+              type uint32;
+              description
+                "Designates a group of protocols in the Protocol Group
+                Database.";
+              reference
+                "6.12.2 of IEEE Std 802.1Q-2022";
+            }
+          }
+          list vid-to-fid-allocation {
+            key "vids";
+            description
+              "This list allows inquiries about VID to FID allocations.";
+            leaf vids {
+              type dot1qtypes:vid-range-type;
+              description
+                "Range of VLAN identifiers.";
+              reference
+                "12.10.3 of IEEE Std 802.1Q-2022";
+            }
+            leaf fid {
+              type uint32;
+              config false;
+              description
+                "The Filtering Database used by a set of VIDs.";
+              reference
+                "12.10.3 of IEEE Std 802.1Q-2022";
+            }
+            leaf allocation-type {
+              type enumeration {
+                enum undefined {
+                  description
+                    "No allocation defined.";
+                }
+                enum fixed {
+                  description
+                    "A fixed allocation to FID is defined.";
+                }
+                enum dynamic {
+                  description
+                    "A dynamic allocation to FID is defined.";
+                }
+              }
+              config false;
+              description
+                "The type of allocation used";
+              reference
+                "12.10.3 of IEEE Std 802.1Q-2022";
+            }
+          }
+          list fid-to-vid-allocation {
+            key "fid";
+            description
+              "The FID to VID allocations managed object models
+              operations that inquire about FID to VID allocations.";
+            leaf fid {
+              type uint32;
+              description
+                "The Filtering Database used by a set of VIDs.";
+              reference
+                "12.10.3 of IEEE Std 802.1Q-2022";
+            }
+            leaf allocation-type {
+              type enumeration {
+                enum undefined {
+                  description
+                    "No allocation defined.";
+                }
+                enum fixed {
+                  description
+                    "A fixed allocation to FID is defined.";
+                }
+                enum dynamic {
+                  description
+                    "A dynamic allocation to FID is defined.";
+                }
+              }
+              config false;
+              description
+                "The type of allocation used";
+              reference
+                "12.10.3 of IEEE Std 802.1Q-2022";
+            }
+            leaf-list vid {
+              type dot1qtypes:vlan-index-type;
+              config false;
+              description
+                "The VLAN identifier to which this entry applies.";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+          }
+          list vid-to-fid {
+            key "vid";
+            description
+              "Fixed allocation of a VID to an FID. The underlying
+              system will ensure that subsequent commands that make
+              changes to the VID to FID mapping can override previous
+              associations.";
+            reference
+              "12.10.3.4, 12.10.3.5 of IEEE Std 802.1Q-2022";
+            leaf vid {
+              type dot1qtypes:vlan-index-type;
+              description
+                "A list of VLAN identifier associated with a given
+                database identifier (i.e., FID).";
+              reference
+                "12.7.7 of IEEE Std 802.1Q-2022";
+            }
+            leaf fid {
+              type uint32;
+              description
+                "The Filtering Database used by this VLAN";
+              reference
+                "12.10.3 of IEEE Std 802.1Q-2022";
+            }
+          }
+        }
+        container bridge-mst {
+          when
+            "not(derived-from-or-self(../../bridge-type, "+
+            "'two-port-mac-relay-bridge'))" {
+            description
+              "Applies to non TPMRs.";
+          }
+          description
+            "The Bridge MST container models configuration information
+            that modify, or inquire about, the overall configuration of
+            the Bridges MST resources.";
+          reference
+            "12.12 of IEEE Std 802.1Q-2022";
+          leaf-list mstid {
+            type dot1qtypes:mstid-type;
+            description
+              "The list of MSTID values that are currently supported by
+              the Bridge";
+          }
+          list fid-to-mstid {
+            key "fid";
+            description
+              "The FID to MSTID allocation table.";
+            reference
+              "12.12.2 of IEEE Std 802.1Q-2022";
+            leaf fid {
+              type uint32;
+              description
+                "The Filtering Database identifier.";
+              reference
+                "12.12.2 of IEEE Std 802.1Q-2022";
+            }
+            leaf mstid {
+              type dot1qtypes:mstid-type;
+              description
+                "The MSTID to which the FID is to be allocated.";
+              reference
+                "12.12.2 of IEEE Std 802.1Q-2022";
+            }
+          }
+          list fid-to-mstid-allocation {
+            key "fids";
+            description
+              "The FID to MSTID allocation table";
+            leaf fids {
+              type dot1qtypes:vid-range-type;
+              description
+                "Range of FIDs.";
+              reference
+                "12.12.2 of IEEE Std 802.1Q-2022";
+            }
+            leaf mstid {
+              type dot1qtypes:mstid-type;
+              description
+                "The MSTID to which the FID is allocated.";
+              reference
+                "12.12.2 of IEEE Std 802.1Q-2022";
+            }
+          }
+        }
+      }
+    }
+  }
+  augment "/if:interfaces/if:interface" {
+    when
+      "derived-from-or-self(if:type,'ianaif:bridge') or "+
+      "derived-from-or-self(if:type,'ianaif:ethernetCsmacd') or "+
+      "derived-from-or-self(if:type,'ianaif:ieee8023adLag') or "+
+      "derived-from-or-self(if:type,'ianaif:ilan')" {
+      description
+        "Applies when a Bridge interface.";
+    }
+    description
+      "Augment the interface model with the Bridge Port";
+    container bridge-port {
+      description
+        "Bridge Port is an extension of the IETF Interfaces model
+        (RFC7223).";
+      leaf bridge-name {
+        type leafref {
+          path "/dot1q:bridges/dot1q:bridge/dot1q:name";
+        }
+        // mandatory true; yang 1.1 only
+        description
+          "Used to reference configured Bridge node.";
+      }  
+      leaf component-name {
+        type leafref {
+          path "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../bridge-name]/dot1q:component/dot1q:name";
+        }
+        // mandatory true; yang 1.1 only
+        description
+          "Used to reference configured Component node.";
+      }
+      leaf port-type {
+        type identityref {
+          base type-of-port;
+        }
+        description
+          "The port type. Indicates the capabilities of this port.";
+        reference
+          "12.4.2.1 of IEEE Std 802.1Q-2022";
+      }
+      leaf pvid {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        type dot1qtypes:vlan-index-type;
+        default "1";
+        description
+          "The primary (default) VID assigned to a specific Bridge Port.";
+        reference
+          "12.10.1, 5.4, item m) of IEEE Std 802.1Q-2022";
+      }
+      leaf default-priority {
+        type dot1qtypes:priority-type;
+        default "0";
+        description
+          "The default priority assigned to a specific Bridge Port.";
+        reference
+          "12.6.2 of IEEE Std 802.1Q-2022";
+      }
+      container priority-regeneration {
+        description
+          "The Priority Regeneration Table parameters associated with a
+          specific Bridge Port. A list of Regenerated User Priorities
+          for each received priority on each port of a Bridge. The
+          regenerated priority value may be used to index the Traffic
+          Class Table for each input port. This only has effect on media
+          that support native priority. The default values for
+          Regenerated User Priorities are the same as the User
+          Priorities";
+        reference
+          "12.6.2, 6.9.4 of IEEE Std 802.1Q-2022";
+        uses dot1qtypes:priority-regeneration-table-grouping;
+      }
+      leaf pcp-selection {
+        type dot1qtypes:pcp-selection-type;
+        default "8P0D";
+        description
+          "The Priority Code Point selection assigned to a specific
+          Bridge Port. This object identifies the rows in the PCP
+          encoding and decoding tables that are used to remark frames on
+          this port if this remarking is enabled";
+        reference
+          "12.6.2, 6.9.3 of IEEE Std 802.1Q-2022";
+      }
+      container pcp-decoding-table {
+        description
+          "The Priority Code Point Decoding Table parameters associated
+          with a specific Bridge Port.";
+        uses dot1qtypes:pcp-decoding-table-grouping;
+      }
+      container pcp-encoding-table {
+        description
+          "The Priority Code Point Encoding Table parameters associated
+          with a specific Bridge Port.";
+        uses dot1qtypes:pcp-encoding-table-grouping;
+      }
+      leaf use-dei {
+        type boolean;
+        default "false";
+        description
+          "The Drop Eligible Indicator. If it is set to True, then the
+          drop_eligible parameter is encoded in the DEI of transmitted
+          frames, and the drop_eligible parameter shall be true(1) for a
+          received frame if the DEI is set in the VLAN tag or the
+          Priority Code Point Decoding Table indicates drop_eligible
+          True for the received PCP value. If this parameter is False,
+          the DEI shall be transmitted as zero and ignored on receipt.";
+        reference
+          "12.6.2, 6.9.3 of IEEE Std 802.1Q-2022";
+      }
+      leaf drop-encoding {
+        type boolean;
+        default "false";
+        description
+          "The Drop Encoding parameter. If a Bridge supports encoding or
+          decoding of drop_eligible from the PCP field of a VLAN tag
+          (6.7.3) on any of its Ports, then it shall implement a Boolean
+          parameter Require Drop Encoding on each of its Ports with
+          default value False. If Require Drop Encoding is True and the
+          Bridge Port cannot encode particular priorities with
+          drop_eligible, then frames queued with those priorities and
+          drop_eligible True shall be discarded and not transmitted.";
+        reference
+          "12.6.2, 6.9.3 of IEEE Std 802.1Q-2022";
+      }
+      leaf service-access-priority-selection {
+        type boolean;
+        default "false";
+        description
+          "The Service Access Priority selection. Indication of whether
+          the Service Access Priority Selection function is supported on
+          the Customer Bridge Port to request priority handling of the
+          frame from a Port-based service interface.";
+        reference
+          "12.6.2, 6.13 of IEEE Std 802.1Q-2022";
+      }
+      container service-access-priority {
+        description
+          "The Service Access Priority table parameters. A table that
+          contains information about the Service Access Priority
+          Selection function for a Provider Bridge. The use of this
+          table enables a mechanism for a Customer Bridge attached to a
+          Provider Bridged Network to request priority handling of
+          frames.";
+        reference
+          "12.6.2, 6.13.1 of IEEE Std 802.1Q-2022";
+        uses dot1qtypes:service-access-priority-table-grouping;
+      }
+      container traffic-class {
+        description
+          "The Traffic Class table parameters. A table mapping evaluated
+          priority to Traffic Class, for forwarding by the Bridge";
+        reference
+          "12.6.3, 8.6.6 of IEEE Std 802.1Q-2022";
+        uses dot1qtypes:traffic-class-table-grouping;
+      }
+      container transmission-selection-algorithm-table {
+        description
+          "The Transmission Selection Algorithm Table for a given Port
+          assigns, for each traffic class that the Port supports, the
+          transmission selection algorithm that is to be used to select
+          frames for transmission from the corresponding queue.
+          Transmission Selection Algorithm Tables may be managed, and
+          allow the identification of vendor-specific transmission
+          selection algorithms. The transmission selection algorithms
+          are identified in the Transmission Selection Algorithm Table
+          by means of integer identifiers.";
+        reference
+          "12.20.2, 8.6.8 of IEEE Std 802.1Q-2022";
+        uses dot1qtypes:transmission-selection-table-grouping;
+      }
+      leaf acceptable-frame {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        type enumeration {
+          enum admit-only-VLAN-tagged-frames {
+            description
+              "Admit only VLAN-tagged frames.";
+          }
+          enum admit-only-untagged-and-priority-tagged {
+            description
+              "Admit only untagged and priority-tagged frames.";
+          }
+          enum admit-all-frames {
+            description
+              "Admit all frames.";
+          }
+        }
+        default "admit-all-frames";
+        description
+          "To configure the Acceptable Frame Types parameter associated
+          with one or more Ports";
+        reference
+          "12.10.1.3, 6.9 of IEEE Std 802.1Q-2022";
+      }
+      leaf enable-ingress-filtering {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        type boolean;
+        default "false";
+        description
+          "To enable the Ingress Filtering feature associated with one
+          or more Ports.";
+        reference
+          "12.10.1.4, 8.6.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf enable-restricted-vlan-registration {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        type boolean;
+        default "false";
+        description
+          "To enable the Restricted VLAN Registration associated with
+          one or more Ports.";
+        reference
+          "11.2.3.2.3, 12.10.1.6 of IEEE Std 802.1Q-2022";
+      }
+      leaf enable-vid-translation-table {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        type boolean;
+        default "false";
+        description
+          "To enable VID Translation table associated with a Bridge
+          Port. This is not applicable to Bridge Ports that do no
+          support a VID Translation Table.";
+        reference
+          "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022";
+      }
+      leaf enable-egress-vid-translation-table {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        type boolean;
+        default "false";
+        description
+          "To enable Egress VID Translation table associated with a
+          Bridge Port. This is not applicable to Ports that do not
+          support an Egress VID Translation table.";
+        reference
+          "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022";
+      }
+      list protocol-group-vid-set {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        if-feature "port-and-protocol-based-vlan";
+        key "group-id";
+        description
+          "The list of VID values associated with the Protocol Group
+          Identifier for this port.";
+        reference
+          "12.10.1.1.3 of IEEE Std 802.1Q-2022";
+        leaf group-id {
+          type uint32;
+          description
+            "The protocol group identifier";
+          reference
+            "12.10.1.7 of IEEE Std 802.1Q-2022";
+        }
+        leaf-list vid {
+          type dot1qtypes:vlanid;
+          description
+            "The VLAN identifier to which this entry applies.";
+          reference
+            "12.10.2 of IEEE Std 802.1Q-2022";
+        }
+      }
+      leaf admin-point-to-point {
+        type enumeration {
+          enum force-true {
+            value 1;
+            description
+              "Indicates that this port should always be treated as if
+              it is connected to a point-to-point link.";
+          }
+          enum force-false {
+            value 2;
+            description
+              "Indicates that this port should be treated as having a
+              shared media connection.";
+          }
+          enum auto {
+            value 3;
+            description
+              "Indicates that this port is considered to have a
+              point-to-point link if it is an Aggregator and all of its
+              members are aggregatable, or if the MAC entity is
+              configured for full duplex operation, either through
+              auto-negotiation or by management means.";
+          }
+        }
+        description
+          "For a port running spanning tree, this object represents the
+          administrative point-to-point status of the LAN segment
+          attached to this port, using the enumeration values of IEEE
+          Std 802.1AC. A value of forceTrue(1) indicates that this port
+          should always be treated as if it is connected to a
+          point-to-point link. A value of forceFalse(2) indicates that
+          this port should be treated as having a shared media
+          connection. A value of auto(3) indicates that this port is
+          considered to have a point-to-point link if it is an
+          Aggregator and all of its members are aggregatable, or if the
+          MAC entity is configured for full duplex operation, either
+          through auto-negotiation or by management means. Manipulating
+          this object changes the underlying adminPointToPointMAC.";
+        reference
+          "12.4.2, 6.8.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf protocol-based-vlan-classification {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        if-feature "port-and-protocol-based-vlan";
+        type boolean;
+        config false;
+        description
+          "A boolean indication indicating if Port-and-Protocol-based
+          VLAN classification is supported on a given Port.";
+        reference
+          "5.4.1.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf max-vid-set-entries {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        if-feature "port-and-protocol-based-vlan";
+        type uint16;
+        config false;
+        description
+          "The maximum number of entries supported in the VID set on a
+          given Port.";
+        reference
+          "12.10.1.1.3 of IEEE Std 802.1Q-2022";
+      }
+      leaf port-number {
+        type dot1qtypes:port-number-type;
+        config false;
+        description
+          "An integer that uniquely identifies a Bridge Port.";
+        reference
+          "Item i) in 12.3, 17.3.2.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf address {
+        type ieee:mac-address;
+        config false;
+        description
+          "The specific MAC address of the individual MAC Entity
+          associated with the Port.";
+        reference
+          "12.4.2, Item a) in 12.4.2.1.1.3 of IEEE Std 802.1Q-2022";
+      }
+      leaf capabilities {
+        type bits {
+          bit tagging {
+            position 0;
+            description
+              "Supports 802.1Q VLAN tagging of frames and MVRP.";
+          }
+          bit configurable-acceptable-frame-type {
+            position 1;
+            description
+              "Allows modified values of acceptable frame types";
+          }
+          bit ingress-filtering {
+            position 2;
+            description
+              "Supports the discarding of any frame received on a Port
+              whose VLAN classification does not include that Port in
+              its member set.";
+          }
+        }
+        config false;
+        description
+          "The feature capabilities associated with port. Indicates the
+          parts of IEEE 802.1Q that are optional on a per-port basis,
+          that are implemented by this device, and that are manageable.";
+        reference
+          "Item c) in 12.10.1.1.3, 12.4.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf type-capabilties {
+        type bits {
+          bit customer-vlan-port {
+            position 0;
+            description
+              "Indicates the port can be a C-TAG aware port of an
+              enterprise VLAN aware Bridge";
+          }
+          bit provider-network-port {
+            position 1;
+            description
+              "Indicates the port can be an S-TAG aware port of a
+              Provider Bridge or Backbone Edge Bridge used for
+              connections within a PBN or PBBN.";
+          }
+          bit customer-network-port {
+            position 2;
+            description
+              "Indicates the port can be an S-TAG aware port of a
+              Provider Bridge or Backbone Edge Bridge used for
+              connections to the exterior of a PBN or PBBN.";
+          }
+          bit customer-edge-port {
+            position 3;
+            description
+              "Indicates the port can be a C-TAG aware port of a
+              Provider Bridge used for connections to the exterior of a
+              PBN or PBBN.";
+          }
+          bit customer-backbone-port {
+            position 4;
+            description
+              "Indicates the port can be a I-TAG aware port of a
+              Backbone Edge Bridge's B-component.";
+          }
+          bit virtual-instance-port {
+            position 5;
+            description
+              "Indicates the port can be a virtual S-TAG aware port
+              within a Backbone Edge Bridge's I-component which is
+              responsible for handling S-tagged traffic for a specific
+              backbone service instance.";
+          }
+          bit d-bridge-port {
+            position 6;
+            description
+              "Indicates the port can be a VLAN-unaware member of an
+              802.1Q Bridge.";
+          }
+          bit remote-customer-access-port {
+            position 7;
+            description
+              "Indicates the port can be an S-TAG aware port of a
+              Provider Bridge capable of providing Remote Customer
+              Service Interfaces.";
+          }
+          bit station-facing-bridge-port {
+            position 8;
+            description
+              "Indicates the station-facing Bridge Port in a EVB Bridge.";
+          }
+          bit uplink-access-port {
+            position 9;
+            description
+              "Indicates the uplink access port in an EVB Bridge or EVB
+              station.";
+          }
+          bit uplink-relay-port {
+            position 10;
+            description
+              "Indicates the uplink relay port in an EVB station.";
+          }
+        }
+        config false;
+        description
+          "The type of feature capabilities supported with port.
+          Indicates the capabilities of this port.";
+        reference
+          "12.4.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf external {
+        type boolean;
+        config false;
+        description
+          "A boolean indicating whether the port is external. A value of
+          True means the port is external. A value of False means the
+          port is internal.";
+        reference
+          "12.4.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf oper-point-to-point {
+        type boolean;
+        config false;
+        description
+          "For a port running spanning tree, this object represents the
+          operational point-to-point status of the LAN segment attached
+          to this port. It indicates whether a port is considered to
+          have a point-to-point connection.
+          
+          If admin-point-to-point is set to auto(2), then the value of
+          oper-point-to-point is determined in accordance with the
+          specific procedures defined for the MAC entity concerned, as
+          defined in IEEE Std 802.1AC.
+          
+          The value is determined dynamically; that is, it is
+          re-evaluated whenever the value of admin-point-to-point
+          changes, and whenever the specific procedures defined for the
+          MAC entity evaluate a change in its point-to-point status.";
+        reference
+          "IEEE Std 802.1AC;" +
+          "12.4.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf media-dependent-overhead {
+        type uint8;
+        units "octets";
+        config false;
+        description
+          "The portMediaDependentOverhead parameter provides the number
+          of additional octets for media-dependent framing. The overhead
+          includes all octets prior the first octet of the Destination
+          Address field and all octets after the last octet of the frame
+          check sequence.";
+        reference
+          "12.4.2 of IEEE Std 802.1Q-2022";
+      }
+      container statistics {
+        config false;
+        description
+          "Container of operational state node information associated
+          with the bridge port.";
+        uses dot1qtypes:bridge-port-statistics-grouping;
+        leaf discard-on-ingress-filtering {
+          when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+            "/../../dot1q:bridge-name]/dot1q:component[name=current()"+
+            "/../../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+            description
+              "Applies to non TPMRs";
+          }
+          if-feature "ingress-filtering";
+          type yang:counter64;
+          description
+            "The number of frames that were discarded as a result of
+            Ingress Filtering being enabled.
+            
+            Discontinuities in the value of this counter can occur at
+            re-initialization of the management system, and at other
+            times as indicated by the value of 'discontinuity-time'.";
+          reference
+            "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+        }
+      }
+      list vid-translations {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        key "local-vid";
+        description
+          "To configure the VID Translation Table (6.9) associated with
+          a Port. This object is not applicable to Ports that do not
+          support a VID Translation Table. The default configuration of
+          the table has the value of the Relay VID equal to the value of
+          the Local VID. If no local VID is configured, then it is
+          assumed that the relay VID is the same value as the local VID.
+          
+          If the port supports an Egress VID translation table, the VID
+          Translation Configuration object configures the Local VID to
+          Relay VID mapping on ingress only. If an Egress VID
+          translation is not supported, the VID Translation
+          Configuration object defines a single bidirectional mapping.
+          In this case, the Bridge should not allow multiple keys
+          ('local-vid') mapped to the same 'relay-vid' value.";
+        leaf local-vid {
+          type dot1qtypes:vlanid;
+          description
+            "The Local VID after translation received at the ISS or
+            EISS.";
+          reference
+            "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022";
+        }
+        leaf relay-vid {
+          type dot1qtypes:vlanid;
+          description
+            "The Relay VID received before translation received at ISS
+            or EISS.";
+          reference
+            "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022";
+        }
+      }
+      list egress-vid-translations {
+        when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+
+          "/../dot1q:bridge-name]/dot1q:component[name=current()"+
+          "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" {  
+          description
+            "Applies to non TPMRs";
+        }
+        key "relay-vid";
+        description
+          "To configure the Egress VID Translation Table (6.9)
+          associated with a Port. This object is not applicable to Ports
+          that do not support an Egress VID Translation Table. The
+          default configuration of the table has the value of the Local
+          VID equal to the value of the Relay VID. If no Relay VID is
+          configured, then it is assumed that the local VID is the same
+          value as the relay VID.";
+        leaf relay-vid {
+          type dot1qtypes:vlanid;
+          description
+            "The Relay VID received before translation received at ISS
+            or EISS.";
+          reference
+            "12.10.1.9, 6.9 of IEEE Std 802.1Q-2022";
+        }
+        leaf local-vid {
+          type dot1qtypes:vlanid;
+          description
+            "The Local VID after translation received at the ISS or
+            EISS.";
+          reference
+            "12.10.1.9, 6.9 of IEEE Std 802.1Q-2022";
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-pb.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-pb.yang
new file mode 100644
index 0000000000000000000000000000000000000000..e25b7b060b9a64bf4adbe6c120b154b98dd58e17
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-pb.yang
@@ -0,0 +1,221 @@
+module ieee802-dot1q-pb {
+  yang-version "1.1";
+  namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-pb;
+  prefix dot1q-pb;
+  import ieee802-dot1q-bridge {
+    prefix dot1q;
+  }
+  import ieee802-dot1q-types {
+    prefix dot1qtypes;
+  }
+  import ietf-interfaces {
+    prefix if;
+  }
+  organization
+    "IEEE 802.1 Working Group";
+  contact
+    "WG-URL: http://ieee802.org/1/
+    WG-EMail: stds-802-1-l@ieee.org
+    
+    Contact: IEEE 802.1 Working Group Chair
+    Postal: C/O IEEE 802.1 Working Group
+           IEEE Standards Association
+           445 Hoes Lane
+           Piscataway, NJ 08854
+           USA
+    
+    E-mail: stds-802-1-chairs@ieee.org";
+  description
+    "This YANG module describes the bridge configuration model for
+    Provider Bridges.
+    
+    Copyright (C) IEEE (2022).
+    
+    This version of this YANG module is part of IEEE Std 802.1Q; see the
+    standard itself for full legal notices.";
+  revision 2022-05-06 {
+    description
+      "Update to rebase on Qcw";
+    reference
+      "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
+  }
+  revision 2022-01-19 {
+    description
+      "Published as part of IEEE Std 802.1Q-2022.";
+    reference
+      "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
+  }
+  revision 2020-06-04 {
+    description
+      "Published as part of IEEE Std 802.1Qcx-2020. Second version.";
+    reference
+      "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data
+      Model for Connectivity Fault Management.";
+  }
+  revision 2018-03-07 {
+    description
+      "Published as part of IEEE Std 802.1Q-2018. Initial version.";
+    reference
+      "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
+  }
+  augment "/if:interfaces/if:interface/dot1q:bridge-port" {
+    description
+      "Augment the interface model with 802.1Q Bridge Port configuration
+      specific nodes.";
+    leaf svid {
+      type dot1qtypes:vlanid;
+      description
+        "Service VLAN identifier.";
+      reference
+        "12.13.2.1 of IEEE Std 802.1Q-2022";
+    }
+    list cvid-registration {
+      when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()" +
+        "/../dot1q:bridge-name]/dot1q:component[dot1q:name=current()" +
+        "/../dot1q:component-name]/dot1q:type = 'dot1q:c-vlan-component' and "+
+        "../dot1q:port-type = 'dot1q:customer-edge-port'" {
+        description
+          "Applies when the component associated with this interface is
+          a C-VLAN component and the port-type is a customer edge port.";
+      }
+      key "cvid";
+      description
+        "The C-VID Registration Table, provides a mapping between a
+        C-VID and the service instance represented by an S-VID selected
+        for that C-VLAN. This table provides the equivalent
+        functionality of
+           1) Configuring the PVID of the internal CNP on the S-VLAN
+              component
+           2) Adding the corresponding PEP on the C-VLAN component to
+              the member set of the C-VLAN
+           3) Adding the PEP and/or CEP to the untagged set of the
+              C-VLAN (if it is desired that frames forwarded to that
+              port are transmitted untagged for this C-VLAN).";
+      leaf cvid {
+        type dot1qtypes:vlanid;
+        description
+          "Customer VLAN identifiers associated with this bridge port.";
+        reference
+          "12.13.2.1 of IEEE Std 802.1Q-2022";
+      }
+      leaf svid {
+        type dot1qtypes:vlanid;
+        description
+          "Service VLAN identifier.";
+        reference
+          "12.13.2.1 of IEEE Std 802.1Q-2022";
+      }
+      leaf untagged-pep {
+        type boolean;
+        default "true";
+        description
+          "A boolean indicating frames for this C-VLAN should be
+          forwarded untagged through the Provider Edge Port.";
+        reference
+          "12.13.2.1 of IEEE Std 802.1Q-2022";
+      }
+      leaf untagged-cep {
+        type boolean;
+        default "true";
+        description
+          "A boolean indicating frames for this C-VLAN should be
+          forwarded untagged through the Customer Edge Port.";
+        reference
+          "12.13.2.1 of IEEE Std 802.1Q-2022";
+      }
+    }
+    list service-priority-regeneration {
+      when "/dot1q:bridges/dot1q:bridge[dot1q:name=current() " +
+        "/../dot1q:bridge-name]/dot1q:component[dot1q:name=current() " +
+        "/../dot1q:component-name]/dot1q:type = 'dot1q:c-vlan-component' and "+
+        "../dot1q:port-type = 'dot1q:customer-edge-port'" {
+        description
+          "Applies when the component associated with this interface is
+          a C-VLAN component and the port-type is a customer edge port.";
+      }
+      key "svid";
+      description
+        "The Service Priority Regeneration Table, which provides the
+        Priority Regeneration Table (12.6.2) for each internal CNP
+        connected to the C-VLAN component associated with the CEP.";
+      leaf svid {
+        type dot1qtypes:vlanid;
+        description
+          "Service VLAN identifier.";
+        reference
+          "12.13.2.6 of IEEE Std 802.1Q-2022";
+      }
+      container priority-regeneration {
+        description
+          "Contains Service Priority Regeneration table nodal
+          information.";
+        reference
+          "12.13.2.6 of IEEE Std 802.1Q-2022";
+        uses dot1qtypes:priority-regeneration-table-grouping;
+      }
+    }
+    list rcap-internal-interface {
+      when "/dot1q:bridges/dot1q:bridge[dot1q:name=current() " +
+        "/../dot1q:bridge-name]/dot1q:component[dot1q:name=current() " +
+        "/../dot1q:component-name]/dot1q:type = 'dot1q:s-vlan-component' and "+
+        "../dot1q:port-type = 'dot1q:remote-customer-access-port'" {
+        description
+          "Applies when the component associated with this interface is
+          a C-VLAN component and the port-type is a customer edge port.";
+      }
+      key "external-svid";
+      description
+        "Designating an external port as an RCAP automatically creates a
+        Port-mapping S-VLAN component associated with that port. This
+        Port-mapping S-VLAN component includes one internal PNP.";
+      leaf external-svid {
+        type dot1qtypes:vlanid;
+        description
+          "External Service VLAN identifier.";
+        reference
+          "12.13.3.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf internal-port-number {
+        type dot1qtypes:port-number-type;
+        description
+          "The number of the RCAP.";
+        reference
+          "12.13.3.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf internal-svid {
+        type dot1qtypes:vlanid;
+        description
+          "Internal Service VLAN Identifier (not applicable for a
+          C-tagged RCSI).";
+        reference
+          "12.13.3.2 of IEEE Std 802.1Q-2022";
+      }
+      leaf internal-interface-type {
+        type enumeration {
+          enum port-based-rcsi {
+            description
+              "Port-based RCSI";
+          }
+          enum c-tagged-rcsi {
+            description
+              "C-tagged RCSI";
+          }
+          enum pnp {
+            description
+              "Provider Network Port";
+          }
+          enum discard {
+            description
+              "Discard (external S-VID is not associated with an
+              internal port).";
+          }
+        }
+        description
+          "A value indicating the type of internal interface associated
+          with the external S-VID.";
+        reference
+          "12.13.3.2 of IEEE Std 802.1Q-2022";
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-types.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-types.yang
new file mode 100644
index 0000000000000000000000000000000000000000..cfc46ed9b6c31709268ea4d4fdd7feadef55f760
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-types.yang
@@ -0,0 +1,980 @@
+module ieee802-dot1q-types {
+  namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-types;
+  prefix dot1q-types;
+  import ietf-yang-types {
+    prefix yang;
+  }
+  organization
+    "IEEE 802.1 Working Group";
+  contact
+    "WG-URL: http://ieee802.org/1/
+    WG-EMail: stds-802-1-l@ieee.org
+    
+    Contact: IEEE 802.1 Working Group Chair
+    Postal: C/O IEEE 802.1 Working Group
+           IEEE Standards Association
+           445 Hoes Lane
+           Piscataway, NJ 08854
+           USA
+    
+    E-mail: stds-802-1-chairs@ieee.org";
+  description
+    "Common types used within dot1Q-bridge modules.
+    
+    Copyright (C) IEEE (2022).
+    
+    This version of this YANG module is part of IEEE Std 802.1Q; see the
+    standard itself for full legal notices.";
+  revision 2022-01-19 {
+    description
+      "Published as part of IEEE Std 802.1Q-2022.";
+    reference
+      "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
+  }
+  revision 2020-06-04 {
+    description
+      "Published as part of IEEE Std 802.1Qcx-2020. Second version.";
+    reference
+      "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data
+      Model for Connectivity Fault Management.";
+  }
+  revision 2018-03-07 {
+    description
+      "Published as part of IEEE Std 802.1Q-2018. Initial version.";
+    reference
+      "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
+  }
+  identity dot1q-vlan-type {
+    description
+      "Base identity from which all 802.1Q VLAN tag types are derived
+      from.";
+  }
+  identity c-vlan {
+    base dot1q-vlan-type;
+    description
+      "An 802.1Q Customer VLAN, using the 81-00 EtherType";
+    reference
+      "5.5 of IEEE Std 802.1Q-2022";
+  }
+  identity s-vlan {
+    base dot1q-vlan-type;
+    description
+      "An 802.1Q Service VLAN, using the 88-A8 EtherType originally
+      introduced in 802.1ad, and incorporated into 802.1Q (2011)";
+    reference
+      "5.6 of IEEE Std 802.1Q-2022";
+  }
+  identity transmission-selection-algorithm {
+    description
+      "Specify the transmission selection algorithms of IEEE Std
+      802.1Q-2022 Table 8-6";
+  }
+  identity strict-priority {
+    base transmission-selection-algorithm;
+    description
+      "Indicates the strict priority transmission selection algorithm.";
+    reference
+      "Table 8-6 of IEEE Std 802.1Q-2022";
+  }
+  identity credit-based-shaper {
+    base transmission-selection-algorithm;
+    description
+      "Indicates the credit based shaper transmission selection
+      algorithm.";
+    reference
+      "Table 8-6 of IEEE Std 802.1Q-2022";
+  }
+  identity enhanced-transmission-selection {
+    base transmission-selection-algorithm;
+    description
+      "Indicates the enhanced transmission selection algorithm.";
+    reference
+      "Table 8-6 of IEEE Std 802.1Q-2022";
+  }
+  identity asynchronous-traffic-shaping {
+    base transmission-selection-algorithm;
+    description
+      "Indicates the asynchronous transmission selection algorithm.";
+    reference
+      "Table 8-6 of IEEE Std 802.1Q-2022";
+  }
+  identity vendor-specific {
+    base transmission-selection-algorithm;
+    description
+      "Indicates a vendor specific transmission selection algorithm.";
+    reference
+      "Table 8-6 of IEEE Std 802.1Q-2022";
+  }
+  typedef name-type {
+    type string {
+      length "0..32";
+    }
+    description
+      "A text string of up to 32 characters, of locally determined
+      significance.";
+  }
+  typedef port-number-type {
+    type uint32 {
+      range "1..4095";
+    }
+    description
+      "The port number of the Bridge port for which this entry contains
+      Bridge management information.";
+  }
+  typedef priority-type {
+    type uint8 {
+      range "0..7";
+    }
+    description
+      "A range of priorities from 0 to 7 (inclusive). The Priority Code
+      Point (PCP) is a 3-bit field that refers to the class of service
+      associated with an 802.1Q 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.";
+  }
+  typedef vid-range-type {
+    type string {
+      pattern
+        "([1-9]"+
+        "[0-9]{0,3}"+
+        "(-[1-9][0-9]{0,3})?"+
+        "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
+    }
+    description
+      "A list of VLAN Ids, or non overlapping VLAN ranges, in ascending
+      order, between 1 and 4094.
+      
+      This type is used to match an ordered list of VLAN Ids, or
+      contiguous ranges of VLAN Ids. Valid VLAN Ids must be in the range
+      1 to 4094, and included in the list in non overlapping ascending
+      order.
+      
+      For example: 1,10-100,250,500-1000";
+  }
+  typedef vlanid {
+    type uint16 {
+      range "1..4094";
+    }
+    description
+      "The vlanid type uniquely identifies a VLAN. This is the 12-bit
+      VLAN-ID used in the VLAN Tag header. The range is defined by the
+      referenced specification. This type is in the value set and its
+      semantics equivalent to the VlanId textual convention of the
+      SMIv2.";
+  }
+  typedef vlan-index-type {
+    type uint32 {
+      range "1..4094 | 4096..4294967295";
+    }
+    description
+      "A value used to index per-VLAN tables. Values of 0 and 4095 are
+      not permitted. The range of valid VLAN indices. If the value is
+      greater than 4095, then it represents a VLAN with scope local to
+      the particular agent, i.e., one without a global VLAN-ID assigned
+      to it. Such VLANs are outside the scope of IEEE 802.1Q, but it is
+      convenient to be able to manage them in the same way using this
+      YANG module.";
+    reference
+      "9.6 of IEEE Std 802.1Q-2022";
+  }
+  typedef mstid-type {
+    type uint32 {
+      range "1..4094";
+    }
+    description
+      "In an MSTP Bridge, an MSTID, i.e., a value used to identify a
+      spanning tree (or MST) instance";
+    reference
+      "13.8 of IEEE Std 802.1Q-2022";
+  }
+  typedef pcp-selection-type {
+    type enumeration {
+      enum 8P0D {
+        description
+          "8 priorities, 0 drop eligible";
+      }
+      enum 7P1D {
+        description
+          "7 priorities, 1 drop eligible";
+      }
+      enum 6P2D {
+        description
+          "6 priorities, 2 drop eligible";
+      }
+      enum 5P3D {
+        description
+          "5 priorities, 3 drop eligible";
+      }
+    }
+    description
+      "Priority Code Point selection types.";
+    reference
+      "12.6.2.5.3, 6.9.3 of IEEE Std 802.1Q-2022";
+  }
+  typedef protocol-frame-format-type {
+    type enumeration {
+      enum Ethernet {
+        description
+          "Ethernet frame format";
+      }
+      enum rfc1042 {
+        description
+          "RFC 1042 frame format";
+      }
+      enum snap8021H {
+        description
+          "SNAP 802.1H frame format";
+      }
+      enum snapOther {
+        description
+          "Other SNAP frame format";
+      }
+      enum llcOther {
+        description
+          "Other LLC frame format";
+      }
+    }
+    description
+      "A value representing the frame format to be matched.";
+    reference
+      "12.10.1.7.1 of IEEE Std 802.1Q-2022";
+  }
+  typedef ethertype-type {
+    type string {
+      pattern "[0-9a-fA-F]{2}-[0-9a-fA-F]{2}";
+    }
+    description
+      "The EtherType value represented in the canonical order defined by
+      IEEE 802. The canonical representation uses uppercase characters.";
+    reference
+      "9.2 of IEEE Std 802-2014";
+  }
+  typedef dot1q-tag-type {
+    type identityref {
+      base dot1q-vlan-type;
+    }
+    description
+      "Identifies a specific 802.1Q tag type";
+    reference
+      "9.5 IEEE Std 802.1Q-2022";
+  }
+  typedef traffic-class-type {
+    type uint8 {
+      range "0..7";
+    }
+    description
+      "This is the numerical value associated with a traffic class in a
+      Bridge. Larger values are associated with higher priority traffic
+      classes.";
+    reference
+      "3.273 of IEEE Std 802.1Q-2022";
+  }
+  grouping dot1q-tag-classifier-grouping {
+    description
+      "A grouping which represents an 802.1Q VLAN, matching both the
+      EtherType and a single VLAN Id.";
+    leaf tag-type {
+      type dot1q-tag-type;
+      mandatory true;
+      description
+        "VLAN type";
+    }
+    leaf vlan-id {
+      type vlanid;
+      mandatory true;
+      description
+        "VLAN Id";
+    }
+  }
+  grouping dot1q-tag-or-any-classifier-grouping {
+    description
+      "A grouping which represents an 802.1Q VLAN, matching both the
+      EtherType and a single VLAN Id or 'any' to match on any VLAN Id.";
+    leaf tag-type {
+      type dot1q-tag-type;
+      mandatory true;
+      description
+        "VLAN type";
+    }
+    leaf vlan-id {
+      type union {
+        type vlanid;
+        type enumeration {
+          enum any {
+            value 4095;
+            description
+              "Matches 'any' VLAN in the range 1 to 4094 that is not
+              matched by a more specific VLAN Id match";
+          }
+        }
+      }
+      mandatory true;
+      description
+        "VLAN Id or any";
+    }
+  }
+  grouping dot1q-tag-ranges-classifier-grouping {
+    description
+      "A grouping which represents an 802.1Q VLAN that matches a range
+      of VLAN Ids.";
+    leaf tag-type {
+      type dot1q-tag-type;
+      mandatory true;
+      description
+        "VLAN type";
+    }
+    leaf vlan-ids {
+      type vid-range-type;
+      mandatory true;
+      description
+        "VLAN Ids";
+    }
+  }
+  grouping dot1q-tag-ranges-or-any-classifier-grouping {
+    description
+      "A grouping which represents an 802.1Q VLAN, matching both the
+      EtherType and a single VLAN Id, ordered list of ranges, or 'any'
+      to match on any VLAN Id.";
+    leaf tag-type {
+      type dot1q-tag-type;
+      mandatory true;
+      description
+        "VLAN type";
+    }
+    leaf vlan-id {
+      type union {
+        type vid-range-type;
+        type enumeration {
+          enum any {
+            value 4095;
+            description
+              "Matches 'any' VLAN in the range 1 to 4094.";
+          }
+        }
+      }
+      mandatory true;
+      description
+        "VLAN Ids or any";
+    }
+  }
+  grouping priority-regeneration-table-grouping {
+    description
+      "The priority regeneration table provides the ability to map
+      incoming priority values on a per-Port basis, under management
+      control.";
+    reference
+      "6.9.4 of IEEE Std 802.1Q-2022";
+    leaf priority0 {
+      type priority-type;
+      default "0";
+      description
+        "Priority 0";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority1 {
+      type priority-type;
+      default "1";
+      description
+        "Priority 1";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority2 {
+      type priority-type;
+      default "2";
+      description
+        "Priority 2";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority3 {
+      type priority-type;
+      default "3";
+      description
+        "Priority 3";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority4 {
+      type priority-type;
+      default "4";
+      description
+        "Priority 4";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority5 {
+      type priority-type;
+      default "5";
+      description
+        "Priority 5";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority6 {
+      type priority-type;
+      default "6";
+      description
+        "Priority 6";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority7 {
+      type priority-type;
+      default "7";
+      description
+        "Priority 7";
+      reference
+        "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022";
+    }
+  }
+  grouping pcp-decoding-table-grouping {
+    description
+      "The Priority Code Point decoding table enables the decoding of
+      the priority and drop-eligible parameters from the PCP.";
+    reference
+      "6.9.3 of IEEE Std 802.1Q-2022";
+    list pcp-decoding-map {
+      key "pcp";
+      description
+        "This map associates the priority code point field found in the
+        VLAN to a priority and drop eligible value based upon the
+        priority code point selection type.";
+      leaf pcp {
+        type pcp-selection-type;
+        description
+          "The priority code point selection type.";
+        reference
+          "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022";
+      }
+      list priority-map {
+        key "priority-code-point";
+        description
+          "This map associated a priority code point value to priority
+          and drop eligible parameters.";
+        leaf priority-code-point {
+          type priority-type;
+          description
+            "Priority associated with the pcp.";
+          reference
+            "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022";
+        }
+        leaf priority {
+          type priority-type;
+          description
+            "Priority associated with the pcp.";
+          reference
+            "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022";
+        }
+        leaf drop-eligible {
+          type boolean;
+          description
+            "Drop eligible value for pcp";
+          reference
+            "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022";
+        }
+      }
+    }
+  }
+  grouping pcp-encoding-table-grouping {
+    description
+      "The Priority Code Point encoding table encodes the priority and
+      drop-eligible parameters in the PCP field of the VLAN tag.";
+    reference
+      "12.6.2.9, 6.9.3 of IEEE Std 802.1Q-2022";
+    list pcp-encoding-map {
+      key "pcp";
+      description
+        "This map associated the priority and drop-eligible parameters
+        to the priority used to encode the PCP of the VLAN based upon
+        the priority code point selection type.";
+      leaf pcp {
+        type pcp-selection-type;
+        description
+          "The priority code point selection type.";
+        reference
+          "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022";
+      }
+      list priority-map {
+        key "priority dei";
+        description
+          "This map associated the priority and drop-eligible parameters
+          to the priority code point field of the VLAN tag.";
+        leaf priority {
+          type priority-type;
+          description
+            "Priority associated with the pcp.";
+          reference
+            "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022";
+        }
+        leaf dei {
+          type boolean;
+          description
+            "The drop eligible value.";
+          reference
+            "12.6.2, 8.6.6 of IEEE Std 802.1Q-2022";
+        }
+        leaf priority-code-point {
+          type priority-type;
+          description
+            "PCP value for priority when DEI value";
+          reference
+            "12.6.2.9, 6.9.3 of IEEE Std 802.1Q-2022";
+        }
+      }
+    }
+  }
+  grouping service-access-priority-table-grouping {
+    description
+      "The Service Access Priority Table associates a received priority
+      with a serice access priority.";
+    reference
+      "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    leaf priority0 {
+      type priority-type;
+      default "0";
+      description
+        "Service access priority value for priority 0";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority1 {
+      type priority-type;
+      default "1";
+      description
+        "Service access priority value for priority 1";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority2 {
+      type priority-type;
+      default "2";
+      description
+        "Service access priority value for priority 2";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority3 {
+      type priority-type;
+      default "3";
+      description
+        "Service access priority value for priority 3";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority4 {
+      type priority-type;
+      default "4";
+      description
+        "Service access priority value for priority 4";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority5 {
+      type priority-type;
+      default "5";
+      description
+        "Service access priority value for priority 5";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority6 {
+      type priority-type;
+      default "6";
+      description
+        "Service access priority value for priority 6";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+    leaf priority7 {
+      type priority-type;
+      default "7";
+      description
+        "Service access priority value for priority 7";
+      reference
+        "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022";
+    }
+  }
+  grouping traffic-class-table-grouping {
+    description
+      "The Traffic Class Table models the operations that can be
+      performed on, or inquire about, the current contents of the
+      Traffic Class Table (8.6.6) for a given Port.";
+    reference
+      "12.6.3, 8.6.6 of IEEE Std 802.1Q-2022";
+    list traffic-class-map {
+      key "priority";
+      description
+        "The priority index into the traffic class table.";
+      leaf priority {
+        type priority-type;
+        description
+          "The priority of the traffic class entry.";
+        reference
+          "8.6.6 of IEEE Std 802.1Q-2022";
+      }
+      list available-traffic-class {
+        key "num-traffic-class";
+        description
+          "The traffic class index associated with a given priority
+          within the traffic class table.";
+        reference
+          "8.6.6 of IEEE Std 802.1Q-2022";
+        leaf num-traffic-class {
+          type uint8 {
+            range "1..8";
+          }
+          description
+            "The available number of traffic classes.";
+          reference
+            "8.6.6 of IEEE Std 802.1Q-2022";
+        }
+        leaf traffic-class {
+          type traffic-class-type;
+          description
+            "The traffic class index associated with a given traffic
+            class entry.";
+          reference
+            "8.6.6 of IEEE Std 802.1Q-2022";
+        }
+      }
+    }
+  }
+  grouping transmission-selection-table-grouping {
+    description
+      "The Transmission Selection Algorithm Table models the operations
+      that can be performed on, or inquire about, the current contents
+      of the Transmission Selection Algorithm Table (12.20.2) for a
+      given Port.";
+    reference
+      "12.20.2, 8.6.8 of IEEE Std 802.1Q-2022";
+    list transmission-selection-algorithm-map {
+      key "traffic-class";
+      description
+        "The traffic class to index into the transmission selection
+        table.";
+      leaf traffic-class {
+        type traffic-class-type;
+        description
+          "The traffic class of the entry.";
+        reference
+          "8.6.6 of IEEE Std 802.1Q-2022";
+      }
+      leaf transmission-selection-algorithm {
+        type identityref {
+          base dot1q-types:transmission-selection-algorithm;
+        }
+        description
+          "Transmission selection algorithm";
+        reference
+          "8.6.8, Table 8-6 of IEEE Std 802.1Q-2022";
+      }
+    }
+  }
+  grouping port-map-grouping {
+    description
+      "A set of control indicators, one for each Port. A Port Map,
+      containing a control element for each outbound Port";
+    reference
+      "8.8.1, 8.8.2 of IEEE Std 802.1Q-2022";
+    list port-map {
+      key "port-ref";
+      description
+        "The list of entries composing the port map.";
+      leaf port-ref {
+        type port-number-type;
+        description
+          "The interface port reference associated with this map.";
+        reference
+          "8.8.1 of IEEE Std 802.1Q-2022";
+      }
+      choice map-type {
+        description
+          "Type of port map";
+        container static-filtering-entries {
+          description
+            "Static filtering entries attributes.";
+          leaf control-element {
+            type enumeration {
+              enum forward {
+                description
+                  "Forwarded, independently of any dynamic filtering
+                  information held by the FDB.";
+              }
+              enum filter {
+                description
+                  "Filtered, independently of any dynamic filtering
+                  information.";
+              }
+              enum forward-filter {
+                description
+                  "Forwarded or filtered on the basis of dynamic
+                  filtering information, or on the basis of the default
+                  Group filtering behavior for the outbound Port (8.8.6)
+                  if no dynamic filtering information is present
+                  specifically for the MAC address.";
+              }
+            }
+            description
+              "containing a control element for each outbound Port,
+              specifying that a frame with a destination MAC address,
+              and in the case of VLAN Bridge components, VID that meets
+              this specification.";
+            reference
+              "8.8.1 of IEEE Std 802.1Q-2022";
+          }
+          leaf connection-identifier {
+            type port-number-type;
+            description
+              "A Port MAP may contain a connection identifier (8.8.12)
+              for each outbound port. The connection identifier may be
+              associated with the Bridge Port value maintained in a
+              Dynamic Filtering Entry of the FDB for Bridge Ports.";
+            reference
+              "8.8.1, 8.8.12 of IEEE Std 802.1Q-2022";
+          }
+        }
+        container static-vlan-registration-entries {
+          description
+            "Static VLAN registration entries.";
+          leaf registrar-admin-control {
+            type enumeration {
+              enum fixed-new-ignored {
+                description
+                  "Registration Fixed (New ignored).";
+              }
+              enum fixed-new-propagated {
+                description
+                  "Registration Fixed (New propagated.";
+              }
+              enum forbidden {
+                description
+                  "Registration Forbidden.";
+              }
+              enum normal {
+                description
+                  "Normal Registration.";
+              }
+            }
+            description
+              "The Registrar Administrative Control values for MVRP and
+              MIRP for the VID.";
+            reference
+              "8.8.2 of IEEE Std 802.1Q-2022";
+          }
+          leaf vlan-transmitted {
+            type enumeration {
+              enum tagged {
+                description
+                  "VLAN-tagged";
+              }
+              enum untagged {
+                description
+                  "VLAN-untagged";
+              }
+            }
+            description
+              "Whether frames are to be VLAN-tagged or untagged when
+              transmitted.";
+            reference
+              "8.8.2 of IEEE Std 802.1Q-2022";
+          }
+        }
+        container mac-address-registration-entries {
+          description
+            "MAC address registration entries attributes.";
+          leaf control-element {
+            type enumeration {
+              enum registered {
+                description
+                  "Forwarded, independently of any dynamic filtering
+                  information held by the FDB.";
+              }
+              enum not-registered {
+                description
+                  "Filtered, independently of any dynamic filtering
+                  information.";
+              }
+            }
+            description
+              "containing a control element for each outbound Port,
+              specifying that a frame with a destination MAC address,
+              and in the case of VLAN Bridge components, VID that meets
+              this specification.";
+            reference
+              "8.8.4 of IEEE Std 802.1Q-2022";
+          }
+        }
+        container dynamic-vlan-registration-entries {
+          description
+            "Dynamic VLAN registration entries attributes.";
+          leaf control-element {
+            type enumeration {
+              enum registered {
+                description
+                  "Forwarded, independently of any dynamic filtering
+                  information held by the FDB.";
+              }
+            }
+            description
+              "containing a control element for each outbound Port,
+              specifying that a frame with a destination MAC address,
+              and in the case of VLAN Bridge components, VID that meets
+              this specification.";
+            reference
+              "8.8.5 of IEEE Std 802.1Q-2022";
+          }
+        }
+        container dynamic-reservation-entries {
+          description
+            "Dynamic reservation entries attributes.";
+          leaf control-element {
+            type enumeration {
+              enum forward {
+                description
+                  "Forwarded, independently of any dynamic filtering
+                  information held by the FDB.";
+              }
+              enum filter {
+                description
+                  "Filtered, independently of any dynamic filtering
+                  information.";
+              }
+            }
+            description
+              "Containing a control element for each outbound Port,
+              specifying that a frame with a destination MAC address,
+              and in the case of VLAN Bridge components, VID that meets
+              this specification.";
+            reference
+              "8.8.7 of IEEE Std 802.1Q-2022";
+          }
+        }
+        container dynamic-filtering-entries {
+          description
+            "Dynamic filtering entries attributes.";
+          leaf control-element {
+            type enumeration {
+              enum forward {
+                description
+                  "Forwarded, independently of any dynamic filtering
+                  information held by the FDB.";
+              }
+            }
+            description
+              "Containing a control element for each outbound Port,
+              specifying that a frame with a destination MAC address,
+              and in the case of VLAN Bridge components, VID that meets
+              this specification.";
+            reference
+              "8.8.3 of IEEE Std 802.1Q-2022";
+          }
+        }
+      }
+    }
+  }
+  grouping bridge-port-statistics-grouping {
+    description
+      "Grouping of bridge port statistics.";
+    reference
+      "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    leaf delay-exceeded-discards {
+      type yang:counter64;
+      description
+        "The number of frames discarded by this port due to excessive
+        transit delay through the Bridge. It is incremented by both
+        transparent and source route Bridges.";
+      reference
+        "12.6.1.1.3, 8.6.6 of IEEE Std 802.1Q-2022";
+    }
+    leaf mtu-exceeded-discards {
+      type yang:counter64;
+      description
+        "The number of frames discarded by this port due to an excessive
+        size. It is incremented by both transparent and source route
+        Bridges.";
+      reference
+        "Item g) in 12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf frame-rx {
+      type yang:counter64;
+      description
+        "The number of frames that have been received by this port from
+        its segment. Note that a frame received on the interface
+        corresponding to this port is only counted by this object if and
+        only if it is for a protocol being processed by the local
+        bridging function, including Bridge management frames.";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf octets-rx {
+      type yang:counter64;
+      description
+        "The total number of octets in all valid frames received
+        (including BPDUs, frames addressed to the Bridge as an end
+        station, and frames that were submitted to the Forwarding
+        Process).";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf frame-tx {
+      type yang:counter64;
+      description
+        "The number of frames that have been transmitted by this port to
+        its segment. Note that a frame transmitted on the interface
+        corresponding to this port is only counted by this object if and
+        only if it is for a protocol being processed by the local
+        bridging function, including Bridge management frames.";
+    }
+    leaf octets-tx {
+      type yang:counter64;
+      description
+        "The total number of octets that have been transmitted by this
+        port to its segment.";
+    }
+    leaf discard-inbound {
+      type yang:counter64;
+      description
+        "Count of received valid frames that were discarded (i.e.,
+        filtered) by the Forwarding Process.";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf forward-outbound {
+      type yang:counter64;
+      description
+        "The number of frames forwarded to the associated MAC Entity
+        (8.5).";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf discard-lack-of-buffers {
+      type yang:counter64;
+      description
+        "The count of frames that were to be transmitted through the
+        associated Port but were discarded due to lack of buffers.";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf discard-transit-delay-exceeded {
+      type yang:counter64;
+      description
+        "The number of frames discarded by this port due to excessive
+        transit delay through the Bridge. It is incremented by both
+        transparent and source route Bridges.";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+    leaf discard-on-error {
+      type yang:counter64;
+      description
+        "The number of frames that were to be forwarded on the
+        associated MAC but could not be transmitted (e.g., frame would
+        be too large, 6.5.8).";
+      reference
+        "12.6.1.1.3 of IEEE Std 802.1Q-2022";
+    }
+  }
+}
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-types.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-types.yang
new file mode 100644
index 0000000000000000000000000000000000000000..f7bce9974e0d04c7dba82729dd3642d349747896
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-types.yang
@@ -0,0 +1,287 @@
+module ieee802-types {
+  namespace urn:ieee:std:802.1Q:yang:ieee802-types;
+  prefix ieee;
+  organization
+    "IEEE 802.1 Working Group";
+  contact
+    "WG-URL: http://ieee802.org/1/
+    WG-EMail: stds-802-1-l@ieee.org
+    
+    Contact: IEEE 802.1 Working Group Chair
+    Postal: C/O IEEE 802.1 Working Group
+           IEEE Standards Association
+           445 Hoes Lane
+           Piscataway, NJ 08854
+           USA
+    
+    E-mail: stds-802-1-chairs@ieee.org";
+  description
+    "This module contains a collection of generally useful derived data
+    types for IEEE YANG models.
+    
+    Copyright (C) IEEE (2022).
+    
+    This version of this YANG module is part of IEEE Std 802.1Q; see the
+    standard itself for full legal notices.";
+  revision 2022-05-19 {
+    description
+      "Published as part of IEEE Std 802.1Q-2022.";
+    reference
+      "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
+  }
+  revision 2021-08-25 {
+    description
+      "Published as part of IEEE Std 802.1ABcu";
+    reference
+      "IEEE Std 802.1AB-2016";
+  }
+  revision 2020-06-04 {
+    description
+      "Published as part of IEEE Std 802.1Qcx-2020. Second version.";
+    reference
+      "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data
+      Model for Connectivity Fault Management.";
+  }
+  revision 2018-03-07 {
+    description
+      "Published as part of IEEE Std 802.1Q-2018. Initial version.";
+    reference
+      "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
+  }
+  typedef mac-address {
+    type string {
+      pattern "[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}";
+    }
+    description
+      "The mac-address type represents a MAC address in the canonical
+      format and hexadecimal format specified by IEEE Std 802. The
+      hexidecimal representation uses uppercase characters.";
+    reference
+      "3.1, 8.1 of IEEE Std 802-2014";
+  }
+  typedef chassis-id-subtype-type {
+    type enumeration {
+      enum chassis-component {
+        value 1;
+        description
+          "Represents a chassis identifier based on the value of
+          entPhysicalAlias object (defined in IETF RFC 2737) for a
+          chassis component (i.e., an entPhysicalClass value of
+          chassis(3))";
+      }
+      enum interface-alias {
+        value 2;
+        description
+          "Represents a chassis identifier based on the value of ifAlias
+          object (defined in IETF RFC 2863) for an interface on the
+          containing chassis.";
+      }
+      enum port-component {
+        value 3;
+        description
+          "Represents a chassis identifier based on the value of
+          entPhysicalAlias object (defined in IETF RFC 2737) for a port
+          or backplane component (i.e., entPhysicalClass value of
+          port(10) or backplane(4)), within the containing chassis.";
+      }
+      enum mac-address {
+        value 4;
+        description
+          "Represents a chassis identifier based on the value of a
+          unicast source address (encoded in network byte order and IEEE
+          802.3 canonical bit order), of a port on the containing
+          chassis as defined in IEEE Std 802-2001.";
+      }
+      enum network-address {
+        value 5;
+        description
+          "Represents a chassis identifier based on a network address,
+          associated with a particular chassis. The encoded address is
+          actually composed of two fields. The first field is a single
+          octet, representing the IANA AddressFamilyNumbers value for
+          the specific address type, and the second field is the network
+          address value.";
+      }
+      enum interface-name {
+        value 6;
+        description
+          "Represents a chassis identifier based on the value of ifName
+          object (defined in IETF RFC 2863) for an interface on the
+          containing chassis.";
+      }
+      enum local {
+        value 7;
+        description
+          "Represents a chassis identifier based on a locally defined
+          value.";
+      }
+    }
+    description
+      "The source of a chassis identifier.";
+    reference
+      "IEEE Std 802-2014;" +
+      "IETF RFC 2737;" +
+      "IETF RFC 2863";
+  }
+  typedef chassis-id-type {
+    type string {
+      length "1..255";
+    }
+    description
+      "The format of a chassis identifier string. Objects of this type
+      are always used with an associated lldp-chassis-is-subtype object,
+      which identifies the format of the particular lldp-chassis-id
+      object instance.
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      chassis-component, then the octet string identifies a particular
+      instance of the entPhysicalAlias object (defined in IETF RFC 2737)
+      for a chassis component (i.e., an entPhysicalClass value of
+      chassis(3)).
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      interface-alias, then the octet string identifies a particular
+      instance of the ifAlias object (defined in IETF RFC 2863) for an
+      interface on the containing chassis. If the particular ifAlias
+      object does not contain any values, another chassis identifier
+      type should be used.
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      port-component, then the octet string identifies a particular
+      instance of the entPhysicalAlias object (defined in IETF RFC 2737)
+      for a port or backplane component within the containing chassis.
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      mac-address, then this string identifies a particular unicast
+      source address (encoded in network byte order and IEEE 802.3
+      canonical bit order), of a port on the containing chassis as
+      defined in IEEE Std 802-2001.
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      network-address, then this string identifies a particular network
+      address, encoded in network byte order, associated with one or
+      more ports on the containing chassis. The first octet contains the
+      IANA Address Family Numbers enumeration value for the specific
+      address type, and octets 2 through N contain the network address
+      value in network byte order.
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      interface-name, then the octet string identifies a particular
+      instance of the ifName object (defined in IETF RFC 2863) for an
+      interface on the containing chassis. If the particular ifName
+      object does not contain any values, another chassis identifier
+      type should be used.
+      
+      If the associated lldp-chassis-id-subtype object has a value of
+      local, then this string identifies a locally assigned Chassis ID.";
+    reference
+      "IEEE Std 802-2014;" +
+      "IETF RFC 2737;" +
+      "IETF RFC 2863";
+  }
+  typedef port-id-subtype-type {
+    type enumeration {
+      enum interface-alias {
+        value 1;
+        description
+          "Represents a port identifier based on the ifAlias MIB object,
+          defined in IETF RFC 2863.";
+      }
+      enum port-component {
+        value 2;
+        description
+          "Represents a port identifier based on the value of
+          entPhysicalAlias (defined in IETF RFC 2737) for a port
+          component (i.e., entPhysicalClass value of port(10)), within
+          the containing chassis.";
+      }
+      enum mac-address {
+        value 3;
+        description
+          "Represents a port identifier based on a unicast source
+          address (encoded in network byte order and IEEE 802.3
+          canonical bit order), which has been detected by the agent and
+          associated with a particular port (IEEE Std 802-2001).";
+      }
+      enum network-address {
+        value 4;
+        description
+          "Represents a port identifier based on a network address,
+          detected by the agent and associated with a particular port.";
+      }
+      enum interface-name {
+        value 5;
+        description
+          "Represents a port identifier based on the ifName MIB object,
+          defined in IETF RFC 2863.";
+      }
+      enum agent-circuit-id {
+        value 6;
+        description
+          "Represents a port identifier based on the agent-local
+          identifier of the circuit (defined in RFC 3046), detected by
+          the agent and associated with a particular port.";
+      }
+      enum local {
+        value 7;
+        description
+          "Represents a port identifier based on a value locally
+          assigned.";
+      }
+    }
+    description
+      "The source of a particular type of port identifier used in the
+      LLDP YANG module.";
+  }
+  typedef port-id-type {
+    type string {
+      length "1..255";
+    }
+    description
+      "The format of a port identifier string. Objects of this type are
+      always used with an associated port-id-subtype object, which
+      identifies the format of the particular lldp-port-id object
+      instance.
+      
+      If the associated port-id-subtype object has a value of
+      interface-alias, then the octet string identifies a particular
+      instance of the ifAlias object (defined in IETF RFC 2863). If the
+      particular ifAlias object does not contain any values, another
+      port identifier type should be used.
+      
+      If the associated port-id-subtype object has a value of
+      port-component, then the octet string identifies a particular
+      instance of the entPhysicalAlias object (defined in IETF RFC 2737)
+      for a port or backplane component.
+      
+      If the associated port-id-subtype object has a value of
+      mac-address, then this string identifies a particular unicast
+      source address (encoded in network byte order and IEEE 802.3
+      canonical bit order) associated with the port (IEEE Std 802-2001).
+      
+      If the associated port-id-subtype object has a value of
+      network-address, then this string identifies a network address
+      associated with the port. The first octet contains the IANA
+      AddressFamilyNumbers enumeration value for the specific address
+      type, and octets 2 through N contain the networkAddress address
+      value in network byte order.
+      
+      If the associated port-id-subtype object has a value of
+      interface-name, then the octet string identifies a particular
+      instance of the ifName object (defined in IETF RFC 2863). If the
+      particular ifName object does not contain any values, another port
+      identifier type should be used.
+      
+      If the associated port-id-subtype object has a value of
+      agent-circuit-id, then this string identifies a agent-local
+      identifier of the circuit (defined in RFC 3046).
+      
+      If the associated port-id-subtype object has a value of
+      local, then this string identifies a locally assigned port ID.";
+    reference
+      "IEEE Std 802-2014;" +
+      "IETF RFC 2737;" +
+      "IETF RFC 2863," +
+      "IETF RFC 3046";
+  }
+}
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ietf-interfaces@2018-02-20.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ietf-interfaces@2018-02-20.yang
new file mode 100644
index 0000000000000000000000000000000000000000..f66c205ce076e65b2ded1d388c944a91829a48b5
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ietf-interfaces@2018-02-20.yang
@@ -0,0 +1,1123 @@
+module ietf-interfaces {
+  yang-version 1.1;
+  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
+  prefix if;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  organization
+    "IETF NETMOD (Network Modeling) Working Group";
+
+  contact
+    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
+     WG List:  <mailto:netmod@ietf.org>
+
+     Editor:   Martin Bjorklund
+               <mailto:mbj@tail-f.com>";
+
+  description
+    "This module contains a collection of YANG definitions for
+     managing network interfaces.
+
+     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 8343; see
+     the RFC itself for full legal notices.";
+
+  revision 2018-02-20 {
+    description
+      "Updated to support NMDA.";
+    reference
+      "RFC 8343: A YANG Data Model for Interface Management";
+  }
+
+  revision 2014-05-08 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7223: A YANG Data Model for Interface Management";
+  }
+
+  /*
+   * Typedefs
+   */
+
+  typedef interface-ref {
+    type leafref {
+      path "/if:interfaces/if:interface/if:name";
+    }
+    description
+      "This type is used by data models that need to reference
+       interfaces.";
+  }
+
+  /*
+   * Identities
+   */
+
+  identity interface-type {
+    description
+      "Base identity from which specific interface types are
+       derived.";
+  }
+
+  /*
+   * Features
+   */
+
+  feature arbitrary-names {
+    description
+      "This feature indicates that the device allows user-controlled
+       interfaces to be named arbitrarily.";
+  }
+  feature pre-provisioning {
+    description
+      "This feature indicates that the device supports
+       pre-provisioning of interface configuration, i.e., it is
+       possible to configure an interface whose physical interface
+       hardware is not present on the device.";
+  }
+  feature if-mib {
+    description
+      "This feature indicates that the device implements
+       the IF-MIB.";
+    reference
+      "RFC 2863: The Interfaces Group MIB";
+  }
+
+  /*
+   * Data nodes
+   */
+
+  container interfaces {
+    description
+      "Interface parameters.";
+
+    list interface {
+      key "name";
+
+      description
+        "The list of interfaces on the device.
+
+         The status of an interface is available in this list in the
+         operational state.  If the configuration of a
+         system-controlled interface cannot be used by the system
+         (e.g., the interface hardware present does not match the
+         interface type), then the configuration is not applied to
+         the system-controlled interface shown in the operational
+         state.  If the configuration of a user-controlled interface
+         cannot be used by the system, the configured interface is
+         not instantiated in the operational state.
+
+         System-controlled interfaces created by the system are
+         always present in this list in the operational state,
+         whether or not they are configured.";
+
+     leaf name {
+        type string;
+        description
+          "The name of the interface.
+
+           A device MAY restrict the allowed values for this leaf,
+           possibly depending on the type of the interface.
+           For system-controlled interfaces, this leaf is the
+           device-specific name of the interface.
+
+           If a client tries to create configuration for a
+           system-controlled interface that is not present in the
+           operational state, the server MAY reject the request if
+           the implementation does not support pre-provisioning of
+           interfaces or if the name refers to an interface that can
+           never exist in the system.  A Network Configuration
+           Protocol (NETCONF) server MUST reply with an rpc-error
+           with the error-tag 'invalid-value' in this case.
+
+           If the device supports pre-provisioning of interface
+           configuration, the 'pre-provisioning' feature is
+           advertised.
+
+           If the device allows arbitrarily named user-controlled
+           interfaces, the 'arbitrary-names' feature is advertised.
+
+           When a configured user-controlled interface is created by
+           the system, it is instantiated with the same name in the
+           operational state.
+
+           A server implementation MAY map this leaf to the ifName
+           MIB object.  Such an implementation needs to use some
+           mechanism to handle the differences in size and characters
+           allowed between this leaf and ifName.  The definition of
+           such a mechanism is outside the scope of this document.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifName";
+      }
+
+      leaf description {
+        type string;
+        description
+          "A textual description of the interface.
+
+           A server implementation MAY map this leaf to the ifAlias
+           MIB object.  Such an implementation needs to use some
+           mechanism to handle the differences in size and characters
+           allowed between this leaf and ifAlias.  The definition of
+           such a mechanism is outside the scope of this document.
+
+           Since ifAlias is defined to be stored in non-volatile
+           storage, the MIB implementation MUST map ifAlias to the
+           value of 'description' in the persistently stored
+           configuration.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAlias";
+      }
+
+      leaf type {
+        type identityref {
+          base interface-type;
+        }
+        mandatory true;
+        description
+          "The type of the interface.
+
+           When an interface entry is created, a server MAY
+           initialize the type leaf with a valid value, e.g., if it
+           is possible to derive the type from the name of the
+           interface.
+
+           If a client tries to set the type of an interface to a
+           value that can never be used by the system, e.g., if the
+           type is not supported or if the type does not match the
+           name of the interface, the server MUST reject the request.
+           A NETCONF server MUST reply with an rpc-error with the
+           error-tag 'invalid-value' in this case.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifType";
+      }
+
+      leaf enabled {
+        type boolean;
+        default "true";
+        description
+          "This leaf contains the configured, desired state of the
+           interface.
+
+           Systems that implement the IF-MIB use the value of this
+           leaf in the intended configuration to set
+           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+           has been initialized, as described in RFC 2863.
+
+           Changes in this leaf in the intended configuration are
+           reflected in ifAdminStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+      }
+
+      leaf link-up-down-trap-enable {
+        if-feature if-mib;
+        type enumeration {
+          enum enabled {
+            value 1;
+            description
+              "The device will generate linkUp/linkDown SNMP
+               notifications for this interface.";
+          }
+          enum disabled {
+            value 2;
+            description
+              "The device will not generate linkUp/linkDown SNMP
+               notifications for this interface.";
+          }
+        }
+        description
+          "Controls whether linkUp/linkDown SNMP notifications
+           should be generated for this interface.
+
+           If this node is not configured, the value 'enabled' is
+           operationally used by the server for interfaces that do
+           not operate on top of any other interface (i.e., there are
+           no 'lower-layer-if' entries), and 'disabled' otherwise.";
+        reference
+          "RFC 2863: The Interfaces Group MIB -
+                     ifLinkUpDownTrapEnable";
+      }
+
+      leaf admin-status {
+        if-feature if-mib;
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+            description
+              "Not ready to pass packets and not in some test mode.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.";
+          }
+        }
+        config false;
+        mandatory true;
+        description
+          "The desired state of the interface.
+
+           This leaf has the same read semantics as ifAdminStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+      }
+
+      leaf oper-status {
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+
+            description
+              "The interface does not pass any packets.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.  No operational packets can
+               be passed.";
+          }
+          enum unknown {
+            value 4;
+            description
+              "Status cannot be determined for some reason.";
+          }
+          enum dormant {
+            value 5;
+            description
+              "Waiting for some external event.";
+          }
+          enum not-present {
+            value 6;
+            description
+              "Some component (typically hardware) is missing.";
+          }
+          enum lower-layer-down {
+            value 7;
+            description
+              "Down due to state of lower-layer interface(s).";
+          }
+        }
+        config false;
+        mandatory true;
+        description
+          "The current operational state of the interface.
+
+           This leaf has the same semantics as ifOperStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
+      }
+
+      leaf last-change {
+        type yang:date-and-time;
+        config false;
+        description
+          "The time the interface entered its current operational
+           state.  If the current state was entered prior to the
+           last re-initialization of the local network management
+           subsystem, then this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifLastChange";
+      }
+
+      leaf if-index {
+        if-feature if-mib;
+        type int32 {
+          range "1..2147483647";
+        }
+        config false;
+        mandatory true;
+        description
+          "The ifIndex value for the ifEntry represented by this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifIndex";
+      }
+
+      leaf phys-address {
+        type yang:phys-address;
+        config false;
+        description
+          "The interface's address at its protocol sub-layer.  For
+           example, for an 802.x interface, this object normally
+           contains a Media Access Control (MAC) address.  The
+           interface's media-specific modules must define the bit
+           and byte ordering and the format of the value of this
+           object.  For interfaces that do not have such an address
+           (e.g., a serial line), this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
+      }
+
+      leaf-list higher-layer-if {
+        type interface-ref;
+        config false;
+        description
+          "A list of references to interfaces layered on top of this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf-list lower-layer-if {
+        type interface-ref;
+        config false;
+
+        description
+          "A list of references to interfaces layered underneath this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf speed {
+        type yang:gauge64;
+        units "bits/second";
+        config false;
+        description
+            "An estimate of the interface's current bandwidth in bits
+             per second.  For interfaces that do not vary in
+             bandwidth or for those where no accurate estimation can
+             be made, this node should contain the nominal bandwidth.
+             For interfaces that have no concept of bandwidth, this
+             node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB -
+                     ifSpeed, ifHighSpeed";
+      }
+
+      container statistics {
+        config false;
+        description
+          "A collection of interface-related statistics objects.";
+
+        leaf discontinuity-time {
+          type yang:date-and-time;
+          mandatory true;
+          description
+            "The time on the most recent occasion at which any one or
+             more of this interface's counters suffered a
+             discontinuity.  If no such discontinuities have occurred
+             since the last re-initialization of the local management
+             subsystem, then this node contains the time the local
+             management subsystem re-initialized itself.";
+        }
+
+        leaf in-octets {
+          type yang:counter64;
+          description
+            "The total number of octets received on the interface,
+             including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
+        }
+
+        leaf in-unicast-pkts {
+          type yang:counter64;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were not addressed to a
+             multicast or broadcast address at this sub-layer.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
+        }
+
+        leaf in-broadcast-pkts {
+          type yang:counter64;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a broadcast
+             address at this sub-layer.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInBroadcastPkts";
+        }
+
+        leaf in-multicast-pkts {
+          type yang:counter64;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a multicast
+             address at this sub-layer.  For a MAC-layer protocol,
+             this includes both Group and Functional addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInMulticastPkts";
+        }
+
+        leaf in-discards {
+          type yang:counter32;
+          description
+            "The number of inbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being deliverable to a higher-layer
+             protocol.  One possible reason for discarding such a
+             packet could be to free up buffer space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
+        }
+
+        leaf in-errors {
+          type yang:counter32;
+          description
+            "For packet-oriented interfaces, the number of inbound
+             packets that contained errors preventing them from being
+             deliverable to a higher-layer protocol.  For character-
+             oriented or fixed-length interfaces, the number of
+             inbound transmission units that contained errors
+             preventing them from being deliverable to a higher-layer
+             protocol.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInErrors";
+        }
+
+        leaf in-unknown-protos {
+          type yang:counter32;
+
+          description
+            "For packet-oriented interfaces, the number of packets
+             received via the interface that were discarded because
+             of an unknown or unsupported protocol.  For
+             character-oriented or fixed-length interfaces that
+             support protocol multiplexing, the number of
+             transmission units received via the interface that were
+             discarded because of an unknown or unsupported protocol.
+             For any interface that does not support protocol
+             multiplexing, this counter is not present.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
+        }
+
+        leaf out-octets {
+          type yang:counter64;
+          description
+            "The total number of octets transmitted out of the
+             interface, including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
+        }
+
+        leaf out-unicast-pkts {
+          type yang:counter64;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were not addressed
+             to a multicast or broadcast address at this sub-layer,
+             including those that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
+        }
+
+        leaf out-broadcast-pkts {
+          type yang:counter64;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             broadcast address at this sub-layer, including those
+             that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutBroadcastPkts";
+        }
+
+        leaf out-multicast-pkts {
+          type yang:counter64;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             multicast address at this sub-layer, including those
+             that were discarded or not sent.  For a MAC-layer
+             protocol, this includes both Group and Functional
+             addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutMulticastPkts";
+        }
+
+        leaf out-discards {
+          type yang:counter32;
+          description
+            "The number of outbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being transmitted.  One possible reason
+             for discarding such a packet could be to free up buffer
+             space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
+        }
+
+        leaf out-errors {
+          type yang:counter32;
+          description
+            "For packet-oriented interfaces, the number of outbound
+             packets that could not be transmitted because of errors.
+             For character-oriented or fixed-length interfaces, the
+             number of outbound transmission units that could not be
+             transmitted because of errors.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
+        }
+      }
+
+    }
+  }
+
+  /*
+   * Legacy typedefs
+   */
+
+  typedef interface-state-ref {
+    type leafref {
+      path "/if:interfaces-state/if:interface/if:name";
+    }
+    status deprecated;
+    description
+      "This type is used by data models that need to reference
+       the operationally present interfaces.";
+  }
+
+  /*
+   * Legacy operational state data nodes
+   */
+
+  container interfaces-state {
+    config false;
+    status deprecated;
+    description
+      "Data nodes for the operational state of interfaces.";
+
+    list interface {
+      key "name";
+      status deprecated;
+
+      description
+        "The list of interfaces on the device.
+
+         System-controlled interfaces created by the system are
+         always present in this list, whether or not they are
+         configured.";
+
+      leaf name {
+        type string;
+        status deprecated;
+        description
+          "The name of the interface.
+
+           A server implementation MAY map this leaf to the ifName
+           MIB object.  Such an implementation needs to use some
+           mechanism to handle the differences in size and characters
+           allowed between this leaf and ifName.  The definition of
+           such a mechanism is outside the scope of this document.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifName";
+      }
+
+      leaf type {
+        type identityref {
+          base interface-type;
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The type of the interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifType";
+      }
+
+      leaf admin-status {
+        if-feature if-mib;
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+            description
+              "Not ready to pass packets and not in some test mode.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.";
+          }
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The desired state of the interface.
+
+           This leaf has the same read semantics as ifAdminStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+      }
+
+      leaf oper-status {
+        type enumeration {
+          enum up {
+            value 1;
+            description
+              "Ready to pass packets.";
+          }
+          enum down {
+            value 2;
+            description
+              "The interface does not pass any packets.";
+          }
+          enum testing {
+            value 3;
+            description
+              "In some test mode.  No operational packets can
+               be passed.";
+          }
+          enum unknown {
+            value 4;
+            description
+              "Status cannot be determined for some reason.";
+          }
+          enum dormant {
+            value 5;
+            description
+              "Waiting for some external event.";
+          }
+          enum not-present {
+            value 6;
+            description
+              "Some component (typically hardware) is missing.";
+          }
+          enum lower-layer-down {
+            value 7;
+            description
+              "Down due to state of lower-layer interface(s).";
+          }
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The current operational state of the interface.
+
+           This leaf has the same semantics as ifOperStatus.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
+      }
+
+      leaf last-change {
+        type yang:date-and-time;
+        status deprecated;
+        description
+          "The time the interface entered its current operational
+           state.  If the current state was entered prior to the
+           last re-initialization of the local network management
+           subsystem, then this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifLastChange";
+      }
+
+      leaf if-index {
+        if-feature if-mib;
+        type int32 {
+          range "1..2147483647";
+        }
+        mandatory true;
+        status deprecated;
+        description
+          "The ifIndex value for the ifEntry represented by this
+           interface.";
+
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifIndex";
+      }
+
+      leaf phys-address {
+        type yang:phys-address;
+        status deprecated;
+        description
+          "The interface's address at its protocol sub-layer.  For
+           example, for an 802.x interface, this object normally
+           contains a Media Access Control (MAC) address.  The
+           interface's media-specific modules must define the bit
+           and byte ordering and the format of the value of this
+           object.  For interfaces that do not have such an address
+           (e.g., a serial line), this node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
+      }
+
+      leaf-list higher-layer-if {
+        type interface-state-ref;
+        status deprecated;
+        description
+          "A list of references to interfaces layered on top of this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf-list lower-layer-if {
+        type interface-state-ref;
+        status deprecated;
+        description
+          "A list of references to interfaces layered underneath this
+           interface.";
+        reference
+          "RFC 2863: The Interfaces Group MIB - ifStackTable";
+      }
+
+      leaf speed {
+        type yang:gauge64;
+        units "bits/second";
+        status deprecated;
+        description
+            "An estimate of the interface's current bandwidth in bits
+             per second.  For interfaces that do not vary in
+             bandwidth or for those where no accurate estimation can
+
+             be made, this node should contain the nominal bandwidth.
+             For interfaces that have no concept of bandwidth, this
+             node is not present.";
+        reference
+          "RFC 2863: The Interfaces Group MIB -
+                     ifSpeed, ifHighSpeed";
+      }
+
+      container statistics {
+        status deprecated;
+        description
+          "A collection of interface-related statistics objects.";
+
+        leaf discontinuity-time {
+          type yang:date-and-time;
+          mandatory true;
+          status deprecated;
+          description
+            "The time on the most recent occasion at which any one or
+             more of this interface's counters suffered a
+             discontinuity.  If no such discontinuities have occurred
+             since the last re-initialization of the local management
+             subsystem, then this node contains the time the local
+             management subsystem re-initialized itself.";
+        }
+
+        leaf in-octets {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of octets received on the interface,
+             including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
+        }
+
+        leaf in-unicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were not addressed to a
+             multicast or broadcast address at this sub-layer.
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
+        }
+
+        leaf in-broadcast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a broadcast
+             address at this sub-layer.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInBroadcastPkts";
+        }
+
+        leaf in-multicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The number of packets, delivered by this sub-layer to a
+             higher (sub-)layer, that were addressed to a multicast
+             address at this sub-layer.  For a MAC-layer protocol,
+             this includes both Group and Functional addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCInMulticastPkts";
+        }
+
+        leaf in-discards {
+          type yang:counter32;
+          status deprecated;
+
+          description
+            "The number of inbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being deliverable to a higher-layer
+             protocol.  One possible reason for discarding such a
+             packet could be to free up buffer space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
+        }
+
+        leaf in-errors {
+          type yang:counter32;
+          status deprecated;
+          description
+            "For packet-oriented interfaces, the number of inbound
+             packets that contained errors preventing them from being
+             deliverable to a higher-layer protocol.  For character-
+             oriented or fixed-length interfaces, the number of
+             inbound transmission units that contained errors
+             preventing them from being deliverable to a higher-layer
+             protocol.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInErrors";
+        }
+
+        leaf in-unknown-protos {
+          type yang:counter32;
+          status deprecated;
+          description
+            "For packet-oriented interfaces, the number of packets
+             received via the interface that were discarded because
+             of an unknown or unsupported protocol.  For
+             character-oriented or fixed-length interfaces that
+             support protocol multiplexing, the number of
+             transmission units received via the interface that were
+             discarded because of an unknown or unsupported protocol.
+             For any interface that does not support protocol
+             multiplexing, this counter is not present.
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
+        }
+
+        leaf out-octets {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of octets transmitted out of the
+             interface, including framing characters.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
+        }
+
+        leaf out-unicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were not addressed
+             to a multicast or broadcast address at this sub-layer,
+             including those that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
+        }
+
+        leaf out-broadcast-pkts {
+          type yang:counter64;
+          status deprecated;
+
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             broadcast address at this sub-layer, including those
+             that were discarded or not sent.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutBroadcastPkts";
+        }
+
+        leaf out-multicast-pkts {
+          type yang:counter64;
+          status deprecated;
+          description
+            "The total number of packets that higher-level protocols
+             requested be transmitted and that were addressed to a
+             multicast address at this sub-layer, including those
+             that were discarded or not sent.  For a MAC-layer
+             protocol, this includes both Group and Functional
+             addresses.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB -
+                       ifHCOutMulticastPkts";
+        }
+
+        leaf out-discards {
+          type yang:counter32;
+          status deprecated;
+          description
+            "The number of outbound packets that were chosen to be
+             discarded even though no errors had been detected to
+             prevent their being transmitted.  One possible reason
+             for discarding such a packet could be to free up buffer
+             space.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
+        }
+
+        leaf out-errors {
+          type yang:counter32;
+          status deprecated;
+          description
+            "For packet-oriented interfaces, the number of outbound
+             packets that could not be transmitted because of errors.
+             For character-oriented or fixed-length interfaces, the
+             number of outbound transmission units that could not be
+             transmitted because of errors.
+
+             Discontinuities in the value of this counter can occur
+             at re-initialization of the management system and at
+             other times as indicated by the value of
+             'discontinuity-time'.";
+          reference
+            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
+        }
+      }
+    }
+  }
+}
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang
index 082fd1e103b6e969b5fa0ad2632c2113c8c65c5d..d007bd479a9f6857ef2669f4cc7f7dfbc439a976 100644
--- a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang
@@ -90,10 +90,76 @@ module example-sports {
             }
             default "tcp";
         }
+        list ext-cpd {
+            choice cp-connection {
+                // no case
+                leaf int-virtual-link-desc {
+                    type string;
+                }
+                container int-cpd {
+                    leaf vdu-id {
+                        type string;
+                    }
+                    leaf cpd {
+                        type string;
+                    }
+                }
+            }
+        }
+        list case-ext-cpd {
+            choice cp-connection {
+                // case
+                case a {
+                    leaf int-virtual-link-desc {
+                        type string;
+                    }
+                }
+                case b {
+
+                    container int-cpd {
+                        leaf vdu-id {
+                            type string;
+                        }
+                        leaf cpd {
+                            type string;
+                        }
+                    }
+                }
+            }
+        }
+
     }
     grouping g2 {
         leaf protocolz {
             type string;
         }
+        list port-map {
+            key "port-ref";
+            leaf port-ref {
+                type string;
+            }
+            choice map-type {
+                // no case
+                container static-filtering-entries {
+                    leaf control-element {
+                        type enumeration {
+                            enum forward;
+                            enum filter;
+                        }
+                    }
+                    leaf connection-identifier {
+                        type string;
+                    }
+                }
+                container static-vlan-registration-entries {
+                    leaf registrar-admin-control {
+                        type enumeration {
+                            enum fixed-new-ignored;
+                            enum forbidden;
+                        }
+                    }
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx
index e234739a0dc59d4f72b206acdd7f4ea1c46da73b..e1a95041616f9bcef463d1dc76f417cd2914e256 100644
--- a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx
+++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx
@@ -2,56 +2,1292 @@ Package generated_from_sports_yang {
     Type String
     Type TODO_RESOLVE_REFERENCED
     Use "sports.yang" as SOURCE_MAPPING
-    Structure sports (
-        sports___person_collection person,
-        sports___team_collection team,
-        sports___protocol_collection protocol
+    Structure nfv (
+        nfv___vnfd_collection vnfd,
+        nfv___nsd_collection nsd,
+        nfv___pnfd_collection pnfd
     )
-    Structure sports___person (
-        person___name ^name,
-        person___birthday birthday
+    Structure nfv___vnfd (
+        string id,
+        string provider,
+        string product_name,
+        string software_version,
+        string version,
+        string product_info_name,
+        string product_info_description,
+        string_collection vnfm_info,
+        string localization_language,
+        string default_localization_language,
+        vnfd___vdu_collection vdu,
+        vnfd___virtual_compute_desc_collection virtual_compute_desc,
+        vnfd___virtual_storage_desc_collection virtual_storage_desc,
+        vnfd___sw_image_desc_collection sw_image_desc,
+        vnfd___int_virtual_link_desc_collection int_virtual_link_desc,
+        vnfd___ext_cpd_collection ext_cpd,
+        vnfd___df_collection df,
+        vnfd___configurable_properties configurable_properties,
+        vnfd___modifiable_attributes modifiable_attributes,
+        vnfd___lifecycle_management_script_collection lifecycle_management_script,
+        vnfd___element_group_collection element_group,
+        vnfd___indicator_collection indicator,
+        string_collection auto_scale,
+        vnfd___security_group_rule_collection security_group_rule
     )
-    Type person___name
-    Type person___birthday extends string
     Type string
-    Collection sports___person_collection of sports___person
-    Structure sports___team (
-        team___name ^name,
-        team___player_collection player,
-        team___protocol protocol
-    )
-    Type team___name
-    Structure team___player (
-        player___name ^name,
-        player___season season,
-        player___number number,
-        player___scores scores,
-        uint16_collection score_list
-    )
-    Type player___name
-    Type player___season extends string
-    Type player___number
-    Type player___scores extends uint16
+    Collection string_collection of string
+    Structure vnfd___vdu (
+        string id,
+        string ^name,
+        string description,
+        vdu___int_cpd_collection int_cpd,
+        @LeafRefPath : "../../virtual-compute-desc/id"
+        leafref virtual_compute_desc,
+        @LeafRefPath : "../../virtual-storage-desc/id"
+        leafref_collection virtual_storage_desc,
+        vdu___boot_order_collection boot_order,
+        @LeafRefPath : "../../sw-image-desc/id"
+        leafref sw_image_desc,
+        string_collection nfvi_constraint,
+        vdu___monitoring_parameter_collection monitoring_parameter,
+        vdu___configurable_properties_collection configurable_properties,
+        string boot_data
+    )
+    Structure vdu___int_cpd (
+        @LeafRefPath : "../../../int-virtual-link-desc/id"
+        leafref int_virtual_link_desc,
+        bitrate_requirement bitrate_requirement,
+        @LeafRefPath : "../../../virtual-compute-desc/id"
+        leafref nicio_requirements,
+        uint32_collection order,
+        @LeafRefPath : "../../../security-group-rule/id"
+        leafref security_group_rule_id,
+        string id,
+        identityref_collection layer_protocol,
+        identityref role,
+        string description,
+        int_cpd___protocol_collection protocol,
+        boolean trunk_mode,
+        int_cpd___virtual_network_interface_requirement_collection virtual_network_interface_requirement
+    )
+    Type leafref
+    Annotation LeafRefPath
+    Type bitrate_requirement extends uint64
+    Type uint64
+    Type uint32 extends uint32
+    Collection uint32_collection of uint32
+    Type identityref
+    Collection identityref_collection of identityref
+    Structure int_cpd___protocol (
+        identityref associated_layer_protocol,
+        protocol___address_data_collection address_data
+    )
+    Structure protocol___address_data (
+        identityref ^type,
+        address_data___l2_address_data l2_address_data,
+        address_data___l3_address_data l3_address_data
+    )
+    Structure address_data___l2_address_data (
+        boolean mac_address_assignment
+    )
+    Type boolean
+    Structure address_data___l3_address_data (
+        boolean ip_address_assignment,
+        boolean floating_ip_activated,
+        enumeration ip_address_type,
+        uint32 number_of_ip_addresses
+    )
+    Type enumeration
+    Collection protocol___address_data_collection of protocol___address_data
+    Collection int_cpd___protocol_collection of int_cpd___protocol
+    Structure int_cpd___virtual_network_interface_requirement (
+        string ^name,
+        string description,
+        support_mandatory support_mandatory,
+        virtual_network_interface_requirement___network_interface_requirements_collection network_interface_requirements
+    )
+    Type support_mandatory extends boolean
+    Structure virtual_network_interface_requirement___network_interface_requirements (
+        string key,
+        string ^value
+    )
+    Collection virtual_network_interface_requirement___network_interface_requirements_collection of virtual_network_interface_requirement___network_interface_requirements
+    Collection int_cpd___virtual_network_interface_requirement_collection of int_cpd___virtual_network_interface_requirement
+    Collection vdu___int_cpd_collection of vdu___int_cpd
+    Collection leafref_collection of leafref
+    Structure vdu___boot_order (
+        uint32 key,
+        @LeafRefPath : "../../virtual-storage-desc"
+        leafref ^value
+    )
+    Collection vdu___boot_order_collection of vdu___boot_order
+    Structure vdu___monitoring_parameter (
+        string id,
+        string ^name,
+        string performance_metric,
+        collection_period collection_period
+    )
+    Type collection_period extends uint64
+    Collection vdu___monitoring_parameter_collection of vdu___monitoring_parameter
+    Structure vdu___configurable_properties (
+        string key,
+        string ^value
+    )
+    Collection vdu___configurable_properties_collection of vdu___configurable_properties
+    Collection vnfd___vdu_collection of vnfd___vdu
+    Structure vnfd___virtual_compute_desc (
+        string id,
+        virtual_compute_desc___logical_node_collection logical_node,
+        virtual_compute_desc___request_additional_capability_collection request_additional_capability,
+        string compute_requirements,
+        virtual_compute_desc___virtual_memory virtual_memory,
+        virtual_compute_desc___virtual_cpu virtual_cpu
+    )
+    Structure virtual_compute_desc___logical_node (
+        string id,
+        logical_node___requirement_detail_collection requirement_detail
+    )
+    Structure logical_node___requirement_detail (
+        string key,
+        string ^value
+    )
+    Collection logical_node___requirement_detail_collection of logical_node___requirement_detail
+    Collection virtual_compute_desc___logical_node_collection of virtual_compute_desc___logical_node
+    Structure virtual_compute_desc___request_additional_capability (
+        string ^name,
+        boolean support_mandatory,
+        string min_version,
+        string preferred_version,
+        request_additional_capability___target_performance_parameters_collection target_performance_parameters
+    )
+    Structure request_additional_capability___target_performance_parameters (
+        string key,
+        string ^value
+    )
+    Collection request_additional_capability___target_performance_parameters_collection of request_additional_capability___target_performance_parameters
+    Collection virtual_compute_desc___request_additional_capability_collection of virtual_compute_desc___request_additional_capability
+    Structure virtual_compute_desc___virtual_memory (
+        ^size ^size,
+        string over_subscription_policy,
+        virtual_memory___vdu_mem_requirements_collection vdu_mem_requirements,
+        boolean numa_enabled
+    )
+    Type ^size extends uint64
+    Type decimal64
+    Structure virtual_memory___vdu_mem_requirements (
+        string key,
+        string ^value
+    )
+    Collection virtual_memory___vdu_mem_requirements_collection of virtual_memory___vdu_mem_requirements
+    Structure virtual_compute_desc___virtual_cpu (
+        string cpu_architecture,
+        num_virtual_cpu num_virtual_cpu,
+        clock clock,
+        string oversubscription_policy,
+        virtual_cpu___vdu_cpu_requirements_collection vdu_cpu_requirements,
+        virtual_cpu___pinning pinning
+    )
+    Type num_virtual_cpu extends uint16
     Type uint16
-    Collection uint16_collection of uint16
-    Collection team___player_collection of team___player
-    Enumerated team___protocol {
-        team___protocol tcp,
-        team___protocol udp,
-        team___protocol icmp
-    }
-    Collection sports___team_collection of sports___team
-    Structure sports___protocol (
-        protocol___associated_layer_protocol associated_layer_protocol,
-        protocol___protocoly protocoly,
-        protocol___protocolz protocolz
-    )
-    Type protocol___associated_layer_protocol
-    Enumerated protocol___protocoly {
-        protocol___protocoly tcp,
-        protocol___protocoly udp,
-        protocol___protocoly icmp
-    }
-    Type protocol___protocolz
-    Collection sports___protocol_collection of sports___protocol
+    Type clock extends uint32
+    Structure virtual_cpu___vdu_cpu_requirements (
+        string key,
+        string ^value
+    )
+    Collection virtual_cpu___vdu_cpu_requirements_collection of virtual_cpu___vdu_cpu_requirements
+    Structure virtual_cpu___pinning (
+        policy policy,
+        pinning___rule_collection rule
+    )
+    Enumerated policy {
+        policy static,
+        policy dynamic
+    }
+    Structure pinning___rule (
+        string key,
+        string ^value
+    )
+    Collection pinning___rule_collection of pinning___rule
+    Collection vnfd___virtual_compute_desc_collection of vnfd___virtual_compute_desc
+    Structure vnfd___virtual_storage_desc (
+        string id,
+        type_of_storage type_of_storage,
+        size_of_storage size_of_storage,
+        virtual_storage_desc___vdu_storage_requirements_collection vdu_storage_requirements,
+        boolean rdma_enabled,
+        @LeafRefPath : "../../sw-image-desc/id"
+        leafref sw_image_desc
+    )
+    Type type_of_storage extends identityref
+    Type size_of_storage extends uint64
+    Structure virtual_storage_desc___vdu_storage_requirements (
+        string key,
+        string ^value
+    )
+    Collection virtual_storage_desc___vdu_storage_requirements_collection of virtual_storage_desc___vdu_storage_requirements
+    Collection vnfd___virtual_storage_desc_collection of vnfd___virtual_storage_desc
+    Structure vnfd___sw_image_desc (
+        string id,
+        string ^name,
+        string version,
+        sw_image_desc___checksum checksum,
+        container_format container_format,
+        disk_format disk_format,
+        min_disk min_disk,
+        min_ram min_ram,
+        ^size ^size,
+        image image,
+        string operating_system,
+        string_collection supported_virtualization_environment
+    )
+    Structure sw_image_desc___checksum (
+        identityref algorithm,
+        string hash
+    )
+    Enumerated container_format {
+        container_format aki,
+        container_format ami,
+        container_format ari,
+        container_format bare,
+        container_format docker,
+        container_format ova,
+        container_format ovf
+    }
+    Enumerated disk_format {
+        disk_format aki,
+        disk_format ami,
+        disk_format ari,
+        disk_format iso,
+        disk_format qcow2,
+        disk_format raw,
+        disk_format vdi,
+        disk_format vhd,
+        disk_format vhdx,
+        disk_format vmdk
+    }
+    Type min_disk extends uint64
+    Type min_ram extends decimal64
+    Type image extends uri
+    Type uri
+    Collection vnfd___sw_image_desc_collection of vnfd___sw_image_desc
+    Structure vnfd___int_virtual_link_desc (
+        string id,
+        int_virtual_link_desc___flavour_collection flavour,
+        string_collection test_access,
+        string description,
+        int_virtual_link_desc___monitoring_parameters_collection monitoring_parameters,
+        int_virtual_link_desc___connectivity_type connectivity_type
+    )
+    Structure int_virtual_link_desc___flavour (
+        string id,
+        flavour___qos qos
+    )
+    Structure flavour___qos (
+        latency latency,
+        packet_delay_variation packet_delay_variation,
+        decimal64 packet_loss_ratio
+    )
+    Type latency extends uint32
+    Type packet_delay_variation extends uint32
+    Collection int_virtual_link_desc___flavour_collection of int_virtual_link_desc___flavour
+    Structure int_virtual_link_desc___monitoring_parameters (
+        string id,
+        string ^name,
+        string performance_metric,
+        collection_period collection_period
+    )
+    Collection int_virtual_link_desc___monitoring_parameters_collection of int_virtual_link_desc___monitoring_parameters
+    Structure int_virtual_link_desc___connectivity_type (
+        identityref_collection layer_protocol,
+        flow_pattern flow_pattern
+    )
+    Enumerated flow_pattern {
+        flow_pattern line,
+        flow_pattern tree,
+        flow_pattern mesh,
+        flow_pattern line,
+        flow_pattern tree,
+        flow_pattern mesh
+    }
+    Collection vnfd___int_virtual_link_desc_collection of vnfd___int_virtual_link_desc
+    Structure vnfd___ext_cpd (
+        ext_cpd___cp_connection cp_connection,
+        @LeafRefPath : "../../virtual-compute-desc/id"
+        leafref nicio_requirements,
+        @LeafRefPath : "../../security-group-rule/id"
+        leafref security_group_rule_id,
+        string id,
+        identityref_collection layer_protocol,
+        identityref role,
+        string description,
+        ext_cpd___protocol_collection protocol,
+        boolean trunk_mode,
+        ext_cpd___virtual_network_interface_requirement_collection virtual_network_interface_requirement
+    )
+    Structure ext_cpd___cp_connection (
+        cp_connection___int_virtual_link_desc int_virtual_link_desc,
+        cp_connection___int_cpd int_cpd
+    )
+    Structure cp_connection___int_virtual_link_desc (
+        @LeafRefPath : "../../int-virtual-link-desc/id"
+        leafref int_virtual_link_desc
+    )
+    Structure cp_connection___int_cpd (
+        int_cpd___int_cpd int_cpd
+    )
+    Structure int_cpd___int_cpd (
+        @LeafRefPath : "../../../vdu/id"
+        leafref vdu_id,
+        @LeafRefPath : "deref(../vdu-id)/../int-cpd/id"
+        leafref cpd
+    )
+    Structure ext_cpd___protocol (
+        identityref associated_layer_protocol,
+        protocol___address_data_collection address_data
+    )
+    Collection ext_cpd___protocol_collection of ext_cpd___protocol
+    Structure ext_cpd___virtual_network_interface_requirement (
+        string ^name,
+        string description,
+        support_mandatory support_mandatory,
+        virtual_network_interface_requirement___network_interface_requirements_collection network_interface_requirements
+    )
+    Collection ext_cpd___virtual_network_interface_requirement_collection of ext_cpd___virtual_network_interface_requirement
+    Collection vnfd___ext_cpd_collection of vnfd___ext_cpd
+    Structure vnfd___df (
+        string id,
+        string description,
+        df___vdu_profile_collection vdu_profile,
+        df___virtual_link_profile_collection virtual_link_profile,
+        df___instantiation_level_collection instantiation_level,
+        @LeafRefPath : "../instantiation-level/id"
+        leafref default_instantiation_level,
+        identityref_collection supported_operation,
+        df___lcm_operations_configuration lcm_operations_configuration,
+        df___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group,
+        df___indicator_collection indicator,
+        df___supported_vnf_interfaces_collection supported_vnf_interfaces,
+        df___monitoring_parameter_collection monitoring_parameter,
+        df___scaling_aspect_collection scaling_aspect
+    )
+    Structure df___vdu_profile (
+        @LeafRefPath : "../../../vdu/id"
+        leafref id,
+        min_number_of_instances min_number_of_instances,
+        max_number_of_instances max_number_of_instances,
+        vdu_profile___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group,
+        vdu_profile___local_affinity_or_anti_affinity_rule_collection local_affinity_or_anti_affinity_rule
+    )
+    Type min_number_of_instances extends uint16
+    Type max_number_of_instances extends uint16
+    Structure vdu_profile___affinity_or_anti_affinity_group (
+        @LeafRefPath : "../../../affinity-or-anti-affinity-group/id"
+        leafref id
+    )
+    Collection vdu_profile___affinity_or_anti_affinity_group_collection of vdu_profile___affinity_or_anti_affinity_group
+    Structure vdu_profile___local_affinity_or_anti_affinity_rule (
+        affinity_type affinity_type,
+        affinity_scope affinity_scope
+    )
+    Enumerated affinity_type {
+        affinity_type affinity,
+        affinity_type anti_affinity,
+        affinity_type affinity,
+        affinity_type anti_affinity,
+        affinity_type affinity,
+        affinity_type anti_affinity,
+        affinity_type affinity,
+        affinity_type anti_affinity,
+        affinity_type affinity,
+        affinity_type anti_affinity,
+        affinity_type affinity,
+        affinity_type anti_affinity
+    }
+    Enumerated affinity_scope {
+        affinity_scope nfvi_node,
+        affinity_scope zone_group,
+        affinity_scope zone,
+        affinity_scope nfvi_pop,
+        affinity_scope nfvi_node,
+        affinity_scope zone_group,
+        affinity_scope zone,
+        affinity_scope nfvi_pop,
+        affinity_scope nfvi_node,
+        affinity_scope zone_group,
+        affinity_scope zone,
+        affinity_scope nfvi_pop,
+        affinity_scope nfvi_node,
+        affinity_scope zone_group,
+        affinity_scope zone,
+        affinity_scope nfvi_pop,
+        affinity_scope nfvi_node,
+        affinity_scope zone_group,
+        affinity_scope zone,
+        affinity_scope nfvi_pop,
+        affinity_scope nfvi_node,
+        affinity_scope zone_group,
+        affinity_scope zone,
+        affinity_scope nfvi_pop
+    }
+    Collection vdu_profile___local_affinity_or_anti_affinity_rule_collection of vdu_profile___local_affinity_or_anti_affinity_rule
+    Collection df___vdu_profile_collection of df___vdu_profile
+    Structure df___virtual_link_profile (
+        @LeafRefPath : "../../../int-virtual-link-desc/id"
+        leafref id,
+        @LeafRefPath : "deref(../../../ext-cpd/int-virtual-link-desc)/../flavour/id"
+        leafref flavour,
+        virtual_link_profile___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group,
+        virtual_link_profile___max_bit_rate_requirements max_bit_rate_requirements,
+        virtual_link_profile___min_bit_rate_requirements min_bit_rate_requirements,
+        virtual_link_profile___virtual_link_protocol_data virtual_link_protocol_data,
+        virtual_link_profile___local_affinity_or_anti_affinity_rule_collection local_affinity_or_anti_affinity_rule,
+        @LeafRefPath : "../../../virtual-link-desc/id"
+        leafref virtual_link_desc_id,
+        @LeafRefPath : "deref(../virtual-link-desc-id)/../df/id"
+        leafref flavour_id,
+        virtual_link_profile___max_bitrate_requirements max_bitrate_requirements,
+        virtual_link_profile___min_bitrate_requirements min_bitrate_requirements
+    )
+    Structure virtual_link_profile___affinity_or_anti_affinity_group (
+        @LeafRefPath : "../../../affinity-or-anti-affinity-group/id"
+        leafref id
+    )
+    Collection virtual_link_profile___affinity_or_anti_affinity_group_collection of virtual_link_profile___affinity_or_anti_affinity_group
+    Structure virtual_link_profile___max_bit_rate_requirements (
+        uint32 root,
+        uint32 leaf
+    )
+    Structure virtual_link_profile___min_bit_rate_requirements (
+        uint32 root,
+        uint32 leaf
+    )
+    Structure virtual_link_profile___virtual_link_protocol_data (
+        identityref associated_layer_protocol,
+        virtual_link_protocol_data___l2_protocol_data l2_protocol_data,
+        virtual_link_protocol_data___l3_protocol_data l3_protocol_data
+    )
+    Structure virtual_link_protocol_data___l2_protocol_data (
+        string ^name,
+        enumeration network_type,
+        boolean vlan_transparent,
+        uint16 mtu
+    )
+    Structure virtual_link_protocol_data___l3_protocol_data (
+        string ^name,
+        ip_version ip_version,
+        string cidr,
+        string_collection ip_allocation_pools,
+        ip_address gateway_ip,
+        dhcp_enabled dhcp_enabled,
+        enumeration ipv6_address_mode
+    )
+    Enumerated ip_version {
+        ip_version ipv4,
+        ip_version ipv6
+    }
+    Type ip_address extends union
+    Type union
+    Type dhcp_enabled extends boolean
+    Structure virtual_link_profile___local_affinity_or_anti_affinity_rule (
+        affinity_type affinity_type,
+        affinity_scope affinity_scope
+    )
+    Collection virtual_link_profile___local_affinity_or_anti_affinity_rule_collection of virtual_link_profile___local_affinity_or_anti_affinity_rule
+    Collection df___virtual_link_profile_collection of df___virtual_link_profile
+    Structure df___instantiation_level (
+        string id,
+        string description,
+        instantiation_level___vdu_level_collection vdu_level,
+        instantiation_level___scaling_info_collection scaling_info
+    )
+    Structure instantiation_level___vdu_level (
+        @LeafRefPath : "../../../../vdu/id"
+        leafref vdu_id,
+        number_of_instances number_of_instances
+    )
+    Type number_of_instances extends uint32
+    Collection instantiation_level___vdu_level_collection of instantiation_level___vdu_level
+    Structure instantiation_level___scaling_info (
+        @LeafRefPath : "../../../scaling-aspect/id"
+        leafref scaling_aspect_id,
+        uint32 scale_level
+    )
+    Collection instantiation_level___scaling_info_collection of instantiation_level___scaling_info
+    Collection df___instantiation_level_collection of df___instantiation_level
+    Structure df___lcm_operations_configuration (
+        lcm_operations_configuration___parameter_collection instantiate_vnf_op_config,
+        lcm_operations_configuration___scale_vnf_op_config scale_vnf_op_config,
+        lcm_operations_configuration___scale_vnf_to_level_op_config scale_vnf_to_level_op_config,
+        lcm_operations_configuration___heal_vnf_op_config heal_vnf_op_config,
+        lcm_operations_configuration___terminate_vnf_op_config terminate_vnf_op_config,
+        lcm_operations_configuration___operate_vnf_op_config operate_vnf_op_config,
+        lcm_operations_configuration___parameter_collection change_vnf_flavour_op_config,
+        lcm_operations_configuration___parameter_collection change_ext_vnf_connectivity_op_config
+    )
+    Structure lcm_operations_configuration___parameter (
+        string key,
+        string ^value
+    )
+    Collection lcm_operations_configuration___parameter_collection of lcm_operations_configuration___parameter
+    Structure lcm_operations_configuration___scale_vnf_op_config (
+        scale_vnf_op_config___parameter_collection ^parameter,
+        scaling_by_more_than_one_step_supported scaling_by_more_than_one_step_supported
+    )
+    Structure scale_vnf_op_config___parameter (
+        string key,
+        string ^value
+    )
+    Collection scale_vnf_op_config___parameter_collection of scale_vnf_op_config___parameter
+    Type scaling_by_more_than_one_step_supported extends boolean
+    Structure lcm_operations_configuration___scale_vnf_to_level_op_config (
+        scale_vnf_to_level_op_config___parameter_collection ^parameter,
+        arbitrary_target_levels_supported arbitrary_target_levels_supported
+    )
+    Structure scale_vnf_to_level_op_config___parameter (
+        string key,
+        string ^value
+    )
+    Collection scale_vnf_to_level_op_config___parameter_collection of scale_vnf_to_level_op_config___parameter
+    Type arbitrary_target_levels_supported extends boolean
+    Structure lcm_operations_configuration___heal_vnf_op_config (
+        heal_vnf_op_config___parameter_collection ^parameter,
+        string_collection cause
+    )
+    Structure heal_vnf_op_config___parameter (
+        string key,
+        string ^value
+    )
+    Collection heal_vnf_op_config___parameter_collection of heal_vnf_op_config___parameter
+    Structure lcm_operations_configuration___terminate_vnf_op_config (
+        min_graceful_termination min_graceful_termination,
+        timeticks max_recommended_graceful_termination,
+        terminate_vnf_op_config___parameter_collection ^parameter
+    )
+    Type min_graceful_termination extends timeticks
+    Type timeticks extends uint32
+    Structure terminate_vnf_op_config___parameter (
+        string key,
+        string ^value
+    )
+    Collection terminate_vnf_op_config___parameter_collection of terminate_vnf_op_config___parameter
+    Structure lcm_operations_configuration___operate_vnf_op_config (
+        min_graceful_stop_timeout min_graceful_stop_timeout,
+        timeticks max_recommended_graceful_stop_timeout,
+        operate_vnf_op_config___parameter_collection ^parameter
+    )
+    Type min_graceful_stop_timeout extends timeticks
+    Structure operate_vnf_op_config___parameter (
+        string key,
+        string ^value
+    )
+    Collection operate_vnf_op_config___parameter_collection of operate_vnf_op_config___parameter
+    Structure df___affinity_or_anti_affinity_group (
+        string id,
+        affinity_type ^type,
+        affinity_scope scope
+    )
+    Collection df___affinity_or_anti_affinity_group_collection of df___affinity_or_anti_affinity_group
+    Structure df___indicator (
+        string id,
+        string ^name,
+        string indicator_value,
+        enumeration source
+    )
+    Collection df___indicator_collection of df___indicator
+    Structure df___supported_vnf_interfaces (
+        enumeration ^name,
+        @LeafRefPath : "../../../ext-cpd/id"
+        leafref_collection cpd_id,
+        supported_vnf_interfaces___interface_details_collection interface_details
+    )
+    Structure supported_vnf_interfaces___interface_details (
+        string key,
+        string ^value
+    )
+    Collection supported_vnf_interfaces___interface_details_collection of supported_vnf_interfaces___interface_details
+    Collection df___supported_vnf_interfaces_collection of df___supported_vnf_interfaces
+    Structure df___monitoring_parameter (
+        string id,
+        string ^name,
+        string performance_metric,
+        collection_period collection_period
+    )
+    Collection df___monitoring_parameter_collection of df___monitoring_parameter
+    Structure df___scaling_aspect (
+        string id,
+        string ^name,
+        string description,
+        uint32 max_scale_level,
+        scaling_aspect___aspect_delta_details aspect_delta_details,
+        @LeafRefPath : "../../ns-instantiation-level/id"
+        leafref scaling_level
+    )
+    Structure scaling_aspect___aspect_delta_details (
+        aspect_delta_details___deltas_collection deltas,
+        @LeafRefPath : "../deltas/id"
+        leafref step_deltas
+    )
+    Structure aspect_delta_details___deltas (
+        string id,
+        deltas___vdu_delta_collection vdu_delta,
+        deltas___virtual_link_bit_rate_delta_collection virtual_link_bit_rate_delta
+    )
+    Structure deltas___vdu_delta (
+        @LeafRefPath : "../../../../../../vdu/id"
+        leafref id,
+        uint32 number_of_instances
+    )
+    Collection deltas___vdu_delta_collection of deltas___vdu_delta
+    Structure deltas___virtual_link_bit_rate_delta (
+        string id,
+        virtual_link_bit_rate_delta___bit_rate_requirements bit_rate_requirements
+    )
+    Structure virtual_link_bit_rate_delta___bit_rate_requirements (
+        root root,
+        leaf leaf
+    )
+    Type root extends uint64
+    Type leaf extends uint64
+    Collection deltas___virtual_link_bit_rate_delta_collection of deltas___virtual_link_bit_rate_delta
+    Collection aspect_delta_details___deltas_collection of aspect_delta_details___deltas
+    Collection df___scaling_aspect_collection of df___scaling_aspect
+    Collection vnfd___df_collection of vnfd___df
+    Structure vnfd___configurable_properties (
+        boolean is_auto_scalable_enabled,
+        boolean is_auto_heal_enabled,
+        configurable_properties___additional_configurable_property_collection additional_configurable_property
+    )
+    Structure configurable_properties___additional_configurable_property (
+        string key,
+        string ^value
+    )
+    Collection configurable_properties___additional_configurable_property_collection of configurable_properties___additional_configurable_property
+    Structure vnfd___modifiable_attributes (
+        string_collection extension,
+        string_collection metadata
+    )
+    Structure vnfd___lifecycle_management_script (
+        string id,
+        internal_lifecycle_management_script_event_collection ^event,
+        string_collection lcm_transition_event,
+        string script,
+        string script_dsl,
+        lifecycle_management_script___script_input_collection script_input
+    )
+    Enumerated internal_lifecycle_management_script_event {
+        internal_lifecycle_management_script_event start_instantiation,
+        internal_lifecycle_management_script_event end_instantiation,
+        internal_lifecycle_management_script_event start_scaling,
+        internal_lifecycle_management_script_event end_scaling,
+        internal_lifecycle_management_script_event start_healing,
+        internal_lifecycle_management_script_event end_healing,
+        internal_lifecycle_management_script_event start_termination,
+        internal_lifecycle_management_script_event end_termination,
+        internal_lifecycle_management_script_event start_vnf_flavour_change,
+        internal_lifecycle_management_script_event end_vnf_flavour_change,
+        internal_lifecycle_management_script_event start_vnf_operation_change,
+        internal_lifecycle_management_script_event end_vnf_operation_change,
+        internal_lifecycle_management_script_event start_vnf_ext_conn_change,
+        internal_lifecycle_management_script_event end_vnf_ext_conn_change,
+        internal_lifecycle_management_script_event start_vnfinfo_modification,
+        internal_lifecycle_management_script_event end_vnfinfo_modification,
+        internal_lifecycle_management_script_event start_instantiation,
+        internal_lifecycle_management_script_event end_instantiation,
+        internal_lifecycle_management_script_event start_scaling,
+        internal_lifecycle_management_script_event end_scaling,
+        internal_lifecycle_management_script_event start_healing,
+        internal_lifecycle_management_script_event end_healing,
+        internal_lifecycle_management_script_event start_termination,
+        internal_lifecycle_management_script_event end_termination,
+        internal_lifecycle_management_script_event start_vnf_flavour_change,
+        internal_lifecycle_management_script_event end_vnf_flavour_change,
+        internal_lifecycle_management_script_event start_vnf_operation_change,
+        internal_lifecycle_management_script_event end_vnf_operation_change,
+        internal_lifecycle_management_script_event start_vnf_ext_conn_change,
+        internal_lifecycle_management_script_event end_vnf_ext_conn_change,
+        internal_lifecycle_management_script_event start_vnfinfo_modification,
+        internal_lifecycle_management_script_event end_vnfinfo_modification,
+        internal_lifecycle_management_script_event start_instantiation,
+        internal_lifecycle_management_script_event end_instantiation,
+        internal_lifecycle_management_script_event start_scaling,
+        internal_lifecycle_management_script_event end_scaling,
+        internal_lifecycle_management_script_event start_healing,
+        internal_lifecycle_management_script_event end_healing,
+        internal_lifecycle_management_script_event start_termination,
+        internal_lifecycle_management_script_event end_termination,
+        internal_lifecycle_management_script_event start_vnf_flavour_change,
+        internal_lifecycle_management_script_event end_vnf_flavour_change,
+        internal_lifecycle_management_script_event start_vnf_operation_change,
+        internal_lifecycle_management_script_event end_vnf_operation_change,
+        internal_lifecycle_management_script_event start_vnf_ext_conn_change,
+        internal_lifecycle_management_script_event end_vnf_ext_conn_change,
+        internal_lifecycle_management_script_event start_vnfinfo_modification,
+        internal_lifecycle_management_script_event end_vnfinfo_modification
+    }
+    Collection internal_lifecycle_management_script_event_collection of internal_lifecycle_management_script_event
+    Structure lifecycle_management_script___script_input (
+        string key,
+        string ^value
+    )
+    Collection lifecycle_management_script___script_input_collection of lifecycle_management_script___script_input
+    Collection vnfd___lifecycle_management_script_collection of vnfd___lifecycle_management_script
+    Structure vnfd___element_group (
+        string id,
+        string description,
+        @LeafRefPath : "../../vdu/id"
+        leafref_collection vdu,
+        @LeafRefPath : "../../int-virtual-link-desc/id"
+        leafref_collection virtual_link_desc
+    )
+    Collection vnfd___element_group_collection of vnfd___element_group
+    Structure vnfd___indicator (
+        string id,
+        string ^name,
+        string_collection indicator_value,
+        enumeration source
+    )
+    Collection vnfd___indicator_collection of vnfd___indicator
+    Structure vnfd___security_group_rule (
+        string id,
+        string description,
+        direction direction,
+        ether_type ether_type,
+        protocol protocol,
+        port_range_min port_range_min,
+        port_range_max port_range_max
+    )
+    Enumerated direction {
+        direction ingress,
+        direction egress,
+        direction ingress,
+        direction egress
+    }
+    Enumerated ether_type {
+        ether_type ipv4,
+        ether_type ipv6,
+        ether_type ipv4,
+        ether_type ipv6
+    }
+    Enumerated protocol {
+        protocol tcp,
+        protocol udp,
+        protocol icmp,
+        protocol tcp,
+        protocol udp,
+        protocol icmp
+    }
+    Type port_range_min extends uint16
+    Type port_range_max extends uint16
+    Collection vnfd___security_group_rule_collection of vnfd___security_group_rule
+    Collection nfv___vnfd_collection of nfv___vnfd
+    Structure nfv___nsd (
+        string id,
+        string designer,
+        string version,
+        string ^name,
+        string invariant_id,
+        @LeafRefPath : "../../nsd/id"
+        leafref_collection nested_nsd_id,
+        @LeafRefPath : "../../vnfd/id"
+        leafref_collection vnfd_id,
+        @LeafRefPath : "../../pnfd/id"
+        leafref_collection pnfd_id,
+        nsd___sapd_collection sapd,
+        nsd___virtual_link_desc_collection virtual_link_desc,
+        nsd___vnffgd_collection vnffgd,
+        string_collection autoscale_rule,
+        nsd___lifecycle_management_script_collection lifecycle_management_script,
+        nsd___df_collection df,
+        string signature,
+        string algorithm,
+        string certificate
+    )
+    Structure nsd___sapd (
+        string id,
+        boolean address_assignment,
+        sapd___cpd_or_virtual_link cpd_or_virtual_link
+    )
+    Structure sapd___cpd_or_virtual_link (
+        cpd_or_virtual_link___virtual_link_desc virtual_link_desc,
+        cpd_or_virtual_link___associated_cpd_id associated_cpd_id
+    )
+    Structure cpd_or_virtual_link___virtual_link_desc (
+        @LeafRefPath : "../../virtual-link-desc/id"
+        leafref virtual_link_desc
+    )
+    Structure cpd_or_virtual_link___associated_cpd_id (
+        associated_cpd_id___associated_cpd_id associated_cpd_id
+    )
+    Structure associated_cpd_id___associated_cpd_id (
+        associated_cpd_id___vnf vnf,
+        associated_cpd_id___pnf pnf,
+        associated_cpd_id___ns ns
+    )
+    Structure associated_cpd_id___vnf (
+        vnf___vnf vnf
+    )
+    Structure vnf___vnf (
+        @LeafRefPath : "../../../../../vnfd/id"
+        leafref vnfd_id,
+        @LeafRefPath : "deref(../vnfd-id)/../ext-cpd/id"
+        leafref ext_cpd_id,
+        @LeafRefPath : "deref(../vnfd-id)/../ext-cpd/id"
+        leafref cpd_id
+    )
+    Structure associated_cpd_id___pnf (
+        pnf___pnf pnf
+    )
+    Structure pnf___pnf (
+        @LeafRefPath : "../../../../../pnfd/id"
+        leafref pnfd_id,
+        @LeafRefPath : "deref(../pnfd-id)/../ext-cpd/id"
+        leafref ext_cpd_id,
+        @LeafRefPath : "deref(../pnfd-id)/../ext-cpd/id"
+        leafref pnf_cpd_id
+    )
+    Structure associated_cpd_id___ns (
+        ns___ns ns
+    )
+    Structure ns___ns (
+        @LeafRefPath : "../../../../../nsd/id"
+        leafref nsd_id,
+        @LeafRefPath : "deref(../nsd-id)/../sapd/id"
+        leafref ext_cpd_id,
+        @LeafRefPath : "deref(../nsd-id)/../sapd/id"
+        leafref sap_cpd_id
+    )
+    Collection nsd___sapd_collection of nsd___sapd
+    Structure nsd___virtual_link_desc (
+        string id,
+        virtual_link_desc___df_collection df,
+        enumeration test_access,
+        string description,
+        virtual_link_desc___connectivity_type connectivity_type,
+        string signature,
+        string algorithm,
+        string certificate
+    )
+    Structure virtual_link_desc___df (
+        string id,
+        df___qos qos,
+        enumeration service_availability_level
+    )
+    Structure df___qos (
+        latency latency,
+        packet_delay_variation packet_delay_variation,
+        decimal64 packet_loss_ratio,
+        uint32 priority
+    )
+    Collection virtual_link_desc___df_collection of virtual_link_desc___df
+    Structure virtual_link_desc___connectivity_type (
+        identityref_collection layer_protocol,
+        flow_pattern flow_pattern
+    )
+    Collection nsd___virtual_link_desc_collection of nsd___virtual_link_desc
+    Structure nsd___vnffgd (
+        string id,
+        @LeafRefPath : "../../df/vnf-profile/id"
+        leafref_collection vnf_profile_id,
+        @LeafRefPath : "../../df/pnf-profile/id"
+        leafref_collection pnf_profile_id,
+        @LeafRefPath : "../../df/ns-profile/id"
+        leafref_collection nested_ns_profile_id,
+        @LeafRefPath : "../../df/virtual-link-profile/id"
+        leafref virtual_link_profile_id,
+        vnffgd___cpd_pool_collection cpd_pool,
+        vnffgd___nfpd_collection nfpd
+    )
+    Structure vnffgd___cpd_pool (
+        string id,
+        cpd_pool___constituent_base_element_id constituent_base_element_id,
+        cpd_pool___constituent_cpd_id constituent_cpd_id
+    )
+    Structure cpd_pool___constituent_base_element_id (
+        constituent_base_element_id___vnf_profile vnf_profile,
+        constituent_base_element_id___pnf_profile pnf_profile,
+        constituent_base_element_id___ns_profile ns_profile
+    )
+    Structure constituent_base_element_id___vnf_profile (
+        vnf_profile___vnf_profile vnf_profile
+    )
+    Structure vnf_profile___vnf_profile (
+        @LeafRefPath : "../../../../../nsd/df/vnf-profile/id"
+        leafref vnf_profile_id
+    )
+    Structure constituent_base_element_id___pnf_profile (
+        pnf_profile___pnf_profile pnf_profile
+    )
+    Structure pnf_profile___pnf_profile (
+        @LeafRefPath : "../../../../../nsd/df/pnf-profile/id"
+        leafref pnf_profile_id
+    )
+    Structure constituent_base_element_id___ns_profile (
+        ns_profile___ns_profile ns_profile
+    )
+    Structure ns_profile___ns_profile (
+        @LeafRefPath : "../../../../../nsd/df/ns-profile/id"
+        leafref ns_profile_id
+    )
+    Structure cpd_pool___constituent_cpd_id (
+        constituent_cpd_id___vnf vnf,
+        constituent_cpd_id___pnf pnf,
+        constituent_cpd_id___ns ns
+    )
+    Structure constituent_cpd_id___vnf (
+        vnf___vnf vnf
+    )
+    Structure constituent_cpd_id___pnf (
+        pnf___pnf pnf
+    )
+    Structure constituent_cpd_id___ns (
+        ns___ns ns
+    )
+    Collection vnffgd___cpd_pool_collection of vnffgd___cpd_pool
+    Structure vnffgd___nfpd (
+        string id,
+        string rule,
+        nfpd___position_desc_id_collection position_desc_id
+    )
+    Structure nfpd___position_desc_id (
+        string id,
+        position_desc_id___cp_profile_id_collection cp_profile_id
+    )
+    Structure position_desc_id___cp_profile_id (
+        string id,
+        cp_profile_id___constituent_profile_elements_collection constituent_profile_elements
+    )
+    Structure cp_profile_id___constituent_profile_elements (
+        string id,
+        string cpd_id
+    )
+    Collection cp_profile_id___constituent_profile_elements_collection of cp_profile_id___constituent_profile_elements
+    Collection position_desc_id___cp_profile_id_collection of position_desc_id___cp_profile_id
+    Collection nfpd___position_desc_id_collection of nfpd___position_desc_id
+    Collection vnffgd___nfpd_collection of vnffgd___nfpd
+    Collection nsd___vnffgd_collection of nsd___vnffgd
+    Structure nsd___lifecycle_management_script (
+        string ^event,
+        string script
+    )
+    Collection nsd___lifecycle_management_script_collection of nsd___lifecycle_management_script
+    Structure nsd___df (
+        string id,
+        @LeafRefPath : "../monitored-info/id"
+        leafref flavour_key,
+        df___vnf_profile_collection vnf_profile,
+        df___pnf_profile_collection pnf_profile,
+        df___virtual_link_profile_collection virtual_link_profile,
+        df___scaling_aspect_collection scaling_aspect,
+        df___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group,
+        df___ns_instantiation_level_collection ns_instantiation_level,
+        @LeafRefPath : "../ns-instantiation-level/id"
+        leafref default_instantiation_level,
+        df___ns_profile_collection ns_profile,
+        df___dependencies_collection dependencies,
+        df___monitored_info_collection monitored_info
+    )
+    Structure df___vnf_profile (
+        string id,
+        @LeafRefPath : "../../../../vnfd/id"
+        leafref vnfd_id,
+        @LeafRefPath : "deref(../vnfd-id)/../df/id"
+        leafref flavour_id,
+        @LeafRefPath : "deref(../flavour-id)/../instantiation-level/id"
+        leafref instantiation_level,
+        min_number_of_instances min_number_of_instances,
+        max_number_of_instances max_number_of_instances,
+        vnf_profile___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group,
+        vnf_profile___virtual_link_connectivity_collection virtual_link_connectivity,
+        vnf_profile___local_affinity_or_anti_affinity_rule_collection local_affinity_or_anti_affinity_rule
+    )
+    Structure vnf_profile___affinity_or_anti_affinity_group (
+        @LeafRefPath : "../../../affinity-or-anti-affinity-group/id"
+        leafref id
+    )
+    Collection vnf_profile___affinity_or_anti_affinity_group_collection of vnf_profile___affinity_or_anti_affinity_group
+    Structure vnf_profile___virtual_link_connectivity (
+        @LeafRefPath : "../../../virtual-link-profile/id"
+        leafref virtual_link_profile_id,
+        virtual_link_connectivity___constituent_cpd_id_collection constituent_cpd_id
+    )
+    Structure virtual_link_connectivity___constituent_cpd_id (
+        @LeafRefPath : "../../../id"
+        leafref constituent_base_element_id,
+        @LeafRefPath : "deref(../../../nsd-id)/../sapd/id"
+        leafref constituent_cpd_id
+    )
+    Collection virtual_link_connectivity___constituent_cpd_id_collection of virtual_link_connectivity___constituent_cpd_id
+    Collection vnf_profile___virtual_link_connectivity_collection of vnf_profile___virtual_link_connectivity
+    Structure vnf_profile___local_affinity_or_anti_affinity_rule (
+        affinity_type affinity_type,
+        affinity_scope affinity_scope
+    )
+    Collection vnf_profile___local_affinity_or_anti_affinity_rule_collection of vnf_profile___local_affinity_or_anti_affinity_rule
+    Collection df___vnf_profile_collection of df___vnf_profile
+    Structure df___pnf_profile (
+        string id,
+        @LeafRefPath : "../../../../pnfd/id"
+        leafref pnfd_id,
+        pnf_profile___virtual_link_connectivity_collection virtual_link_connectivity
+    )
+    Structure pnf_profile___virtual_link_connectivity (
+        @LeafRefPath : "../../../virtual-link-profile/id"
+        leafref virtual_link_profile_id,
+        virtual_link_connectivity___constituent_cpd_id_collection constituent_cpd_id
+    )
+    Collection pnf_profile___virtual_link_connectivity_collection of pnf_profile___virtual_link_connectivity
+    Collection df___pnf_profile_collection of df___pnf_profile
+    Structure virtual_link_profile___max_bitrate_requirements (
+        root root,
+        leaf leaf
+    )
+    Structure virtual_link_profile___min_bitrate_requirements (
+        root root,
+        leaf leaf
+    )
+    Structure df___ns_instantiation_level (
+        string id,
+        string description,
+        ns_instantiation_level___vnf_to_level_mapping_collection vnf_to_level_mapping,
+        ns_instantiation_level___virtual_link_to_level_mapping_collection virtual_link_to_level_mapping,
+        ns_instantiation_level___ns_to_level_mapping_collection ns_to_level_mapping
+    )
+    Structure ns_instantiation_level___vnf_to_level_mapping (
+        @LeafRefPath : "../../../vnf-profile/id"
+        leafref vnf_profile_id,
+        number_of_instances number_of_instances
+    )
+    Collection ns_instantiation_level___vnf_to_level_mapping_collection of ns_instantiation_level___vnf_to_level_mapping
+    Structure ns_instantiation_level___virtual_link_to_level_mapping (
+        @LeafRefPath : "../../../virtual-link-profile/id"
+        leafref virtual_link_profile_id,
+        root root,
+        leaf leaf
+    )
+    Collection ns_instantiation_level___virtual_link_to_level_mapping_collection of ns_instantiation_level___virtual_link_to_level_mapping
+    Structure ns_instantiation_level___ns_to_level_mapping (
+        @LeafRefPath : "../../../ns-profile/id"
+        leafref ns_profile_id,
+        number_of_instances number_of_instances
+    )
+    Collection ns_instantiation_level___ns_to_level_mapping_collection of ns_instantiation_level___ns_to_level_mapping
+    Collection df___ns_instantiation_level_collection of df___ns_instantiation_level
+    Structure df___ns_profile (
+        string id,
+        @LeafRefPath : "../../../../nsd/id"
+        leafref nsd_id,
+        @LeafRefPath : "deref(../nsd-id)/../df/id"
+        leafref ns_df_id,
+        @LeafRefPath : "deref(../ns-df-id)/../ns-instantiation-level/id"
+        leafref instantiation_level_id,
+        min_number_of_instances min_number_of_instances,
+        max_number_of_instances max_number_of_instances,
+        ns_profile___affinity_or_anti_affinity_group_id_collection affinity_or_anti_affinity_group_id,
+        ns_profile___virtual_link_connectivity_collection virtual_link_connectivity
+    )
+    Structure ns_profile___affinity_or_anti_affinity_group_id (
+        @LeafRefPath : "../../../affinity-or-anti-affinity-group/id"
+        leafref id
+    )
+    Collection ns_profile___affinity_or_anti_affinity_group_id_collection of ns_profile___affinity_or_anti_affinity_group_id
+    Structure ns_profile___virtual_link_connectivity (
+        @LeafRefPath : "../../../virtual-link-profile/id"
+        leafref virtual_link_profile_id,
+        virtual_link_connectivity___constituent_cpd_id_collection constituent_cpd_id
+    )
+    Collection ns_profile___virtual_link_connectivity_collection of ns_profile___virtual_link_connectivity
+    Collection df___ns_profile_collection of df___ns_profile
+    Structure df___dependencies (
+        string id,
+        dependencies___primary_id primary_id,
+        dependencies___secondary_id secondary_id
+    )
+    Structure dependencies___primary_id (
+        primary_id___primary_vnf_profile primary_vnf_profile,
+        primary_id___primary_ns_profile primary_ns_profile
+    )
+    Structure primary_id___primary_vnf_profile (
+        @LeafRefPath : "../../vnf-profile/vnfd-id"
+        leafref primary_vnf_profile
+    )
+    Structure primary_id___primary_ns_profile (
+        @LeafRefPath : "../../ns-profile/nsd-id"
+        leafref primary_ns_profile
+    )
+    Structure dependencies___secondary_id (
+        secondary_id___secondary_vnf_profile secondary_vnf_profile,
+        secondary_id___secondary_ns_profile secondary_ns_profile
+    )
+    Structure secondary_id___secondary_vnf_profile (
+        @LeafRefPath : "../../vnf-profile/vnfd-id"
+        leafref secondary_vnf_profile
+    )
+    Structure secondary_id___secondary_ns_profile (
+        @LeafRefPath : "../../ns-profile/nsd-id"
+        leafref secondary_ns_profile
+    )
+    Collection df___dependencies_collection of df___dependencies
+    Structure df___monitored_info (
+        string id,
+        monitored_info___vnf_indicator_info vnf_indicator_info,
+        monitored_info___monitoring_parameter monitoring_parameter
+    )
+    Structure monitored_info___vnf_indicator_info (
+        @LeafRefPath : "../../../../../vnfd/id"
+        leafref vnfd_id,
+        @LeafRefPath : "deref(../vnfd-id)/../indicator/id"
+        leafref vnf_indicator
+    )
+    Structure monitored_info___monitoring_parameter (
+        string id,
+        string ^name,
+        string performance_metric,
+        string collection_period
+    )
+    Collection df___monitored_info_collection of df___monitored_info
+    Collection nsd___df_collection of nsd___df
+    Collection nfv___nsd_collection of nfv___nsd
+    Structure nfv___pnfd (
+        string id,
+        string function_description,
+        string provider,
+        string version,
+        string invariant_id,
+        string ^name,
+        pnfd___ext_cpd_collection ext_cpd,
+        pnfd___security_collection security,
+        string geographical_location_info,
+        pnfd___security_group_rule_collection security_group_rule
+    )
+    Structure pnfd___ext_cpd (
+        string id,
+        identityref_collection layer_protocol,
+        identityref role,
+        string description,
+        ext_cpd___protocol_collection protocol,
+        boolean trunk_mode
+    )
+    Collection pnfd___ext_cpd_collection of pnfd___ext_cpd
+    Structure pnfd___security (
+        string signature,
+        string algorithm,
+        string certificate
+    )
+    Collection pnfd___security_collection of pnfd___security
+    Structure pnfd___security_group_rule (
+        string id,
+        string description,
+        direction direction,
+        ether_type ether_type,
+        protocol protocol,
+        port_range_min port_range_min,
+        port_range_max port_range_max
+    )
+    Collection pnfd___security_group_rule_collection of pnfd___security_group_rule
+    Collection nfv___pnfd_collection of nfv___pnfd
+    Structure nsd (
+        nsd___vnfd_collection vnfd,
+        nsd___nsd_collection nsd,
+        nsd___pnfd_collection pnfd
+    )
+    Structure nsd___vnfd (
+        string id,
+        string provider,
+        string product_name,
+        string software_version,
+        string version,
+        string product_info_name,
+        string product_info_description,
+        string_collection vnfm_info,
+        string localization_language,
+        string default_localization_language,
+        vnfd___vdu_collection vdu,
+        vnfd___virtual_compute_desc_collection virtual_compute_desc,
+        vnfd___virtual_storage_desc_collection virtual_storage_desc,
+        vnfd___sw_image_desc_collection sw_image_desc,
+        vnfd___int_virtual_link_desc_collection int_virtual_link_desc,
+        vnfd___ext_cpd_collection ext_cpd,
+        vnfd___df_collection df,
+        vnfd___configurable_properties configurable_properties,
+        vnfd___modifiable_attributes modifiable_attributes,
+        vnfd___lifecycle_management_script_collection lifecycle_management_script,
+        vnfd___element_group_collection element_group,
+        vnfd___indicator_collection indicator,
+        string_collection auto_scale,
+        vnfd___security_group_rule_collection security_group_rule
+    )
+    Collection nsd___vnfd_collection of nsd___vnfd
+    Structure nsd___nsd (
+        string id,
+        string designer,
+        string version,
+        string ^name,
+        string invariant_id,
+        @LeafRefPath : "../../nsd/id"
+        leafref_collection nested_nsd_id,
+        @LeafRefPath : "../../vnfd/id"
+        leafref_collection vnfd_id,
+        @LeafRefPath : "../../pnfd/id"
+        leafref_collection pnfd_id,
+        nsd___sapd_collection sapd,
+        nsd___virtual_link_desc_collection virtual_link_desc,
+        nsd___vnffgd_collection vnffgd,
+        string_collection autoscale_rule,
+        nsd___lifecycle_management_script_collection lifecycle_management_script,
+        nsd___df_collection df,
+        string signature,
+        string algorithm,
+        string certificate
+    )
+    Collection nsd___nsd_collection of nsd___nsd
+    Structure nsd___pnfd (
+        string id,
+        string function_description,
+        string provider,
+        string version,
+        string invariant_id,
+        string ^name,
+        pnfd___ext_cpd_collection ext_cpd,
+        pnfd___security_collection security,
+        string geographical_location_info,
+        pnfd___security_group_rule_collection security_group_rule
+    )
+    Collection nsd___pnfd_collection of nsd___pnfd
+    Structure pnfd (
+        string id,
+        string function_description,
+        string provider,
+        string version,
+        string invariant_id,
+        string ^name,
+        pnfd___ext_cpd_collection ext_cpd,
+        pnfd___security_collection security,
+        string geographical_location_info,
+        pnfd___security_group_rule_collection security_group_rule
+    )
+    Structure vnfd (
+        string id,
+        string provider,
+        string product_name,
+        string software_version,
+        string version,
+        string product_info_name,
+        string product_info_description,
+        string_collection vnfm_info,
+        string localization_language,
+        string default_localization_language,
+        vnfd___vdu_collection vdu,
+        vnfd___virtual_compute_desc_collection virtual_compute_desc,
+        vnfd___virtual_storage_desc_collection virtual_storage_desc,
+        vnfd___sw_image_desc_collection sw_image_desc,
+        vnfd___int_virtual_link_desc_collection int_virtual_link_desc,
+        vnfd___ext_cpd_collection ext_cpd,
+        vnfd___df_collection df,
+        vnfd___configurable_properties configurable_properties,
+        vnfd___modifiable_attributes modifiable_attributes,
+        vnfd___lifecycle_management_script_collection lifecycle_management_script,
+        vnfd___element_group_collection element_group,
+        vnfd___indicator_collection indicator,
+        string_collection auto_scale,
+        vnfd___security_group_rule_collection security_group_rule
+    )
 }
\ No newline at end of file