[VOL-4137] Reporting logical device deletion through event to of-agent for immediate disconnection from ONOS

Change-Id: I35cd8922ee34bbb8055c9418e46a2bd754dfbd02
diff --git a/rw_core/core/device/event/event.go b/rw_core/core/device/event/event.go
index d21995f..ab80736 100644
--- a/rw_core/core/device/event/event.go
+++ b/rw_core/core/device/event/event.go
@@ -201,6 +201,19 @@
 	}
 }
 
+// SendDeviceDeletionEvent notifies the ofAgent that the logical device was removed.
+func (q *Manager) SendDeviceDeletionEvent(ctx context.Context, logicalDeviceID string) {
+	logger.Infow(ctx, "send-change-event-for-device-deletion", log.Fields{"logical-device-id": logicalDeviceID})
+	q.changeEventQueue <- openflow_13.ChangeEvent{
+		Id: logicalDeviceID,
+		Event: &openflow_13.ChangeEvent_DeviceStatus{
+			DeviceStatus: &openflow_13.OfpDeviceStatus{
+				Status: openflow_13.OfpDeviceConnection_OFPDEV_DISCONNECTED,
+			},
+		},
+	}
+}
+
 // ReceiveChangeEvents receives change in events
 func (q *Manager) ReceiveChangeEvents(_ *empty.Empty, changeEvents voltha.VolthaService_ReceiveChangeEventsServer) error {
 	ctx := context.Background()