[VOL-5374] Update go version to 1.23

- Upgraded Go version for compatibility with recent toolchain
- Synced with latest dependency requirements

Change-Id: Ib526d29ec9e5d5e08e51354b741541038dcedb35
Signed-off-by: Akash Kankanala <akash.kankanala@radisys.com>
diff --git a/.golangci.yml b/.golangci.yml
index a123737..aca3874 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -21,6 +21,9 @@
           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
+    enable:
+      - shadow
+      - fieldalignment
   golint:
     min-confidence: 0
 
@@ -37,12 +40,17 @@
     #- gochecknoinits
     - gocyclo
     - gofmt
-    - golint
     - govet
     - ineffassign
     - misspell
     - gosec
-    #- unparam
+    - errcheck
+    - whitespace
+    - goimports
+    - gosimple
+    - staticcheck
+    - unused
+    - unparam
 
 run:
   modules-download-mode: vendor
@@ -52,7 +60,12 @@
     - text: "weak cryptographic primitive"
       linters:
         - gosec
+    - path: ".*_test.go"
+      linters:
+        - govet
+        - fieldalignment
   exclude-use-default: false
   exclude:
     - "SA1019: voltha.ImageDownloads is deprecated"
     - "SA1019: voltha.ImageDownload is deprecated"
+    - 'G115: integer overflow conversion'
diff --git a/Makefile b/Makefile
index 64e8d84..4882fe7 100644
--- a/Makefile
+++ b/Makefile
@@ -80,7 +80,7 @@
 	--build-arg org_opencord_vcs_dirty="${DOCKER_LABEL_VCS_DIRTY}"
 
 # tool containers
-VOLTHA_TOOLS_VERSION ?= 2.4.0
+VOLTHA_TOOLS_VERSION ?= 3.1.1
 
 ## TODO: Verify / migrate to repo:onf-make
 # GO                = docker run --rm --user $$(id -u):$$(id -g) -v ${CURDIR}:/app $(shell test -t 0 && echo "-it") -v gocache:/.cache -v gocache-${VOLTHA_TOOLS_VERSION}:/go/pkg voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-golang go
@@ -141,12 +141,12 @@
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
 docker-build: local-protos local-lib-go ## Build openolt adapter docker image (set BUILD_PROFILED=true to also build the profiled image)
-	docker build $(DOCKER_BUILD_ARGS) --target=${DOCKER_TARGET} --build-arg CGO_PARAMETER=0 -t ${ADAPTER_IMAGENAME} -f docker/Dockerfile.openolt .
+	docker build $(DOCKER_BUILD_ARGS) --platform=linux/amd64 --target=${DOCKER_TARGET} --build-arg CGO_PARAMETER=0 -t ${ADAPTER_IMAGENAME} -f docker/Dockerfile.openolt .
 ifdef BUILD_PROFILED
-	docker build $(DOCKER_BUILD_ARGS) --target=dev --build-arg CGO_PARAMETER=1 --build-arg EXTRA_GO_BUILD_TAGS="-tags profile" -t ${ADAPTER_IMAGENAME}-profile -f docker/Dockerfile.openolt .
+	docker build $(DOCKER_BUILD_ARGS) --platform=linux/amd64 --target=dev --build-arg CGO_PARAMETER=1 --build-arg EXTRA_GO_BUILD_TAGS="-tags profile" -t ${ADAPTER_IMAGENAME}-profile -f docker/Dockerfile.openolt .
 endif
 ifdef BUILD_RACE
-	docker build $(DOCKER_BUILD_ARGS) --target=dev --build-arg CGO_PARAMETER=1 --build-arg EXTRA_GO_BUILD_TAGS="-race" -t ${ADAPTER_IMAGENAME}-rd -f docker/Dockerfile.openolt .
+	docker build $(DOCKER_BUILD_ARGS) --platform=linux/amd64 --target=dev --build-arg CGO_PARAMETER=1 --build-arg EXTRA_GO_BUILD_TAGS="-race" -t ${ADAPTER_IMAGENAME}-rd -f docker/Dockerfile.openolt .
 endif
 
 ## -----------------------------------------------------------------------
@@ -269,8 +269,7 @@
 	@$(RM) -r ./sca-report
 	@mkdir -p ./sca-report
 	@echo "Running static code analysis..."
-	@${GOLANGCI_LINT} run --deadline=6m --out-format junit-xml ./... \
-	    | tee ./sca-report/sca-report.xml
+	@${GOLANGCI_LINT} run --out-format junit-xml ./... | tee ./sca-report/sca-report.xml
 	@echo ""
 	@echo "Static code analysis OK"
 
diff --git a/VERSION b/VERSION
index f65ccbd..b7213ae 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.5.9
+4.5.10
diff --git a/cmd/openolt-adapter/main.go b/cmd/openolt-adapter/main.go
index be2c534..fbe7880 100644
--- a/cmd/openolt-adapter/main.go
+++ b/cmd/openolt-adapter/main.go
@@ -53,20 +53,21 @@
 	oltAdapterService       = "olt-adapter-service"
 	kvService               = "kv-service"
 	coreService             = "core-service"
+	etcdStoreName           = "etcd"
 )
 
 type adapter struct {
-	instanceID      string
+	kafkaClient     kafka.Client
+	kvClient        kvstore.Client
+	eventProxy      eventif.EventProxy
 	config          *config.AdapterFlags
 	grpcServer      *vgrpc.GrpcServer
 	oltAdapter      *ac.OpenOLT
 	oltInterAdapter *ac.OpenOLTInterAdapter
-	kafkaClient     kafka.Client
-	kvClient        kvstore.Client
 	coreClient      *vgrpc.Client
-	eventProxy      eventif.EventProxy
-	halted          bool
 	exitChannel     chan int
+	instanceID      string
+	halted          bool
 }
 
 func newAdapter(cf *config.AdapterFlags) *adapter {
@@ -118,14 +119,14 @@
 	}
 
 	// Start kafka communication with the broker
-	if err := kafka.StartAndWaitUntilKafkaConnectionIsUp(ctx, a.kafkaClient, a.config.HeartbeatCheckInterval, clusterMessagingService); err != nil {
+	if err = kafka.StartAndWaitUntilKafkaConnectionIsUp(ctx, a.kafkaClient, a.config.HeartbeatCheckInterval, clusterMessagingService); err != nil {
 		logger.Fatal(ctx, "unable-to-connect-to-kafka")
 	}
 
 	// Create the event proxy to post events to KAFKA
 	a.eventProxy = events.NewEventProxy(events.MsgClient(a.kafkaClient), events.MsgTopic(kafka.Topic{Name: a.config.EventTopic}))
 	go func() {
-		if err := a.eventProxy.Start(); err != nil {
+		if err = a.eventProxy.Start(); err != nil {
 			logger.Fatalw(ctx, "event-proxy-cannot-start", log.Fields{"error": err})
 		}
 	}()
@@ -163,10 +164,10 @@
 	// Create and start the grpc server
 	a.grpcServer = vgrpc.NewGrpcServer(a.config.GrpcAddress, nil, false, p)
 
-	//Register the  adapter  service
+	// Register the  adapter  service
 	a.addAdapterService(ctx, a.grpcServer, a.oltAdapter)
 
-	//Register the olt inter-adapter  service
+	// Register the olt inter-adapter  service
 	a.addOltInterAdapterService(ctx, a.grpcServer, a.oltInterAdapter)
 
 	// Start the grpc server
@@ -299,10 +300,9 @@
 }
 
 func newKVClient(ctx context.Context, storeType, address string, timeout time.Duration) (kvstore.Client, error) {
-
 	logger.Infow(ctx, "kv-store-type", log.Fields{"store": storeType})
 	switch storeType {
-	case "etcd":
+	case etcdStoreName:
 		return kvstore.NewEtcdClient(ctx, address, timeout, log.FatalLevel)
 	case "redis":
 		return kvstore.NewRedisClient(address, timeout, false)
@@ -313,7 +313,6 @@
 }
 
 func newKafkaClient(ctx context.Context, clientType, address string) (kafka.Client, error) {
-
 	logger.Infow(ctx, "common-client-type", log.Fields{"client": clientType})
 	switch clientType {
 	case "sarama":
@@ -502,12 +501,12 @@
 	}
 
 	// Setup default logger - applies for packages that do not have specific logger set
-	if _, err := log.SetDefaultLogger(log.JSON, logLevel, log.Fields{"instanceId": cf.InstanceID}); err != nil {
+	if _, err = log.SetDefaultLogger(log.JSON, logLevel, log.Fields{"instanceId": cf.InstanceID}); err != nil {
 		logger.With(log.Fields{"error": err}).Fatal(ctx, "Cannot setup logging")
 	}
 
 	// Update all loggers (provisionned via init) with a common field
-	if err := log.UpdateAllLoggers(log.Fields{"instanceId": cf.InstanceID}); err != nil {
+	if err = log.UpdateAllLoggers(log.Fields{"instanceId": cf.InstanceID}); err != nil {
 		logger.With(log.Fields{"error": err}).Fatal(ctx, "Cannot setup logging")
 	}
 
@@ -516,7 +515,7 @@
 	realMain()
 
 	defer func() {
-		err := log.CleanUp()
+		err = log.CleanUp()
 		if err != nil {
 			logger.Errorw(context.Background(), "unable-to-flush-any-buffered-log-entries", log.Fields{"error": err})
 		}
diff --git a/cmd/openolt-adapter/main_test.go b/cmd/openolt-adapter/main_test.go
index f96e05a..3f7e52e 100644
--- a/cmd/openolt-adapter/main_test.go
+++ b/cmd/openolt-adapter/main_test.go
@@ -32,6 +32,7 @@
 	ad := newAdapter(cf)
 	return ad
 }
+
 func Test_adapter_setKVClient(t *testing.T) {
 	adapt := newMockAdapter()
 	adapt1 := newMockAdapter()
@@ -140,7 +141,6 @@
 				t.Errorf("newKafkaClient() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
-
 		})
 	}
 }
diff --git a/docker/Dockerfile.openolt b/docker/Dockerfile.openolt
index 2ac0f0a..8b80103 100644
--- a/docker/Dockerfile.openolt
+++ b/docker/Dockerfile.openolt
@@ -15,7 +15,7 @@
 # -------------
 # Build stage
 
-FROM --platform=linux/amd64 golang:1.16.3-alpine3.13 AS dev
+FROM golang:1.23.1-alpine3.20 AS dev
 
 # Install required packages
 RUN apk add --no-cache build-base=0.5-r3
@@ -54,7 +54,7 @@
 # -------------
 # Image creation stage
 
-FROM --platform=linux/amd64 gcr.io/distroless/static:nonroot AS prod
+FROM gcr.io/distroless/static:nonroot AS prod
 
 # Set the working directory
 WORKDIR /app
diff --git a/go.mod b/go.mod
index 664997a..cefe7e6 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/opencord/voltha-openolt-adapter
 
-go 1.16
+go 1.23
 
 replace (
 	github.com/coreos/bbolt v1.3.4 => go.etcd.io/bbolt v1.3.4
@@ -19,3 +19,50 @@
 	go.etcd.io/etcd v3.3.25+incompatible
 	google.golang.org/grpc v1.44.0
 )
+
+require (
+	github.com/Shopify/sarama v1.29.1 // indirect
+	github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // indirect
+	github.com/bsm/sarama-cluster v2.1.15+incompatible // indirect
+	github.com/cespare/xxhash/v2 v2.1.1 // indirect
+	github.com/cevaris/ordered_map v0.0.0-20190319150403-3adeae072e73 // indirect
+	github.com/coreos/etcd v3.3.25+incompatible // indirect
+	github.com/coreos/go-semver v0.3.0 // indirect
+	github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect
+	github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
+	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+	github.com/eapache/go-resiliency v1.2.0 // indirect
+	github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
+	github.com/eapache/queue v1.1.0 // indirect
+	github.com/go-redis/redis/v8 v8.3.4 // indirect
+	github.com/golang/snappy v0.0.3 // indirect
+	github.com/google/uuid v1.3.0 // indirect
+	github.com/hashicorp/go-uuid v1.0.2 // indirect
+	github.com/jcmturner/aescts/v2 v2.0.0 // indirect
+	github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
+	github.com/jcmturner/gofork v1.0.0 // indirect
+	github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect
+	github.com/jcmturner/rpc/v2 v2.0.3 // indirect
+	github.com/jhump/protoreflect v1.10.2 // indirect
+	github.com/klauspost/compress v1.12.2 // indirect
+	github.com/opentracing/opentracing-go v1.2.0 // indirect
+	github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 // indirect
+	github.com/pierrec/lz4 v2.6.0+incompatible // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/pmezard/go-difflib v1.0.0 // indirect
+	github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
+	github.com/uber/jaeger-client-go v2.29.1+incompatible // indirect
+	github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
+	go.opentelemetry.io/otel v0.13.0 // indirect
+	go.uber.org/atomic v1.7.0 // indirect
+	go.uber.org/multierr v1.6.0 // indirect
+	go.uber.org/zap v1.18.1 // indirect
+	golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect
+	golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect
+	golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect
+	golang.org/x/text v0.3.6 // indirect
+	google.golang.org/genproto v0.0.0-20220208230804-65c12eb4c068 // indirect
+	google.golang.org/protobuf v1.27.1 // indirect
+	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
+)
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index abd3617..0bd4fde 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -41,13 +41,13 @@
 	defaultProbeAddress         = ":8080"
 	defaultLiveProbeInterval    = 60 * time.Second
 	defaultNotLiveProbeInterval = 5 * time.Second // Probe more frequently when not alive
-	//defaultHeartbeatCheckInterval is the time in seconds the adapter will keep checking the hardware for heartbeat.
+	// defaultHeartbeatCheckInterval is the time in seconds the adapter will keep checking the hardware for heartbeat.
 	defaultHeartbeatCheckInterval = 15 * time.Second
 	// defaultHeartbeatFailReportInterval is the time adapter will wait before updating the state to the core.
 	defaultHeartbeatFailReportInterval = 0 * time.Second
 	defaultGrpcAddress                 = ":50060"
 	defaultCoreEndpoint                = ":55555"
-	//defaultGrpcTimeoutInterval is the time in seconds a grpc call will wait before returning error.
+	// defaultGrpcTimeoutInterval is the time in seconds a grpc call will wait before returning error.
 	defaultGrpcTimeoutInterval                = 2 * time.Second
 	defaultCurrentReplica                     = 1
 	defaultTotalReplicas                      = 1
@@ -71,36 +71,36 @@
 	InstanceID                         string // NOTE what am I used for? why not cli but only ENV? TODO expose in the chart
 	KafkaClusterAddress                string
 	KVStoreType                        string
-	KVStoreTimeout                     time.Duration
 	KVStoreAddress                     string
-	RPCTimeout                         time.Duration
-	PerRPCRetryTimeout                 time.Duration
 	EventTopic                         string
 	LogLevel                           string
-	OnuNumber                          int
-	Banner                             bool
-	DisplayVersionOnly                 bool
 	ProbeAddress                       string
+	GrpcAddress                        string
+	CoreEndpoint                       string
+	TraceAgentAddress                  string
+	AdapterEndpoint                    string
+	KVStoreTimeout                     time.Duration
+	RPCTimeout                         time.Duration
+	PerRPCRetryTimeout                 time.Duration
+	OnuNumber                          int
 	LiveProbeInterval                  time.Duration
 	NotLiveProbeInterval               time.Duration
 	HeartbeatCheckInterval             time.Duration
 	HeartbeatFailReportInterval        time.Duration
 	GrpcTimeoutInterval                time.Duration
-	GrpcAddress                        string
-	CoreEndpoint                       string
 	CurrentReplica                     int
 	TotalReplicas                      int
+	MinBackoffRetryDelay               time.Duration
+	MaxBackoffRetryDelay               time.Duration
+	MaxRetries                         uint
+	Banner                             bool
+	DisplayVersionOnly                 bool
 	TraceEnabled                       bool
-	TraceAgentAddress                  string
 	LogCorrelationEnabled              bool
 	OmccEncryption                     bool
 	EnableONUStats                     bool
 	EnableGEMStats                     bool
-	MinBackoffRetryDelay               time.Duration
-	MaxBackoffRetryDelay               time.Duration
-	AdapterEndpoint                    string
 	CheckOnuDevExistenceAtOnuDiscovery bool
-	MaxRetries                         uint
 }
 
 // NewAdapterFlags returns a new RWCore config
@@ -142,7 +142,6 @@
 
 // ParseCommandArguments parses the arguments when running read-write adaptercore service
 func (so *AdapterFlags) ParseCommandArguments() {
-
 	flag.StringVar(&(so.KafkaClusterAddress),
 		"kafka_cluster_address",
 		defaultKafkaclusteraddress,
@@ -308,7 +307,6 @@
 	if len(containerName) > 0 {
 		so.InstanceID = containerName
 	}
-
 }
 
 func getContainerInfo() string {
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index f6c3fa5..ca4e481 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -79,47 +79,40 @@
 
 // DeviceHandler will interact with the OLT device.
 type DeviceHandler struct {
-	cm                      *config.ConfigManager
-	device                  *voltha.Device
-	cfg                     *conf.AdapterFlags
-	coreClient              *vgrpc.Client
-	childAdapterClients     map[string]*vgrpc.Client
-	lockChildAdapterClients sync.RWMutex
-	EventProxy              eventif.EventProxy
-	openOLT                 *OpenOLT
-	exitChannel             chan struct{}
-	lockDevice              sync.RWMutex
-	Client                  oop.OpenoltClient
-	transitionMap           *TransitionMap
-	clientCon               *grpc.ClientConn
-	flowMgr                 []*OpenOltFlowMgr
-	groupMgr                *OpenOltGroupMgr
-	eventMgr                *OpenOltEventMgr
-	resourceMgr             []*rsrcMgr.OpenOltResourceMgr
-	kvStore                 *db.Backend // backend kv store connection handle
+	EventProxy          eventif.EventProxy
+	Client              oop.OpenoltClient
+	cm                  *config.ConfigManager
+	device              *voltha.Device
+	cfg                 *conf.AdapterFlags
+	coreClient          *vgrpc.Client
+	childAdapterClients map[string]*vgrpc.Client
+	openOLT             *OpenOLT
+	exitChannel         chan struct{}
+	transitionMap       *TransitionMap
+	clientCon           *grpc.ClientConn
+	groupMgr            *OpenOltGroupMgr
+	eventMgr            *OpenOltEventMgr
+	kvStore             *db.Backend // backend kv store connection handle
 
 	deviceInfo *oop.DeviceInfo
 
+	portStats                  *OpenOltStatisticsMgr
+	metrics                    *pmmetrics.PmMetrics
+	stopCollector              chan bool
+	stopHeartbeatCheck         chan bool
+	stopIndications            chan bool
+	perPonOnuIndicationChannel map[uint32]onuIndicationChannels
+
 	// discOnus (map[onuSn]bool) contains a list of ONUs that have been discovered, indexed by ONU SerialNumber.
 	// if the value is true that means the OnuDiscovery indication
 	// is currently being processed and thus we can ignore concurrent requests
 	// if it's false it means the processing has completed and we shouldn't be receiving a new indication
 	// if we do it means something went wrong and we need to retry
-	discOnus                      sync.Map
-	onus                          sync.Map
-	portStats                     *OpenOltStatisticsMgr
-	metrics                       *pmmetrics.PmMetrics
-	stopCollector                 chan bool
-	isCollectorActive             bool
-	stopHeartbeatCheck            chan bool
-	isHeartbeatCheckActive        bool
-	activePorts                   sync.Map
-	stopIndications               chan bool
-	isReadIndicationRoutineActive bool
-
-	totalPonPorts                  uint32
-	perPonOnuIndicationChannel     map[uint32]onuIndicationChannels
-	perPonOnuIndicationChannelLock sync.Mutex
+	discOnus    sync.Map
+	onus        sync.Map
+	activePorts sync.Map
+	flowMgr     []*OpenOltFlowMgr
+	resourceMgr []*rsrcMgr.OpenOltResourceMgr
 
 	// Slice of channels. Each channel in slice, index by (mcast-group-id modulo MaxNumOfGroupHandlerChannels)
 	// A go routine per index, waits on a unique channel for incoming mcast flow or group (add/modify/remove).
@@ -127,11 +120,20 @@
 	stopMcastHandlerRoutine   []chan bool
 	mcastHandlerRoutineActive []bool
 
+	lockChildAdapterClients        sync.RWMutex
+	lockDevice                     sync.RWMutex
+	perPonOnuIndicationChannelLock sync.Mutex
+
+	totalPonPorts                 uint32
+	heartbeatSignature            uint32
+	isCollectorActive             bool
+	isHeartbeatCheckActive        bool
+	isReadIndicationRoutineActive bool
+
 	adapterPreviouslyConnected bool
 	agentPreviouslyConnected   bool
 
 	isDeviceDeletionInProgress bool
-	heartbeatSignature         uint32
 	prevOperStatus             common.OperStatus_Types
 }
 
@@ -140,12 +142,12 @@
 	deviceID        string
 	deviceType      string
 	serialNumber    string
+	proxyDeviceID   string
+	adapterEndpoint string
 	onuID           uint32
 	intfID          uint32
-	proxyDeviceID   string
 	losRaised       bool
 	rdiRaised       bool
-	adapterEndpoint string
 }
 
 type onuIndicationMsg struct {
@@ -164,10 +166,10 @@
 // and process them serially. The mcast flow/group are assigned these routines based on formula (group-id modulo MaxNumOfGroupHandlerChannels)
 type McastFlowOrGroupControlBlock struct {
 	ctx               context.Context   // Flow/group handler context
-	flowOrGroupAction string            // one of McastFlowOrGroupAdd, McastFlowOrGroupModify or McastFlowOrGroupDelete
 	flow              *of.OfpFlowStats  // Flow message (can be nil or valid flow)
 	group             *of.OfpGroupEntry // Group message (can be nil or valid group)
 	errChan           *chan error       // channel to report the mcast Flow/group handling error
+	flowOrGroupAction string            // one of McastFlowOrGroupAdd, McastFlowOrGroupModify or McastFlowOrGroupDelete
 }
 
 var pmNames = []string{
@@ -235,7 +237,7 @@
 		dh.mcastHandlerRoutineActive[i] = true
 		go dh.mcastFlowOrGroupChannelHandlerRoutine(i, dh.incomingMcastFlowOrGroup[i], dh.stopMcastHandlerRoutine[i])
 	}
-	//TODO initialize the support classes.
+	// TODO initialize the support classes.
 	return &dh
 }
 
@@ -378,7 +380,6 @@
 
 // GetportLabel returns the label for the NNI and the PON port based on port number and port type
 func GetportLabel(portNum uint32, portType voltha.Port_PortType) (string, error) {
-
 	switch portType {
 	case voltha.Port_ETHERNET_NNI:
 		return fmt.Sprintf("nni-%d", portNum), nil
@@ -391,8 +392,8 @@
 
 func makeOfpPort(macAddress string, speedMbps uint32) *of.OfpPort {
 	if speedMbps == 0 {
-		//In case it was not set in the indication
-		//and no other value was provided
+		// In case it was not set in the indication
+		// and no other value was provided
 		speedMbps = defaultPortSpeedMbps
 	}
 
@@ -423,8 +424,8 @@
 		Curr:       capacity,
 		Advertised: capacity,
 		Peer:       capacity,
-		CurrSpeed:  speedMbps * 1000, //kbps
-		MaxSpeed:   speedMbps * 1000, //kbps
+		CurrSpeed:  speedMbps * 1000, // kbps
+		MaxSpeed:   speedMbps * 1000, // kbps
 	}
 
 	return port
@@ -434,7 +435,7 @@
 	var operStatus common.OperStatus_Types
 	if state == "up" {
 		operStatus = voltha.OperStatus_ACTIVE
-		//populating the intfStatus map
+		// populating the intfStatus map
 		dh.activePorts.Store(intfID, true)
 	} else {
 		operStatus = voltha.OperStatus_DISCOVERED
@@ -656,7 +657,7 @@
 	return nil
 }
 
-// nolint: gocyclo
+// nolint: gocyclo,govet
 func (dh *DeviceHandler) handleIndication(ctx context.Context, indication *oop.Indication) {
 	raisedTs := time.Now().Unix()
 	switch indication.Data.(type) {
@@ -708,7 +709,7 @@
 
 		onuDiscInd := indication.GetOnuDiscInd()
 		logger.Infow(ctx, "received-onu-discovery-indication", log.Fields{"OnuDiscInd": onuDiscInd, "device-id": dh.device.Id})
-		//put message  to channel and return immediately
+		// put message  to channel and return immediately
 		dh.putOnuIndicationToChannel(ctx, indication, onuDiscInd.GetIntfId())
 	case *oop.Indication_OnuInd:
 		span, ctx := log.CreateChildSpan(ctx, "onu-indication", log.Fields{"device-id": dh.device.Id})
@@ -716,7 +717,7 @@
 
 		onuInd := indication.GetOnuInd()
 		logger.Infow(ctx, "received-onu-indication", log.Fields{"OnuInd": onuInd, "device-id": dh.device.Id})
-		//put message  to channel and return immediately
+		// put message  to channel and return immediately
 		dh.putOnuIndicationToChannel(ctx, indication, onuInd.GetIntfId())
 	case *oop.Indication_OmciInd:
 		span, ctx := log.CreateChildSpan(ctx, "omci-indication", log.Fields{"device-id": dh.device.Id})
@@ -808,8 +809,8 @@
 	}
 	return alarmInd
 }
-func generatePonLosAlarmIndication(intfID uint32, losStatus string) *oop.AlarmIndication {
 
+func generatePonLosAlarmIndication(intfID uint32, losStatus string) *oop.AlarmIndication {
 	ponlosAlarmInd := &oop.LosIndication{
 		IntfId: intfID,
 		Status: losStatus,
@@ -821,6 +822,7 @@
 	}
 	return alarmInd
 }
+
 func (dh *DeviceHandler) updateIntfOperStateAndRaiseIndication(ctx context.Context, operState string, intfID uint32) {
 	go func() {
 		if err := dh.addPort(ctx, intfID, voltha.Port_PON_OLT, operState, defaultPortSpeedMbps); err != nil {
@@ -833,16 +835,12 @@
 }
 
 func (dh *DeviceHandler) reconcileOnus(ctx context.Context) error {
-
 	onuDevicesFromCore, err := dh.getChildDevicesFromCore(ctx, dh.device.Id)
 	if err != nil {
-
 		logger.Error(ctx, "unable to fetch child device", log.Fields{"eeror": err})
-
 		return err
 	}
 	for _, onuDeviceFromCore := range onuDevicesFromCore.Items {
-
 		onuOperStatusFromCore := onuDeviceFromCore.OperStatus
 		onuConnectStatusFromCore := onuDeviceFromCore.ConnectStatus
 		intfID := plt.PortNoToIntfID(onuDeviceFromCore.ParentPortNo, voltha.Port_PON_OLT)
@@ -851,7 +849,6 @@
 		onuDeviceFromOlt, err := dh.getOnuInfo(ctx, intfID, &onuID)
 		if err != nil {
 			logger.Error(ctx, "unable to get onu object from olt agent", log.Fields{"eeror": err})
-
 		} else {
 			onuOperStatusFromOlt := onuDeviceFromOlt.GetState()
 			onuLosFromOlt := onuDeviceFromOlt.GetLosi()
@@ -861,18 +858,15 @@
 				dh.putOnuIndicationToChannel(ctx, OnuIndication, intfID)
 
 			case onuLosFromOlt.String() == "ON" && onuConnectStatusFromCore.String() == "REACHABLE":
-				OnuIndication := generateOnuIndication(intfID, onuID, "down", "down") //check bal cli login notepad
+				OnuIndication := generateOnuIndication(intfID, onuID, "down", "down") // check bal cli login notepad
 				alarmInd := generateOnuAlarmIndication(intfID, onuID, "on")
 				raisedTs := time.Now().Unix()
 				go dh.eventMgr.ProcessEvents(ctx, alarmInd, dh.device.Id, raisedTs)
 
 				dh.putOnuIndicationToChannel(ctx, OnuIndication, intfID)
 			}
-
 		}
-
 	}
-
 	return nil
 }
 
@@ -883,9 +877,7 @@
 	})
 	if err != nil {
 		logger.Error(ctx, "unable to fetch ports from core", log.Fields{"eeror": err})
-
 		return err
-
 	}
 	for _, portFromCore := range portsFromCore.Items {
 		portNum := portFromCore.GetPortNo()
@@ -907,7 +899,6 @@
 				ponLosindication := generatePonLosAlarmIndication(intfID, "on")
 				raisedTs := time.Now().Unix()
 				go dh.eventMgr.ProcessEvents(ctx, ponLosindication, dh.device.Id, raisedTs)
-
 			}
 			switch {
 			case portStateFromOlt.String() == "ACTIVE_WORKING" && portOperStatusFromCore.String() != "ACTIVE":
@@ -934,13 +925,9 @@
 					"portOperStatusFromCore": portOperStatusFromCore.String(),
 					"device-id":              dh.device.Id,
 					"port":                   portNum})
-
 			}
-
 		}
-
 	}
-
 	return nil
 }
 
@@ -978,17 +965,15 @@
 			dh.stopIndications <- true
 		}
 		dh.lockDevice.RUnlock()
-		if err := dh.cleanupDeviceResources(ctx); err != nil {
+		if err = dh.cleanupDeviceResources(ctx); err != nil {
 			logger.Error(ctx, "unable to clean up device resources", log.Fields{"error": err})
 			return fmt.Errorf("cleanup device resources failed: %w", err)
 		}
-		if err := dh.initializeDeviceHandlerModules(ctx); err != nil {
+		if err = dh.initializeDeviceHandlerModules(ctx); err != nil {
 			return olterrors.NewErrAdapter("device-handler-initialization-failed", log.Fields{"device-id": dh.device.Id}, err).LogAt(log.ErrorLevel)
 		}
 		go startHeartbeatCheck(ctx, dh)
-
 		//dh.lockDevice.RUnlock()
-
 	} else if device.OperStatus == voltha.OperStatus_RECONCILING {
 		// Log the device's operational status if it's RECONCILING
 		logger.Info(ctx, "Device is being reconciled", log.Fields{
@@ -1036,7 +1021,7 @@
 		return olterrors.NewErrAdapter("device-state-update-failed", log.Fields{"device-id": dh.device.Id}, err)
 	}
 
-	//Clear olt communication failure event
+	// Clear olt communication failure event
 	dh.device.ConnectStatus = voltha.ConnectStatus_REACHABLE
 	dh.device.OperStatus = voltha.OperStatus_ACTIVE
 	raisedTs := time.Now().Unix()
@@ -1057,7 +1042,7 @@
 
 	cloned := proto.Clone(device).(*voltha.Device)
 
-	//Update the device oper state and connection status
+	// Update the device oper state and connection status
 	cloned.OperStatus = voltha.OperStatus_UNKNOWN
 	dh.lockDevice.Lock()
 	dh.device = cloned
@@ -1071,7 +1056,7 @@
 		return olterrors.NewErrAdapter("state-update-failed", log.Fields{"device-id": device.Id}, err)
 	}
 
-	//get the child device for the parent device
+	// get the child device for the parent device
 	onuDevices, err := dh.getChildDevicesFromCore(ctx, dh.device.Id)
 	if err != nil {
 		return olterrors.NewErrAdapter("child-device-fetch-failed", log.Fields{"device-id": dh.device.Id}, err)
@@ -1097,7 +1082,7 @@
 				"onu-indicator": onuInd,
 				"device-type":   onuDevice.Type,
 				"device-id":     onuDevice.Id}, err).LogAt(log.ErrorLevel)
-			//Do not return here and continue to process other ONUs
+			// Do not return here and continue to process other ONUs
 		} else {
 			logger.Debugw(ctx, "sending inter adapter down ind to onu success", log.Fields{"olt-device-id": device.Id, "onu-device-id": onuDevice.Id})
 		}
@@ -1280,7 +1265,7 @@
 	for i = 0; i < dh.totalPonPorts+1; i++ {
 		// Instantiate flow manager
 		if dh.flowMgr[i] = NewFlowManager(ctx, dh, dh.resourceMgr[i], dh.groupMgr, i); dh.flowMgr[i] == nil {
-			//Continue to check the rest of the ports
+			// Continue to check the rest of the ports
 			logger.Errorw(ctx, "error-initializing-flow-manager-for-intf", log.Fields{"intfID": i, "device-id": dh.device.Id})
 		} else {
 			dh.resourceMgr[i].TechprofileRef = dh.flowMgr[i].techprofile
@@ -1294,12 +1279,12 @@
 	dh.portStats = NewOpenOltStatsMgr(ctx, dh)
 
 	return nil
-
 }
 
 func (dh *DeviceHandler) populateDeviceInfo(ctx context.Context) (*oop.DeviceInfo, error) {
 	var err error
 	var deviceInfo *oop.DeviceInfo
+	var genmac string
 
 	deviceInfo, err = dh.Client.GetDeviceInfo(log.WithSpanFromContext(context.Background(), ctx), new(oop.Empty))
 
@@ -1321,7 +1306,7 @@
 	if deviceInfo.DeviceId == "" {
 		logger.Warnw(ctx, "no-device-id-provided-using-host", log.Fields{"hostport": dh.device.GetHostAndPort()})
 		host := strings.Split(dh.device.GetHostAndPort(), ":")[0]
-		genmac, err := generateMacFromHost(ctx, host)
+		genmac, err = generateMacFromHost(ctx, host)
 		if err != nil {
 			return nil, olterrors.NewErrAdapter("failed-to-generate-mac-host", log.Fields{"host": host}, err)
 		}
@@ -1442,7 +1427,6 @@
 		return nil, olterrors.NewErrNotFound("no-flow-manager-found", log.Fields{"intf-id": ifID, "parent-device-id": request.ParentDeviceId, "child-device-id": request.DeviceId}, nil).Log()
 	}
 	return dh.flowMgr[ifID].getTechProfileDownloadMessage(ctx, request.TpInstancePath, request.OnuId, request.DeviceId)
-
 }
 
 func (dh *DeviceHandler) omciIndication(ctx context.Context, omciInd *oop.OmciIndication) error {
@@ -1461,7 +1445,6 @@
 	onuKey := dh.formOnuKey(omciInd.IntfId, omciInd.OnuId)
 
 	if onuInCache, ok := dh.onus.Load(onuKey); !ok {
-
 		logger.Debugw(ctx, "omci-indication-for-a-device-not-in-cache.", log.Fields{"intf-id": omciInd.IntfId, "onu-id": omciInd.OnuId, "device-id": dh.device.Id})
 		ponPort := plt.IntfIDToPortNo(omciInd.GetIntfId(), voltha.Port_PON_OLT)
 
@@ -1479,10 +1462,10 @@
 		deviceID = onuDevice.Id
 		proxyDeviceID = onuDevice.ProxyAddress.DeviceId
 		childAdapterEndpoint = onuDevice.AdapterEndpoint
-		//if not exist in cache, then add to cache.
+		// if not exist in cache, then add to cache.
 		dh.onus.Store(onuKey, NewOnuDevice(deviceID, deviceType, onuDevice.SerialNumber, omciInd.OnuId, omciInd.IntfId, proxyDeviceID, false, onuDevice.AdapterEndpoint))
 	} else {
-		//found in cache
+		// found in cache
 		logger.Debugw(ctx, "omci-indication-for-a-device-in-cache.", log.Fields{"intf-id": omciInd.IntfId, "onu-id": omciInd.OnuId, "device-id": dh.device.Id})
 		deviceType = onuInCache.(*OnuDevice).deviceType
 		deviceID = onuInCache.(*OnuDevice).deviceID
@@ -1572,7 +1555,6 @@
 	onuSecOmciMsgList := omciMsgs.GetMessages()
 
 	for _, onuSecOmciMsg := range onuSecOmciMsgList {
-
 		var omciMessage *oop.OmciMsg
 		hexPkt := make([]byte, hex.EncodedLen(len(onuSecOmciMsg)))
 		hex.Encode(hexPkt, onuSecOmciMsg)
@@ -1683,7 +1665,6 @@
 		st, _ := status.FromError(err)
 		if st.Code() == codes.AlreadyExists {
 			logger.Debugw(ctx, "onu-activation-in-progress", log.Fields{"SerialNumber": serialNumber, "onu-id": onuID, "device-id": dh.device.Id})
-
 		} else {
 			return olterrors.NewErrAdapter("onu-activate-failed", log.Fields{"onu": Onu, "device-id": dh.device.Id}, err)
 		}
@@ -1704,7 +1685,7 @@
 		}
 		return true
 	})
-	//Got the onu device from cache return
+	// Got the onu device from cache return
 	if InCacheOnuDev != nil {
 		logger.Debugw(ctx, "Got child device from cache", log.Fields{"onudev": InCacheOnuDev.serialNumber})
 		return InCacheOnuDev
@@ -1714,7 +1695,7 @@
 		SerialNumber: sn,
 		ParentPortNo: parentPortNo,
 	})
-	//No device found in core return nil
+	// No device found in core return nil
 	if onuDevice == nil {
 		return nil
 	}
@@ -1733,7 +1714,7 @@
 	parentPortNo := plt.IntfIDToPortNo(onuDiscInd.GetIntfId(), voltha.Port_PON_OLT)
 	tpInstExists := false
 
-	//CheckOnuDevExistenceAtOnuDiscovery if true , a check will be made for the existence of the onu device. If the onu device
+	// CheckOnuDevExistenceAtOnuDiscovery if true , a check will be made for the existence of the onu device. If the onu device
 	// still exists , the onu discovery will be ignored, else a check for active techprofiles for ONU is checked.
 	if !dh.openOLT.CheckOnuDevExistenceAtOnuDiscovery {
 		onuDev := dh.getChildDevice(ctx, sn, parentPortNo)
@@ -1771,7 +1752,6 @@
 	logger.Infow(ctx, "No device present in core , continuing with discovery", log.Fields{"sn": sn})
 
 	return false, nil
-
 }
 
 // processDiscONULOSClear clears the LOS Alarm if it's needed
@@ -1834,7 +1814,7 @@
 		return error
 	}
 	if tpInstExists {
-		//ignore the discovery if tpinstance is present.
+		// ignore the discovery if tpinstance is present.
 		logger.Debugw(ctx, "ignoring-onu-indication-as-tp-already-exists", log.Fields{"sn": sn})
 		return nil
 	}
@@ -1842,7 +1822,6 @@
 
 	// if the ONU existed, handle the LOS Alarm
 	if existing {
-
 		if inProcess.(bool) {
 			// if we're currently processing the ONU on a different thread, do nothing
 			logger.Warnw(ctx, "onu-sn-is-being-processed", log.Fields{"sn": sn})
@@ -1887,7 +1866,6 @@
 		// we need to create a new ChildDevice
 		ponintfid := onuDiscInd.GetIntfId()
 		onuID, error = dh.resourceMgr[ponintfid].GetONUID(ctx)
-
 		logger.Infow(ctx, "creating-new-onu-got-onu-id", log.Fields{"sn": sn, "onuId": onuID})
 
 		if error != nil {
@@ -1917,7 +1895,7 @@
 				"serial-number": sn}, error)
 			return error
 		}
-		if error := dh.eventMgr.OnuDiscoveryIndication(ctx, onuDiscInd, dh.device.Id, onuDevice.Id, onuID, sn, time.Now().Unix()); error != nil {
+		if error = dh.eventMgr.OnuDiscoveryIndication(ctx, onuDiscInd, dh.device.Id, onuDevice.Id, onuID, sn, time.Now().Unix()); error != nil {
 			logger.Error(ctx, "discovery-indication-failed", log.Fields{"err": error})
 			error = olterrors.NewErrAdapter("discovery-indication-failed", log.Fields{
 				"onu-id":        onuID,
@@ -1937,14 +1915,13 @@
 	error = dh.setupChildInterAdapterClient(subCtx, onuDevice.AdapterEndpoint)
 	cancel()
 	if error != nil {
-
 		error = olterrors.NewErrCommunication("no-connection-to-child-adapter", log.Fields{"device-id": onuDevice.Id}, error)
 		return error
 	}
 
 	// we can now use the existing ONU Id
 	onuID = onuDevice.ProxyAddress.OnuId
-	//Insert the ONU into cache to use in OnuIndication.
+	// Insert the ONU into cache to use in OnuIndication.
 	//TODO: Do we need to remove this from the cache on ONU change, or wait for overwritten on next discovery.
 	logger.Debugw(ctx, "onu-discovery-indication-key-create",
 		log.Fields{"onu-id": onuID,
@@ -1964,7 +1941,6 @@
 		OperStatus:     common.OperStatus_DISCOVERED,
 		ConnStatus:     common.ConnectStatus_REACHABLE,
 	}); error != nil {
-
 		error = olterrors.NewErrAdapter("failed-to-update-device-state", log.Fields{
 			"device-id":     onuDevice.Id,
 			"serial-number": sn}, error)
@@ -1973,7 +1949,6 @@
 
 	logger.Infow(ctx, "onu-discovered-reachable", log.Fields{"device-id": onuDevice.Id, "sn": sn})
 	if error = dh.activateONU(ctx, onuDiscInd.IntfId, int64(onuID), onuDiscInd.SerialNumber, sn); error != nil {
-
 		error = olterrors.NewErrAdapter("onu-activation-failed", log.Fields{
 			"device-id":     onuDevice.Id,
 			"serial-number": sn}, error)
@@ -1983,7 +1958,6 @@
 }
 
 func (dh *DeviceHandler) onuIndication(ctx context.Context, onuInd *oop.OnuIndication) error {
-
 	ponPort := plt.IntfIDToPortNo(onuInd.GetIntfId(), voltha.Port_PON_OLT)
 	var onuDevice *voltha.Device
 	var err error
@@ -1994,17 +1968,15 @@
 			"device-id": dh.device.Id})
 	onuKey := dh.formOnuKey(onuInd.GetIntfId(), onuInd.OnuId)
 	serialNumber := dh.stringifySerialNumber(onuInd.SerialNumber)
-
 	errFields := log.Fields{"device-id": dh.device.Id}
 
 	if onuInCache, ok := dh.onus.Load(onuKey); ok {
-
-		//If ONU id is discovered before then use GetDevice to get onuDevice because it is cheaper.
+		// If ONU id is discovered before then use GetDevice to get onuDevice because it is cheaper.
 		foundInCache = true
 		errFields["onu-id"] = onuInCache.(*OnuDevice).deviceID
 		onuDevice, err = dh.getDeviceFromCore(ctx, onuInCache.(*OnuDevice).deviceID)
 	} else {
-		//If ONU not found in adapter cache then we have to use GetChildDevice to get onuDevice
+		// If ONU not found in adapter cache then we have to use GetChildDevice to get onuDevice
 		if serialNumber != "" {
 			errFields["serial-number"] = serialNumber
 		} else {
@@ -2037,9 +2009,7 @@
 	}
 	if !foundInCache {
 		onuKey := dh.formOnuKey(onuInd.GetIntfId(), onuInd.GetOnuId())
-
 		dh.onus.Store(onuKey, NewOnuDevice(onuDevice.Id, onuDevice.Type, onuDevice.SerialNumber, onuInd.GetOnuId(), onuInd.GetIntfId(), onuDevice.ProxyAddress.DeviceId, false, onuDevice.AdapterEndpoint))
-
 	}
 	if onuInd.OperState == "down" && onuInd.FailReason != oop.OnuIndication_ONU_ACTIVATION_FAIL_REASON_NONE {
 		if err := dh.eventMgr.onuActivationIndication(ctx, onuActivationFailEvent, onuInd, dh.device.Id, time.Now().Unix()); err != nil {
@@ -2192,7 +2162,6 @@
 		metrics := dh.metrics.GetSubscriberMetrics()
 		for _, m := range pmConfigs.Metrics {
 			metrics[m.Name].Enabled = m.Enabled
-
 		}
 	}
 }
@@ -2209,7 +2178,7 @@
 
 	if flows != nil {
 		for _, flow := range flows.ToRemove.Items {
-			intfID := dh.getIntfIDFromFlow(ctx, flow)
+			intfID := dh.getIntfIDFromFlow(flow)
 
 			logger.Debugw(ctx, "removing-flow",
 				log.Fields{"device-id": device.Id,
@@ -2226,7 +2195,7 @@
 			}
 			if err != nil {
 				if werr, ok := err.(olterrors.WrappedError); ok && status.Code(werr.Unwrap()) == codes.NotFound {
-					//The flow we want to remove is not there, there is no need to throw an error
+					// The flow we want to remove is not there, there is no need to throw an error
 					logger.Warnw(ctx, "flow-to-remove-not-found",
 						log.Fields{
 							"ponIf":        intfID,
@@ -2240,7 +2209,7 @@
 		}
 
 		for _, flow := range flows.ToAdd.Items {
-			intfID := dh.getIntfIDFromFlow(ctx, flow)
+			intfID := dh.getIntfIDFromFlow(flow)
 			logger.Debugw(ctx, "adding-flow",
 				log.Fields{"device-id": device.Id,
 					"ponIf":     intfID,
@@ -2305,7 +2274,6 @@
 
 // UpdateFlowsIncrementally updates the device flow
 func (dh *DeviceHandler) UpdateFlowsIncrementally(ctx context.Context, device *voltha.Device, flows *of.FlowChanges, groups *of.FlowGroupChanges, flowMetadata *of.FlowMetadata) error {
-
 	var errorsList []error
 
 	if dh.getDeviceDeletionInProgressFlag() {
@@ -2350,7 +2318,7 @@
 	dh.onus = sync.Map{}
 
 	dh.lockDevice.RLock()
-	//stopping the stats collector
+	// stopping the stats collector
 	if dh.isCollectorActive {
 		dh.stopCollector <- true
 	}
@@ -2358,7 +2326,7 @@
 
 	go dh.notifyChildDevices(ctx, "unreachable")
 	cloned := proto.Clone(device).(*voltha.Device)
-	//Update device Admin state
+	// Update device Admin state
 	dh.device = cloned
 
 	// Update the all pon ports state on that device to disable and NNI remains active as NNI remains active in openolt agent.
@@ -2378,7 +2346,7 @@
 	onuInd := oop.OnuIndication{}
 	onuInd.OperState = state
 
-	//get the child device for the parent device
+	// get the child device for the parent device
 	onuDevices, err := dh.getChildDevicesFromCore(ctx, dh.device.Id)
 	if err != nil {
 		logger.Errorw(ctx, "failed-to-get-child-devices-information", log.Fields{"device-id": dh.device.Id, "err": err})
@@ -2393,10 +2361,8 @@
 				logger.Errorw(ctx, "failed-to-send-inter-adapter-message", log.Fields{"OnuInd": onuInd,
 					"From Adapter": dh.openOLT.config.AdapterEndpoint, "DeviceType": onuDevice.Type, "device-id": onuDevice.Id})
 			}
-
 		}
 	}
-
 }
 
 // ReenableDevice re-enables the olt device after disable
@@ -2413,9 +2379,7 @@
 		}
 	} else {
 		return olterrors.NewErrAdapter("olt-reenable-failed", log.Fields{"device-id": dh.device.Id}, errors.New("nil device client"))
-
 	}
-
 	logger.Debug(ctx, "olt-reenabled")
 
 	// Update the all ports state on that device to enable
@@ -2429,10 +2393,10 @@
 		}
 	}
 	if retError == nil {
-		//Update the device oper status as ACTIVE
+		// Update the device oper status as ACTIVE
 		device.OperStatus = voltha.OperStatus_ACTIVE
 	} else {
-		//Update the device oper status as FAILED
+		// Update the device oper status as FAILED
 		device.OperStatus = voltha.OperStatus_FAILED
 	}
 	dh.device = device
@@ -2510,7 +2474,6 @@
 	*/
 
 	dh.setDeviceDeletionInProgressFlag(true)
-
 	dh.StopAllFlowRoutines(ctx)
 
 	dh.lockDevice.RLock()
@@ -2536,13 +2499,13 @@
 	}
 
 	dh.removeOnuIndicationChannels(ctx)
-	//Reset the state
+	// Reset the state
 	if dh.Client != nil {
-		if _, err := dh.Client.Reboot(ctx, new(oop.Empty)); err != nil {
+		if _, err = dh.Client.Reboot(ctx, new(oop.Empty)); err != nil {
 			go func() {
 				failureReason := fmt.Sprintf("Failed to reboot during device delete request with error: %s", err.Error())
-				if err = dh.eventMgr.oltRebootFailedEvent(ctx, dh.device.Id, failureReason, time.Now().Unix()); err != nil {
-					logger.Errorw(ctx, "on-olt-reboot-failed", log.Fields{"device-id": dh.device.Id, "err": err})
+				if err1 := dh.eventMgr.oltRebootFailedEvent(ctx, dh.device.Id, failureReason, time.Now().Unix()); err1 != nil {
+					logger.Errorw(ctx, "on-olt-reboot-failed", log.Fields{"device-id": dh.device.Id, "err": err1})
 				}
 			}()
 			logger.Errorw(ctx, "olt-reboot-failed", log.Fields{"device-id": dh.device.Id, "err": err})
@@ -2641,7 +2604,6 @@
 		}
 	} else {
 		return olterrors.NewErrAdapter("olt-reboot-failed", log.Fields{"device-id": dh.device.Id}, errors.New("nil device client"))
-
 	}
 
 	logger.Debugw(ctx, "rebooted-device-successfully", log.Fields{"device-id": device.Id})
@@ -2832,7 +2794,6 @@
 }
 
 func startHeartbeatCheck(ctx context.Context, dh *DeviceHandler) {
-
 	defer func() {
 		dh.lockDevice.Lock()
 		dh.isHeartbeatCheckActive = false
@@ -2887,14 +2848,12 @@
 						}()
 					}
 					dh.lockDevice.RUnlock()
-
 				} else {
 					logger.Warn(ctx, "Heartbeat signature changed, OLT is rebooted. Cleaningup resources.")
 					dh.updateHeartbeatSignature(ctx, heartBeat.HeartbeatSignature)
 					dh.heartbeatSignature = heartBeat.HeartbeatSignature
 					go dh.updateStateRebooted(ctx)
 				}
-
 			}
 			cancel()
 		case <-dh.stopHeartbeatCheck:
@@ -2937,7 +2896,7 @@
 			}
 		*/
 
-		//raise olt communication failure event
+		// raise olt communication failure event
 		raisedTs := time.Now().Unix()
 		cloned := proto.Clone(device).(*voltha.Device)
 		cloned.ConnectStatus = voltha.ConnectStatus_UNREACHABLE
@@ -2963,7 +2922,6 @@
 		}
 		dh.lockDevice.RUnlock()
 		dh.transitionMap.Handle(ctx, DeviceInit)
-
 	}
 }
 
@@ -2979,7 +2937,7 @@
 		// Immediately return, otherwise accessing a null 'device' struct would cause panic
 		return
 	}
-	//Starting the cleanup process
+	// Starting the cleanup process
 	dh.setDeviceDeletionInProgressFlag(true)
 
 	logger.Warnw(ctx, "update-state-rebooted", log.Fields{"device-id": dh.device.Id, "connect-status": device.ConnectStatus,
@@ -3031,10 +2989,9 @@
 
 	dh.StopAllFlowRoutines(ctx)
 
-	//reset adapter reconcile flag
+	// reset adapter reconcile flag
 	dh.adapterPreviouslyConnected = false
 	for {
-
 		childDevices, err := dh.getChildDevicesFromCore(ctx, dh.device.Id)
 		if err != nil || childDevices == nil {
 			logger.Errorw(ctx, "Failed to get child devices from core", log.Fields{"deviceID": dh.device.Id})
@@ -3047,13 +3004,11 @@
 			logger.Warn(ctx, "Not all child devices are cleared, continuing to wait")
 			time.Sleep(5 * time.Second)
 		}
-
 	}
-	//Cleanup completed , reset the flag
+	// Cleanup completed , reset the flag
 	dh.setDeviceDeletionInProgressFlag(false)
 	logger.Infow(ctx, "cleanup complete after reboot , moving to init", log.Fields{"deviceID": device.Id})
 	dh.transitionMap.Handle(ctx, DeviceInit)
-
 }
 
 // EnablePort to enable Pon interface
@@ -3186,7 +3141,7 @@
 	}
 
 	onu := &oop.Onu{IntfId: intfID, OnuId: onuID, SerialNumber: sn}
-	//clear PON resources associated with ONU
+	// clear PON resources associated with ONU
 	onuGem, err := dh.resourceMgr[intfID].GetOnuGemInfo(ctx, onuID)
 	if err != nil || onuGem == nil || onuGem.OnuID != onuID {
 		logger.Warnw(ctx, "failed-to-get-onu-info-for-pon-port", log.Fields{
@@ -3202,8 +3157,8 @@
 		for _, gem := range onuGem.GemPorts {
 			if flowIDs, err := dh.resourceMgr[intfID].GetFlowIDsForGem(ctx, gem); err == nil {
 				for _, flowID := range flowIDs {
-					//multiple gem port can have the same flow id
-					//it is better to send only one flowRemove request to the agent
+					// multiple gem port can have the same flow id
+					// it is better to send only one flowRemove request to the agent
 					var alreadyRemoved bool
 					for _, removedFlowID := range removedFlows {
 						if removedFlowID == flowID {
@@ -3232,10 +3187,9 @@
 				"onu-device": onu,
 				"onu-gem":    onuGem,
 				"err":        err})
-			//Not returning error on cleanup.
+			// Not returning error on cleanup.
 		}
 		logger.Debugw(ctx, "removed-onu-gem-info", log.Fields{"intf": intfID, "onu-device": onu, "onugem": onuGem})
-
 	}
 	dh.resourceMgr[intfID].FreeonuID(ctx, []uint32{onuID})
 	dh.onus.Delete(onuKey)
@@ -3364,7 +3318,7 @@
 	return resp, nil
 }
 
-func (dh *DeviceHandler) getIntfIDFromFlow(ctx context.Context, flow *of.OfpFlowStats) uint32 {
+func (dh *DeviceHandler) getIntfIDFromFlow(flow *of.OfpFlowStats) uint32 {
 	// Default to NNI
 	var intfID = dh.totalPonPorts
 	inPort, outPort := getPorts(flow)
@@ -3374,15 +3328,15 @@
 	return intfID
 }
 
-func (dh *DeviceHandler) getOnuIndicationChannel(ctx context.Context, intfID uint32) chan onuIndicationMsg {
+func (dh *DeviceHandler) getOnuIndicationChannel(intfID uint32) chan onuIndicationMsg {
 	dh.perPonOnuIndicationChannelLock.Lock()
 	if ch, ok := dh.perPonOnuIndicationChannel[intfID]; ok {
 		dh.perPonOnuIndicationChannelLock.Unlock()
 		return ch.indicationChannel
 	}
 	channels := onuIndicationChannels{
-		//We create a buffered channel here to avoid calling function to be  blocked
-		//in case of multiple indications from the ONUs,
+		// We create a buffered channel here to avoid calling function to be  blocked
+		// in case of multiple indications from the ONUs,
 		//especially in the case where indications are buffered in  OLT.
 		indicationChannel: make(chan onuIndicationMsg, 500),
 		stopChannel:       make(chan struct{}),
@@ -3391,7 +3345,6 @@
 	dh.perPonOnuIndicationChannelLock.Unlock()
 	go dh.onuIndicationsRoutine(&channels)
 	return channels.indicationChannel
-
 }
 
 func (dh *DeviceHandler) removeOnuIndicationChannels(ctx context.Context) {
@@ -3411,7 +3364,7 @@
 	}
 	logger.Debugw(ctx, "put-onu-indication-to-channel", log.Fields{"indication": indication, "intfID": intfID})
 	// Send the onuIndication on the ONU channel
-	dh.getOnuIndicationChannel(ctx, intfID) <- ind
+	dh.getOnuIndicationChannel(intfID) <- ind
 }
 
 func (dh *DeviceHandler) onuIndicationsRoutine(onuChannels *onuIndicationChannels) {
@@ -3582,8 +3535,8 @@
 	logger.Debug(ctx, "stopped all mcast handler routines")
 }
 
+// nolint: unparam
 func (dh *DeviceHandler) getOltPortCounters(ctx context.Context, oltPortInfo *extension.GetOltPortCounters) *extension.SingleGetValueResponse {
-
 	singleValResp := extension.SingleGetValueResponse{
 		Response: &extension.GetValueResponse{
 			Response: &extension.GetValueResponse_PortCoutners{
@@ -3592,8 +3545,7 @@
 		},
 	}
 
-	errResp := func(status extension.GetValueResponse_Status,
-		reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
+	errResp := func(status extension.GetValueResponse_Status, reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
 		return &extension.SingleGetValueResponse{
 			Response: &extension.GetValueResponse{
 				Status:    status,
@@ -3604,14 +3556,14 @@
 
 	if oltPortInfo.PortType != extension.GetOltPortCounters_Port_ETHERNET_NNI &&
 		oltPortInfo.PortType != extension.GetOltPortCounters_Port_PON_OLT {
-		//send error response
+		// send error response
 		logger.Debugw(ctx, "getOltPortCounters invalid portType", log.Fields{"oltPortInfo": oltPortInfo.PortType})
 		return errResp(extension.GetValueResponse_ERROR, extension.GetValueResponse_INVALID_PORT_TYPE)
 	}
 	statIndChn := make(chan bool, 1)
 	dh.portStats.RegisterForStatIndication(ctx, portStatsType, statIndChn, oltPortInfo.PortNo, oltPortInfo.PortType)
 	defer dh.portStats.DeRegisterFromStatIndication(ctx, portStatsType, statIndChn)
-	//request openOlt agent to send the the port statistics indication
+	// request openOlt agent to send the the port statistics indication
 
 	go func() {
 		_, err := dh.Client.CollectStatistics(ctx, new(oop.Empty))
@@ -3621,7 +3573,7 @@
 	}()
 	select {
 	case <-statIndChn:
-		//indication received for ports stats
+		// indication received for ports stats
 		logger.Debugw(ctx, "getOltPortCounters recvd statIndChn", log.Fields{"oltPortInfo": oltPortInfo})
 	case <-time.After(oltPortInfoTimeout * time.Second):
 		logger.Debugw(ctx, "getOltPortCounters timeout happened", log.Fields{"oltPortInfo": oltPortInfo})
@@ -3631,24 +3583,23 @@
 		return errResp(extension.GetValueResponse_ERROR, extension.GetValueResponse_TIMEOUT)
 	}
 	if oltPortInfo.PortType == extension.GetOltPortCounters_Port_ETHERNET_NNI {
-		//get nni stats
+		// get nni stats
 		intfID := plt.PortNoToIntfID(oltPortInfo.PortNo, voltha.Port_ETHERNET_NNI)
 		logger.Debugw(ctx, "getOltPortCounters intfID  ", log.Fields{"intfID": intfID})
 		cmnni := dh.portStats.collectNNIMetrics(intfID)
 		if cmnni == nil {
-			//TODO define the error reason
+			// TODO define the error reason
 			return errResp(extension.GetValueResponse_ERROR, extension.GetValueResponse_INTERNAL_ERROR)
 		}
 		dh.portStats.updateGetOltPortCountersResponse(ctx, &singleValResp, cmnni)
 		return &singleValResp
-
 	} else if oltPortInfo.PortType == extension.GetOltPortCounters_Port_PON_OLT {
 		// get pon stats
 		intfID := plt.PortNoToIntfID(oltPortInfo.PortNo, voltha.Port_PON_OLT)
 		if val, ok := dh.activePorts.Load(intfID); ok && val == true {
 			cmpon := dh.portStats.collectPONMetrics(intfID)
 			if cmpon == nil {
-				//TODO define the error reason
+				// TODO define the error reason
 				return errResp(extension.GetValueResponse_ERROR, extension.GetValueResponse_INTERNAL_ERROR)
 			}
 			dh.portStats.updateGetOltPortCountersResponse(ctx, &singleValResp, cmpon)
@@ -3658,8 +3609,8 @@
 	return errResp(extension.GetValueResponse_ERROR, extension.GetValueResponse_INTERNAL_ERROR)
 }
 
+//nolint:unparam
 func (dh *DeviceHandler) getOltOffloadStats(ctx context.Context, oltPortInfo *extension.GetOffloadedAppsStatisticsRequest) *extension.SingleGetValueResponse {
-
 	singleValResp := extension.SingleGetValueResponse{
 		Response: &extension.GetValueResponse{
 			Status: extension.GetValueResponse_OK,
@@ -3672,8 +3623,8 @@
 	return &singleValResp
 }
 
+//nolint:unparam
 func (dh *DeviceHandler) setOltOffload(ctx context.Context, congig *extension.AppOffloadConfig) *extension.SingleSetValueResponse {
-
 	singleValResp := extension.SingleSetValueResponse{
 		Response: &extension.SetValueResponse{
 			Status: extension.SetValueResponse_OK,
@@ -3683,8 +3634,8 @@
 	return &singleValResp
 }
 
+//nolint:unparam
 func (dh *DeviceHandler) setOnuOffload(ctx context.Context, config *extension.AppOffloadOnuConfig) *extension.SingleSetValueResponse {
-
 	singleValResp := extension.SingleSetValueResponse{
 		Response: &extension.SetValueResponse{
 			Status: extension.SetValueResponse_OK,
@@ -3695,7 +3646,6 @@
 }
 
 func (dh *DeviceHandler) getOnuPonCounters(ctx context.Context, onuPonInfo *extension.GetOnuCountersRequest) *extension.SingleGetValueResponse {
-
 	singleValResp := extension.SingleGetValueResponse{
 		Response: &extension.GetValueResponse{
 			Response: &extension.GetValueResponse_OnuPonCounters{
@@ -3704,8 +3654,7 @@
 		},
 	}
 
-	errResp := func(status extension.GetValueResponse_Status,
-		reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
+	errResp := func(status extension.GetValueResponse_Status, reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
 		return &extension.SingleGetValueResponse{
 			Response: &extension.GetValueResponse{
 				Status:    status,
@@ -3728,33 +3677,27 @@
 	}
 	dh.portStats.updateGetOnuPonCountersResponse(ctx, &singleValResp, cmnni)
 	return &singleValResp
-
 }
 
 func (dh *DeviceHandler) getOnuInfo(ctx context.Context, intfID uint32, onuID *uint32) (*oop.OnuInfo, error) {
-
 	Onu := oop.Onu{IntfId: intfID, OnuId: *onuID}
 	OnuInfo, err := dh.Client.GetOnuInfo(ctx, &Onu)
 	if err != nil {
 		return nil, err
 	}
 	return OnuInfo, nil
-
 }
 
 func (dh *DeviceHandler) getIntfInfo(ctx context.Context, intfID uint32) (*oop.PonIntfInfo, error) {
-
 	Intf := oop.Interface{IntfId: intfID}
 	IntfInfo, err := dh.Client.GetPonInterfaceInfo(ctx, &Intf)
 	if err != nil {
 		return nil, err
 	}
 	return IntfInfo, nil
-
 }
 
 func (dh *DeviceHandler) getRxPower(ctx context.Context, rxPowerRequest *extension.GetRxPowerRequest) *extension.SingleGetValueResponse {
-
 	Onu := oop.Onu{IntfId: rxPowerRequest.IntfId, OnuId: rxPowerRequest.OnuId}
 	rxPower, err := dh.Client.GetPonRxPower(ctx, &Onu)
 	if err != nil {
@@ -3778,9 +3721,7 @@
 }
 
 func (dh *DeviceHandler) getPONRxPower(ctx context.Context, OltRxPowerRequest *extension.GetOltRxPowerRequest) *extension.SingleGetValueResponse {
-
-	errResp := func(status extension.GetValueResponse_Status,
-		reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
+	errResp := func(status extension.GetValueResponse_Status, reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
 		return &extension.SingleGetValueResponse{
 			Response: &extension.GetValueResponse{
 				Status:    status,
@@ -3816,17 +3757,13 @@
 	}
 
 	if serialNumber != "" {
-
 		onuDev := dh.getChildDevice(ctx, serialNumber, (uint32)(portNumber))
 		if onuDev != nil {
-
 			Onu := oop.Onu{IntfId: uint32(portNumber), OnuId: onuDev.onuID}
 			rxPower, err := dh.Client.GetPonRxPower(ctx, &Onu)
 			if err != nil {
-
 				logger.Errorw(ctx, "error-while-getting-rx-power", log.Fields{"Onu": Onu, "err": err})
 				return generateSingleGetValueErrorResponse(err)
-
 			}
 
 			rxPowerValue := extension.RxPower{}
@@ -3836,24 +3773,18 @@
 			rxPowerValue.FailReason = rxPower.GetFailReason().String()
 
 			resp.Response.GetOltRxPower().RxPower = append(resp.Response.GetOltRxPower().RxPower, &rxPowerValue)
-
 		} else {
-
 			logger.Errorw(ctx, "getPONRxPower invalid Device", log.Fields{"portLabel": portLabel, "serialNumber": serialNumber})
 			return errResp(extension.GetValueResponse_ERROR, extension.GetValueResponse_INVALID_DEVICE)
 		}
-
 	} else {
-
 		dh.onus.Range(func(Onukey interface{}, onuInCache interface{}) bool {
 			if onuInCache.(*OnuDevice).intfID == (uint32)(portNumber) {
-
 				Onu := oop.Onu{IntfId: (uint32)(portNumber), OnuId: onuInCache.(*OnuDevice).onuID}
 				rxPower, err := dh.Client.GetPonRxPower(ctx, &Onu)
 				if err != nil {
 					logger.Errorw(ctx, "error-while-getting-rx-power, however considering to proceed further with other ONUs on PON", log.Fields{"Onu": Onu, "err": err})
 				} else {
-
 					rxPowerValue := extension.RxPower{}
 					rxPowerValue.OnuSn = onuInCache.(*OnuDevice).serialNumber
 					rxPowerValue.Status = rxPower.GetStatus()
@@ -3862,7 +3793,6 @@
 
 					resp.Response.GetOltRxPower().RxPower = append(resp.Response.GetOltRxPower().RxPower, &rxPowerValue)
 				}
-
 			}
 			logger.Infow(ctx, "getPONRxPower response ", log.Fields{"Response": resp})
 			return true
@@ -3872,9 +3802,9 @@
 	return &resp
 }
 
+// nolint: unparam
 func generateSingleGetValueErrorResponse(err error) *extension.SingleGetValueResponse {
-	errResp := func(status extension.GetValueResponse_Status,
-		reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
+	errResp := func(status extension.GetValueResponse_Status, reason extension.GetValueResponse_ErrorReason) *extension.SingleGetValueResponse {
 		return &extension.SingleGetValueResponse{
 			Response: &extension.GetValueResponse{
 				Status:    status,
@@ -4161,7 +4091,6 @@
 }
 
 func (dh *DeviceHandler) getChildAdapterServiceClient(endpoint string) (onu_inter_adapter_service.OnuInterAdapterServiceClient, error) {
-
 	// First check from cache
 	dh.lockChildAdapterClients.RLock()
 	if cgClient, ok := dh.childAdapterClients[endpoint]; ok {
diff --git a/internal/pkg/core/device_handler_test.go b/internal/pkg/core/device_handler_test.go
index 2616e4f..834c560 100644
--- a/internal/pkg/core/device_handler_test.go
+++ b/internal/pkg/core/device_handler_test.go
@@ -304,7 +304,7 @@
 	}{
 		{"generateMacFromHost-1", args{host: "localhost"}, "00:00:7f:00:00:01", false},
 		{"generateMacFromHost-2", args{host: "10.10.10.10"}, "00:00:0a:0a:0a:0a", false},
-		//{"generateMacFromHost-3", args{host: "google.com"}, "00:00:d8:3a:c8:8e", false},
+		// {"generateMacFromHost-3", args{host: "google.com"}, "00:00:d8:3a:c8:8e", false},
 		{"generateMacFromHost-4", args{host: "testing3"}, "", true},
 	}
 	for _, tt := range tests {
@@ -461,7 +461,6 @@
 				t.Errorf("GetportLabel() => want=(%v, %v) got=(%v, %v)",
 					tt.want, tt.errType, got, reflect.TypeOf(err))
 			}
-
 		})
 	}
 }
@@ -721,9 +720,7 @@
 			case "sendProxiedMessage-6":
 				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
 				assert.Contains(t, err.Error(), "no deviceID")
-
 			}
-
 		})
 	}
 }
@@ -822,7 +819,6 @@
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-
 			if err := tt.devicehandler.RebootDevice(context.Background(), tt.args.device); (err != nil) != tt.wantErr {
 				t.Errorf("DeviceHandler.RebootDevice() error = %v, wantErr %v", err, tt.wantErr)
 			}
@@ -958,7 +954,7 @@
 		t.Run(tt.name, func(t *testing.T) {
 			_ = tt.devicehandler.addPort(context.Background(), tt.args.intfID, tt.args.portType, tt.args.state, tt.args.speedMbps)
 
-			//Check if the correct state is stored
+			// Check if the correct state is stored
 			storedState, ok := tt.devicehandler.activePorts.Load(tt.args.intfID)
 			expectedState := tt.args.state == "up"
 
@@ -968,7 +964,7 @@
 				t.Errorf("Expected stored port state: %v, found: %v in test %v", expectedState, storedState, tt.name)
 			}
 
-			//Check if the reported speed values are correct
+			// Check if the reported speed values are correct
 			ofpPort := makeOfpPort(tt.devicehandler.device.MacAddress, tt.args.speedMbps)
 
 			if ofpPort.Curr != tt.expectedCapacity ||
@@ -1016,7 +1012,6 @@
 }
 
 func TestDeviceHandler_handleOltIndication(t *testing.T) {
-
 	type args struct {
 		oltIndication *oop.OltIndication
 	}
@@ -1056,9 +1051,9 @@
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			//dh.doStateInit()
+			// dh.doStateInit()
 			//	context.
-			//dh.AdoptDevice(tt.args.device)
+			// dh.AdoptDevice(tt.args.device)
 			ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 			defer cancel()
 			if err := tt.devicehandler.postInit(ctx); err != nil {
@@ -1105,7 +1100,6 @@
 
 	dh1.start(context.Background())
 	dh1.Stop(context.Background())
-
 }
 
 func TestDeviceHandler_PacketOut(t *testing.T) {
@@ -1128,7 +1122,7 @@
 		wantErr       bool
 	}{
 		// TODO: Add test cases.
-		//{"test1", args{egressPortNo: 0, packet: &ofp.OfpPacketOut{}}, true},
+		// {"test1", args{egressPortNo: 0, packet: &ofp.OfpPacketOut{}}, true},
 		{"PacketOut-1", dh1, args{egressPortNo: 0, packet: pktout}, false},
 		{"PacketOut-2", dh2, args{egressPortNo: 1, packet: pktout}, false},
 		{"PacketOut-3", dh2, args{egressPortNo: 4112, packet: pktout}, false},
@@ -1170,7 +1164,7 @@
 			if err := tt.devicehandler.doStateUp(ctx); (err != nil) != tt.wantErr {
 				t.Logf("DeviceHandler.doStateUp() error = %v, wantErr %v", err, tt.wantErr)
 			}
-			tt.devicehandler.stopCollector <- true //stop the stat collector invoked from doStateUp
+			tt.devicehandler.stopCollector <- true // stop the stat collector invoked from doStateUp
 		})
 	}
 }
@@ -1230,7 +1224,6 @@
 }
 
 func TestDeviceHandler_onuDiscIndication(t *testing.T) {
-
 	dh1 := newMockDeviceHandler()
 	dh1.discOnus = sync.Map{}
 	dh1.discOnus.Store("onu1", true)
@@ -1289,13 +1282,11 @@
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-
 			_, err := tt.devicehandler.populateDeviceInfo(context.Background())
 			if (err != nil) != tt.wantErr {
 				t.Errorf("DeviceHandler.populateDeviceInfo() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
-
 		})
 	}
 }
@@ -1486,7 +1477,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
diff --git a/internal/pkg/core/olt_state_transitions.go b/internal/pkg/core/olt_state_transitions.go
index 613e4e4..b012a64 100644
--- a/internal/pkg/core/olt_state_transitions.go
+++ b/internal/pkg/core/olt_state_transitions.go
@@ -63,9 +63,9 @@
 // Transition to store state machine
 type Transition struct {
 	previousState []DeviceState
-	currentState  DeviceState
 	before        []TransitionHandler
 	after         []TransitionHandler
+	currentState  DeviceState
 }
 
 // TransitionMap to store all the states and current device state
@@ -146,7 +146,6 @@
 // Handle moves the state machine to next state based on the trigger and invokes the before and
 // after handlers if the transition is a valid transition
 func (tMap *TransitionMap) Handle(ctx context.Context, trigger Trigger) {
-
 	// Check whether the transtion is valid from current state
 	if !tMap.isValidTransition(trigger) {
 		logger.Errorw(ctx, "invalid-transition-triggered",
diff --git a/internal/pkg/core/olt_state_transitions_test.go b/internal/pkg/core/olt_state_transitions_test.go
index df4e8c6..4cb4218 100644
--- a/internal/pkg/core/olt_state_transitions_test.go
+++ b/internal/pkg/core/olt_state_transitions_test.go
@@ -18,10 +18,11 @@
 
 import (
 	"context"
-	"github.com/opencord/voltha-openolt-adapter/internal/pkg/olterrors"
 	"reflect"
 	"testing"
 	"time"
+
+	"github.com/opencord/voltha-openolt-adapter/internal/pkg/olterrors"
 )
 
 /*
diff --git a/internal/pkg/core/openolt.go b/internal/pkg/core/openolt.go
index 88e3efe..44ac313 100644
--- a/internal/pkg/core/openolt.go
+++ b/internal/pkg/core/openolt.go
@@ -44,22 +44,22 @@
 
 // OpenOLT structure holds the OLT information
 type OpenOLT struct {
+	eventProxy                         eventif.EventProxy
 	configManager                      *conf.ConfigManager
 	deviceHandlers                     map[string]*DeviceHandler
 	coreClient                         *vgrpc.Client
-	eventProxy                         eventif.EventProxy
 	config                             *config.AdapterFlags
-	numOnus                            int
+	exitChannel                        chan struct{}
 	KVStoreAddress                     string
 	KVStoreType                        string
-	exitChannel                        chan struct{}
+	numOnus                            int
 	HeartbeatCheckInterval             time.Duration
 	HeartbeatFailReportInterval        time.Duration
 	GrpcTimeoutInterval                time.Duration
+	rpcTimeout                         time.Duration
 	lockDeviceHandlersMap              sync.RWMutex
 	enableONUStats                     bool
 	enableGemStats                     bool
-	rpcTimeout                         time.Duration
 	CheckOnuDevExistenceAtOnuDiscovery bool
 }
 
@@ -264,7 +264,6 @@
 		return &empty.Empty{}, nil
 	}
 	return nil, olterrors.NewErrNotFound("device-handler", log.Fields{"device-id": device.Id}, nil)
-
 }
 
 // DeleteDevice deletes a device
@@ -333,7 +332,6 @@
 		return &empty.Empty{}, nil
 	}
 	return nil, olterrors.NewErrNotFound("device-handler", log.Fields{"device-id": packet.DeviceId}, nil)
-
 }
 
 // EnablePort to Enable PON/NNI interface
@@ -507,7 +505,6 @@
 		return handler.GetTechProfileDownloadMessage(ctx, request)
 	}
 	return nil, olterrors.NewErrNotFound("no-device-handler", log.Fields{"parent-device-id": request.ParentDeviceId, "child-device-id": request.DeviceId}, nil).Log()
-
 }
 
 // GetHealthStatus is used by a OltAdapterService client to detect a connection
diff --git a/internal/pkg/core/openolt_eventmgr.go b/internal/pkg/core/openolt_eventmgr.go
index f17814e..a8bc359 100644
--- a/internal/pkg/core/openolt_eventmgr.go
+++ b/internal/pkg/core/openolt_eventmgr.go
@@ -342,6 +342,7 @@
 	logger.Debugw(ctx, "olt-los-event-sent-to-kafka", log.Fields{"intf-id": ponIntdID})
 	return nil
 }
+
 func (em *OpenOltEventMgr) oltRebootFailedEvent(ctx context.Context, deviceID string, reason string, raisedTs int64) error {
 	de := voltha.DeviceEvent{
 		Context:         map[string]string{ContextOltFailureReason: "olt-reboot-failed"},
@@ -350,10 +351,10 @@
 	if err := em.eventProxy.SendDeviceEvent(ctx, &de, voltha.EventCategory_COMMUNICATION, voltha.EventSubCategory_OLT,
 		raisedTs); err != nil {
 		return olterrors.NewErrCommunication("send-olt-reboot-failed-event", log.Fields{
-			"device-id": deviceID, "raised-ts": raisedTs}, err)
+			"device-id": deviceID, "raised-ts": raisedTs, "reason": reason}, err)
 	}
 	logger.Debugw(ctx, "olt-reboot-failed-event-sent-to-kafka", log.Fields{
-		"device-id": deviceID, "raised-ts": raisedTs})
+		"device-id": deviceID, "raised-ts": raisedTs, "reason": reason})
 	return nil
 }
 
diff --git a/internal/pkg/core/openolt_flowmgr.go b/internal/pkg/core/openolt_flowmgr.go
index 6ad68ea..7389cb7 100644
--- a/internal/pkg/core/openolt_flowmgr.go
+++ b/internal/pkg/core/openolt_flowmgr.go
@@ -47,109 +47,109 @@
 )
 
 const (
-	//IPProtoDhcp flow category
+	// IPProtoDhcp flow category
 	IPProtoDhcp = 17
 
-	//IgmpProto proto value
+	// IgmpProto proto value
 	IgmpProto = 2
 
-	//EapEthType eapethtype value
+	// EapEthType eapethtype value
 	EapEthType = 0x888e
-	//LldpEthType lldp ethtype value
+	// LldpEthType lldp ethtype value
 	LldpEthType = 0x88cc
-	//IPv4EthType IPv4 ethernet type value
+	// IPv4EthType IPv4 ethernet type value
 	IPv4EthType = 0x800
-	//PPPoEDEthType PPPoE discovery ethernet type value
+	// PPPoEDEthType PPPoE discovery ethernet type value
 	PPPoEDEthType = 0x8863
 
-	//ReservedVlan Transparent Vlan (Masked Vlan, VLAN_ANY in ONOS Flows)
+	// ReservedVlan Transparent Vlan (Masked Vlan, VLAN_ANY in ONOS Flows)
 	ReservedVlan = 4096
 
-	//DefaultMgmtVlan default vlan value
+	// DefaultMgmtVlan default vlan value
 	DefaultMgmtVlan = 4091
 
 	// Openolt Flow
 
-	//Upstream constant
+	// Upstream constant
 	Upstream = "upstream"
-	//Downstream constant
+	// Downstream constant
 	Downstream = "downstream"
-	//Multicast constant
+	// Multicast constant
 	Multicast = "multicast"
-	//PacketTagType constant
+	// PacketTagType constant
 	PacketTagType = "pkt_tag_type"
-	//Untagged constant
+	// Untagged constant
 	Untagged = "untagged"
-	//SingleTag constant
+	// SingleTag constant
 	SingleTag = "single_tag"
-	//DoubleTag constant
+	// DoubleTag constant
 	DoubleTag = "double_tag"
 
 	// classifierInfo
 
-	//EthType constant
+	// EthType constant
 	EthType = "eth_type"
-	//EthDst constant
+	// EthDst constant
 	EthDst = "eth_dst"
-	//EthSrc constant
+	// EthSrc constant
 	EthSrc = "eth_src"
-	//TPID constant
+	// TPID constant
 	TPID = "tpid"
-	//IPProto constant
+	// IPProto constant
 	IPProto = "ip_proto"
-	//InPort constant
+	// InPort constant
 	InPort = "in_port"
-	//VlanVid constant
+	// VlanVid constant
 	VlanVid = "vlan_vid"
-	//VlanPcp constant
+	// VlanPcp constant
 	VlanPcp = "vlan_pcp"
 
-	//UDPDst constant
+	// UDPDst constant
 	UDPDst = "udp_dst"
-	//UDPSrc constant
+	// UDPSrc constant
 	UDPSrc = "udp_src"
-	//Ipv4Dst constant
+	// Ipv4Dst constant
 	Ipv4Dst = "ipv4_dst"
-	//Ipv4Src constant
+	// Ipv4Src constant
 	Ipv4Src = "ipv4_src"
-	//Metadata constant
+	// Metadata constant
 	Metadata = "metadata"
-	//TunnelID constant
+	// TunnelID constant
 	TunnelID = "tunnel_id"
-	//Output constant
+	// Output constant
 	Output = "output"
-	//GroupID constant
+	// GroupID constant
 	GroupID = "group_id"
 	// Actions
 
-	//PopVlan constant
+	// PopVlan constant
 	PopVlan = "pop_vlan"
-	//PushVlan constant
+	// PushVlan constant
 	PushVlan = "push_vlan"
-	//TrapToHost constant
+	// TrapToHost constant
 	TrapToHost = "trap_to_host"
-	//MaxMeterBand constant
+	// MaxMeterBand constant
 	MaxMeterBand = 2
-	//VlanPCPMask contant
+	// VlanPCPMask contant
 	VlanPCPMask = 0xFF
-	//VlanvIDMask constant
+	// VlanvIDMask constant
 	VlanvIDMask = 0xFFF
-	//IntfID constant
+	// IntfID constant
 	IntfID = "intfId"
-	//OnuID constant
+	// OnuID constant
 	OnuID = "onuId"
-	//UniID constant
+	// UniID constant
 	UniID = "uniId"
-	//PortNo constant
+	// PortNo constant
 	PortNo = "portNo"
-	//AllocID constant
+	// AllocID constant
 	AllocID = "allocId"
-	//GemID constant
+	// GemID constant
 	GemID = "gemId"
 
-	//NoneOnuID constant
+	// NoneOnuID constant
 	NoneOnuID = -1
-	//NoneUniID constant
+	// NoneUniID constant
 	NoneUniID = -1
 
 	// Max number of flows that can be queued per ONU
@@ -160,30 +160,30 @@
 )
 
 type schedQueue struct {
+	tpInst       interface{}
+	flowMetadata *ofp.FlowMetadata
 	direction    tp_pb.Direction
 	intfID       uint32
 	onuID        uint32
 	uniID        uint32
 	tpID         uint32
 	uniPort      uint32
-	tpInst       interface{}
 	meterID      uint32
-	flowMetadata *ofp.FlowMetadata
 }
 
 type flowContext struct {
+	classifier  map[string]interface{}
+	action      map[string]interface{}
+	logicalFlow *ofp.OfpFlowStats
+	pbitToGem   map[uint32]uint32
+	gemToAes    map[uint32]bool
 	intfID      uint32
 	onuID       uint32
 	uniID       uint32
 	portNo      uint32
-	classifier  map[string]interface{}
-	action      map[string]interface{}
-	logicalFlow *ofp.OfpFlowStats
 	allocID     uint32
 	gemPortID   uint32
 	tpID        uint32
-	pbitToGem   map[uint32]uint32
-	gemToAes    map[uint32]bool
 }
 
 // This control block is created per flow add/remove and pushed on the incomingFlows channel slice
@@ -192,28 +192,29 @@
 // flow and processes it serially
 type flowControlBlock struct {
 	ctx          context.Context   // Flow handler context
-	addFlow      bool              // if true flow to be added, else removed
 	flow         *ofp.OfpFlowStats // Flow message
 	flowMetadata *ofp.FlowMetadata // FlowMetadata that contains flow meter information. This can be nil for Flow remove
 	errChan      *chan error       // channel to report the Flow handling error
+	addFlow      bool              // if true flow to be added, else removed
 }
 
 // OpenOltFlowMgr creates the Structure of OpenOltFlowMgr obj
 type OpenOltFlowMgr struct {
-	ponPortIdx    uint32 // Pon Port this FlowManager is responsible for
 	techprofile   tp.TechProfileIf
 	deviceHandler *DeviceHandler
 	grpMgr        *OpenOltGroupMgr
 	resourceMgr   *rsrcMgr.OpenOltResourceMgr
 
-	packetInGemPort     map[rsrcMgr.PacketInInfoKey]uint32 //packet in gem port local cache
-	packetInGemPortLock sync.RWMutex
+	packetInGemPort map[rsrcMgr.PacketInInfoKey]uint32 // packet in gem port local cache
 
 	// Slice of channels. Each channel in slice, index by ONU ID, queues flows per ONU.
 	// A go routine per ONU, waits on the unique channel (indexed by ONU ID) for incoming flows (add/remove)
 	incomingFlows            []chan flowControlBlock
 	stopFlowHandlerRoutine   []chan bool
 	flowHandlerRoutineActive []bool
+	packetInGemPortLock      sync.RWMutex
+
+	ponPortIdx uint32 // Pon Port this FlowManager is responsible for
 }
 
 // CloseKVClient closes open KV clients
@@ -257,7 +258,7 @@
 		go flowMgr.perOnuFlowHandlerRoutine(i, flowMgr.incomingFlows[i], flowMgr.stopFlowHandlerRoutine[i])
 	}
 
-	//load interface to multicast queue map from kv store
+	// load interface to multicast queue map from kv store
 	flowMgr.grpMgr.LoadInterfaceToMulticastQueueMap(ctx)
 	logger.Info(ctx, "initialization-of-flow-manager-success")
 	return &flowMgr
@@ -354,7 +355,6 @@
 // CreateSchedulerQueues creates traffic schedulers on the device with the given scheduler configuration and traffic shaping info
 // nolint: gocyclo
 func (f *OpenOltFlowMgr) CreateSchedulerQueues(ctx context.Context, sq schedQueue) error {
-
 	logger.Debugw(ctx, "CreateSchedulerQueues",
 		log.Fields{"dir": sq.direction,
 			"intf-id":      sq.intfID,
@@ -516,7 +516,7 @@
 		UniId: sq.uniID, PortNo: sq.uniPort,
 		TrafficQueues: trafficQueues,
 		TechProfileId: TrafficSched[0].TechProfileId}
-	if _, err := f.deviceHandler.Client.CreateTrafficQueues(ctx, queues); err != nil {
+	if _, err = f.deviceHandler.Client.CreateTrafficQueues(ctx, queues); err != nil {
 		if len(queues.TrafficQueues) > 1 {
 			logger.Debug(ctx, "removing-queues-for-1tcont-multi-gem", log.Fields{"intfID": sq.intfID, "onuID": sq.onuID, "dir": sq.direction})
 			_, _ = f.deviceHandler.Client.RemoveTrafficQueues(ctx, queues)
@@ -583,9 +583,9 @@
 	if sq.direction == tp_pb.Direction_DOWNSTREAM {
 		multicastTrafficQueues := f.techprofile.GetMulticastTrafficQueues(ctx, sq.tpInst.(*tp_pb.TechProfileInstance))
 		if len(multicastTrafficQueues) > 0 {
-			if _, present := f.grpMgr.GetInterfaceToMcastQueueMap(sq.intfID); !present { //assumed that there is only one queue per PON for the multicast service
-				//the default queue with multicastQueuePerPonPort.Priority per a pon interface is used for multicast service
-				//just put it in interfaceToMcastQueueMap to use for building group members
+			if _, present := f.grpMgr.GetInterfaceToMcastQueueMap(sq.intfID); !present { // assumed that there is only one queue per PON for the multicast service
+				// the default queue with multicastQueuePerPonPort.Priority per a pon interface is used for multicast service
+				// just put it in interfaceToMcastQueueMap to use for building group members
 				logger.Debugw(ctx, "multicast-traffic-queues", log.Fields{"device-id": f.deviceHandler.device.Id})
 				multicastQueuePerPonPort := multicastTrafficQueues[0]
 				val := &QueueInfoBrief{
@@ -593,7 +593,7 @@
 					servicePriority: multicastQueuePerPonPort.Priority,
 				}
 				f.grpMgr.UpdateInterfaceToMcastQueueMap(sq.intfID, val)
-				//also store the queue info in kv store
+				// also store the queue info in kv store
 				if err := f.resourceMgr.AddMcastQueueForIntf(ctx, multicastQueuePerPonPort.GemportId, multicastQueuePerPonPort.Priority); err != nil {
 					logger.Errorw(ctx, "failed-to-add-mcast-queue", log.Fields{"err": err})
 					return err
@@ -694,7 +694,7 @@
 		// Delete the TCONT on the ONU.
 		uni := getUniPortPath(f.deviceHandler.device.Id, sq.intfID, int32(sq.onuID), int32(sq.uniID))
 		tpPath := f.getTPpath(ctx, uni, sq.tpID)
-		if err := f.sendDeleteTcontToChild(ctx, sq.intfID, sq.onuID, sq.uniID, allocID, tpPath); err != nil {
+		if err = f.sendDeleteTcontToChild(ctx, sq.intfID, sq.onuID, sq.uniID, allocID, tpPath); err != nil {
 			logger.Errorw(ctx, "error-processing-delete-tcont-towards-onu",
 				log.Fields{
 					"intf":      sq.intfID,
@@ -716,9 +716,7 @@
 // We ignore any errors encountered in the process. The errors most likely are encountered when
 // the schedulers and queues are already cleared for the given key.
 func (f *OpenOltFlowMgr) forceRemoveSchedulerQueues(ctx context.Context, sq schedQueue) {
-
 	var schedCfg *tp_pb.SchedulerConfig
-	var err error
 	logger.Infow(ctx, "removing-schedulers-and-queues-in-olt",
 		log.Fields{
 			"direction": sq.direction,
@@ -764,7 +762,6 @@
 				"tp-id":     sq.tpID,
 				"device-id": f.deviceHandler.device.Id,
 				"err":       err})
-
 		} else {
 			logger.Infow(ctx, "removed-traffic-queues-successfully", log.Fields{"device-id": f.deviceHandler.device.Id,
 				"direction": sq.direction,
@@ -777,7 +774,7 @@
 	}
 
 	// Remove traffic schedulers. Ignore any errors, just log them.
-	if _, err = f.deviceHandler.Client.RemoveTrafficSchedulers(ctx, &tp_pb.TrafficSchedulers{
+	if _, err := f.deviceHandler.Client.RemoveTrafficSchedulers(ctx, &tp_pb.TrafficSchedulers{
 		IntfId: sq.intfID, OnuId: sq.onuID,
 		UniId: sq.uniID, PortNo: sq.uniPort,
 		TrafficScheds: TrafficSched}); err != nil {
@@ -938,7 +935,6 @@
 }
 
 func (f *OpenOltFlowMgr) storeTcontsGEMPortsIntoKVStore(ctx context.Context, intfID uint32, onuID uint32, uniID uint32, allocID []uint32, gemPortIDs []uint32) {
-
 	logger.Debugw(ctx, "storing-allocated-tconts-and-gem-ports-into-KV-store",
 		log.Fields{
 			"intf-id":     intfID,
@@ -1039,7 +1035,6 @@
 }
 
 func (f *OpenOltFlowMgr) addSymmetricDataPathFlow(ctx context.Context, flowContext *flowContext, direction string) error {
-
 	intfID := flowContext.intfID
 	onuID := flowContext.onuID
 	uniID := flowContext.uniID
@@ -1134,7 +1129,6 @@
 }
 
 func (f *OpenOltFlowMgr) addDHCPTrapFlow(ctx context.Context, flowContext *flowContext) error {
-
 	intfID := flowContext.intfID
 	onuID := flowContext.onuID
 	uniID := flowContext.uniID
@@ -1233,7 +1227,6 @@
 
 // addUpstreamTrapFlow creates a trap-to-host flow
 func (f *OpenOltFlowMgr) addUpstreamTrapFlow(ctx context.Context, flowContext *flowContext) error {
-
 	intfID := flowContext.intfID
 	onuID := flowContext.onuID
 	uniID := flowContext.uniID
@@ -1363,7 +1356,7 @@
 			log.Fields{"intf-id": intfID, "onu-id": onuID, "flow-id": logicalFlow.Id})
 		return err
 	}
-	//Add Uplink EthType Flow
+	// Add Uplink EthType Flow
 	logger.Debugw(ctx, "creating-ul-ethType-flow",
 		log.Fields{
 			"ul_classifier": uplinkClassifier,
@@ -1454,7 +1447,7 @@
 		vid := uint32(metadata)
 		// Set the OVid or IVid classifier based on the whether OLT is using a transparent tag or not
 		// If OLT is using transparent tag mechanism, then it classifies whatever tag it sees to/from ONU which
-		//is OVid from the perspective of the OLT. When OLT also places or pops the outer tag, then classifierInfo[Metadata]
+		// is OVid from the perspective of the OLT. When OLT also places or pops the outer tag, then classifierInfo[Metadata]
 		// becomes the IVid.
 		if classifier.OVid != 0 && classifier.OVid != ReservedVlan { // This is case when classifier.OVid is not set
 			if vid != ReservedVlan {
@@ -1492,6 +1485,8 @@
 	return &classifier, nil
 }
 
+// nolint: unparam
+// TODO: Improvise the function & remove the unparam lint, currently it is always returning 'nil' as error.
 func makeOpenOltActionField(actionInfo map[string]interface{}, classifierInfo map[string]interface{}) (*openoltpb2.Action, error) {
 	var actionCmd openoltpb2.ActionCmd
 	var action openoltpb2.Action
@@ -1559,7 +1554,6 @@
 	uniPortName := getUniPortPath(f.deviceHandler.device.Id, intfID, int32(onuID), int32(uniID))
 
 	for _, tpID := range tpIDList {
-
 		// Force cleanup scheduler/queues -- start
 		uniPortNum := plt.MkUniPortNum(ctx, intfID, onuID, uniID)
 		uni := getUniPortPath(f.deviceHandler.device.Id, intfID, int32(onuID), int32(uniID))
@@ -1605,7 +1599,6 @@
 }
 
 func (f *OpenOltFlowMgr) addFlowToDevice(ctx context.Context, logicalFlow *ofp.OfpFlowStats, deviceFlow *openoltpb2.Flow) error {
-
 	var intfID uint32
 	/* For flows which trap out of the NNI, the AccessIntfId is invalid
 	   (set to -1). In such cases, we need to refer to the NetworkIntfId .
@@ -1668,11 +1661,10 @@
 					"err":        err,
 					"deviceFlow": deviceFlow,
 					"device-id":  f.deviceHandler.device.Id})
-			//Assume the flow is removed
+			// Assume the flow is removed
 			return nil
 		}
 		return olterrors.NewErrFlowOp("remove", deviceFlow.FlowId, log.Fields{"deviceFlow": deviceFlow}, err)
-
 	}
 	logger.Infow(ctx, "flow-removed-from-device-successfully", log.Fields{
 		"of-flow-id": ofFlowID,
@@ -1683,7 +1675,6 @@
 }
 
 func (f *OpenOltFlowMgr) addLLDPFlow(ctx context.Context, flow *ofp.OfpFlowStats, portNo uint32) error {
-
 	classifierInfo := make(map[string]interface{})
 	actionInfo := make(map[string]interface{})
 
@@ -1794,7 +1785,7 @@
 					"device-id": f.deviceHandler.device.Id}, err)
 		}
 		onuDev = NewOnuDevice(onuDevice.Id, onuDevice.Type, onuDevice.SerialNumber, onuDevice.ProxyAddress.OnuId, onuDevice.ProxyAddress.ChannelId, onuDevice.ProxyAddress.DeviceId, false, onuDevice.AdapterEndpoint)
-		//better to ad the device to cache here.
+		// better to ad the device to cache here.
 		f.deviceHandler.StoreOnuDevice(onuDev.(*OnuDevice))
 	} else {
 		logger.Debugw(ctx, "found-onu-in-cache",
@@ -1904,7 +1895,6 @@
 				"onu-id":        onuDev.deviceID,
 				"proxyDeviceID": onuDev.proxyDeviceID,
 				"device-id":     f.deviceHandler.device.Id}, err)
-
 	}
 	logger.Infow(ctx, "success-sending-del-tcont-to-onu-adapter",
 		log.Fields{
@@ -1918,7 +1908,6 @@
 // nolint: gocyclo
 func (f *OpenOltFlowMgr) clearResources(ctx context.Context, intfID uint32, onuID int32, uniID int32,
 	flowID uint64, portNum uint32, tpID uint32, sendDeleteGemRequest bool) error {
-
 	logger.Debugw(ctx, "clearing-resources", log.Fields{"intfID": intfID, "onuID": onuID, "uniID": uniID, "tpID": tpID})
 
 	uni := getUniPortPath(f.deviceHandler.device.Id, intfID, onuID, uniID)
@@ -2005,15 +1994,14 @@
 						"device-id":  f.deviceHandler.device.Id,
 						"gemport-id": gemPortID})
 			}
-
 		}
 		// Remove queues at OLT in upstream and downstream direction
-		schedQueue := schedQueue{direction: tp_pb.Direction_UPSTREAM, intfID: intfID, onuID: uint32(onuID), uniID: uint32(uniID), tpID: tpID, uniPort: portNum, tpInst: techprofileInst}
-		if err := f.RemoveQueues(ctx, schedQueue); err != nil {
+		schedQ := schedQueue{tpInst: techprofileInst, direction: tp_pb.Direction_UPSTREAM, intfID: intfID, onuID: uint32(onuID), uniID: uint32(uniID), tpID: tpID, uniPort: portNum}
+		if err := f.RemoveQueues(ctx, schedQ); err != nil {
 			logger.Warn(ctx, err)
 		}
-		schedQueue.direction = tp_pb.Direction_DOWNSTREAM
-		if err := f.RemoveQueues(ctx, schedQueue); err != nil {
+		schedQ.direction = tp_pb.Direction_DOWNSTREAM
+		if err := f.RemoveQueues(ctx, schedQ); err != nil {
 			logger.Warn(ctx, err)
 		}
 	}
@@ -2021,12 +2009,12 @@
 	switch techprofileInst := techprofileInst.(type) {
 	case *tp_pb.TechProfileInstance:
 		// Proceed to free allocid and cleanup schedulers (US/DS) if no other references are found for this TP across all the UNIs on the ONU
-		schedQueue := schedQueue{direction: tp_pb.Direction_UPSTREAM, intfID: intfID, onuID: uint32(onuID), uniID: uint32(uniID), tpID: tpID, uniPort: portNum, tpInst: techprofileInst}
-		allocExists := f.isAllocUsedByAnotherUNI(ctx, schedQueue)
+		schedQ := schedQueue{direction: tp_pb.Direction_UPSTREAM, intfID: intfID, onuID: uint32(onuID), uniID: uint32(uniID), tpID: tpID, uniPort: portNum, tpInst: techprofileInst}
+		allocExists := f.isAllocUsedByAnotherUNI(ctx, schedQ)
 		if !allocExists {
 			// all alloc object references removed, remove upstream scheduler
 			if KvStoreMeter, _ := f.resourceMgr.GetMeterInfoForOnu(ctx, "upstream", uint32(onuID), uint32(uniID), tpID); KvStoreMeter != nil {
-				if err := f.RemoveScheduler(ctx, schedQueue); err != nil {
+				if err := f.RemoveScheduler(ctx, schedQ); err != nil {
 					logger.Warn(ctx, err)
 				}
 			}
@@ -2035,7 +2023,7 @@
 		} else {
 			// just remove meter reference for the upstream direction for the current pon/onu/uni
 			// The upstream scheduler, alloc id and meter-reference for the last remaining pon/onu/uni will be removed when no other alloc references that TP
-			if err := f.removeMeterReference(ctx, "upstream", schedQueue); err != nil {
+			if err := f.removeMeterReference(ctx, "upstream", schedQ); err != nil {
 				return err
 			}
 			// setting 'freeFromResourcePool' to false in resourceMgr.FreeAllocID will only remove alloc-id data for the given pon/onu/uni
@@ -2044,9 +2032,9 @@
 		}
 
 		// Downstream scheduler removal is simple, just invoke RemoveScheduler without all the complex handling we do for the alloc object.
-		schedQueue.direction = tp_pb.Direction_DOWNSTREAM
+		schedQ.direction = tp_pb.Direction_DOWNSTREAM
 		if KvStoreMeter, _ := f.resourceMgr.GetMeterInfoForOnu(ctx, "downstream", uint32(onuID), uint32(uniID), tpID); KvStoreMeter != nil {
-			if err := f.RemoveScheduler(ctx, schedQueue); err != nil {
+			if err := f.RemoveScheduler(ctx, schedQ); err != nil {
 				logger.Warn(ctx, err)
 			}
 		}
@@ -2094,7 +2082,7 @@
 				f.resourceMgr.FreeGemPortID(ctx, uint32(onuID), uint32(uniID), gemPort.GemportId)
 			}
 		}
-		//Delete the tp instance and the techprofileid for onu at the end
+		// Delete the tp instance and the techprofileid for onu at the end
 		if err := f.DeleteTechProfileInstance(ctx, intfID, uint32(onuID), uint32(uniID), "", tpID); err != nil {
 			logger.Warn(ctx, err)
 		}
@@ -2191,7 +2179,6 @@
 
 // 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})
 	var direction string
 	actionInfo := make(map[string]interface{})
@@ -2482,13 +2469,13 @@
 		return olterrors.NewErrFlowOp("add", flow.Id, log.Fields{"flow": multicastFlow}, err)
 	}
 	logger.Info(ctx, "multicast-flow-added-to-device-successfully")
-	//get cached group
+	// get cached group
 	if group, _, err := f.grpMgr.getFlowGroupFromKVStore(ctx, groupID, true); err == nil {
-		//calling groupAdd to set group members after multicast flow creation
+		// calling groupAdd to set group members after multicast flow creation
 		if err := f.grpMgr.ModifyGroup(ctx, group); err != nil {
 			return olterrors.NewErrGroupOp("modify", groupID, log.Fields{"group": group}, err)
 		}
-		//cached group can be removed now
+		// cached group can be removed now
 		if err := f.resourceMgr.RemoveFlowGroupFromKVStore(ctx, groupID, true); err != nil {
 			logger.Warnw(ctx, "failed-to-remove-flow-group", log.Fields{"group-id": groupID, "err": err})
 		}
@@ -2513,7 +2500,6 @@
 
 // sendTPDownloadMsgToChild send payload
 func (f *OpenOltFlowMgr) sendTPDownloadMsgToChild(ctx context.Context, intfID uint32, onuID uint32, uniID uint32, uni string, TpID uint32, tpInst tp_pb.TechProfileInstance) error {
-
 	onuDev, err := f.getOnuDevice(ctx, intfID, onuID)
 	if err != nil {
 		logger.Errorw(ctx, "couldnt-find-onu-child-device",
@@ -2601,7 +2587,7 @@
 
 		return gemPortID, nil
 	}
-	//If gem is not found in cache try to get it from kv store, if found in kv store, update the cache and return.
+	// If gem is not found in cache try to get it from kv store, if found in kv store, update the cache and return.
 	gemPortID, err = f.resourceMgr.GetGemPortFromOnuPktIn(ctx, pktInkey)
 	if err == nil {
 		if gemPortID != 0 {
@@ -2619,7 +2605,6 @@
 		log.Fields{
 			"pktinkey": pktInkey,
 			"gem":      gemPortID}, err)
-
 }
 
 func (f *OpenOltFlowMgr) addTrapFlowOnNNI(ctx context.Context, logicalFlow *ofp.OfpFlowStats, classifier map[string]interface{}, portNo uint32) error {
@@ -2872,8 +2857,7 @@
 		}
 	}
 
-	flowContext := &flowContext{intfID, onuID, uniID, portNo, classifierInfo, actionInfo,
-		flow, allocID, gemPortID, tpID, pbitToGem, gemToAes}
+	flowContext := &flowContext{classifierInfo, actionInfo, flow, pbitToGem, gemToAes, intfID, onuID, uniID, portNo, allocID, gemPortID, tpID}
 
 	if ipProto, ok := classifierInfo[IPProto]; ok {
 		if ipProto.(uint32) == IPProtoDhcp {
@@ -2884,14 +2868,13 @@
 				"onu-id":   onuID,
 				"uni-id":   uniID,
 			})
-			//Adding DHCP upstream flow
+			// Adding DHCP upstream flow
 			if err := f.addDHCPTrapFlow(ctx, flowContext); err != nil {
 				logger.Warn(ctx, err)
 				logger.Errorw(ctx, "reverting-scheduler-and-queue-for-onu", log.Fields{"intf-id": intfID, "onu-id": onuID, "uni-id": uniID, "flow-id": flow.Id, "tp-id": tpID})
 				_ = f.clearResources(ctx, intfID, int32(onuID), int32(uniID), flow.Id, portNo, tpID, false)
 				return err
 			}
-
 		} else if ipProto.(uint32) == IgmpProto {
 			logger.Infow(ctx, "adding-us-igmp-flow",
 				log.Fields{
@@ -2937,7 +2920,7 @@
 				"onu-id":   onuID,
 				"uni-id":   uniID,
 			})
-			//Adding PPPOED upstream flow
+			// Adding PPPOED upstream flow
 			if err := f.addUpstreamTrapFlow(ctx, flowContext); err != nil {
 				logger.Warn(ctx, err)
 				logger.Errorw(ctx, "reverting-scheduler-and-queue-for-onu", log.Fields{"intf-id": intfID, "onu-id": onuID, "uni-id": uniID, "flow-id": flow.Id, "tp-id": tpID})
@@ -2951,7 +2934,7 @@
 			"onu-id":  onuID,
 			"uni-id":  uniID,
 		})
-		//Adding HSIA upstream flow
+		// Adding HSIA upstream flow
 		if err := f.addUpstreamDataPathFlow(ctx, flowContext); err != nil {
 			logger.Warn(ctx, err)
 			logger.Errorw(ctx, "reverting-scheduler-and-queue-for-onu", log.Fields{"intf-id": intfID, "onu-id": onuID, "uni-id": uniID, "flow-id": flow.Id, "tp-id": tpID})
@@ -2964,7 +2947,7 @@
 			"onu-id":  onuID,
 			"uni-id":  uniID,
 		})
-		//Adding HSIA downstream flow
+		// Adding HSIA downstream flow
 		if err := f.addDownstreamDataPathFlow(ctx, flowContext); err != nil {
 			logger.Warn(ctx, err)
 			logger.Errorw(ctx, "reverting-scheduler-and-queue-for-onu", log.Fields{"intf-id": intfID, "onu-id": onuID, "uni-id": uniID, "flow-id": flow.Id, "tp-id": tpID})
@@ -3228,7 +3211,6 @@
 
 // getNniIntfID gets nni intf id from the flow classifier/action
 func getNniIntfID(ctx context.Context, classifier map[string]interface{}, action map[string]interface{}) (uint32, error) {
-
 	portType := plt.IntfIDToPortTypeName(classifier[InPort].(uint32))
 	if portType == voltha.Port_PON_OLT {
 		intfID, err := plt.IntfIDFromNniPortNum(ctx, action[Output].(uint32))
@@ -3309,7 +3291,7 @@
 			index = 14
 		}
 		priority := (packet[index] >> 5) & 0x7
-		//13 bits composes vlanId value
+		// 13 bits composes vlanId value
 		vlan := ((uint16(packet[index]) << 8) & 0x0fff) | uint16(packet[index+1])
 		return vlan, priority, nil
 	}
@@ -3375,7 +3357,6 @@
 
 // revertTechProfileInstance is called when CreateScheduler or CreateQueues request fails
 func (f *OpenOltFlowMgr) revertTechProfileInstance(ctx context.Context, sq schedQueue) {
-
 	intfID := sq.intfID
 	onuID := sq.onuID
 	uniID := sq.uniID
diff --git a/internal/pkg/core/openolt_flowmgr_test.go b/internal/pkg/core/openolt_flowmgr_test.go
index 7e27afb..ca64bdd 100644
--- a/internal/pkg/core/openolt_flowmgr_test.go
+++ b/internal/pkg/core/openolt_flowmgr_test.go
@@ -85,30 +85,30 @@
 		wantErr    bool
 	}{
 		// TODO: Add test cases.
-		{"CreateSchedulerQueues-1", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, createFlowMetadata(tprofile, 1, Upstream)}, false},
-		{"CreateSchedulerQueues-2", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, createFlowMetadata(tprofile2, 1, Downstream)}, false},
-		{"CreateSchedulerQueues-13", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, createFlowMetadata(tprofile, 2, Upstream)}, false},
-		{"CreateSchedulerQueues-14", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, createFlowMetadata(tprofile2, 2, Downstream)}, false},
-		{"CreateSchedulerQueues-15", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, createFlowMetadata(tprofile, 3, Upstream)}, false},
-		{"CreateSchedulerQueues-16", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, createFlowMetadata(tprofile2, 3, Downstream)}, false},
-		{"CreateSchedulerQueues-17", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, createFlowMetadata(tprofile, 4, Upstream)}, false},
-		{"CreateSchedulerQueues-18", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, createFlowMetadata(tprofile2, 4, Downstream)}, false},
-		{"CreateSchedulerQueues-19", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, createFlowMetadata(tprofile, 5, Upstream)}, false},
-		{"CreateSchedulerQueues-20", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, createFlowMetadata(tprofile2, 5, Downstream)}, false},
+		{"CreateSchedulerQueues-1", schedQueue{tprofile, createFlowMetadata(tprofile, 1, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, false},
+		{"CreateSchedulerQueues-2", schedQueue{tprofile2, createFlowMetadata(tprofile2, 1, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, false},
+		{"CreateSchedulerQueues-13", schedQueue{tprofile, createFlowMetadata(tprofile, 2, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, false},
+		{"CreateSchedulerQueues-14", schedQueue{tprofile2, createFlowMetadata(tprofile2, 2, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, false},
+		{"CreateSchedulerQueues-15", schedQueue{tprofile, createFlowMetadata(tprofile, 3, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, false},
+		{"CreateSchedulerQueues-16", schedQueue{tprofile2, createFlowMetadata(tprofile2, 3, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, false},
+		{"CreateSchedulerQueues-17", schedQueue{tprofile, createFlowMetadata(tprofile, 4, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, false},
+		{"CreateSchedulerQueues-18", schedQueue{tprofile2, createFlowMetadata(tprofile2, 4, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, false},
+		{"CreateSchedulerQueues-19", schedQueue{tprofile, createFlowMetadata(tprofile, 5, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, false},
+		{"CreateSchedulerQueues-20", schedQueue{tprofile2, createFlowMetadata(tprofile2, 5, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, false},
 
-		//Negative testcases
-		{"CreateSchedulerQueues-1", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, createFlowMetadata(tprofile, 0, Upstream)}, true},
-		{"CreateSchedulerQueues-2", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, createFlowMetadata(tprofile2, 0, Downstream)}, true},
-		{"CreateSchedulerQueues-3", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 2, createFlowMetadata(tprofile, 2, Upstream)}, true},
-		{"CreateSchedulerQueues-4", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 2, createFlowMetadata(tprofile2, 2, Downstream)}, true},
-		{"CreateSchedulerQueues-5", schedQueue{tp_pb.Direction_UPSTREAM, 1, 2, 2, 64, 2, tprofile, 2, createFlowMetadata(tprofile, 3, Upstream)}, true},
-		{"CreateSchedulerQueues-6", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 2, 2, 65, 2, tprofile2, 2, createFlowMetadata(tprofile2, 3, Downstream)}, true},
-		{"CreateSchedulerQueues-7", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 1, &ofp.FlowMetadata{}}, true},
-		{"CreateSchedulerQueues-8", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 0, &ofp.FlowMetadata{}}, true},
-		{"CreateSchedulerQueues-9", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 1, &ofp.FlowMetadata{}}, true},
-		{"CreateSchedulerQueues-10", schedQueue{tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, tprofile, 2, &ofp.FlowMetadata{}}, true},
-		{"CreateSchedulerQueues-11", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 2, &ofp.FlowMetadata{}}, true},
-		{"CreateSchedulerQueues-12", schedQueue{tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, tprofile2, 2, nil}, true},
+		// Negative testcases
+		{"CreateSchedulerQueues-1", schedQueue{tprofile, createFlowMetadata(tprofile, 0, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, true},
+		{"CreateSchedulerQueues-2", schedQueue{tprofile2, createFlowMetadata(tprofile2, 0, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, true},
+		{"CreateSchedulerQueues-3", schedQueue{tprofile, createFlowMetadata(tprofile, 2, Upstream), tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 2}, true},
+		{"CreateSchedulerQueues-4", schedQueue{tprofile2, createFlowMetadata(tprofile2, 2, Downstream), tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 2}, true},
+		{"CreateSchedulerQueues-5", schedQueue{tprofile, createFlowMetadata(tprofile, 3, Upstream), tp_pb.Direction_UPSTREAM, 1, 2, 2, 64, 2, 2}, true},
+		{"CreateSchedulerQueues-6", schedQueue{tprofile2, createFlowMetadata(tprofile2, 3, Downstream), tp_pb.Direction_DOWNSTREAM, 1, 2, 2, 65, 2, 2}, true},
+		{"CreateSchedulerQueues-7", schedQueue{tprofile, &ofp.FlowMetadata{}, tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 1}, true},
+		{"CreateSchedulerQueues-8", schedQueue{tprofile, &ofp.FlowMetadata{}, tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 0}, true},
+		{"CreateSchedulerQueues-9", schedQueue{tprofile2, &ofp.FlowMetadata{}, tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 1}, true},
+		{"CreateSchedulerQueues-10", schedQueue{tprofile, &ofp.FlowMetadata{}, tp_pb.Direction_UPSTREAM, 0, 1, 1, 64, 1, 2}, true},
+		{"CreateSchedulerQueues-11", schedQueue{tprofile2, &ofp.FlowMetadata{}, tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 2}, true},
+		{"CreateSchedulerQueues-12", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 0, 1, 1, 65, 1, 2}, true},
 	}
 	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 	defer cancel()
@@ -126,26 +126,26 @@
 	bands := make([]*ofp.OfpMeterBandHeader, 0)
 	switch tcontType {
 	case 1:
-		//tcont-type-1
+		// tcont-type-1
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 10000, BurstSize: 0, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 10000, BurstSize: 0, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		additionalBw = tp_pb.AdditionalBW_AdditionalBW_None
 	case 2:
-		//tcont-type-2
+		// tcont-type-2
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 60000, BurstSize: 10000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 50000, BurstSize: 10000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		additionalBw = tp_pb.AdditionalBW_AdditionalBW_None
 	case 3:
-		//tcont-type-3
+		// tcont-type-3
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 100000, BurstSize: 10000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 50000, BurstSize: 20000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		additionalBw = tp_pb.AdditionalBW_AdditionalBW_NA
 	case 4:
-		//tcont-type-4
+		// tcont-type-4
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 200000, BurstSize: 10000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		additionalBw = tp_pb.AdditionalBW_AdditionalBW_BestEffort
 	case 5:
-		//tcont-type-5
+		// tcont-type-5
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 50000, BurstSize: 10000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 100000, BurstSize: 10000, Data: &ofp.OfpMeterBandHeader_Drop{}})
 		bands = append(bands, &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 10000, BurstSize: 0, Data: &ofp.OfpMeterBandHeader_Drop{}})
@@ -180,16 +180,16 @@
 	tprofile2.DsScheduler.Direction = tp_pb.Direction_DOWNSTREAM
 	tprofile2.DsScheduler.AdditionalBw = tp_pb.AdditionalBW_AdditionalBW_None
 	tprofile2.DsScheduler.QSchedPolicy = tp_pb.SchedulingPolicy_WRR
-	//defTprofile := &tp.DefaultTechProfile{}
+	// defTprofile := &tp.DefaultTechProfile{}
 	tests := []struct {
 		name       string
 		schedQueue schedQueue
 		wantErr    bool
 	}{
-		{"RemoveScheduler-1", schedQueue{tp_pb.Direction_UPSTREAM, 1, 1, 1, 64, 1, tprofile, 0, nil}, false},
-		{"RemoveScheduler-2", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, tprofile2, 0, nil}, false},
-		{"RemoveScheduler-3", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, tprofile2, 0, nil}, false},
-		{"RemoveScheduler-4", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, tprofile2, 0, nil}, false},
+		{"RemoveScheduler-1", schedQueue{tprofile, nil, tp_pb.Direction_UPSTREAM, 1, 1, 1, 64, 1, 0}, false},
+		{"RemoveScheduler-2", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, 0}, false},
+		{"RemoveScheduler-3", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, 0}, false},
+		{"RemoveScheduler-4", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, 0}, false},
 	}
 	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 	defer cancel()
@@ -200,7 +200,6 @@
 			}
 		})
 	}
-
 }
 
 func TestOpenOltFlowMgr_RemoveQueues(t *testing.T) {
@@ -245,16 +244,16 @@
 	tprofile2.DownstreamGemPortAttributeList = make([]*tp_pb.GemPortAttributes, 0)
 	tprofile2.DownstreamGemPortAttributeList = append(tprofile.DownstreamGemPortAttributeList, &tp_pb.GemPortAttributes{GemportId: 1, PbitMap: "0b11111111"})
 
-	//defTprofile := &tp.DefaultTechProfile{}
+	// defTprofile := &tp.DefaultTechProfile{}
 	tests := []struct {
 		name       string
 		schedQueue schedQueue
 		wantErr    bool
 	}{
-		{"RemoveQueues-1", schedQueue{tp_pb.Direction_UPSTREAM, 1, 1, 1, 64, 1, tprofile, 0, nil}, false},
-		{"RemoveQueues-2", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, tprofile2, 0, nil}, false},
-		{"RemoveQueues-3", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, tprofile2, 0, nil}, false},
-		{"RemoveQueues-4", schedQueue{tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, tprofile2, 0, nil}, false},
+		{"RemoveQueues-1", schedQueue{tprofile, nil, tp_pb.Direction_UPSTREAM, 1, 1, 1, 64, 1, 0}, false},
+		{"RemoveQueues-2", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, 0}, false},
+		{"RemoveQueues-3", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, 0}, false},
+		{"RemoveQueues-4", schedQueue{tprofile2, nil, tp_pb.Direction_DOWNSTREAM, 1, 1, 1, 65, 1, 0}, false},
 	}
 	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 	defer cancel()
@@ -265,7 +264,6 @@
 			}
 		})
 	}
-
 }
 
 func TestOpenOltFlowMgr_createTcontGemports(t *testing.T) {
@@ -343,14 +341,14 @@
 		},
 	}
 	lldpofpstats, _ := fu.MkFlowStat(lldpFa)
-	//lldpofpstats.Cookie = lldpofpstats.Id
+	// lldpofpstats.Cookie = lldpofpstats.Id
 
 	dhcpFa := &fu.FlowArgs{
 		KV: fu.OfpFlowModArgs{"priority": 1000, "cookie": 48132224281636694},
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(1),
 			fu.UdpSrc(67),
-			//fu.TunnelId(536870912),
+			// fu.TunnelId(536870912),
 			fu.IpProto(17),
 		},
 		Actions: []*ofp.OfpAction{
@@ -358,16 +356,16 @@
 		},
 	}
 	dhcpofpstats, _ := fu.MkFlowStat(dhcpFa)
-	//dhcpofpstats.Cookie = dhcpofpstats.Id
+	// dhcpofpstats.Cookie = dhcpofpstats.Id
 
-	//multicast flow
+	// multicast flow
 	multicastFa := &fu.FlowArgs{
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(16777216),
-			fu.VlanVid(660),             //vlan
-			fu.Metadata_ofp(uint64(66)), //inner vlan
-			fu.EthType(0x800),           //ipv4
-			fu.Ipv4Dst(3809869825),      //227.22.0.1
+			fu.VlanVid(660),             // vlan
+			fu.Metadata_ofp(uint64(66)), // inner vlan
+			fu.EthType(0x800),           // ipv4
+			fu.Ipv4Dst(3809869825),      // 227.22.0.1
 		},
 		Actions: []*ofp.OfpAction{
 			fu.Group(1),
@@ -429,7 +427,7 @@
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT)),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(16777216),
 			fu.PushVlan(0x8100),
@@ -445,8 +443,8 @@
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
-			//fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 101)),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 101)),
 			fu.PopVlan(),
 			fu.Output(536870912),
 		},
@@ -460,7 +458,7 @@
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT)),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 101)),
 			fu.Output(65533),
 		},
@@ -510,7 +508,7 @@
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT)),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(65535),
 		},
@@ -534,7 +532,7 @@
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(1),
 			fu.UdpSrc(67),
-			//fu.TunnelId(536870912),
+			// fu.TunnelId(536870912),
 			fu.IpProto(17),
 		},
 		Actions: []*ofp.OfpAction{
@@ -546,7 +544,7 @@
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(1),
 			fu.UdpSrc(67),
-			//fu.TunnelId(536870912),
+			// fu.TunnelId(536870912),
 			fu.IpProto(2),
 		},
 		Actions: []*ofp.OfpAction{
@@ -580,7 +578,7 @@
 			fu.Ipv4Src(536870912),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(65535),
 		},
@@ -600,20 +598,20 @@
 			fu.Ipv4Src(536870912),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(65535),
 		},
 		KV: kw6,
 	}
-	//multicast flow
+	// multicast flow
 	fa11 := &fu.FlowArgs{
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(16777216),
-			fu.VlanVid(660),             //vlan
-			fu.Metadata_ofp(uint64(66)), //inner vlan
-			fu.EthType(0x800),           //ipv4
-			fu.Ipv4Dst(3809869825),      //227.22.0.1
+			fu.VlanVid(660),             // vlan
+			fu.Metadata_ofp(uint64(66)), // inner vlan
+			fu.EthType(0x800),           // ipv4
+			fu.Ipv4Dst(3809869825),      // 227.22.0.1
 		},
 		Actions: []*ofp.OfpAction{
 			fu.Group(1),
@@ -654,13 +652,13 @@
 		{"AddFlow", args{flow: ofpstats3, flowMetadata: flowMetadata}},
 		{"AddFlow", args{flow: ofpstats4, flowMetadata: flowMetadata}},
 		{"AddFlow", args{flow: ofpstats5, flowMetadata: flowMetadata}},
-		//{"AddFlow", args{flow: ofpstats6, flowMetadata: flowMetadata}},
+		// {"AddFlow", args{flow: ofpstats6, flowMetadata: flowMetadata}},
 		{"AddFlow", args{flow: ofpstats7, flowMetadata: flowMetadata}},
 		{"AddFlow", args{flow: ofpstats8, flowMetadata: flowMetadata}},
-		//{"AddFlow", args{flow: ofpstats9, flowMetadata: flowMetadata}},
+		// {"AddFlow", args{flow: ofpstats9, flowMetadata: flowMetadata}},
 		{"AddFlow", args{flow: igmpstats, flowMetadata: flowMetadata}},
-		//{"AddFlow", args{flow: ofpstats10, flowMetadata: flowMetadata}},
-		//ofpstats10
+		// {"AddFlow", args{flow: ofpstats10, flowMetadata: flowMetadata}},
+		// ofpstats10
 		{"AddFlow", args{flow: ofpstats11, flowMetadata: flowMetadata}},
 		{"AddFlow", args{flow: pppoedstats, flowMetadata: flowMetadata}},
 	}
@@ -695,7 +693,6 @@
 	defer cancel()
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-
 			got, err := flowMgr[tt.args.packetIn.IntfId].GetLogicalPortFromPacketIn(ctx, tt.args.packetIn)
 			if (err != nil) != tt.wantErr {
 				t.Errorf("OpenOltFlowMgr.GetLogicalPortFromPacketIn() error = %v, wantErr %v", err, tt.wantErr)
@@ -712,21 +709,21 @@
 	// Create fresh flowMgr instance
 	flowMgr = newMockFlowmgr()
 
-	//untagged packet in hex string
+	// untagged packet in hex string
 	untaggedStr := "01005e000002000000000001080046c00020000040000102fa140a000001e00000029404000017000705e10000fa"
 	untagged, err := hex.DecodeString(untaggedStr)
 	if err != nil {
 		t.Error("Unable to parse hex string", err)
 		panic(err)
 	}
-	//single-tagged packet in hex string. vlanID.pbit: 1.1
+	// single-tagged packet in hex string. vlanID.pbit: 1.1
 	singleTaggedStr := "01005e0000010025ba48172481002001080046c0002000004000010257deab140023e0000001940400001164ee9b0000000000000000000000000000"
 	singleTagged, err := hex.DecodeString(singleTaggedStr)
 	if err != nil {
 		t.Error("Unable to parse hex string", err)
 		panic(err)
 	}
-	//double-tagged packet in hex string. vlanID.pbit: 210.0-0.0
+	// double-tagged packet in hex string. vlanID.pbit: 210.0-0.0
 	doubleTaggedStr := "01005e000016deadbeefba118100021081000000080046000028000000000102c5b87f000001e0000016940400002200f8030000000104000000e10000fa"
 	doubleTagged, err := hex.DecodeString(doubleTaggedStr)
 	if err != nil {
@@ -758,16 +755,15 @@
 	defer cancel()
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-
 			got, err := flowMgr[tt.args.intfID].GetPacketOutGemPortID(ctx, tt.args.intfID, tt.args.onuID, tt.args.portNum, tt.args.packet)
 			if tt.wantErr {
 				if err == nil {
-					//error expected but got value
+					// error expected but got value
 					t.Errorf("OpenOltFlowMgr.GetPacketOutGemPortID() = %v, wantErr %v", got, tt.wantErr)
 				}
 			} else {
 				if err != nil {
-					//error is not expected but got error
+					// error is not expected but got error
 					t.Errorf("OpenOltFlowMgr.GetPacketOutGemPortID() error = %v, wantErr %v", err, tt.wantErr)
 					return
 				}
@@ -823,7 +819,7 @@
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT)),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(16777216),
 			fu.PushVlan(0x8100),
@@ -841,7 +837,7 @@
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(16777216),
 			fu.PushVlan(0x8100),
@@ -854,11 +850,11 @@
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(536870912),
 			fu.Metadata_ofp(1),
-			//fu.EthType(0x8100),
+			// fu.EthType(0x8100),
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT)),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT))),
 			fu.Output(16777216),
 			fu.PushVlan(0x8100),
@@ -874,7 +870,7 @@
 			fu.VlanPcp(1),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT))),
 			fu.Output(536870912),
 			fu.PopVlan(),
@@ -1137,21 +1133,21 @@
 func TestOpenOltFlowMgr_TestMulticastFlowAndGroup(t *testing.T) {
 	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 	defer cancel()
-	//create group
+	// create group
 	group := newGroup(2, []uint32{1})
 	err := flowMgr[0].grpMgr.AddGroup(ctx, group)
 	if err != nil {
 		t.Error("group-add failed", err)
 		return
 	}
-	//create multicast flow
+	// create multicast flow
 	multicastFlowArgs := &fu.FlowArgs{
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(16777216),
-			fu.VlanVid(660),             //vlan
-			fu.Metadata_ofp(uint64(66)), //inner vlan
-			fu.EthType(0x800),           //ipv4
-			fu.Ipv4Dst(3809869825),      //227.22.0.1
+			fu.VlanVid(660),             // vlan
+			fu.Metadata_ofp(uint64(66)), // inner vlan
+			fu.EthType(0x800),           // ipv4
+			fu.Ipv4Dst(3809869825),      // 227.22.0.1
 		},
 		Actions: []*ofp.OfpAction{
 			fu.Group(1),
@@ -1165,21 +1161,21 @@
 		return
 	}
 
-	//add bucket to the group
+	// add bucket to the group
 	group = newGroup(2, []uint32{1, 2})
 	err = flowMgr[0].grpMgr.ModifyGroup(ctx, group)
 	if err != nil {
 		t.Error("modify-group failed", err)
 		return
 	}
-	//remove the multicast flow
+	// remove the multicast flow
 	err = flowMgr[0].RemoveFlow(ctx, ofpStats)
 	if err != nil {
 		t.Error("Multicast flow-remove failed", err)
 		return
 	}
 
-	//remove the group
+	// remove the group
 	err = flowMgr[0].grpMgr.DeleteGroup(ctx, group)
 	if err != nil {
 		t.Error("delete-group failed", err)
@@ -1260,7 +1256,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
@@ -1279,7 +1275,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
@@ -1292,12 +1288,12 @@
 		MatchFields: []*ofp.OfpOxmOfbField{
 			fu.InPort(536870912),
 			fu.Metadata_ofp(1),
-			//fu.EthType(0x8100),
+			// fu.EthType(0x8100),
 			fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT)),
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT))),
 			fu.Output(16777216),
 			fu.PushVlan(0x8100),
@@ -1315,7 +1311,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT))),
 			fu.Output(536870912),
 			fu.PopVlan(),
@@ -1334,7 +1330,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 259)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
@@ -1353,7 +1349,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
@@ -1372,7 +1368,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
@@ -1391,7 +1387,7 @@
 			fu.TunnelId(256),
 		},
 		Actions: []*ofp.OfpAction{
-			//fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
+			// fu.SetField(fu.Metadata_ofp(uint64(ofp.OfpInstructionType_OFPIT_WRITE_METADATA | 2))),
 			fu.SetField(fu.VlanVid(uint32(ofp.OfpVlanId_OFPVID_PRESENT) | 257)),
 			fu.Output(2147483645),
 			fu.PushVlan(0x8100),
diff --git a/internal/pkg/core/openolt_groupmgr.go b/internal/pkg/core/openolt_groupmgr.go
index 670eeaf..6da8475 100644
--- a/internal/pkg/core/openolt_groupmgr.go
+++ b/internal/pkg/core/openolt_groupmgr.go
@@ -99,7 +99,7 @@
 		logger.Errorw(ctx, "delete-group-failed-on-dev", log.Fields{"groupToOlt": groupToOlt, "err": err})
 		return olterrors.NewErrAdapter("delete-group-operation-failed", log.Fields{"groupToOlt": groupToOlt}, err)
 	}
-	//remove group from the store
+	// remove group from the store
 	if err := g.resourceMgr.RemoveFlowGroupFromKVStore(ctx, group.Desc.GroupId, false); err != nil {
 		return olterrors.NewErrPersistence("delete", "flow-group", uint64(group.Desc.GroupId), log.Fields{"group": group}, err)
 	}
@@ -114,7 +114,7 @@
 		return olterrors.NewErrInvalidValue(log.Fields{"group": group}, nil)
 	}
 	newGroup := g.buildGroup(ctx, group.Desc.GroupId, group.Desc.Buckets)
-	//get existing members of the group
+	// get existing members of the group
 	val, groupExists, err := g.getFlowGroupFromKVStore(ctx, group.Desc.GroupId, false)
 	if err != nil {
 		return olterrors.NewErrNotFound("flow-group-in-kv-store", log.Fields{"groupId": group.Desc.GroupId}, err)
@@ -149,16 +149,16 @@
 	if len(membersToBeAdded) > 0 {
 		groupToOlt.Command = openoltpb2.Group_ADD_MEMBERS
 		groupToOlt.Members = membersToBeAdded
-		//execute addMembers
+		// execute addMembers
 		errAdd = g.callGroupAddRemove(ctx, &groupToOlt)
 	}
 	if len(membersToBeRemoved) > 0 {
 		groupToOlt.Command = openoltpb2.Group_REMOVE_MEMBERS
 		groupToOlt.Members = membersToBeRemoved
-		//execute removeMembers
+		// execute removeMembers
 		errRemoved = g.callGroupAddRemove(ctx, &groupToOlt)
 	}
-	//save the modified group
+	// save the modified group
 	if errAdd == nil && errRemoved == nil {
 		if err := g.resourceMgr.AddFlowGroupToKVStore(ctx, group, false); err != nil {
 			return olterrors.NewErrPersistence("add", "flow-group", uint64(group.Desc.GroupId), log.Fields{"group": group}, err)
@@ -252,7 +252,7 @@
 	var actionCmd openoltpb2.ActionCmd
 	var action openoltpb2.Action
 	action.Cmd = &actionCmd
-	//pop outer vlan
+	// pop outer vlan
 	action.Cmd.RemoveOuterTag = true
 	return &action
 }
@@ -261,7 +261,7 @@
 func (g *OpenOltGroupMgr) callGroupAddRemove(ctx context.Context, group *openoltpb2.Group) error {
 	if err := g.performGroupOperation(ctx, group); err != nil {
 		st, _ := status.FromError(err)
-		//ignore already exists error code
+		// ignore already exists error code
 		if st.Code() != codes.AlreadyExists {
 			return olterrors.NewErrGroupOp("groupAddRemove", group.GroupId, log.Fields{"status": st}, err)
 		}
@@ -346,7 +346,7 @@
 			GemPortId:     groupInfo.gemPortID,
 			Priority:      groupInfo.servicePriority,
 		}
-		//add member to the group
+		// add member to the group
 		return &member
 	}
 	logger.Warnf(ctx, "bucket-skipped-since-interface-2-gem-mapping-cannot-be-found", log.Fields{"ofBucket": ofBucket})
diff --git a/internal/pkg/core/openolt_test.go b/internal/pkg/core/openolt_test.go
index 4b592ec..b2bcfb4 100644
--- a/internal/pkg/core/openolt_test.go
+++ b/internal/pkg/core/openolt_test.go
@@ -230,7 +230,7 @@
 		{"delete_device-1", &fields{}, args{oo1, mockDevice()},
 			olterrors.NewErrNotFound("device-handler", log.Fields{"device-id": "olt"}, nil)},
 		{"delete_device-2", &fields{}, args{oo2, mockDevice()}, nil},
-		{"delete_device-3", &fields{}, args{oo3, mockDevice()}, nil},
+		{"delete_device-3", &fields{}, args{oo3, mockDevice()}, errors.New("reboot failed")},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -704,7 +704,6 @@
 			if _, err := oo.UpdatePmConfig(context.Background(), &ca.PmConfigsInfo{DeviceId: tt.args.device.Id, PmConfigs: tt.args.pmConfigs}); !reflect.DeepEqual(err, tt.wantErr) {
 				t.Errorf("Update_pm_config() error = %v, wantErr %v", err, tt.wantErr)
 			}
-
 		})
 	}
 }
diff --git a/internal/pkg/core/statsmanager.go b/internal/pkg/core/statsmanager.go
old mode 100755
new mode 100644
index c9e15eb..1f9d7f9
--- a/internal/pkg/core/statsmanager.go
+++ b/internal/pkg/core/statsmanager.go
@@ -35,62 +35,62 @@
 )
 
 const (
-	//NNIStats statType constant
+	// NNIStats statType constant
 	NNIStats = "NNIStats"
-	//PONStats statType constant
+	// PONStats statType constant
 	PONStats = "PONStats"
-	//ONUStats statType constant
+	// ONUStats statType constant
 	ONUStats = "ONUStats"
-	//GEMStats statType constant
+	// GEMStats statType constant
 	GEMStats = "GEMStats"
 
-	//RxBytes constant
+	// RxBytes constant
 	RxBytes = "RxBytes"
-	//RxPackets constant
+	// RxPackets constant
 	RxPackets = "RxPackets"
-	//TxBytes constant
+	// TxBytes constant
 	TxBytes = "TxBytes"
-	//TxPackets constant
+	// TxPackets constant
 	TxPackets = "TxPackets"
-	//FecCodewords constant
+	// FecCodewords constant
 	FecCodewords = "FecCodewords"
-	//BipUnits constant
+	// BipUnits constant
 	BipUnits = "BipUnits"
-	//BipErrors constant
+	// BipErrors constant
 	BipErrors = "BipErrors"
-	//RxPloamsNonIdle constant
+	// RxPloamsNonIdle constant
 	RxPloamsNonIdle = "RxPloamsNonIdle"
-	//RxPloamsError constant
+	// RxPloamsError constant
 	RxPloamsError = "RxPloamsError"
-	//RxOmci constant
+	// RxOmci constant
 	RxOmci = "RxOmci"
-	//RxOmciPacketsCrcError constant
+	// RxOmciPacketsCrcError constant
 	RxOmciPacketsCrcError = "RxOmciPacketsCrcError"
-	//PositiveDrift constant
+	// PositiveDrift constant
 	PositiveDrift = "PositiveDrift"
-	//NegativeDrift constant
+	// NegativeDrift constant
 	NegativeDrift = "NegativeDrift"
-	//DelimiterMissDetection constant
+	// DelimiterMissDetection constant
 	DelimiterMissDetection = "DelimiterMissDetection"
-	//FecCorrectedSymbols constant
+	// FecCorrectedSymbols constant
 	FecCorrectedSymbols = "FecCorrectedSymbols"
-	//FecCodewordsCorrected constant
+	// FecCodewordsCorrected constant
 	FecCodewordsCorrected = "FecCodewordsCorrected"
-	//fecCodewordsUncorrectable constant
+	// fecCodewordsUncorrectable constant
 	fecCodewordsUncorrectable = "fec_codewords_uncorrectable"
-	//FecCorrectedUnits constant
+	// FecCorrectedUnits constant
 	FecCorrectedUnits = "FecCorrectedUnits"
-	//XGEMKeyErrors constant
+	// XGEMKeyErrors constant
 	XGEMKeyErrors = "XGEMKeyErrors"
-	//XGEMLoss constant
+	// XGEMLoss constant
 	XGEMLoss = "XGEMLOSS"
-	//BerReported constant
+	// BerReported constant
 	BerReported = "BerReported"
-	//LcdgErrors constant
+	// LcdgErrors constant
 	LcdgErrors = "LcdgErrors"
-	//RdiErrors constant
+	// RdiErrors constant
 	RdiErrors = "RdiErrors"
-	//Timestamp constant
+	// Timestamp constant
 	Timestamp = "Timestamp"
 )
 
@@ -109,29 +109,12 @@
 
 // PonPort representation
 type PonPort struct {
-	/*
-	   This is a highly reduced version taken from the adtran pon_port.
-	   TODO: Extend for use in the openolt adapter set.
-	*/
-	/*    MAX_ONUS_SUPPORTED = 256
-	      DEFAULT_ENABLED = False
-	      MAX_DEPLOYMENT_RANGE = 25000  # Meters (OLT-PB maximum)
-
-	      _MCAST_ONU_ID = 253
-	      _MCAST_ALLOC_BASE = 0x500
-
-	      _SUPPORTED_ACTIVATION_METHODS = ['autodiscovery']  # , 'autoactivate']
-	      _SUPPORTED_AUTHENTICATION_METHODS = ['serial-number']
-	*/
-	PONID    uint32
-	DeviceID string
-	IntfID   uint32
-	PortNum  uint32
-	PortID   uint32
-	Label    string
 	ONUs     map[uint32]interface{}
 	ONUsByID map[uint32]interface{}
 
+	DeviceID string
+	Label    string
+
 	RxBytes        uint64
 	RxPackets      uint64
 	RxUcastPackets uint64
@@ -146,11 +129,28 @@
 	TxErrorPackets uint64
 	RxCrcErrors    uint64
 	BipErrors      uint64
+	/*
+	   This is a highly reduced version taken from the adtran pon_port.
+	   TODO: Extend for use in the openolt adapter set.
+	*/
+	/*    MAX_ONUS_SUPPORTED = 256
+	      DEFAULT_ENABLED = False
+	      MAX_DEPLOYMENT_RANGE = 25000  # Meters (OLT-PB maximum)
+
+	      _MCAST_ONU_ID = 253
+	      _MCAST_ALLOC_BASE = 0x500
+
+	      _SUPPORTED_ACTIVATION_METHODS = ['autodiscovery']  # , 'autoactivate']
+	      _SUPPORTED_AUTHENTICATION_METHODS = ['serial-number']
+	*/
+	PONID   uint32
+	IntfID  uint32
+	PortNum uint32
+	PortID  uint32
 }
 
 // NewPONPort returns a new instance of PonPort initialized with given PONID, DeviceID, IntfID and PortNum
 func NewPONPort(PONID uint32, DeviceID string, IntfID uint32, PortNum uint32) *PonPort {
-
 	var PON PonPort
 
 	PON.PONID = PONID
@@ -202,16 +202,7 @@
 
 // NniPort representation
 type NniPort struct {
-	/*
-	   Northbound network port, often Ethernet-based
-
-	   This is a highly reduced version taken from the adtran nni_port code set
-	   TODO:   add functions to allow for port specific values and operations
-	*/
-	PortNum     uint32
-	Name        string
-	LogicalPort uint32
-	IntfID      uint32
+	Name string
 
 	RxBytes        uint64
 	RxPackets      uint64
@@ -227,11 +218,19 @@
 	TxErrorPackets uint64
 	RxCrcErrors    uint64
 	BipErrors      uint64
+	/*
+	   Northbound network port, often Ethernet-based
+
+	   This is a highly reduced version taken from the adtran nni_port code set
+	   TODO:   add functions to allow for port specific values and operations
+	*/
+	PortNum     uint32
+	LogicalPort uint32
+	IntfID      uint32
 }
 
 // NewNniPort returns a new instance of NniPort initialized with the given PortNum and IntfID
 func NewNniPort(PortNum uint32, IntfID uint32) *NniPort {
-
 	var NNI NniPort
 
 	NNI.PortNum = PortNum
@@ -266,18 +265,17 @@
 
 // OpenOltStatisticsMgr structure
 type OpenOltStatisticsMgr struct {
-	Device         *DeviceHandler
-	NorthBoundPort map[uint32]*NniPort
-	SouthBoundPort map[uint32]*PonPort
+	Device          *DeviceHandler
+	NorthBoundPort  map[uint32]*NniPort
+	SouthBoundPort  map[uint32]*PonPort
+	statIndListners map[StatType]*list.List
 	// TODO  PMMetrics Metrics
-	//statIndListners is the list of requests to be notified when port and flow stats indication is received
+	// statIndListners is the list of requests to be notified when port and flow stats indication is received
 	statIndListnerMu sync.Mutex
-	statIndListners  map[StatType]*list.List
 }
 
 // NewOpenOltStatsMgr returns a new instance of the OpenOltStatisticsMgr
 func NewOpenOltStatsMgr(ctx context.Context, Dev *DeviceHandler) *OpenOltStatisticsMgr {
-
 	var StatMgr OpenOltStatisticsMgr
 
 	StatMgr.Device = Dev
@@ -347,8 +345,8 @@
 	   :return:
 	*/
 
-	//This builds a port object which is added to the
-	//appropriate northbound or southbound values
+	// This builds a port object which is added to the
+	// appropriate northbound or southbound values
 	if IntfType == "nni" {
 		IntfID := plt.IntfIDToPortNo(PortNum, voltha.Port_ETHERNET_NNI)
 		nniID := plt.PortNoToIntfID(IntfID, voltha.Port_ETHERNET_NNI)
@@ -375,7 +373,6 @@
 
 // collectNNIMetrics will collect the nni port metrics
 func (StatMgr *OpenOltStatisticsMgr) collectNNIMetrics(nniID uint32) map[string]float32 {
-
 	nnival := make(map[string]float32)
 	mutex.Lock()
 	cm := StatMgr.Device.portStats.NorthBoundPort[nniID]
@@ -416,7 +413,6 @@
 
 // collectPONMetrics will collect the pon port metrics
 func (StatMgr *OpenOltStatisticsMgr) collectPONMetrics(pID uint32) map[string]float32 {
-
 	ponval := make(map[string]float32)
 	mutex.Lock()
 	cm := StatMgr.Device.portStats.SouthBoundPort[pID]
@@ -520,7 +516,6 @@
 	if stats, err = StatMgr.Device.Client.GetOnuStatistics(context.Background(), onu); err == nil {
 		statValue := StatMgr.convertONUStats(stats)
 		return statValue
-
 	}
 	logger.Errorw(ctx, "error-while-getting-onu-stats-for-onu", log.Fields{"IntfID": intfID, "OnuID": onuID, "err": err})
 	return nil
@@ -620,8 +615,8 @@
 func (StatMgr *OpenOltStatisticsMgr) PortStatisticsIndication(ctx context.Context, PortStats *openolt.PortStatistics, NumPonPorts uint32) {
 	StatMgr.PortsStatisticsKpis(ctx, PortStats, NumPonPorts)
 	logger.Debugw(ctx, "received-port-stats-indication", log.Fields{"port-stats": PortStats})
-	//Indicate that PortStatisticsIndication is handled
-	//PortStats.IntfId is actually the port number
+	// Indicate that PortStatisticsIndication is handled
+	// PortStats.IntfId is actually the port number
 	StatMgr.processStatIndication(ctx, portStatsType, PortStats.IntfId)
 	// TODO send stats to core topic to the voltha kafka or a different kafka ?
 }
@@ -629,19 +624,18 @@
 // FlowStatisticsIndication to be implemented
 func FlowStatisticsIndication(ctx context.Context, self, FlowStats *openolt.FlowStatistics) {
 	logger.Debugw(ctx, "flow-stats-collected", log.Fields{"flow-stats": FlowStats})
-	//TODO send to kafka ?
+	// TODO send to kafka ?
 }
 
 // PortsStatisticsKpis map the port stats values into a dictionary, creates the kpiEvent and then publish to Kafka
 func (StatMgr *OpenOltStatisticsMgr) PortsStatisticsKpis(ctx context.Context, PortStats *openolt.PortStatistics, NumPonPorts uint32) {
-
 	/*map the port stats values into a dictionary
 	  Create a kpoEvent and publish to Kafka
 
 	  :param port_stats:
 	  :return:
 	*/
-	//var err error
+	// var err error
 	IntfID := PortStats.IntfId
 
 	if (plt.IntfIDToPortNo(1, voltha.Port_ETHERNET_NNI) < IntfID) &&
@@ -653,7 +647,6 @@
 		*/
 		return
 	} else if plt.IntfIDToPortNo(0, voltha.Port_ETHERNET_NNI) == IntfID {
-
 		var portNNIStat NniPort
 		portNNIStat.IntfID = IntfID
 		portNNIStat.PortNum = uint32(0)
@@ -673,7 +666,6 @@
 		logger.Debugw(ctx, "received-nni-stats", log.Fields{"nni-stats": StatMgr.NorthBoundPort})
 	}
 	for i := uint32(0); i < NumPonPorts; i++ {
-
 		if plt.IntfIDToPortNo(i, voltha.Port_PON_OLT) == IntfID {
 			var portPonStat PonPort
 			portPonStat.IntfID = IntfID
@@ -695,7 +687,6 @@
 			logger.Debugw(ctx, "received-pon-stats-for-port", log.Fields{"port-pon-stats": portPonStat})
 		}
 	}
-
 	/*
 	   Based upon the intf_id map to an nni port or a pon port
 	   the intf_id is the key to the north or south bound collections
@@ -705,7 +696,7 @@
 
 	   For prefixing the rule is currently to use the port number and not the intf_id
 	*/
-	//FIXME : Just use first NNI for now
+	// FIXME : Just use first NNI for now
 	/* TODO should the data be marshaled before sending it ?
 	   if IntfID == IntfIdToPortNo(0, voltha.Port_ETHERNET_NNI) {
 	       //NNI port (just the first one)
@@ -718,11 +709,9 @@
 	       logger.Error(ctx, "Error publishing statistics data")
 	   }
 	*/
-
 }
 
 func (StatMgr *OpenOltStatisticsMgr) updateGetOltPortCountersResponse(ctx context.Context, singleValResp *extension.SingleGetValueResponse, stats map[string]float32) {
-
 	metrics := singleValResp.GetResponse().GetPortCoutners()
 	metrics.TxBytes = uint64(stats["TxBytes"])
 	metrics.RxBytes = uint64(stats["RxBytes"])
@@ -753,7 +742,6 @@
 	StatMgr.statIndListnerMu.Lock()
 	StatMgr.statIndListners[t].PushBack(statInd)
 	StatMgr.statIndListnerMu.Unlock()
-
 }
 
 // DeRegisterFromStatIndication removes the previously registered channel ch for type t of statistics
@@ -791,16 +779,13 @@
 		// message sent
 		statInd.chn <- true
 		deRegList = append(deRegList, e)
-
 	}
 	for _, e := range deRegList {
 		StatMgr.statIndListners[t].Remove(e)
 	}
-
 }
 
 func (StatMgr *OpenOltStatisticsMgr) updateGetOnuPonCountersResponse(ctx context.Context, singleValResp *extension.SingleGetValueResponse, stats map[string]float32) {
-
 	metrics := singleValResp.GetResponse().GetOnuPonCounters()
 	metrics.IsIntfId = &extension.GetOnuCountersResponse_IntfId{
 		IntfId: uint32(stats[IntfID]),
diff --git a/internal/pkg/core/statsmanager_test.go b/internal/pkg/core/statsmanager_test.go
index 5e60af9..1cec548 100644
--- a/internal/pkg/core/statsmanager_test.go
+++ b/internal/pkg/core/statsmanager_test.go
@@ -56,7 +56,6 @@
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-
 			StatMgr.PortStatisticsIndication(context.Background(), tt.args.PortStats, 16)
 		})
 	}
diff --git a/internal/pkg/olterrors/olterrors.go b/internal/pkg/olterrors/olterrors.go
index 9490427..869f006 100644
--- a/internal/pkg/olterrors/olterrors.go
+++ b/internal/pkg/olterrors/olterrors.go
@@ -64,9 +64,9 @@
 // ErrAdapter represents a basic adapter error that combines an name, field set
 // and wrapped error
 type ErrAdapter struct {
-	name    string
-	fields  log.Fields
 	wrapped error
+	fields  log.Fields
+	name    string
 }
 
 // NewErrAdapter constructs a new error with the given values
diff --git a/internal/pkg/resourcemanager/resourcemanager.go b/internal/pkg/resourcemanager/resourcemanager.go
old mode 100755
new mode 100644
index b8053f4..bc0524d
--- a/internal/pkg/resourcemanager/resourcemanager.go
+++ b/internal/pkg/resourcemanager/resourcemanager.go
@@ -43,7 +43,7 @@
 	BasePathKvStore = "%s/openolt/{%s}"
 	// tpIDPathSuffix - <(pon_id, onu_id, uni_id)>/tp_id
 	tpIDPathSuffix = "{%d,%d,%d}/tp_id"
-	//MeterIDPathSuffix - <(pon_id, onu_id, uni_id)>/<tp_id>/meter_id/<direction>
+	// MeterIDPathSuffix - <(pon_id, onu_id, uni_id)>/<tp_id>/meter_id/<direction>
 	MeterIDPathSuffix = "{%d,%d,%d}/{%d}/meter_id/{%s}"
 
 	// OnuPacketInPathPrefix - path prefix where ONU packet-in vlanID/PCP is stored
@@ -53,18 +53,18 @@
 	//format: onu_packetin/{<intfid>,<onuid>,<logicalport>}/{<vlanId>,<priority>}
 	OnuPacketInPath = OnuPacketInPathPrefix + "/{%d,%d}"
 
-	//FlowIDsForGemPathPrefix format: flowids_for_gem/<intfid>
+	// FlowIDsForGemPathPrefix format: flowids_for_gem/<intfid>
 	FlowIDsForGemPathPrefix = "flowids_per_gem/{%d}"
-	//FlowIDsForGem flowids_for_gem/<intfid>/<gemport-id>
+	// FlowIDsForGem flowids_for_gem/<intfid>/<gemport-id>
 	FlowIDsForGem = FlowIDsForGemPathPrefix + "/{%d}"
 
-	//McastQueuesForIntf multicast queues for pon interfaces
+	// McastQueuesForIntf multicast queues for pon interfaces
 	McastQueuesForIntf = "mcast_qs_for_int"
-	//FlowGroup flow_groups/<flow_group_id>
+	// FlowGroup flow_groups/<flow_group_id>
 	// A group is stored under this path on the KV store after it has been installed to the device.
 	// It should also be deleted after it has been removed from the device accordingly.
 	FlowGroup = "flow_groups/{%d}"
-	//FlowGroupCached flow_groups_cached/<flow_group_id>
+	// FlowGroupCached flow_groups_cached/<flow_group_id>
 	// When a group add request received, we create the group without setting any members to it since we cannot
 	// set any members to a group until it is associated with a multicast flow. It is a BAL limitation.
 	// When the related multicast flow has been created we perform set members operation for the group.
@@ -73,13 +73,13 @@
 	// we remove the group from the cached group store.
 	FlowGroupCached = "flow_groups_cached/{%d}"
 
-	//FlowIDPath - Path on the KV store for storing list of Flow IDs for a given subscriber
+	// FlowIDPath - Path on the KV store for storing list of Flow IDs for a given subscriber
 	//Format: BasePathKvStore/<(pon_intf_id, onu_id, uni_id)>/flow_ids
 	FlowIDPath = "{%s}/flow_ids"
 
-	//OnuGemInfoPathPathPrefix format: onu_gem_info/<intfid>
+	// OnuGemInfoPathPathPrefix format: onu_gem_info/<intfid>
 	OnuGemInfoPathPathPrefix = "onu_gem_info/{%d}"
-	//OnuGemInfoPath is path on the kvstore to store onugem info map
+	// OnuGemInfoPath is path on the kvstore to store onugem info map
 	//format: onu_gem_info/<intfid>/<onu_id>
 	OnuGemInfoPath = OnuGemInfoPathPathPrefix + "/{%d}"
 
@@ -95,11 +95,11 @@
 
 // OnuGemInfo holds onu information along with gem port list and uni port list
 type OnuGemInfo struct {
-	OnuID        uint32
 	SerialNumber string
-	IntfID       uint32
 	GemPorts     []uint32
 	UniPorts     []uint32
+	OnuID        uint32
+	IntfID       uint32
 }
 
 // PacketInInfoKey is the key for packet in gemport
@@ -113,8 +113,8 @@
 
 // GroupInfo holds group information
 type GroupInfo struct {
-	GroupID  uint32
 	OutPorts []uint32
+	GroupID  uint32
 }
 
 // MeterInfo store meter information at path <(pon_id, onu_id, uni_id)>/<tp_id>/meter_id/<direction>
@@ -125,47 +125,54 @@
 
 // OpenOltResourceMgr holds resource related information as provided below for each field
 type OpenOltResourceMgr struct {
-	PonIntfID  uint32
-	DeviceID   string      // OLT device id
-	Address    string      // Host and port of the kv store to connect to
-	Args       string      // args
-	KVStore    *db.Backend // backend kv store connection handle
-	DeviceType string
-	DevInfo    *openolt.DeviceInfo // device information
+	TechprofileRef tp.TechProfileIf
+	KVStore        *db.Backend         // backend kv store connection handle
+	DevInfo        *openolt.DeviceInfo // device information
 	// array of pon resource managers per interface technology
 	PonRsrMgr *ponrmgr.PONResourceManager
 
 	// Local maps used for write-through-cache - start
-	allocIDsForOnu     map[string][]uint32
+	allocIDsForOnu map[string][]uint32
+
+	gemPortIDsForOnu map[string][]uint32
+
+	techProfileIDsForOnu map[string][]uint32
+
+	meterInfoForOnu map[string]*MeterInfo
+
+	onuGemInfo map[string]*OnuGemInfo
+
+	gemPortForPacketInInfo map[string]uint32
+
+	flowIDsForGem map[uint32][]uint64
+
+	mcastQueueForIntf map[uint32][]uint32
+
+	groupInfo          map[string]*GroupInfo
+	DeviceID           string // OLT device id
+	Address            string // Host and port of the kv store to connect to
+	Args               string // args
+	DeviceType         string
 	allocIDsForOnuLock sync.RWMutex
 
-	gemPortIDsForOnu     map[string][]uint32
 	gemPortIDsForOnuLock sync.RWMutex
 
-	techProfileIDsForOnu     map[string][]uint32
 	techProfileIDsForOnuLock sync.RWMutex
 
-	meterInfoForOnu     map[string]*MeterInfo
 	meterInfoForOnuLock sync.RWMutex
 
-	onuGemInfo     map[string]*OnuGemInfo
 	onuGemInfoLock sync.RWMutex
 
-	gemPortForPacketInInfo     map[string]uint32
 	gemPortForPacketInInfoLock sync.RWMutex
 
-	flowIDsForGem     map[uint32][]uint64
 	flowIDsForGemLock sync.RWMutex
 
-	mcastQueueForIntf                  map[uint32][]uint32
-	mcastQueueForIntfLock              sync.RWMutex
-	mcastQueueForIntfLoadedFromKvStore bool
-
-	groupInfo     map[string]*GroupInfo
-	groupInfoLock sync.RWMutex
+	mcastQueueForIntfLock sync.RWMutex
+	groupInfoLock         sync.RWMutex
 	// Local maps used for write-through-cache - end
 
-	TechprofileRef tp.TechProfileIf
+	PonIntfID                          uint32
+	mcastQueueForIntfLoadedFromKvStore bool
 }
 
 func newKVClient(ctx context.Context, storeType string, address string, timeout time.Duration) (kvstore.Client, error) {
@@ -281,8 +288,7 @@
 
 // LoadLocalCacheFromKVStore loads local maps
 func (rsrcMgr *OpenOltResourceMgr) LoadLocalCacheFromKVStore(ctx context.Context) error {
-
-	//List all the keys for OnuGemInfo
+	// List all the keys for OnuGemInfo
 	prefixPath := fmt.Sprintf(OnuGemInfoPathPathPrefix, rsrcMgr.PonIntfID)
 	keys, err := rsrcMgr.KVStore.List(ctx, prefixPath)
 	logger.Debug(ctx, "load-local-cache-from-KV-store-started")
@@ -319,7 +325,6 @@
 		rsrcMgr.onuGemInfoLock.Lock()
 		rsrcMgr.onuGemInfo[path] = &onugem
 		rsrcMgr.onuGemInfoLock.Unlock()
-
 	}
 	logger.Debug(ctx, "load-local-cache-from-KV-store-finished")
 	return nil
@@ -370,7 +375,6 @@
 		GEMPortIDStart, GEMPortIDEnd, GEMPortIDShared,
 		flowIDDummyStart, flowIDDummyEnd, FlowIDShared, uniIDDummyStart, uniIDDummyEnd,
 		devInfo.PonPorts, techRange.IntfIds)
-
 }
 
 // Delete clears used resources for the particular olt device being deleted
@@ -402,7 +406,6 @@
 
 // UpdateAllocIdsForOnu updates alloc ids in kv store for a given pon interface id, onu id and uni id
 func (rsrcMgr *OpenOltResourceMgr) UpdateAllocIdsForOnu(ctx context.Context, onuID uint32, uniID uint32, allocIDs []uint32) error {
-
 	intfOnuIDuniID := fmt.Sprintf("%d,%d,%d", rsrcMgr.PonIntfID, onuID, uniID)
 
 	// Note: in case the write to DB fails there could be inconsistent data between cache and db.
@@ -420,9 +423,7 @@
 }
 
 // GetCurrentGEMPortIDsForOnu returns gem ports for given pon interface , onu id and uni id
-func (rsrcMgr *OpenOltResourceMgr) GetCurrentGEMPortIDsForOnu(ctx context.Context, onuID uint32,
-	uniID uint32) []uint32 {
-
+func (rsrcMgr *OpenOltResourceMgr) GetCurrentGEMPortIDsForOnu(ctx context.Context, onuID uint32, uniID uint32) []uint32 {
 	intfOnuIDuniID := fmt.Sprintf("%d,%d,%d", rsrcMgr.PonIntfID, onuID, uniID)
 
 	// fetch from cache
@@ -445,7 +446,6 @@
 
 // GetCurrentAllocIDsForOnu returns alloc ids for given pon interface and onu id
 func (rsrcMgr *OpenOltResourceMgr) GetCurrentAllocIDsForOnu(ctx context.Context, onuID uint32, uniID uint32) []uint32 {
-
 	intfOnuIDuniID := fmt.Sprintf("%d,%d,%d", rsrcMgr.PonIntfID, onuID, uniID)
 	// fetch from cache
 	rsrcMgr.allocIDsForOnuLock.RLock()
@@ -497,8 +497,7 @@
 }
 
 // UpdateGEMPortIDsForOnu updates gemport ids on to the kv store for a given pon port, onu id and uni id
-func (rsrcMgr *OpenOltResourceMgr) UpdateGEMPortIDsForOnu(ctx context.Context, onuID uint32,
-	uniID uint32, gemIDs []uint32) error {
+func (rsrcMgr *OpenOltResourceMgr) UpdateGEMPortIDsForOnu(ctx context.Context, onuID uint32, uniID uint32, gemIDs []uint32) error {
 	intfOnuIDuniID := fmt.Sprintf("%d,%d,%d", rsrcMgr.PonIntfID, onuID, uniID)
 
 	if err := rsrcMgr.PonRsrMgr.UpdateGEMPortIDsForOnu(ctx, intfOnuIDuniID, gemIDs); err != nil {
@@ -536,9 +535,7 @@
 // the ONU so as not cause resource corruption since there are no mutexes used here.
 // Setting freeFromResourcePool to false will not clear it from the resource pool but only
 // clear it for the given pon/onu/uni
-func (rsrcMgr *OpenOltResourceMgr) FreeAllocID(ctx context.Context, onuID uint32,
-	uniID uint32, allocID uint32, freeFromResourcePool bool) {
-
+func (rsrcMgr *OpenOltResourceMgr) FreeAllocID(ctx context.Context, onuID uint32, uniID uint32, allocID uint32, freeFromResourcePool bool) {
 	rsrcMgr.RemoveAllocIDForOnu(ctx, onuID, uniID, allocID)
 	if freeFromResourcePool {
 		allocIDs := make([]uint32, 0)
@@ -574,7 +571,6 @@
 
 // FreePONResourcesForONU make the pon resources free for a given pon interface and onu id
 func (rsrcMgr *OpenOltResourceMgr) FreePONResourcesForONU(ctx context.Context, onuID uint32, uniID uint32) {
-
 	intfOnuIDuniID := fmt.Sprintf("%d,%d,%d", rsrcMgr.PonIntfID, onuID, uniID)
 
 	if rsrcMgr.PonRsrMgr == nil || rsrcMgr.TechprofileRef == nil {
@@ -594,7 +590,7 @@
 		})
 	}
 
-	//update cache
+	// update cache
 	rsrcMgr.allocIDsForOnuLock.Lock()
 	delete(rsrcMgr.allocIDsForOnu, intfOnuIDuniID)
 	rsrcMgr.allocIDsForOnuLock.Unlock()
@@ -697,7 +693,6 @@
 	rsrcMgr.techProfileIDsForOnuLock.Unlock()
 
 	return tpIDs
-
 }
 
 // RemoveTechProfileIDsForOnu deletes all tech profile ids from the KV-Store for the given onu based on the path
@@ -841,7 +836,6 @@
 		}
 	} else {
 		logger.Errorf(ctx, "Failed to get Meter config from kvstore for path %s", Path)
-
 	}
 	// update cache
 	rsrcMgr.meterInfoForOnuLock.Lock()
@@ -1002,7 +996,6 @@
 
 // AddNewOnuGemInfoToCacheAndKvStore function adds a new  onu gem info to cache and kvstore
 func (rsrcMgr *OpenOltResourceMgr) AddNewOnuGemInfoToCacheAndKvStore(ctx context.Context, onuID uint32, serialNum string) error {
-
 	Path := fmt.Sprintf(OnuGemInfoPath, rsrcMgr.PonIntfID, onuID)
 
 	rsrcMgr.onuGemInfoLock.Lock()
@@ -1032,7 +1025,6 @@
 
 // AddOnuGemInfo adds onu info on to the kvstore per interface
 func (rsrcMgr *OpenOltResourceMgr) AddOnuGemInfo(ctx context.Context, onuID uint32, onuGem OnuGemInfo) error {
-
 	var Value []byte
 	var err error
 	Path := fmt.Sprintf(OnuGemInfoPath, rsrcMgr.PonIntfID, onuID)
@@ -1049,7 +1041,7 @@
 	}
 	logger.Debugw(ctx, "added onu gem info to store", log.Fields{"onuGemInfo": onuGem, "Path": Path})
 
-	//update cache
+	// update cache
 	rsrcMgr.onuGemInfoLock.Lock()
 	rsrcMgr.onuGemInfo[Path] = &onuGem
 	rsrcMgr.onuGemInfoLock.Unlock()
@@ -1065,7 +1057,7 @@
 		return err
 	}
 
-	//update cache
+	// update cache
 	rsrcMgr.onuGemInfoLock.Lock()
 	logger.Debugw(ctx, "removing onu gem info", log.Fields{"onuGemInfo": rsrcMgr.onuGemInfo[path]})
 	delete(rsrcMgr.onuGemInfo, path)
@@ -1075,7 +1067,6 @@
 
 // DeleteAllOnuGemInfoForIntf deletes all the all onu gem info on the given pon interface
 func (rsrcMgr *OpenOltResourceMgr) DeleteAllOnuGemInfoForIntf(ctx context.Context) error {
-
 	path := fmt.Sprintf(OnuGemInfoPathPathPrefix, rsrcMgr.PonIntfID)
 
 	logger.Debugw(ctx, "delete-all-onu-gem-info-for-pon-intf", log.Fields{"intfID": rsrcMgr.PonIntfID})
@@ -1093,7 +1084,6 @@
 
 // AddUniPortToOnuInfo adds uni port to the onuinfo kvstore. check if the uni is already present if not update the kv store.
 func (rsrcMgr *OpenOltResourceMgr) AddUniPortToOnuInfo(ctx context.Context, onuID uint32, portNo uint32) {
-
 	onugem, err := rsrcMgr.GetOnuGemInfo(ctx, onuID)
 	if err != nil || onugem == nil || onugem.SerialNumber == "" {
 		logger.Warnf(ctx, "failed to get onuifo for intfid %d", rsrcMgr.PonIntfID)
@@ -1121,7 +1111,6 @@
 
 // UpdateGemPortForPktIn updates gemport for pkt in path to kvstore, path being intfid, onuid, portno, vlan id, priority bit
 func (rsrcMgr *OpenOltResourceMgr) UpdateGemPortForPktIn(ctx context.Context, pktIn PacketInInfoKey, gemPort uint32) {
-
 	path := fmt.Sprintf(OnuPacketInPath, pktIn.IntfID, pktIn.OnuID, pktIn.LogicalPort, pktIn.VlanID, pktIn.Priority)
 
 	Value, err := json.Marshal(gemPort)
@@ -1143,7 +1132,6 @@
 
 // GetGemPortFromOnuPktIn gets the gem port from onu pkt in path, path being intfid, onuid, portno, vlan id, priority bit
 func (rsrcMgr *OpenOltResourceMgr) GetGemPortFromOnuPktIn(ctx context.Context, packetInInfoKey PacketInInfoKey) (uint32, error) {
-
 	var Val []byte
 
 	path := fmt.Sprintf(OnuPacketInPath, packetInInfoKey.IntfID, packetInInfoKey.OnuID, packetInInfoKey.LogicalPort,
@@ -1198,7 +1186,7 @@
 		return err
 	}
 
-	//remove them one by one
+	// remove them one by one
 	for key := range value {
 		// Remove the PathPrefix from the path on KV key.
 		// gemPortForPacketInInfo cache uses OnuPacketInPath as the key
@@ -1434,7 +1422,7 @@
 	} else {
 		path = fmt.Sprintf(FlowGroup, groupEntry.Desc.GroupId)
 	}
-	//build group info object
+	// build group info object
 	var outPorts []uint32
 	for _, ofBucket := range groupEntry.Desc.Buckets {
 		for _, ofAction := range ofBucket.Actions {
diff --git a/internal/pkg/resourcemanager/resourcemanager_test.go b/internal/pkg/resourcemanager/resourcemanager_test.go
index 9018d4d..c11d2f9 100644
--- a/internal/pkg/resourcemanager/resourcemanager_test.go
+++ b/internal/pkg/resourcemanager/resourcemanager_test.go
@@ -438,7 +438,6 @@
 }
 
 func TestOpenOltResourceMgr_DeleteAllFlowIDsForGemForIntf(t *testing.T) {
-
 	type args struct {
 		PONIntfID uint32
 	}
@@ -464,7 +463,6 @@
 }
 
 func TestOpenOltResourceMgr_DeleteAllOnuGemInfoForIntf(t *testing.T) {
-
 	type args struct {
 		PONIntfID uint32
 	}
@@ -490,7 +488,6 @@
 }
 
 func TestOpenOltResourceMgr_deleteGemPort(t *testing.T) {
-
 	type args struct {
 		intfID                uint32
 		onuID                 uint32
@@ -559,7 +556,6 @@
 }
 
 func TestOpenOltResourceMgr_AddNewOnuGemInfo(t *testing.T) {
-
 	type args struct {
 		PONIntfID uint32
 		OnuCount  uint32
@@ -578,17 +574,16 @@
 			ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 			defer cancel()
 			for j := 1; j <= int(tt.args.OnuCount); j++ {
-				go func(i uint32, j uint32) {
+				go func(i uint32) {
 					// TODO: actually verify success
 					_ = RsrcMgr.AddNewOnuGemInfoToCacheAndKvStore(ctx, i, fmt.Sprintf("onu-%d", i))
-				}(tt.args.PONIntfID, uint32(j))
+				}(tt.args.PONIntfID)
 			}
 		})
 	}
 }
 
 func TestOpenOltFlowMgr_addGemPortToOnuInfoMap(t *testing.T) {
-
 	type args struct {
 		intfID              uint32
 		onuID               uint32
@@ -731,7 +726,6 @@
 }
 
 func TestOpenOltResourceMgr_GetTechProfileIDForOnu(t *testing.T) {
-
 	type args struct {
 		IntfID uint32
 		OnuID  uint32
@@ -759,7 +753,6 @@
 }
 
 func TestOpenOltResourceMgr_RemoveMeterIDForOnu(t *testing.T) {
-
 	type args struct {
 		Direction string
 		IntfID    uint32
@@ -847,7 +840,6 @@
 }
 
 func TestOpenOltResourceMgr_UpdateGEMPortIDsForOnu(t *testing.T) {
-
 	type args struct {
 		ponPort     uint32
 		onuID       uint32
@@ -982,7 +974,6 @@
 				t.Errorf("newKVClient() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
-
 		})
 	}
 }
@@ -1057,11 +1048,11 @@
 		group  *ofp.OfpGroupEntry
 		cached bool
 	}
-	//create group 1
+	// create group 1
 	group1 := newGroup(1, []uint32{1})
-	//create group 2
+	// create group 2
 	group2 := newGroup(2, []uint32{2})
-	//define test set
+	// define test set
 	tests := []struct {
 		name   string
 		args   args
@@ -1070,7 +1061,7 @@
 		{"AddFlowGroupToKVStore-1", args{group1, true}, getResMgr()},
 		{"AddFlowGroupToKVStore-2", args{group2, false}, getResMgr()},
 	}
-	//execute tests
+	// execute tests
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			RsrcMgr := testResMgrObject(tt.fields)
@@ -1090,7 +1081,7 @@
 		groupID uint32
 		cached  bool
 	}
-	//define test set
+	// define test set
 	tests := []struct {
 		name   string
 		args   args
@@ -1099,7 +1090,7 @@
 		{"RemoveFlowGroupFromKVStore-1", args{1, true}, getResMgr()},
 		{"RemoveFlowGroupFromKVStore-2", args{2, false}, getResMgr()},
 	}
-	//execute tests
+	// execute tests
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			RsrcMgr := testResMgrObject(tt.fields)
@@ -1119,7 +1110,7 @@
 		groupID uint32
 		cached  bool
 	}
-	//define test set
+	// define test set
 	tests := []struct {
 		name   string
 		args   args
@@ -1129,7 +1120,7 @@
 		{"GetFlowGroupFromKVStore-2", args{2, false}, getResMgr()},
 		{"GetFlowGroupFromKVStore-3", args{1000, false}, getResMgr()},
 	}
-	//execute tests
+	// execute tests
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			RsrcMgr := testResMgrObject(tt.fields)
diff --git a/makefiles/docker/include.mk b/makefiles/docker/include.mk
index ad629c5..7d12d9f 100644
--- a/makefiles/docker/include.mk
+++ b/makefiles/docker/include.mk
@@ -17,7 +17,7 @@
 
 $(if $(DEBUG),$(warning ENTER))
 
-VOLTHA_TOOLS_VERSION ?= 2.4.0
+VOLTHA_TOOLS_VERSION ?= 3.1.1
 
 # ---------------------------
 # Macros: command refactoring
diff --git a/pkg/mocks/mockCoreClient.go b/pkg/mocks/mockCoreClient.go
index bbed76b..dca0e3b 100644
--- a/pkg/mocks/mockCoreClient.go
+++ b/pkg/mocks/mockCoreClient.go
@@ -179,7 +179,7 @@
 	if onuDevice != nil {
 		return onuDevice, nil
 	}
-	//return &voltha.Device{}, nil
+	// return &voltha.Device{}, nil
 	return nil, errors.New("device detection failed")
 }
 
diff --git a/pkg/mocks/mockKVClient.go b/pkg/mocks/mockKVClient.go
index b77498c..39aa35d 100644
--- a/pkg/mocks/mockKVClient.go
+++ b/pkg/mocks/mockKVClient.go
@@ -45,11 +45,11 @@
 	GemportIDs = "gemport_ids"
 	// AllocIDs to extract alloc_ids
 	AllocIDs = "alloc_ids"
-	//FlowGroup flow_groups/<flow_group_id>
+	// FlowGroup flow_groups/<flow_group_id>
 	FlowGroup = "flow_groups"
-	//FlowGroupCached flow_groups_cached/<flow_group_id>
+	// FlowGroupCached flow_groups_cached/<flow_group_id>
 	FlowGroupCached = "flow_groups_cached"
-	//OnuPacketIn to extract gem port from packet-in
+	// OnuPacketIn to extract gem port from packet-in
 	OnuPacketIn = "onu_packetin"
 	// OnuGemInfoPath has path on the kvstore to store OnuGemInfo info per PON interface
 	OnuGemInfoPath = "onu_gem_info"
@@ -61,17 +61,17 @@
 
 // OnuGemInfo holds onu information along with gem port list and uni port list
 type OnuGemInfo struct {
-	OnuID        uint32
 	SerialNumber string
-	IntfID       uint32
 	GemPorts     []uint32
 	UniPorts     []uint32
+	OnuID        uint32
+	IntfID       uint32
 }
 
 // GroupInfo holds group information
 type GroupInfo struct {
-	GroupID  uint32
 	OutPorts []uint32
+	GroupID  uint32
 }
 
 // List mock function implementation for KVClient
@@ -115,7 +115,6 @@
 			}
 
 			if strings.Contains(key, "meter_id/{1,1,1}/{downstream}") {
-
 				band1 := &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 1000, BurstSize: 5000}
 				band2 := &ofp.OfpMeterBandHeader{Type: ofp.OfpMeterBandType_OFPMBT_DROP, Rate: 2000, BurstSize: 5000}
 				bands := []*ofp.OfpMeterBandHeader{band1, band2}
@@ -180,16 +179,16 @@
 			return kvstore.NewKVPair(key, str, "mock", 3000, 1), nil
 		}
 
-		//Interface, GEM port path
+		// Interface, GEM port path
 		if strings.Contains(key, "0,255") {
-			//return onuID, uniID associated with the given interface and GEM port
+			// return onuID, uniID associated with the given interface and GEM port
 			data := []uint32{1, 0}
 			str, _ := json.Marshal(data)
 			return kvstore.NewKVPair(key, str, "mock", 3000, 1), nil
 		}
-		//Interface, GEM port path
+		// Interface, GEM port path
 		if strings.Contains(key, "0,257") {
-			//return onuID, uniID associated with the given interface and GEM port
+			// return onuID, uniID associated with the given interface and GEM port
 			data := []uint32{1, 0}
 			str, _ := json.Marshal(data)
 			return kvstore.NewKVPair(key, str, "mock", 3000, 1), nil
@@ -248,7 +247,7 @@
 
 // getPacketInGemPort returns the GEM port associated with the given key
 func getPacketInGemPort(key string) (*kvstore.KVPair, error) {
-	//parse interface, onu, uni, vlan, priority values
+	// parse interface, onu, uni, vlan, priority values
 	arr := getParamsFromPacketInKey(key)
 
 	if len(arr) < 5 {
@@ -271,7 +270,7 @@
 
 // getParamsFromPacketInKey parse packetIn key that is in the format of "onu_packetin/{1,1,1,1,2}"
 func getParamsFromPacketInKey(key string) []string {
-	//return intfID, onuID, uniID, vlanID, priority
+	// return intfID, onuID, uniID, vlanID, priority
 	firstIndex := strings.Index(key, "{")
 	lastIndex := strings.Index(key, "}")
 	if firstIndex == -1 && lastIndex == -1 {
diff --git a/pkg/mocks/mockOpenOltClient.go b/pkg/mocks/mockOpenOltClient.go
old mode 100755
new mode 100644
index eeae6c3..5c6ed55
--- a/pkg/mocks/mockOpenOltClient.go
+++ b/pkg/mocks/mockOpenOltClient.go
@@ -38,7 +38,7 @@
 
 // DisableOlt mocks the DisableOlt function of Openoltclient.
 func (ooc *MockOpenoltClient) DisableOlt(ctx context.Context, in *openolt.Empty, opts ...grpc.CallOption) (*openolt.Empty, error) {
-	//return &openolt.Empty{}, nil
+	// return &openolt.Empty{}, nil
 	if ooc.counter == 0 {
 		ooc.counter++
 		return &openolt.Empty{}, nil
@@ -206,12 +206,12 @@
 
 func (mock *mockOpenoltEnableIndicationClient) Recv() (*openolt.Indication, error) {
 	if mock.count == 0 {
-		mock.count = mock.count + 1
+		mock.count++
 		indi := &openolt.Indication{Data: &openolt.Indication_OltInd{OltInd: &openolt.OltIndication{OperState: "Down"}}}
 		return indi, nil
 	}
 	if mock.count == 1 {
-		mock.count = mock.count + 1
+		mock.count++
 		return nil, errors.New("error, while processing indication")
 	}
 
diff --git a/pkg/mocks/mockTechprofile.go b/pkg/mocks/mockTechprofile.go
index d0b9708..3972145 100644
--- a/pkg/mocks/mockTechprofile.go
+++ b/pkg/mocks/mockTechprofile.go
@@ -81,12 +81,10 @@
 		UpstreamGemPortAttributeList:   usGemPortAttributeList,
 		DownstreamGemPortAttributeList: dsGemPortAttributeList,
 	}, nil
-
 }
 
 // CreateTechProfileInstance to mock techprofile CreateTechProfileInstance method
 func (m MockTechProfile) CreateTechProfileInstance(ctx context.Context, techProfiletblID uint32, uniPortName string, intfID uint32) (interface{}, error) {
-
 	var usGemPortAttributeList []*tp_pb.GemPortAttributes
 	var dsGemPortAttributeList []*tp_pb.GemPortAttributes
 	if techProfiletblID == 64 {
@@ -151,13 +149,11 @@
 // GetprotoBufParamValue to mock techprofile GetprotoBufParamValue method
 func (m MockTechProfile) GetprotoBufParamValue(ctx context.Context, paramType string, paramKey string) int32 {
 	return 0
-
 }
 
 // GetUsScheduler to mock techprofile GetUsScheduler method
 func (m MockTechProfile) GetUsScheduler(tpInstance *tp_pb.TechProfileInstance) *tp_pb.SchedulerConfig {
 	return &tp_pb.SchedulerConfig{}
-
 }
 
 // GetDsScheduler to mock techprofile GetDsScheduler method
@@ -169,7 +165,6 @@
 func (m MockTechProfile) GetTrafficScheduler(tpInstance *tp_pb.TechProfileInstance, SchedCfg *tp_pb.SchedulerConfig,
 	ShapingCfg *tp_pb.TrafficShapingInfo) *tp_pb.TrafficScheduler {
 	return &tp_pb.TrafficScheduler{}
-
 }
 
 // GetTrafficQueues to mock techprofile GetTrafficQueues method
diff --git a/vendor/github.com/Shopify/sarama/go.mod b/vendor/github.com/Shopify/sarama/go.mod
deleted file mode 100644
index ccbd8e2..0000000
--- a/vendor/github.com/Shopify/sarama/go.mod
+++ /dev/null
@@ -1,28 +0,0 @@
-module github.com/Shopify/sarama
-
-go 1.13
-
-require (
-	github.com/Shopify/toxiproxy v2.1.4+incompatible
-	github.com/davecgh/go-spew v1.1.1
-	github.com/eapache/go-resiliency v1.2.0
-	github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21
-	github.com/eapache/queue v1.1.0
-	github.com/fortytw2/leaktest v1.3.0
-	github.com/frankban/quicktest v1.11.3 // indirect
-	github.com/jcmturner/gofork v1.0.0
-	github.com/jcmturner/gokrb5/v8 v8.4.2
-	github.com/klauspost/compress v1.12.2
-	github.com/kr/text v0.2.0 // indirect
-	github.com/pierrec/lz4 v2.6.0+incompatible
-	github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
-	github.com/stretchr/testify v1.7.0
-	github.com/xdg/scram v1.0.3
-	github.com/xdg/stringprep v1.0.3 // indirect
-	golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect
-	golang.org/x/net v0.0.0-20210614182718-04defd469f4e
-	golang.org/x/text v0.3.6 // indirect
-	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
-	gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
-	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
-)
diff --git a/vendor/github.com/Shopify/sarama/go.sum b/vendor/github.com/Shopify/sarama/go.sum
deleted file mode 100644
index a497760..0000000
--- a/vendor/github.com/Shopify/sarama/go.sum
+++ /dev/null
@@ -1,93 +0,0 @@
-github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=
-github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q=
-github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
-github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
-github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
-github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
-github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
-github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=
-github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
-github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
-github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
-github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
-github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
-github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
-github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
-github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
-github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
-github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
-github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=
-github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
-github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8=
-github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
-github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o=
-github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
-github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA=
-github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc=
-github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY=
-github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
-github.com/klauspost/compress v1.12.2 h1:2KCfW3I9M7nSc5wOqXAlW2v2U6v+w6cbjvbfp+OykW8=
-github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
-github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
-github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/pierrec/lz4 v2.6.0+incompatible h1:Ix9yFKn1nSPBLFl/yZknTp8TU5G4Ps0JDmguYK6iH1A=
-github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
-github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/xdg/scram v1.0.3 h1:nTadYh2Fs4BK2xdldEa2g5bbaZp0/+1nJMMPtPxS/to=
-github.com/xdg/scram v1.0.3/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
-github.com/xdg/stringprep v1.0.3 h1:cmL5Enob4W83ti/ZHuZLuKD/xqJfus4fVPwE+/BDm+4=
-github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI=
-golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210427231257-85d9c07bbe3a h1:njMmldwFTyDLqonHMagNXKBWptTBeDZOdblgaDsNEGQ=
-golang.org/x/net v0.0.0-20210427231257-85d9c07bbe3a/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
-golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
-golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/github.com/cenkalti/backoff/v3/go.mod b/vendor/github.com/cenkalti/backoff/v3/go.mod
deleted file mode 100644
index 479e62a..0000000
--- a/vendor/github.com/cenkalti/backoff/v3/go.mod
+++ /dev/null
@@ -1,3 +0,0 @@
-module github.com/cenkalti/backoff/v3
-
-go 1.12
diff --git a/vendor/github.com/cespare/xxhash/v2/go.mod b/vendor/github.com/cespare/xxhash/v2/go.mod
deleted file mode 100644
index 49f6760..0000000
--- a/vendor/github.com/cespare/xxhash/v2/go.mod
+++ /dev/null
@@ -1,3 +0,0 @@
-module github.com/cespare/xxhash/v2
-
-go 1.11
diff --git a/vendor/github.com/cespare/xxhash/v2/go.sum b/vendor/github.com/cespare/xxhash/v2/go.sum
deleted file mode 100644
index e69de29..0000000
--- a/vendor/github.com/cespare/xxhash/v2/go.sum
+++ /dev/null
diff --git a/vendor/github.com/go-redis/redis/v8/go.mod b/vendor/github.com/go-redis/redis/v8/go.mod
deleted file mode 100644
index 7be1b7f..0000000
--- a/vendor/github.com/go-redis/redis/v8/go.mod
+++ /dev/null
@@ -1,11 +0,0 @@
-module github.com/go-redis/redis/v8
-
-go 1.11
-
-require (
-	github.com/cespare/xxhash/v2 v2.1.1
-	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
-	github.com/onsi/ginkgo v1.14.2
-	github.com/onsi/gomega v1.10.3
-	go.opentelemetry.io/otel v0.13.0
-)
diff --git a/vendor/github.com/go-redis/redis/v8/go.sum b/vendor/github.com/go-redis/redis/v8/go.sum
deleted file mode 100644
index e1e8ab1..0000000
--- a/vendor/github.com/go-redis/redis/v8/go.sum
+++ /dev/null
@@ -1,82 +0,0 @@
-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
-github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
-github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M=
-github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA=
-github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-go.opentelemetry.io/otel v0.13.0 h1:2isEnyzjjJZq6r2EKMsFj4TxiQiexsM04AVhwbR/oBA=
-go.opentelemetry.io/otel v0.13.0/go.mod h1:dlSNewoRYikTkotEnxdmuBHgzT+k/idJSfDv/FxEnOY=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
-golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/github.com/golang/snappy/go.mod b/vendor/github.com/golang/snappy/go.mod
deleted file mode 100644
index f6406bb..0000000
--- a/vendor/github.com/golang/snappy/go.mod
+++ /dev/null
@@ -1 +0,0 @@
-module github.com/golang/snappy
diff --git a/vendor/github.com/google/uuid/go.mod b/vendor/github.com/google/uuid/go.mod
deleted file mode 100644
index fc84cd7..0000000
--- a/vendor/github.com/google/uuid/go.mod
+++ /dev/null
@@ -1 +0,0 @@
-module github.com/google/uuid
diff --git a/vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.mod b/vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.mod
deleted file mode 100644
index 7dc62e5..0000000
--- a/vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.mod
+++ /dev/null
@@ -1,22 +0,0 @@
-module github.com/grpc-ecosystem/go-grpc-middleware
-
-require (
-	github.com/go-kit/kit v0.9.0
-	github.com/go-logfmt/logfmt v0.4.0 // indirect
-	github.com/go-stack/stack v1.8.0 // indirect
-	github.com/gogo/protobuf v1.3.2
-	github.com/golang/protobuf v1.3.3
-	github.com/opentracing/opentracing-go v1.1.0
-	github.com/pkg/errors v0.8.1 // indirect
-	github.com/sirupsen/logrus v1.4.2
-	github.com/stretchr/testify v1.4.0
-	go.uber.org/atomic v1.4.0 // indirect
-	go.uber.org/multierr v1.1.0 // indirect
-	go.uber.org/zap v1.10.0
-	golang.org/x/net v0.0.0-20201021035429-f5854403a974
-	golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
-	google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215 // indirect
-	google.golang.org/grpc v1.29.1
-)
-
-go 1.14
diff --git a/vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.sum b/vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.sum
deleted file mode 100644
index ee522cd..0000000
--- a/vendor/github.com/grpc-ecosystem/go-grpc-middleware/go.sum
+++ /dev/null
@@ -1,122 +0,0 @@
-cloud.google.com/go v0.26.0 h1:e0WKqKTd5BnrG8aKH3J3h+QvEIQtSUcf2n5UZ5ZgLtQ=
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
-github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215 h1:0Uz5jLJQioKgVozXa1gzGbzYxbb/rhQEVvSWxzw5oUs=
-google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
-google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/vendor/github.com/hashicorp/go-uuid/go.mod b/vendor/github.com/hashicorp/go-uuid/go.mod
deleted file mode 100644
index dd57f9d..0000000
--- a/vendor/github.com/hashicorp/go-uuid/go.mod
+++ /dev/null
@@ -1 +0,0 @@
-module github.com/hashicorp/go-uuid
diff --git a/vendor/github.com/jcmturner/aescts/v2/go.mod b/vendor/github.com/jcmturner/aescts/v2/go.mod
deleted file mode 100644
index 034c3ce..0000000
--- a/vendor/github.com/jcmturner/aescts/v2/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module github.com/jcmturner/aescts/v2
-
-go 1.13
-
-require github.com/stretchr/testify v1.4.0
diff --git a/vendor/github.com/jcmturner/aescts/v2/go.sum b/vendor/github.com/jcmturner/aescts/v2/go.sum
deleted file mode 100644
index e863f51..0000000
--- a/vendor/github.com/jcmturner/aescts/v2/go.sum
+++ /dev/null
@@ -1,10 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/vendor/github.com/jcmturner/dnsutils/v2/go.mod b/vendor/github.com/jcmturner/dnsutils/v2/go.mod
deleted file mode 100644
index f75ac6d..0000000
--- a/vendor/github.com/jcmturner/dnsutils/v2/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module github.com/jcmturner/dnsutils/v2
-
-go 1.13
-
-require github.com/stretchr/testify v1.4.0
diff --git a/vendor/github.com/jcmturner/dnsutils/v2/go.sum b/vendor/github.com/jcmturner/dnsutils/v2/go.sum
deleted file mode 100644
index e863f51..0000000
--- a/vendor/github.com/jcmturner/dnsutils/v2/go.sum
+++ /dev/null
@@ -1,10 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/vendor/github.com/opentracing/opentracing-go/go.mod b/vendor/github.com/opentracing/opentracing-go/go.mod
deleted file mode 100644
index bf48bb5..0000000
--- a/vendor/github.com/opentracing/opentracing-go/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module github.com/opentracing/opentracing-go
-
-go 1.14
-
-require github.com/stretchr/testify v1.3.0
diff --git a/vendor/github.com/opentracing/opentracing-go/go.sum b/vendor/github.com/opentracing/opentracing-go/go.sum
deleted file mode 100644
index 4347755..0000000
--- a/vendor/github.com/opentracing/opentracing-go/go.sum
+++ /dev/null
@@ -1,7 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
diff --git a/vendor/go.opentelemetry.io/otel/go.mod b/vendor/go.opentelemetry.io/otel/go.mod
deleted file mode 100644
index 95f9aa4..0000000
--- a/vendor/go.opentelemetry.io/otel/go.mod
+++ /dev/null
@@ -1,8 +0,0 @@
-module go.opentelemetry.io/otel
-
-go 1.14
-
-require (
-	github.com/google/go-cmp v0.5.2
-	github.com/stretchr/testify v1.6.1
-)
diff --git a/vendor/go.opentelemetry.io/otel/go.sum b/vendor/go.opentelemetry.io/otel/go.sum
deleted file mode 100644
index bf1148d..0000000
--- a/vendor/go.opentelemetry.io/otel/go.sum
+++ /dev/null
@@ -1,15 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
-github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/go.uber.org/atomic/go.mod b/vendor/go.uber.org/atomic/go.mod
deleted file mode 100644
index daa7599..0000000
--- a/vendor/go.uber.org/atomic/go.mod
+++ /dev/null
@@ -1,8 +0,0 @@
-module go.uber.org/atomic
-
-require (
-	github.com/davecgh/go-spew v1.1.1 // indirect
-	github.com/stretchr/testify v1.3.0
-)
-
-go 1.13
diff --git a/vendor/go.uber.org/atomic/go.sum b/vendor/go.uber.org/atomic/go.sum
deleted file mode 100644
index 4f76e62..0000000
--- a/vendor/go.uber.org/atomic/go.sum
+++ /dev/null
@@ -1,9 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
diff --git a/vendor/go.uber.org/multierr/go.mod b/vendor/go.uber.org/multierr/go.mod
deleted file mode 100644
index ff8bdf9..0000000
--- a/vendor/go.uber.org/multierr/go.mod
+++ /dev/null
@@ -1,8 +0,0 @@
-module go.uber.org/multierr
-
-go 1.12
-
-require (
-	github.com/stretchr/testify v1.3.0
-	go.uber.org/atomic v1.7.0
-)
diff --git a/vendor/go.uber.org/multierr/go.sum b/vendor/go.uber.org/multierr/go.sum
deleted file mode 100644
index ecfc286..0000000
--- a/vendor/go.uber.org/multierr/go.sum
+++ /dev/null
@@ -1,11 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
-go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
diff --git a/vendor/go.uber.org/zap/go.mod b/vendor/go.uber.org/zap/go.mod
deleted file mode 100644
index 9455c99..0000000
--- a/vendor/go.uber.org/zap/go.mod
+++ /dev/null
@@ -1,14 +0,0 @@
-module go.uber.org/zap
-
-go 1.13
-
-require (
-	github.com/benbjohnson/clock v1.1.0
-	github.com/pkg/errors v0.8.1
-	github.com/stretchr/testify v1.7.0
-	go.uber.org/atomic v1.7.0
-	go.uber.org/goleak v1.1.10
-	go.uber.org/multierr v1.6.0
-	gopkg.in/yaml.v2 v2.2.8
-	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
-)
diff --git a/vendor/go.uber.org/zap/go.sum b/vendor/go.uber.org/zap/go.sum
deleted file mode 100644
index b330071..0000000
--- a/vendor/go.uber.org/zap/go.sum
+++ /dev/null
@@ -1,54 +0,0 @@
-github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
-go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
-go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
-go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
-go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11 h1:Yq9t9jnGoR+dBuitxdo9l6Q7xh/zOyNnYUtDKaQ3x0E=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/google.golang.org/grpc/go.mod b/vendor/google.golang.org/grpc/go.mod
deleted file mode 100644
index dc56aa7..0000000
--- a/vendor/google.golang.org/grpc/go.mod
+++ /dev/null
@@ -1,16 +0,0 @@
-module google.golang.org/grpc
-
-go 1.11
-
-require (
-	github.com/envoyproxy/go-control-plane v0.9.0
-	github.com/envoyproxy/protoc-gen-validate v0.1.0
-	github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
-	github.com/golang/mock v1.1.1
-	github.com/golang/protobuf v1.3.2
-	github.com/google/go-cmp v0.2.0
-	golang.org/x/net v0.0.0-20190311183353-d8887717615a
-	golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
-	golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
-	google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55
-)
diff --git a/vendor/google.golang.org/grpc/go.sum b/vendor/google.golang.org/grpc/go.sum
deleted file mode 100644
index f6a4784..0000000
--- a/vendor/google.golang.org/grpc/go.sum
+++ /dev/null
@@ -1,53 +0,0 @@
-cloud.google.com/go v0.26.0 h1:e0WKqKTd5BnrG8aKH3J3h+QvEIQtSUcf2n5UZ5ZgLtQ=
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/envoyproxy/go-control-plane v0.9.0 h1:67WMNTvGrl7V1dWdKCeTwxDr7nio9clKoTlLhwIPnT4=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/vendor/gopkg.in/yaml.v3/go.mod b/vendor/gopkg.in/yaml.v3/go.mod
deleted file mode 100644
index f407ea3..0000000
--- a/vendor/gopkg.in/yaml.v3/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module "gopkg.in/yaml.v3"
-
-require (
-	"gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405
-)
diff --git a/vendor/modules.txt b/vendor/modules.txt
index e4a06e9..5a623a5 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1,17 +1,23 @@
 # github.com/Shopify/sarama v1.29.1
+## explicit; go 1.13
 github.com/Shopify/sarama
 # github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d
+## explicit
 github.com/boljen/go-bitmap
 # github.com/bsm/sarama-cluster v2.1.15+incompatible
+## explicit
 github.com/bsm/sarama-cluster
 # github.com/cenkalti/backoff/v3 v3.1.1
-## explicit
+## explicit; go 1.12
 github.com/cenkalti/backoff/v3
 # github.com/cespare/xxhash/v2 v2.1.1
+## explicit; go 1.11
 github.com/cespare/xxhash/v2
 # github.com/cevaris/ordered_map v0.0.0-20190319150403-3adeae072e73
+## explicit
 github.com/cevaris/ordered_map
 # github.com/coreos/etcd v3.3.25+incompatible
+## explicit
 github.com/coreos/etcd/auth/authpb
 github.com/coreos/etcd/clientv3/balancer
 github.com/coreos/etcd/clientv3/balancer/connectivity
@@ -28,22 +34,31 @@
 github.com/coreos/etcd/raft/raftpb
 github.com/coreos/etcd/version
 # github.com/coreos/go-semver v0.3.0
+## explicit
 github.com/coreos/go-semver/semver
 # github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
+## explicit
 github.com/coreos/go-systemd/journal
 # github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f
+## explicit
 github.com/coreos/pkg/capnslog
 # github.com/davecgh/go-spew v1.1.1
+## explicit
 github.com/davecgh/go-spew/spew
 # github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
+## explicit
 github.com/dgryski/go-rendezvous
 # github.com/eapache/go-resiliency v1.2.0
+## explicit
 github.com/eapache/go-resiliency/breaker
 # github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21
+## explicit
 github.com/eapache/go-xerial-snappy
 # github.com/eapache/queue v1.1.0
+## explicit
 github.com/eapache/queue
 # github.com/go-redis/redis/v8 v8.3.4
+## explicit; go 1.11
 github.com/go-redis/redis/v8
 github.com/go-redis/redis/v8/internal
 github.com/go-redis/redis/v8/internal/hashtag
@@ -52,12 +67,12 @@
 github.com/go-redis/redis/v8/internal/rand
 github.com/go-redis/redis/v8/internal/util
 # github.com/gogo/protobuf v1.3.2
-## explicit
+## explicit; go 1.15
 github.com/gogo/protobuf/gogoproto
 github.com/gogo/protobuf/proto
 github.com/gogo/protobuf/protoc-gen-gogo/descriptor
 # github.com/golang/protobuf v1.5.2
-## explicit
+## explicit; go 1.9
 github.com/golang/protobuf/jsonpb
 github.com/golang/protobuf/proto
 github.com/golang/protobuf/protoc-gen-go/descriptor
@@ -69,11 +84,13 @@
 github.com/golang/protobuf/ptypes/timestamp
 github.com/golang/protobuf/ptypes/wrappers
 # github.com/golang/snappy v0.0.3
+## explicit
 github.com/golang/snappy
 # github.com/google/uuid v1.3.0
+## explicit
 github.com/google/uuid
 # github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
-## explicit
+## explicit; go 1.14
 github.com/grpc-ecosystem/go-grpc-middleware
 github.com/grpc-ecosystem/go-grpc-middleware/retry
 github.com/grpc-ecosystem/go-grpc-middleware/tags
@@ -81,15 +98,20 @@
 github.com/grpc-ecosystem/go-grpc-middleware/util/backoffutils
 github.com/grpc-ecosystem/go-grpc-middleware/util/metautils
 # github.com/hashicorp/go-uuid v1.0.2
+## explicit
 github.com/hashicorp/go-uuid
 # github.com/jcmturner/aescts/v2 v2.0.0
+## explicit; go 1.13
 github.com/jcmturner/aescts/v2
 # github.com/jcmturner/dnsutils/v2 v2.0.0
+## explicit; go 1.13
 github.com/jcmturner/dnsutils/v2
 # github.com/jcmturner/gofork v1.0.0
+## explicit
 github.com/jcmturner/gofork/encoding/asn1
 github.com/jcmturner/gofork/x/crypto/pbkdf2
 # github.com/jcmturner/gokrb5/v8 v8.4.2
+## explicit; go 1.14
 github.com/jcmturner/gokrb5/v8/asn1tools
 github.com/jcmturner/gokrb5/v8/client
 github.com/jcmturner/gokrb5/v8/config
@@ -121,9 +143,11 @@
 github.com/jcmturner/gokrb5/v8/pac
 github.com/jcmturner/gokrb5/v8/types
 # github.com/jcmturner/rpc/v2 v2.0.3
+## explicit; go 1.13
 github.com/jcmturner/rpc/v2/mstypes
 github.com/jcmturner/rpc/v2/ndr
 # github.com/jhump/protoreflect v1.10.2
+## explicit; go 1.13
 github.com/jhump/protoreflect/codec
 github.com/jhump/protoreflect/desc
 github.com/jhump/protoreflect/desc/internal
@@ -133,12 +157,13 @@
 github.com/jhump/protoreflect/internal
 github.com/jhump/protoreflect/internal/codec
 # github.com/klauspost/compress v1.12.2
+## explicit; go 1.13
 github.com/klauspost/compress/fse
 github.com/klauspost/compress/huff0
 github.com/klauspost/compress/zstd
 github.com/klauspost/compress/zstd/internal/xxhash
 # github.com/opencord/voltha-lib-go/v7 v7.6.7
-## explicit
+## explicit; go 1.16
 github.com/opencord/voltha-lib-go/v7/pkg/config
 github.com/opencord/voltha-lib-go/v7/pkg/db
 github.com/opencord/voltha-lib-go/v7/pkg/db/kvstore
@@ -157,7 +182,7 @@
 github.com/opencord/voltha-lib-go/v7/pkg/techprofile
 github.com/opencord/voltha-lib-go/v7/pkg/version
 # github.com/opencord/voltha-protos/v5 v5.6.2
-## explicit
+## explicit; go 1.16
 github.com/opencord/voltha-protos/v5/go/adapter_service
 github.com/opencord/voltha-protos/v5/go/common
 github.com/opencord/voltha-protos/v5/go/core_adapter
@@ -176,24 +201,31 @@
 github.com/opencord/voltha-protos/v5/go/voip_user_profile
 github.com/opencord/voltha-protos/v5/go/voltha
 # github.com/opentracing/opentracing-go v1.2.0
+## explicit; go 1.14
 github.com/opentracing/opentracing-go
 github.com/opentracing/opentracing-go/ext
 github.com/opentracing/opentracing-go/log
 # github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
+## explicit
 github.com/phayes/freeport
 # github.com/pierrec/lz4 v2.6.0+incompatible
+## explicit
 github.com/pierrec/lz4
 github.com/pierrec/lz4/internal/xxh32
 # github.com/pkg/errors v0.9.1
+## explicit
 github.com/pkg/errors
 # github.com/pmezard/go-difflib v1.0.0
+## explicit
 github.com/pmezard/go-difflib/difflib
 # github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
+## explicit
 github.com/rcrowley/go-metrics
 # github.com/stretchr/testify v1.7.0
-## explicit
+## explicit; go 1.13
 github.com/stretchr/testify/assert
 # github.com/uber/jaeger-client-go v2.29.1+incompatible
+## explicit
 github.com/uber/jaeger-client-go
 github.com/uber/jaeger-client-go/config
 github.com/uber/jaeger-client-go/internal/baggage
@@ -213,6 +245,7 @@
 github.com/uber/jaeger-client-go/transport
 github.com/uber/jaeger-client-go/utils
 # github.com/uber/jaeger-lib v2.4.1+incompatible
+## explicit
 github.com/uber/jaeger-lib/metrics
 # go.etcd.io/etcd v3.3.25+incompatible
 ## explicit
@@ -220,6 +253,7 @@
 go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes
 go.etcd.io/etcd/pkg/mock/mockserver
 # go.opentelemetry.io/otel v0.13.0
+## explicit; go 1.14
 go.opentelemetry.io/otel
 go.opentelemetry.io/otel/api/global
 go.opentelemetry.io/otel/api/global/internal
@@ -233,10 +267,13 @@
 go.opentelemetry.io/otel/label
 go.opentelemetry.io/otel/unit
 # go.uber.org/atomic v1.7.0
+## explicit; go 1.13
 go.uber.org/atomic
 # go.uber.org/multierr v1.6.0
+## explicit; go 1.12
 go.uber.org/multierr
 # go.uber.org/zap v1.18.1
+## explicit; go 1.13
 go.uber.org/zap
 go.uber.org/zap/buffer
 go.uber.org/zap/internal/bufferpool
@@ -244,9 +281,11 @@
 go.uber.org/zap/internal/exit
 go.uber.org/zap/zapcore
 # golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
+## explicit; go 1.17
 golang.org/x/crypto/md4
 golang.org/x/crypto/pbkdf2
 # golang.org/x/net v0.0.0-20210614182718-04defd469f4e
+## explicit; go 1.17
 golang.org/x/net/context
 golang.org/x/net/http/httpguts
 golang.org/x/net/http2
@@ -257,18 +296,21 @@
 golang.org/x/net/proxy
 golang.org/x/net/trace
 # golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1
+## explicit; go 1.17
 golang.org/x/sys/internal/unsafeheader
 golang.org/x/sys/unix
 # golang.org/x/text v0.3.6
+## explicit; go 1.11
 golang.org/x/text/secure/bidirule
 golang.org/x/text/transform
 golang.org/x/text/unicode/bidi
 golang.org/x/text/unicode/norm
 # google.golang.org/genproto v0.0.0-20220208230804-65c12eb4c068
+## explicit; go 1.15
 google.golang.org/genproto/googleapis/api/annotations
 google.golang.org/genproto/googleapis/rpc/status
 # google.golang.org/grpc v1.44.0 => google.golang.org/grpc v1.25.1
-## explicit
+## explicit; go 1.11
 google.golang.org/grpc
 google.golang.org/grpc/backoff
 google.golang.org/grpc/balancer
@@ -309,6 +351,7 @@
 google.golang.org/grpc/status
 google.golang.org/grpc/tap
 # google.golang.org/protobuf v1.27.1
+## explicit; go 1.9
 google.golang.org/protobuf/encoding/protojson
 google.golang.org/protobuf/encoding/prototext
 google.golang.org/protobuf/encoding/protowire
@@ -345,6 +388,7 @@
 google.golang.org/protobuf/types/known/timestamppb
 google.golang.org/protobuf/types/known/wrapperspb
 # gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
+## explicit
 gopkg.in/yaml.v3
 # github.com/coreos/bbolt v1.3.4 => go.etcd.io/bbolt v1.3.4
 # go.etcd.io/bbolt v1.3.4 => github.com/coreos/bbolt v1.3.4