diff --git a/.golangci.yml b/.golangci.yml
index 92569b7..cbda152 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -11,6 +11,46 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+version: "2"
+
+linters:
+  enable:
+    #- gochecknoglobals
+    #- gochecknoinits
+    - gocritic
+    - gosec
+    - errcheck
+    - gocyclo
+    - govet
+    - ineffassign
+    - misspell
+    - gosec
+    - staticcheck
+    - unused
+    - unparam
+  exclusions:
+    rules:
+      - path: ".*_test.go"
+        linters:
+          - gocritic
+          - gosec
+          - govet
+          - fieldalignment
+          - unparam
+          - staticcheck
+          
+      - text: "ifElseChain:"
+        linters:
+          - gocritic
+      - text: "G115: integer overflow conversion"
+        linters:
+          - gosec
+      - text: "SA1019"
+        linters:
+          - staticcheck
+      - text: "QF1008: could remove embedded field"
+        linters:
+          - staticcheck
 
 linters-settings:
   govet:
@@ -25,42 +65,10 @@
       - cancelled
       - artefacts
 
+formatters:
+  enable:
+    - gofmt
+    - goimports
+
 run:
   modules-download-mode: vendor
-
-linters:
-  enable:
-    #- gochecknoglobals
-    #- gochecknoinits
-    - gocritic
-    - gofmt
-    - gosec
-    - errcheck
-    - gocyclo
-    - govet
-    - ineffassign
-    - misspell
-    - gosec
-    - goimports
-    - gosimple
-    - staticcheck
-    - unused
-    - unparam
-
-issues:
-  exclude-use-default: false #we should decide ourselves about false positives
-  exclude-rules:
-    - path: ".*_test.go"
-      linters:
-        - errcheck
-        - gocritic
-        - gosec
-        - govet
-        - fieldalignment
-        - unparam
-    - linters:
-        - gocritic
-      text: "ifElseChain:" #it should be up to a developer to decide which operator to use
-  exclude:
-    - SA1019
-    - 'G115: integer overflow conversion'
diff --git a/VERSION b/VERSION
index 1bff231..4cc5902 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.6.21
+3.6.22
diff --git a/docker/Dockerfile.rw_core b/docker/Dockerfile.rw_core
index f7147de..32ea2b3 100644
--- a/docker/Dockerfile.rw_core
+++ b/docker/Dockerfile.rw_core
@@ -30,7 +30,7 @@
 # -------------
 # Build stage
 
-FROM golang:1.23.1-alpine3.20 AS dev
+FROM golang:1.24.5-alpine3.22 AS dev
 
 # Install required packages
 
diff --git a/go.mod b/go.mod
index 1b718e2..1792181 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/opencord/voltha-go
 
-go 1.23.0
+go 1.24.5
 
 replace (
 	github.com/coreos/bbolt v1.3.4 => go.etcd.io/bbolt v1.3.4
diff --git a/makefiles/analysis/sca.mk b/makefiles/analysis/sca.mk
index 48bc999..48a4c41 100644
--- a/makefiles/analysis/sca.mk
+++ b/makefiles/analysis/sca.mk
@@ -25,7 +25,7 @@
 	@$(RM) -r ./sca-report
 	@mkdir -p ./sca-report
 	@echo "Running static code analysis..."
-	@${GOLANGCI_LINT} run --out-format junit-xml ./... | tee ./sca-report/sca-report.xml
+	@${GOLANGCI_LINT} run --output.text.path=stdout --output.junit-xml.path=./sca-report/sca-report.xml ./...
 	@echo ""
 	@echo "Static code analysis OK"
 
diff --git a/makefiles/docker/include.mk b/makefiles/docker/include.mk
index 594dcd5..78b9b33 100644
--- a/makefiles/docker/include.mk
+++ b/makefiles/docker/include.mk
@@ -17,7 +17,7 @@
 
 $(if $(DEBUG),$(warning ENTER))
 
-VOLTHA_TOOLS_VERSION ?= 3.1.1
+VOLTHA_TOOLS_VERSION ?= 3.1.3
 
 # ---------------------------
 # Macros: command refactoring
diff --git a/rw_core/core/device/agent.go b/rw_core/core/device/agent.go
index 040d65a..74c2475 100755
--- a/rw_core/core/device/agent.go
+++ b/rw_core/core/device/agent.go
@@ -33,7 +33,6 @@
 	"github.com/gogo/protobuf/proto"
 	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/voltha-go/rw_core/config"
-	"github.com/opencord/voltha-go/rw_core/utils"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/status"
 
@@ -1418,7 +1417,7 @@
 
 func (agent *Agent) DeleteDevicePostAdapterRestart(ctx context.Context) error {
 	logger.Debugw(ctx, "delete-post-restart", log.Fields{"device-id": agent.deviceID})
-	ctx = utils.WithNewSpanAndRPCMetadataContext(ctx, "DelteDevicePostAdapterRestart")
+	ctx = coreutils.WithNewSpanAndRPCMetadataContext(ctx, "DelteDevicePostAdapterRestart")
 
 	if err := agent.requestQueue.WaitForGreenLight(ctx); err != nil {
 		return err
diff --git a/rw_core/core/device/logical_agent_meter_helpers.go b/rw_core/core/device/logical_agent_meter_helpers.go
index 546891a..22ff7ca 100644
--- a/rw_core/core/device/logical_agent_meter_helpers.go
+++ b/rw_core/core/device/logical_agent_meter_helpers.go
@@ -75,13 +75,14 @@
 	oldMeter := meterHandle.GetReadOnly()
 	// avoiding using proto.Clone by only copying what have changed (this assumes that the oldMeter will never be modified)
 	newStats := *oldMeter.Stats
-	if flowCommand == ofp.OfpFlowModCommand_OFPFC_ADD {
+	switch flowCommand {
+	case ofp.OfpFlowModCommand_OFPFC_ADD:
 		if revertUpdate {
 			newStats.FlowCount--
 		} else {
 			newStats.FlowCount++
 		}
-	} else if flowCommand == ofp.OfpFlowModCommand_OFPFC_DELETE_STRICT {
+	case ofp.OfpFlowModCommand_OFPFC_DELETE_STRICT:
 		if revertUpdate {
 			newStats.FlowCount++
 		} else {
diff --git a/rw_core/core/device/state/transitions.go b/rw_core/core/device/state/transitions.go
index 8b5da90..74538ec 100644
--- a/rw_core/core/device/state/transitions.go
+++ b/rw_core/core/device/state/transitions.go
@@ -400,6 +400,8 @@
 }
 
 // isMatched matches a state transition. It returns whether there is a match and if there is whether it is an exact match
+//
+//nolint:gocyclo
 func getHandler(previous deviceState, current deviceState, transition *transition) ([]transitionHandler, *match) {
 	m := &match{}
 	var waitForOtherStatesMatch bool
diff --git a/rw_core/test/core_nbi_handler_multi_test.go b/rw_core/test/core_nbi_handler_multi_test.go
index 471bc2e..6c913e6 100755
--- a/rw_core/test/core_nbi_handler_multi_test.go
+++ b/rw_core/test/core_nbi_handler_multi_test.go
@@ -2163,7 +2163,7 @@
 	if err != nil {
 		logger.Fatalf(ctx, "could not create CPU profile: %v\n ", err)
 	}
-	defer f.Close()
+	defer func() { _ = f.Close() }()
 	runtime.SetBlockProfileRate(1)
 	runtime.SetMutexProfileFraction(-1)
 	runtime.SetCPUProfileRate(200)
