reassertRole when stream channel is not opened correctly

Change-Id: Ib078f67e37365bbd429a9b9f47d4b1ba83a3cdde
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index c7a31ef..0ed09e5 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -834,6 +834,13 @@
                     // TODO: Shouldn't we be triggering event?
                     //final Device device = getDevice(deviceId);
                     //post(new DeviceEvent(DEVICE_MASTERSHIP_CHANGED, device));
+                } else if (requested ==  MastershipRole.STANDBY) {
+                    // For P4RT devices, the response role will be NONE when this node is expected to be STANDBY
+                    // but the stream channel is not opened correctly.
+                    // Calling reassertRole will trigger the mechanism in GeneralDeviceProvider that
+                    // attempts to re-establish the stream channel
+                    backgroundService.execute(() -> reassertRole(deviceId, expected));
+                    return;
                 }
             }
         }