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 + '\'' +
+                '}';
+    }
+}
