Added cubby-holes for new projects.
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
new file mode 100644
index 0000000..2b83890
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
@@ -0,0 +1,21 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.Description;
+
+import java.net.URI;
+
+/**
+ * Carrier of immutable information about a device.
+ */
+public interface DeviceDescription extends Description {
+
+    /**
+     * Protocol/provider specific URI that can be used to encode the identity
+     * information required to communicate with the device externally, e.g.
+     * datapath ID.
+     *
+     * @return provider specific URI for the device
+     */
+    URI deviceURI();
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
new file mode 100644
index 0000000..04ca92c
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
@@ -0,0 +1,9 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Abstraction of a device information provider.
+ */
+public interface DeviceProvider extends Provider {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
new file mode 100644
index 0000000..926f76e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.ProviderBroker;
+
+/**
+ * Abstraction of a device provider brokerage.
+ */
+public interface DeviceProviderBroker
+        extends ProviderBroker<DeviceProvider, DeviceProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
new file mode 100644
index 0000000..e5ee1f0
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
@@ -0,0 +1,44 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.ProviderService;
+
+import java.util.List;
+
+/**
+ * Service through which device providers can inject device information into
+ * the core.
+ */
+public interface DeviceProviderService extends ProviderService {
+
+    // TODO: define suspend and remove actions on the mezzanine administrative API
+
+    /**
+     * Signals the core that a device has connected or has been detected somehow.
+     *
+     * @param deviceDescription information about network device
+     */
+    void deviceConnected(DeviceDescription deviceDescription);
+
+    /**
+     * Signals the core that a device has disconnected or is no longer reachable.
+     *
+     * @param deviceDescription device to be removed
+     */
+    void deviceDisconnected(DeviceDescription deviceDescription);
+
+    /**
+     * Sends information about all ports of a device. It is up to the core to
+     * determine what has changed.
+     *
+     * @param ports list of device ports
+     */
+    void updatePorts(List<PortDescription> ports);
+
+    /**
+     * Used to notify the core about port status change of a single port.
+     *
+     * @param port description of the port that changed
+     */
+    void portStatusChanged(PortDescription port);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java b/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
new file mode 100644
index 0000000..4c944ab
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.device;
+
+/**
+ * Information about a port.
+ */
+public interface PortDescription {
+
+    // TODO: possibly relocate this to a common ground so that this can also used by host tracking if required
+
+}