diff --git a/net/api/src/main/java/org/onlab/onos/provider/Provider.java b/net/api/src/main/java/org/onlab/onos/provider/Provider.java
new file mode 100644
index 0000000..8fb047f
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/provider/Provider.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.provider;
+
+/**
+ * Abstraction of a provider of information about network environment.
+ */
+public interface Provider {
+
+    ProviderId id();
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/provider/ProviderBroker.java b/net/api/src/main/java/org/onlab/onos/provider/ProviderBroker.java
new file mode 100644
index 0000000..20a612e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/provider/ProviderBroker.java
@@ -0,0 +1,27 @@
+package org.onlab.onos.provider;
+
+/**
+ * Broker used for registering/unregistering information providers with the core.
+ *
+ * @param <T> type of the information provider
+ * @param <S> type of the provider service
+ */
+public interface ProviderBroker<T extends Provider, S extends ProviderService> {
+
+    /**
+     * Registers the supplied provider with the core.
+     *
+     * @param provider provider to be registered
+     * @return provider service for injecting information into core
+     */
+    S register(T provider);
+
+    /**
+     * Unregisters the supplied provider. As a result the previously issued
+     * provider service will be invalidated.
+     *
+     * @param provider provider to be unregistered
+     */
+    void unregister(T provider);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/provider/ProviderId.java b/net/api/src/main/java/org/onlab/onos/provider/ProviderId.java
new file mode 100644
index 0000000..a5a297e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/provider/ProviderId.java
@@ -0,0 +1,43 @@
+package org.onlab.onos.provider;
+
+/**
+ * Notion of provider identity.
+ */
+public class ProviderId {
+
+    private final String id;
+
+    public ProviderId(String id) {
+        this.id = id;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ProviderId that = (ProviderId) o;
+
+        if (!id.equals(that.id)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return id.hashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "ProviderId{" +
+                "id='" + id + '\'' +
+                '}';
+    }
+}
diff --git a/net/api/src/main/java/org/onlab/onos/provider/ProviderService.java b/net/api/src/main/java/org/onlab/onos/provider/ProviderService.java
new file mode 100644
index 0000000..fcfc7ad
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/provider/ProviderService.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.provider;
+
+/**
+ * Abstraction of a service through which providers can inject information
+ * about the network environment into the core.
+ */
+public interface ProviderService {
+}
