This commit consists of some miscellaneous small changes and some
exception tracking to help packet-out debugging in the adapter.

Change-Id: I1d6b50f60c800768acb5a132c1d630416ac9811f
diff --git a/rw_core/core/logical_device_agent.go b/rw_core/core/logical_device_agent.go
index ee3d82a..7875da7 100644
--- a/rw_core/core/logical_device_agent.go
+++ b/rw_core/core/logical_device_agent.go
@@ -110,12 +110,12 @@
 		lp.DeviceId = agent.rootDeviceId
 		lp.Id = fmt.Sprintf("nni-%d", port.PortNo)
 		lp.OfpPort.PortNo = port.PortNo
-		lp.OfpPort.Name = portCap.Port.Id
+		lp.OfpPort.Name = lp.Id
 		lp.DevicePortNo = port.PortNo
 		ld.Ports = append(ld.Ports, lp)
 	}
 	agent.lockLogicalDevice.Lock()
-	defer agent.lockLogicalDevice.Unlock()
+	//defer agent.lockLogicalDevice.Unlock()
 	// Save the logical device
 	if added := agent.clusterDataProxy.AddWithID("/logical_devices", ld.Id, ld, ""); added == nil {
 		log.Errorw("failed-to-add-logical-device", log.Fields{"logicaldeviceId": agent.logicalDeviceId})
@@ -133,6 +133,11 @@
 	agent.flowProxy.RegisterCallback(model.POST_UPDATE, agent.flowTableUpdated)
 	agent.groupProxy.RegisterCallback(model.POST_UPDATE, agent.groupTableUpdated)
 
+	agent.lockLogicalDevice.Unlock()
+
+	// Setup the device graph
+	go agent.setupDeviceGraph()
+
 	return nil
 }
 
@@ -255,7 +260,7 @@
 	if ldevice, err := agent.getLogicalDeviceWithoutLock(); err != nil {
 		return status.Error(codes.NotFound, agent.logicalDeviceId)
 	} else {
-		log.Infow("!!!!!!!!!!!ADDING-UNI", log.Fields{"deviceId": childDevice.Id})
+		log.Debugw("adding-uni", log.Fields{"deviceId": childDevice.Id})
 		portCap.Port.RootPort = false
 		//TODO: For now use the channel id assigned by the OLT as logical port number
 		lPortNo := childDevice.ProxyAddress.ChannelId
@@ -265,6 +270,7 @@
 		portCap.Port.DeviceId = childDevice.Id
 		portCap.Port.DevicePortNo = uniPort
 		portCap.Port.DeviceId = childDevice.Id
+
 		ldevice.Ports = append(ldevice.Ports, portCap.Port)
 		return agent.updateLogicalDeviceWithoutLock(ldevice)
 	}
@@ -959,9 +965,6 @@
 		return nil
 	}
 
-	// Ensure the device graph has been setup
-	agent.setupDeviceGraph()
-
 	var groups *ofp.FlowGroups
 	lDevice, _ := agent.getLogicalDeviceWithoutLock()
 	groups = lDevice.FlowGroups
@@ -1001,9 +1004,6 @@
 		return nil
 	}
 
-	// Ensure the device graph has been setup
-	agent.setupDeviceGraph()
-
 	var flows *ofp.Flows
 	lDevice, _ := agent.getLogicalDeviceWithoutLock()
 	flows = lDevice.Flows