module openconfig-if-types {
  yang-version "1";

  namespace "http://openconfig.net/yang/openconfig-if-types";

  prefix "oc-ift";

  // import statements
  import openconfig-extensions { prefix oc-ext; }

  // meta
  organization
    "OpenConfig working group";

  contact
    "OpenConfig working group
    netopenconfig@googlegroups.com";

  description
    "This module contains a set of interface type definitions that
    are used across OpenConfig models. These are generally physical
    or logical interfaces, distinct from hardware ports (which are
    described by the OpenConfig platform model).";

  oc-ext:openconfig-version "0.1.0";

  revision "2016-11-14" {
    description
      "Initial version";
    reference "0.1.0";
  }


  identity INTERFACE_TYPE {
    description
      "Base identity from which interface types are derived.";
  }

  identity IF_ETHERNET {
    base INTERFACE_TYPE;
    description
      "Ethernet interfaces based on IEEE 802.3 standards, as well
      as FlexEthernet";
    reference
      "IEEE 802.3-2015 - IEEE Standard for Ethernet
      OIF Flex Ethernet Implementation Agreement 1.0";
  }

  identity IF_AGGREGATE {
    base INTERFACE_TYPE;
    description
      "An aggregated, or bonded, interface forming a
      Link Aggregation Group (LAG), or bundle, most often based on
      the IEEE 802.1AX (or 802.3ad) standard.";
    reference
      "IEEE 802.1AX-2008";
  }

  identity IF_LOOPBACK {
    base INTERFACE_TYPE;
    description
      "A virtual interface designated as a loopback used for
      various management and operations tasks.";
  }

  identity IF_ROUTED_VLAN {
    base INTERFACE_TYPE;
    description
      "A logical interface used for routing services on a VLAN.
      Such interfaces are also known as switch virtual interfaces
      (SVI) or integrated routing and bridging interfaces (IRBs).";
  }

  identity IF_SONET {
    base INTERFACE_TYPE;
    description
      "SONET/SDH interface";
  }

}
