began implementing MastershipManager

Change-Id: I65b86dcfa062e4cfd74de588f4714b35e9d329f0
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java b/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java
new file mode 100644
index 0000000..2cbad7f
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java
@@ -0,0 +1,7 @@
+package org.onlab.onos.cluster;
+
+import org.onlab.onos.net.provider.Provider;
+
+public interface MastershipProvider extends Provider {
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/MastershipProviderService.java b/core/api/src/main/java/org/onlab/onos/cluster/MastershipProviderService.java
new file mode 100644
index 0000000..a777f63
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/cluster/MastershipProviderService.java
@@ -0,0 +1,18 @@
+package org.onlab.onos.cluster;
+
+import org.onlab.onos.net.DeviceId;
+import org.onlab.onos.net.MastershipRole;
+import org.onlab.onos.net.provider.ProviderService;
+
+public interface MastershipProviderService extends
+        ProviderService<MastershipProvider> {
+
+    /**
+     * Signals the core that mastership has changed for a device.
+     *
+     * @param deviceId the device ID
+     * @param role the new mastership role of this controller instance
+     */
+    void roleChanged(DeviceId deviceId, MastershipRole role);
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java b/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java
index 728e77d..cb4a076 100644
--- a/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java
+++ b/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java
@@ -25,7 +25,7 @@
                             MastershipRole role);
 
     /**
-     * Adds or updates the mastership information for a device.
+     * Adds or updates mastership information for a device.
      *
      * @param instance controller instance identifier
      * @param deviceId device identifier