[VOL-1524] Use port labels as port IDs

This commit consists of the following:
1) Update the simulated OLT and ONU adapters to set the port label
using the port number
2) Update the ponsim OLT and ONU adapters to set the port label
using the port number.
3) Update the logic to verify whether a logical port exist using
the port label.
4) Update the logical device lock when adding a port to the logical
device to prevent two requests to add the same port from
occuring in parallel.

Change-Id: Ia5a732db1f3fc6e559acd7e70ae9659113b6fa9f
diff --git a/adapters/simulated_onu/adaptercore/device_handler.go b/adapters/simulated_onu/adaptercore/device_handler.go
index 4404643..aad0c86 100644
--- a/adapters/simulated_onu/adaptercore/device_handler.go
+++ b/adapters/simulated_onu/adaptercore/device_handler.go
@@ -17,6 +17,7 @@
 
 import (
 	"context"
+	"fmt"
 	"github.com/gogo/protobuf/proto"
 	com "github.com/opencord/voltha-go/adapters/common"
 	"github.com/opencord/voltha-go/common/log"
@@ -104,10 +105,18 @@
 		log.Errorw("error-updating-device", log.Fields{"deviceId": device.Id, "error": err})
 	}
 
-	//	Now create the NNI Port
+	// Use the channel Id, assigned by the parent device to me, as the port number
+	uni_port := uint32(2)
+	if device.ProxyAddress != nil {
+		if device.ProxyAddress.ChannelId != 0 {
+			uni_port = device.ProxyAddress.ChannelId
+		}
+	}
+
+	//	Now create the UNI Port
 	dh.uniPort = &voltha.Port{
-		PortNo:     2,
-		Label:      "UNI facing Ethernet port",
+		PortNo:     uni_port,
+		Label:      fmt.Sprintf("uni-%d", uni_port),
 		Type:       voltha.Port_ETHERNET_UNI,
 		AdminState: voltha.AdminState_ENABLED,
 		OperStatus: voltha.OperStatus_ACTIVE,
@@ -121,7 +130,7 @@
 	//	Now create the PON Port
 	dh.ponPort = &voltha.Port{
 		PortNo:     1,
-		Label:      "PON port",
+		Label:      fmt.Sprintf("pon-%d", 1),
 		Type:       voltha.Port_PON_ONU,
 		AdminState: voltha.AdminState_ENABLED,
 		OperStatus: voltha.OperStatus_ACTIVE,