VOL-3419: OpenOLT adapter at scale constantly takes more that 10 seconds to react to flows
- Pass information to agent to do the flow replication
- Consolidate various locks in the adapter and remove reduntant locks
- use voltha-proto version 4.0.2 and voltha-lib-go version 4.0.0
- Bump adapter version to 3.0.0

Change-Id: Ic053c54e5319bb1736ec74facfc79dd10058ecf5
diff --git a/internal/pkg/olterrors/olterrors.go b/internal/pkg/olterrors/olterrors.go
index 214c206..c5790ac 100644
--- a/internal/pkg/olterrors/olterrors.go
+++ b/internal/pkg/olterrors/olterrors.go
@@ -21,7 +21,7 @@
 	"context"
 	"encoding/json"
 	"fmt"
-	"github.com/opencord/voltha-lib-go/v3/pkg/log"
+	"github.com/opencord/voltha-lib-go/v4/pkg/log"
 	"strings"
 )
 
@@ -203,7 +203,7 @@
 }
 
 // NewErrPersistence constructs a new error based on the given values
-func NewErrPersistence(operation, entityType string, ID uint32, fields log.Fields, wrapped error) LoggableError {
+func NewErrPersistence(operation, entityType string, ID uint64, fields log.Fields, wrapped error) LoggableError {
 	return &ErrPersistence{
 		ErrAdapter{
 			name: "unable-to-persist",
@@ -265,7 +265,7 @@
 }
 
 // NewErrFlowOp constructs a new error based on the given values
-func NewErrFlowOp(operation string, ID uint32, fields log.Fields, wrapped error) LoggableError {
+func NewErrFlowOp(operation string, ID uint64, fields log.Fields, wrapped error) LoggableError {
 	return &ErrPersistence{
 		ErrAdapter{
 			name: "unable-to-perform-flow-operation",