Adding OpenConfig YANG models.

Change-Id: I0a2fdd5826e80933cf4b9ae939ff3051acec02aa
diff --git a/models/openconfig/src/main/yang/rib/openconfig-rib-bgp-types.yang b/models/openconfig/src/main/yang/rib/openconfig-rib-bgp-types.yang
new file mode 100644
index 0000000..8758cea
--- /dev/null
+++ b/models/openconfig/src/main/yang/rib/openconfig-rib-bgp-types.yang
@@ -0,0 +1,155 @@
+module openconfig-rib-bgp-types {
+
+  yang-version "1";
+
+  // namespace
+  namespace "http://openconfig.net/yang/rib/bgp-types";
+
+  prefix "oc-bgprib-types";
+
+  import openconfig-extensions { prefix oc-ext; }
+
+  organization "OpenConfig working group";
+
+  contact
+    "OpenConfig working group
+    www.openconfig.net";
+
+  description
+    "Defines identity and type defintions associated with
+    the OpenConfig BGP RIB modules";
+
+  oc-ext:openconfig-version "0.3.0";
+
+  revision "2016-10-17" {
+    description
+      "OpenConfig BGP RIB refactor";
+    reference "0.3.0";
+  }
+
+  revision "2016-04-11" {
+    description
+      "OpenConfig public release";
+    reference "0.2.0";
+  }
+
+  identity INVALID_ROUTE_REASON {
+    description
+      "Base identity for reason code for routes that are rejected as
+      invalid.  Some derived entities are based on BMP v3";
+    reference "BGP Monitoring Protocol (draft-ietf-grow-bmp-07)";
+  }
+
+  identity INVALID_CLUSTER_LOOP {
+    base INVALID_ROUTE_REASON;
+    description
+      "Route was invalid due to CLUSTER_LIST loop";
+  }
+
+  identity INVALID_AS_LOOP {
+    base INVALID_ROUTE_REASON;
+    description
+      "Route was invalid due to AS_PATH loop";
+  }
+
+  identity INVALID_ORIGINATOR {
+    base INVALID_ROUTE_REASON;
+    description
+      "Route was invalid due to ORIGINATOR_ID, e.g., update has
+      local router as originator";
+  }
+
+  identity INVALID_CONFED {
+    base INVALID_ROUTE_REASON;
+    description
+      "Route was invalid due to a loop in the AS_CONFED_SEQUENCE or
+      AS_CONFED_SET attributes";
+  }
+
+  identity BGP_NOT_SELECTED_BESTPATH {
+    description
+      "Base identity for indicating reason a route was was not
+      selected by BGP route selection algorithm";
+    reference
+      "RFC 4271 - Section 9.1";
+  }
+
+  identity LOCAL_PREF_LOWER {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route has a lower localpref attribute than current best path";
+    reference
+      "RFC 4271 - Section 9.1.2";
+  }
+
+  identity AS_PATH_LONGER {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route has a longer AS path attribute than current best path";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (a)";
+  }
+
+  identity ORIGIN_TYPE_HIGHER {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route has a higher origin type, i.e., IGP origin is preferred
+      over EGP or incomplete";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (b)";
+  }
+
+  identity MED_HIGHER {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route has a higher MED, or metric, attribute than the current
+      best path";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (c)";
+  }
+
+  identity PREFER_EXTERNAL {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route source is via IGP, rather than EGP.";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (d)";
+  }
+
+  identity NEXTHOP_COST_HIGHER {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route has a higher interior cost to the next hop.";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (e)";
+  }
+
+  identity HIGHER_ROUTER_ID {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route was sent by a peer with a higher BGP Identifier value,
+      or router id";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (f)";
+  }
+
+  identity HIGHER_PEER_ADDRESS {
+    base BGP_NOT_SELECTED_BESTPATH;
+    description
+      "Route was sent by a peer with a higher IP address";
+    reference
+      "RFC 4271 - Section 9.1.2.2 (g)";
+  }
+
+  identity BGP_NOT_SELECTED_POLICY {
+    description
+      "Base identity for reason code for routes that are rejected
+      due to policy";
+  }
+
+  identity REJECTED_IMPORT_POLICY {
+    base BGP_NOT_SELECTED_POLICY;
+    description
+      "Route was rejected after apply import policies";
+  }
+}
\ No newline at end of file