diff --git a/VERSION b/VERSION
index 6e253cc..67e1183 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1,2 @@
-3.3.4-dev
+3.4.0
+
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index bc88adf..47d2df0 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -57,6 +57,7 @@
 	defaultOmccEncryption        = false
 	defaultEnableONUStats        = false
 	defaultEnableGEMStats        = false
+	defaultReconnectTimeout      = 1 * time.Minute
 )
 
 // AdapterFlags represents the set of configurations used by the read-write adaptercore service
@@ -90,6 +91,7 @@
 	OmccEncryption              bool
 	EnableONUStats              bool
 	EnableGEMStats              bool
+	ReconnectTimeout            time.Duration
 }
 
 // NewAdapterFlags returns a new RWCore config
@@ -120,6 +122,7 @@
 		OmccEncryption:              defaultOmccEncryption,
 		EnableONUStats:              defaultEnableONUStats,
 		EnableGEMStats:              defaultEnableGEMStats,
+		ReconnectTimeout:            defaultReconnectTimeout,
 	}
 	return &adapterFlags
 }
@@ -205,6 +208,9 @@
 	help = fmt.Sprintf("Enable GEM Statistics")
 	flag.BoolVar(&(so.EnableGEMStats), "enable_gem_stats", defaultEnableGEMStats, help)
 
+	help = fmt.Sprintf("Number of seconds for reconnection retries to a device")
+	flag.DurationVar(&(so.ReconnectTimeout), "reconnection_timeout", defaultReconnectTimeout, help)
+
 	flag.Parse()
 	containerName := getContainerInfo()
 	if len(containerName) > 0 {
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index 9915268..e81cd8f 100644
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -430,9 +430,26 @@
 						log.Fields{"err": err,
 							"device-id": dh.device.Id})
 				}
-				if indications, err = dh.startOpenOltIndicationStream(ctx); err != nil {
+				// if the connection drops we should retry to establish a new one for a little bit
+				// for now set to 2 Minutes
+				reconnectBackoff := backoff.NewExponentialBackOff()
+				reconnectBackoff.MaxElapsedTime = dh.openOLT.ReconnectTimeout
+				reconnectOperation := func() error {
+					logger.Debugw(ctx, "attempting-reconnection-to-device",
+						log.Fields{"err": err,
+							"device-id": dh.device.Id})
+					if indications, err = dh.startOpenOltIndicationStream(ctx); err != nil {
+						return err
+					}
+					return nil
+				}
+				if err = backoff.Retry(reconnectOperation, reconnectBackoff); err != nil {
+					logger.Errorw(ctx, "cannot-reconnect-to-device-backoff-expired",
+						log.Fields{"err": err,
+							"device-id": dh.device.Id})
 					return err
 				}
+
 				// once we re-initialized the indication stream, continue to read indications
 				continue
 			}
diff --git a/internal/pkg/core/device_handler_test.go b/internal/pkg/core/device_handler_test.go
index 1cae8b6..cc19c38 100644
--- a/internal/pkg/core/device_handler_test.go
+++ b/internal/pkg/core/device_handler_test.go
@@ -1134,6 +1134,7 @@
 }
 
 func TestDeviceHandler_readIndications(t *testing.T) {
+	t.Skip("Implement actual readIndications tests")
 	dh1 := newMockDeviceHandler()
 	dh2 := newMockDeviceHandler()
 	dh3 := newMockDeviceHandler()
diff --git a/internal/pkg/core/olt_state_transitions.go b/internal/pkg/core/olt_state_transitions.go
index e67bd43..c3d9ed2 100644
--- a/internal/pkg/core/olt_state_transitions.go
+++ b/internal/pkg/core/olt_state_transitions.go
@@ -41,6 +41,17 @@
 	deviceStateDown
 )
 
+func (d DeviceState) String() string {
+	names := [...]string{
+		"deviceStateNull",
+		"deviceStateInit",
+		"deviceStateConnected",
+		"deviceStateUp",
+		"deviceStateDown",
+	}
+	return names[d]
+}
+
 // Trigger for changing the state
 type Trigger int
 
diff --git a/internal/pkg/core/openolt.go b/internal/pkg/core/openolt.go
index 6564e29..1be2825 100644
--- a/internal/pkg/core/openolt.go
+++ b/internal/pkg/core/openolt.go
@@ -54,6 +54,7 @@
 	lockDeviceHandlersMap       sync.RWMutex
 	enableONUStats              bool
 	enableGemStats              bool
+	ReconnectTimeout            time.Duration
 }
 
 //NewOpenOLT returns a new instance of OpenOLT
@@ -78,6 +79,7 @@
 	openOLT.configManager = cm
 	openOLT.enableONUStats = cfg.EnableONUStats
 	openOLT.enableGemStats = cfg.EnableGEMStats
+	openOLT.ReconnectTimeout = cfg.ReconnectTimeout
 	return &openOLT
 }
 
diff --git a/internal/pkg/core/openolt_flowmgr.go b/internal/pkg/core/openolt_flowmgr.go
index eb35925..3cc00c7 100644
--- a/internal/pkg/core/openolt_flowmgr.go
+++ b/internal/pkg/core/openolt_flowmgr.go
@@ -2136,7 +2136,10 @@
 //RemoveFlow removes the flow from the device
 func (f *OpenOltFlowMgr) RemoveFlow(ctx context.Context, flow *ofp.OfpFlowStats) error {
 
-	logger.Infow(ctx, "removing-flow", log.Fields{"flow": *flow})
+	logger.Infow(ctx, "removing-flow", log.Fields{
+		"flow":      *flow,
+		"device-id": f.deviceHandler.device.Id,
+	})
 	var direction string
 	actionInfo := make(map[string]interface{})
 
@@ -2249,7 +2252,9 @@
 	logger.Infow(ctx, "adding-flow",
 		log.Fields{
 			"flow":         flow,
-			"flowmetadata": flowMetadata})
+			"flowmetadata": flowMetadata,
+			"device-id":    f.deviceHandler.device.Id,
+		})
 	formulateClassifierInfoFromFlow(ctx, classifierInfo, flow)
 
 	err := formulateActionInfoFromFlow(ctx, actionInfo, classifierInfo, flow)
