Adding OpenConfig YANG models.

Change-Id: I0a2fdd5826e80933cf4b9ae939ff3051acec02aa
diff --git a/models/openconfig/src/main/yang/openflow/openconfig-openflow-types.yang b/models/openconfig/src/main/yang/openflow/openconfig-openflow-types.yang
new file mode 100644
index 0000000..d08676b
--- /dev/null
+++ b/models/openconfig/src/main/yang/openflow/openconfig-openflow-types.yang
@@ -0,0 +1,87 @@
+module openconfig-openflow-types {
+
+  yang-version "1";
+
+  namespace "http://openconfig.net/yang/openflow/types";
+
+  prefix "openflow-types";
+
+  import openconfig-extensions { prefix oc-ext; }
+
+  organization "OpenConfig working group";
+
+  contact
+    "OpenConfig working group
+    www.openconfig.net";
+
+  description
+    "This module defines types related to the Openflow configuration
+    and operational state model.";
+
+  oc-ext:openconfig-version "0.1.0";
+
+  revision "2017-06-01" {
+    description
+      "Initial revision";
+    reference "0.1.0";
+  }
+
+
+  typedef failure-mode {
+    type enumeration {
+      enum SECURE {
+        description
+          "Packets and messages destined to the controllers are
+          dropped. Flow entries continue to expire according to
+          their timeouts.";
+      }
+      enum STANDALONE {
+        description
+          "Processes all packets using the OFPP_NORMAL reserved
+          port. The switch acts as a legacy Ethernet switch or
+          router.";
+      }
+    }
+    description
+      "Type to define Openflow failure mode.";
+  }
+
+  typedef transport {
+    type enumeration {
+      enum TCP {
+        description
+          "Transmission Control Protocol (TCP).";
+      }
+      enum TLS {
+        description
+          "Transport Layer Security (TLS).";
+      }
+    }
+    description
+      "Type to define Openflow transport protocol.";
+  }
+
+  typedef auxiliary-id {
+    type uint8 {
+      range "0..15";
+    }
+    description
+      "A Controller may have multiple auxiliary connections as
+      specified by the Openflow protocol. The main Controller
+      connection should always have the auxiliary-id set to zero.
+      All other connections must have an auxiliary-id different
+      from 0.";
+  }
+
+  typedef datapath-id {
+    type string {
+      pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}$';
+    }
+    description
+        "The datapath-id type represents an OpenFlow
+        datapath identifier. The lower 48-bits are for
+        a MAC address, while the upper 16-bits are
+        implementer-defined.";
+  }
+
+}