diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceAgentEvent.java b/core/api/src/main/java/org/onosproject/net/device/DeviceAgentEvent.java
index 22eab99..d2520b0 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceAgentEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceAgentEvent.java
@@ -64,6 +64,12 @@
          */
         ROLE_NONE,
 
+        /**
+         * Signifies that the agent cannot perform operations on the device
+         * because its role is not master.
+         */
+        NOT_MASTER,
+
     }
 
     /**
diff --git a/core/net/src/main/java/org/onosproject/net/pi/impl/PiPipeconfWatchdogManager.java b/core/net/src/main/java/org/onosproject/net/pi/impl/PiPipeconfWatchdogManager.java
index 8376295..6b41fd5 100644
--- a/core/net/src/main/java/org/onosproject/net/pi/impl/PiPipeconfWatchdogManager.java
+++ b/core/net/src/main/java/org/onosproject/net/pi/impl/PiPipeconfWatchdogManager.java
@@ -108,7 +108,7 @@
     private ComponentConfigService componentConfigService;
 
     private static final String PROBE_INTERVAL = "probeInterval";
-    private static final int DEFAULT_PROBE_INTERVAL = 30;
+    private static final int DEFAULT_PROBE_INTERVAL = 15;
     @Property(name = PROBE_INTERVAL, intValue = DEFAULT_PROBE_INTERVAL,
             label = "Configure interval in seconds for device pipeconf probing")
     private int probeInterval = DEFAULT_PROBE_INTERVAL;
diff --git a/protocols/p4runtime/api/src/main/java/org/onosproject/p4runtime/api/P4RuntimeEvent.java b/protocols/p4runtime/api/src/main/java/org/onosproject/p4runtime/api/P4RuntimeEvent.java
index 0316ed4..4e0ea60b 100644
--- a/protocols/p4runtime/api/src/main/java/org/onosproject/p4runtime/api/P4RuntimeEvent.java
+++ b/protocols/p4runtime/api/src/main/java/org/onosproject/p4runtime/api/P4RuntimeEvent.java
@@ -42,7 +42,12 @@
         /**
          * Channel Event.
          */
-        CHANNEL_EVENT
+        CHANNEL_EVENT,
+
+        /**
+         * Permission denied (not master).
+         */
+        PERMISSION_DENIED,
     }
 
     public P4RuntimeEvent(Type type, P4RuntimeEventSubject subject) {
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ArbitrationResponse.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ArbitrationResponse.java
index ea3c24f..f93a4cd 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ArbitrationResponse.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ArbitrationResponse.java
@@ -22,7 +22,7 @@
 /**
  * Default implementation of arbitration in P4Runtime.
  */
-class ArbitrationResponse implements P4RuntimeEventSubject {
+final class ArbitrationResponse implements P4RuntimeEventSubject {
 
     private DeviceId deviceId;
     private boolean isMaster;
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/BaseP4RuntimeEventSubject.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/BaseP4RuntimeEventSubject.java
new file mode 100644
index 0000000..a78f10c
--- /dev/null
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/BaseP4RuntimeEventSubject.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.p4runtime.ctl;
+
+import org.onosproject.net.DeviceId;
+import org.onosproject.p4runtime.api.P4RuntimeEventSubject;
+
+/**
+ * Base P4Runtime event subject that carries just the device ID that originated
+ * the event.
+ */
+final class BaseP4RuntimeEventSubject implements P4RuntimeEventSubject {
+
+    private DeviceId deviceId;
+
+    /**
+     * Creates an event subject.
+     *
+     * @param deviceId the device
+     */
+    BaseP4RuntimeEventSubject(DeviceId deviceId) {
+        this.deviceId = deviceId;
+    }
+
+    @Override
+    public DeviceId deviceId() {
+        return deviceId;
+    }
+}
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
index 443514f..867bfa3 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
@@ -1113,8 +1113,8 @@
             case PERMISSION_DENIED:
                 // Notify upper layers that this node is not master.
                 controller.postEvent(new P4RuntimeEvent(
-                        P4RuntimeEvent.Type.ARBITRATION_RESPONSE,
-                        new ArbitrationResponse(deviceId, false)));
+                        P4RuntimeEvent.Type.PERMISSION_DENIED,
+                        new BaseP4RuntimeEventSubject(deviceId)));
                 break;
             case RESOURCE_EXHAUSTED:
                 break;
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
index 4ca08f1..cb413bc 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
@@ -261,12 +261,20 @@
             case ARBITRATION_RESPONSE:
                 handleArbitrationReply(event);
                 break;
+            case PERMISSION_DENIED:
+                handlePermissionDenied(event);
+                break;
             default:
                 post(event);
                 break;
         }
     }
 
+    private void handlePermissionDenied(P4RuntimeEvent event) {
+        postDeviceAgentEvent(event.subject().deviceId(), new DeviceAgentEvent(
+                DeviceAgentEvent.Type.NOT_MASTER, event.subject().deviceId()));
+    }
+
     private void handleChannelEvent(P4RuntimeEvent event) {
         final ChannelEvent channelEvent = (ChannelEvent) event.subject();
         final DeviceId deviceId = channelEvent.deviceId();
diff --git a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
index 42faa0c..e5c321e 100644
--- a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
+++ b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
@@ -455,7 +455,7 @@
         // Start connection via handshaker.
         final Boolean connectSuccess = getFutureWithDeadline(
                 handshaker.connect(), "initiating connection",
-                deviceId, null, opTimeoutShort);
+                deviceId, false, opTimeoutShort);
         if (!connectSuccess) {
             log.warn("Unable to connect to {}", deviceId);
         }
@@ -887,6 +887,12 @@
         }
     }
 
+    private void handleNotMaster(DeviceId deviceId) {
+        log.warn("Device {} notified that this node is not master, " +
+                         "relinquishing mastership...", deviceId);
+        mastershipService.relinquishMastership(deviceId);
+    }
+
     private <U> U getFutureWithDeadline(CompletableFuture<U> future, String opDescription,
                                         DeviceId deviceId, U defaultValue, int timeout) {
         try {
@@ -948,6 +954,9 @@
                 case ROLE_NONE:
                     handleMastershipResponse(deviceId, MastershipRole.NONE);
                     break;
+                case NOT_MASTER:
+                    handleNotMaster(deviceId);
+                    break;
                 default:
                     log.warn("Unrecognized device agent event {}", event.type());
             }
