Adding OpenConfig YANG models.

Change-Id: I0a2fdd5826e80933cf4b9ae939ff3051acec02aa
diff --git a/models/openconfig/src/main/yang/interfaces/openconfig-if-types.yang b/models/openconfig/src/main/yang/interfaces/openconfig-if-types.yang
new file mode 100644
index 0000000..dc447ef
--- /dev/null
+++ b/models/openconfig/src/main/yang/interfaces/openconfig-if-types.yang
@@ -0,0 +1,80 @@
+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";
+  }
+
+}