Remove honeynode source code
[transportpce.git] / tests / honeynode / 2.2.1 / honeynode-plugin-impl / src / main / resources / honeycomb-minimal-resources / config / yang / openconfig / openconfig-interfaces@2018-01-05.yang
diff --git a/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang b/tests/honeynode/2.2.1/honeynode-plugin-impl/src/main/resources/honeycomb-minimal-resources/config/yang/openconfig/openconfig-interfaces@2018-01-05.yang
deleted file mode 100644 (file)
index 2c95ea4..0000000
+++ /dev/null
@@ -1,992 +0,0 @@
-module openconfig-interfaces {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces";
-
-  prefix "oc-if";
-
-  // import some basic types
-  import ietf-interfaces { prefix ietf-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing network interfaces and subinterfaces.  This
-    module also defines convenience types / groupings for other
-    models to create references to interfaces:
-
-      base-interface-ref (type) -  reference to a base interface
-      interface-ref (grouping) -  container for reference to a
-        interface + subinterface
-      interface-ref-state (grouping) - container for read-only
-        (opstate) reference to interface + subinterface
-
-    This model reuses data items defined in the IETF YANG model for
-    interfaces described by RFC 7223 with an alternate structure
-    (particularly for operational state data) and with
-    additional configuration items.
-
-    Portions of this code were derived from IETF RFC 7223.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) 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).";
-
-  oc-ext:openconfig-version "2.3.0";
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-22" {
-    description
-      "Add IPv4 proxy ARP configuration.";
-    reference "2.2.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2017-04-03" {
-    description
-      "Update copyright notice.";
-    reference "1.1.1";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-
-  // typedef statements
-
-  typedef base-interface-ref {
-    type leafref {
-      path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-    }
-    description
-      "Reusable type for by-name reference to a base interface.
-      This type may be used in cases where ability to reference
-      a subinterface is not required.";
-  }
-
-  typedef interface-id {
-    type string;
-    description
-      "User-defined identifier for an interface, generally used to
-      name a interface reference.  The id can be arbitrary but a
-      useful convention is to use a combination of base interface
-      name and subinterface index.";
-  }
-
-  // grouping statements
-
-  grouping interface-ref-common {
-    description
-      "Reference leafrefs to interface / subinterface";
-
-    leaf interface {
-      type leafref {
-        path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-      }
-      description
-        "Reference to a base interface.  If a reference to a
-        subinterface is required, this leaf must be specified
-        to indicate the base interface.";
-    }
-
-    leaf subinterface {
-      type leafref {
-        path "/oc-if:interfaces/" +
-          "oc-if:interface[oc-if:name=current()/../interface]/" +
-          "oc-if:subinterfaces/oc-if:subinterface/oc-if:index";
-      }
-      description
-        "Reference to a subinterface -- this requires the base
-        interface to be specified using the interface leaf in
-        this container.  If only a reference to a base interface
-        is requuired, this leaf should not be set.";
-    }
-  }
-
-  grouping interface-ref-state-container {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container state {
-      config false;
-      description
-        "Operational state for interface-ref";
-
-      uses interface-ref-common;
-    }
-  }
-
-  grouping interface-ref {
-    description
-      "Reusable definition for a reference to an interface or
-      subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      container config {
-        description
-          "Configured reference to interface / subinterface";
-
-        uses interface-ref-common;
-      }
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping base-interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to a
-      base interface (no subinterface).";
-
-      container state {
-        config false;
-        description
-          "Operational state for base interface reference";
-
-        leaf interface {
-          type base-interface-ref;
-          description
-            "Reference to a base interface.";
-        }
-      }
-  }
-
-
-  grouping interface-common-config {
-    description
-      "Configuration data data nodes common to physical interfaces
-      and subinterfaces";
-
-    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
-        datastore.
-
-        Specifically, if the device supports ':startup', when
-        ifAlias is read the device MUST return the value of
-        'description' in the 'startup' datastore, and when it is
-        written, it MUST be written to the 'running' and 'startup'
-        datastores.  Note that it is up to the implementation to
-
-        decide whether to modify this single leaf in 'startup' or
-        perform an implicit copy-config from 'running' to
-        'startup'.
-
-        If the device does not support ':startup', ifAlias MUST
-        be mapped to the 'description' leaf in the 'running'
-        datastore.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAlias";
-    }
-
-    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 'running' datastore 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 'running' datastore are
-        reflected in ifAdminStatus, but if ifAdminStatus is
-        changed over SNMP, this leaf is not affected.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-  }
-
-  grouping interface-phys-config {
-    description
-      "Configuration data for physical interfaces";
-
-    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.  The 'config false'
-        list interfaces/interface[name]/state contains the currently
-        existing interfaces on the device.
-
-        If a client tries to create configuration for a
-        system-controlled interface that is not present in the
-        corresponding state list, 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
-        NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.
-
-        The IETF model in RFC 7223 provides YANG features for the
-        following (i.e., pre-provisioning and arbitrary-names),
-        however they are omitted here:
-
-          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
-        /interfaces/interface[name]/state list.";
-    }
-
-    leaf type {
-      type identityref {
-        base ietf-if: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 mtu {
-      type uint16;
-      description
-        "Set the max transmission unit size in octets
-        for the physical interface.  If this is not set, the mtu is
-        set to the operational default -- e.g., 1514 bytes on an
-        Ethernet interface.";
-    }
-
-    leaf loopback-mode {
-      type boolean;
-      default false;
-      description
-        "When set to true, the interface is logically looped back,
-        such that packets that are forwarded via the interface
-        are received on the same interface.";
-    }
-
-    uses interface-common-config;
-  }
-
-  grouping interface-phys-holdtime-config {
-    description
-      "Configuration data for interface hold-time settings --
-      applies to physical interfaces.";
-
-    leaf up {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface
-        transitions from down to up.  A zero value means dampening
-        is turned off, i.e., immediate notification.";
-    }
-
-    leaf down {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface transitions from
-        up to down.  A zero value means dampening is turned off,
-        i.e., immediate notification.";
-    }
-  }
-
-  grouping interface-phys-holdtime-state {
-    description
-      "Operational state data for interface hold-time.";
-  }
-
-  grouping interface-phys-holdtime-top {
-    description
-      "Top-level grouping for setting link transition
-      dampening on physical and other types of interfaces.";
-
-    container hold-time {
-      description
-        "Top-level container for hold-time settings to enable
-        dampening advertisements of interface transitions.";
-
-      container config {
-        description
-          "Configuration data for interface hold-time settings.";
-
-        uses interface-phys-holdtime-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for interface hold-time.";
-
-        uses interface-phys-holdtime-config;
-        uses interface-phys-holdtime-state;
-      }
-    }
-  }
-
-  grouping interface-common-state {
-    description
-      "Operational state data (in addition to intended configuration)
-      at the global level for this interface";
-
-    leaf ifindex {
-      type uint32;
-      description
-        "System assigned number for each interface.  Corresponds to
-        ifIndex object in SNMP Interface MIB";
-      reference
-        "RFC 2863 - The Interfaces Group MIB";
-    }
-
-    leaf admin-status {
-      type enumeration {
-        enum UP {
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          description
-            "Not ready to pass packets and not in some test mode.";
-        }
-        enum TESTING {
-          //TODO: This is generally not supported as a configured
-          //admin state, though it's in the standard interfaces MIB.
-          //Consider removing it.
-          description
-            "In some test mode.";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The desired state of the interface.  In RFC 7223 this leaf
-        has the same read semantics as ifAdminStatus.  Here, it
-        reflects the administrative state as set by enabling or
-        disabling the interface.";
-      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).";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      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 oc-types:timeticks64;
-      units nanoseconds;
-      description
-        "This timestamp indicates the time of the last state change
-        of the interface (e.g., up-to-down transition). This
-        corresponds to the ifLastChange object in the standard
-        interface MIB.
-
-        The value is the timestamp in nanoseconds relative to
-        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifLastChange";
-    }
-
-  }
-
-
-  grouping interface-counters-state {
-    description
-      "Operational state representing interface counters
-      and statistics.";
-
-      //TODO: we may need to break this list of counters into those
-      //that would appear for physical vs. subinterface or logical
-      //interfaces.  For now, just replicating the full stats
-      //grouping to both interface and subinterface.
-
-    container counters {
-      description
-        "A collection of interface-related statistics objects.";
-
-      leaf in-octets {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-      }
-
-      leaf in-unicast-pkts {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-      }
-
-      leaf in-broadcast-pkts {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInBroadcastPkts";
-      }
-
-      leaf in-multicast-pkts {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInMulticastPkts";
-      }
-
-      leaf in-discards {
-        type oc-yang:counter64;
-        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
-          'last-clear'.";
-
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-      }
-
-      leaf in-errors {
-        type oc-yang:counter64;
-        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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInErrors";
-      }
-
-      leaf in-unknown-protos {
-        type oc-yang:counter64;
-        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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-      }
-
-      leaf in-fcs-errors {
-        type oc-yang:counter64;
-        description
-          "Number of received packets which had errors in the
-          frame check sequence (FCS), i.e., framing errors.
-
-          Discontinuities in the value of this counter can occur
-          when the device is re-initialization as indicated by the
-          value of 'last-clear'.";
-      }
-
-      leaf out-octets {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-      }
-
-      leaf out-unicast-pkts {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-      }
-
-      leaf out-broadcast-pkts {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutBroadcastPkts";
-      }
-
-
-      leaf out-multicast-pkts {
-        type oc-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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutMulticastPkts";
-      }
-
-      leaf out-discards {
-        type oc-yang:counter64;
-        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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-      }
-
-      leaf out-errors {
-        type oc-yang:counter64;
-        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
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-      }
-
-      leaf carrier-transitions {
-        type oc-yang:counter64;
-        description
-          "Number of times the interface state has transitioned
-          between up and down since the time the device restarted
-          or the last-clear time, whichever is most recent.";
-      }
-
-      leaf last-clear {
-        type oc-types:timeticks64;
-        units nanoseconds;
-        description
-          "Timestamp of the last time the interface counters were
-          cleared.
-
-          The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      }
-    }
-  }
-
-  // data definition statements
-
-  grouping sub-unnumbered-config {
-    description
-      "Configuration data for unnumbered subinterfaces";
-
-    leaf enabled {
-      type boolean;
-      default false;
-      description
-        "Indicates that the subinterface is unnumbered.  By default
-        the subinterface is numbered, i.e., expected to have an
-        IP address configuration.";
-    }
-  }
-
-  grouping sub-unnumbered-state {
-    description
-      "Operational state data unnumbered subinterfaces";
-  }
-
-  grouping sub-unnumbered-top {
-    description
-      "Top-level grouping unnumbered subinterfaces";
-
-    container unnumbered {
-      description
-        "Top-level container for setting unnumbered interfaces.
-        Includes reference the interface that provides the
-        address information";
-
-      container config {
-        description
-          "Configuration data for unnumbered interface";
-
-        uses sub-unnumbered-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for unnumbered interfaces";
-
-        uses sub-unnumbered-config;
-        uses sub-unnumbered-state;
-      }
-
-      uses oc-if:interface-ref;
-    }
-  }
-
-  grouping subinterfaces-config {
-    description
-      "Configuration data for subinterfaces";
-
-    leaf index {
-      type uint32;
-      default 0;
-      description
-        "The index of the subinterface, or logical interface number.
-        On systems with no support for subinterfaces, or not using
-        subinterfaces, this value should default to 0, i.e., the
-        default subinterface.";
-    }
-
-    uses interface-common-config;
-
-  }
-
-  grouping subinterfaces-state {
-    description
-      "Operational state data for subinterfaces";
-
-    leaf name {
-      type string;
-      description
-        "The system-assigned name for the sub-interface.  This MAY
-        be a combination of the base interface name and the
-        subinterface index, or some other convention used by the
-        system.";
-    }
-
-    uses interface-common-state;
-    uses interface-counters-state;
-  }
-
-  grouping subinterfaces-top {
-    description
-      "Subinterface data for logical interfaces associated with a
-      given interface";
-
-    container subinterfaces {
-      description
-        "Enclosing container for the list of subinterfaces associated
-        with a physical interface";
-
-      list subinterface {
-        key "index";
-
-        description
-          "The list of subinterfaces (logical interfaces) associated
-          with a physical interface";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "The index number of the subinterface -- used to address
-            the logical interface";
-        }
-
-        container config {
-          description
-            "Configurable items at the subinterface level";
-
-          uses subinterfaces-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data for logical interfaces";
-
-          uses subinterfaces-config;
-          uses subinterfaces-state;
-        }
-      }
-    }
-  }
-
-  grouping interfaces-top {
-    description
-      "Top-level grouping for interface configuration and
-      operational state data";
-
-    container interfaces {
-      description
-        "Top level container for interfaces, including configuration
-        and state data.";
-
-
-      list interface {
-        key "name";
-
-        description
-          "The list of named interfaces on the device.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the configured name of the interface";
-            //TODO: need to consider whether this should actually
-            //reference the name in the state subtree, which
-            //presumably would be the system-assigned name, or the
-            //configured name.  Points to the config/name now
-            //because of YANG 1.0 limitation that the list
-            //key must have the same "config" as the list, and
-            //also can't point to a non-config node.
-        }
-
-        container config {
-          description
-            "Configurable items at the global, physical interface
-            level";
-
-          uses interface-phys-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data at the global interface level";
-
-          uses interface-phys-config;
-          uses interface-common-state;
-          uses interface-counters-state;
-        }
-
-        uses interface-phys-holdtime-top;
-        uses subinterfaces-top;
-      }
-    }
-  }
-
-  uses interfaces-top;
-
-
-}
\ No newline at end of file