diff --git a/jjb/pipeline/voltha/bbsim-tests.groovy b/jjb/pipeline/voltha/bbsim-tests.groovy
index deb40c4..5fc14d4 100644
--- a/jjb/pipeline/voltha/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/bbsim-tests.groovy
@@ -1,4 +1,4 @@
-// Copyright 2021-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2021-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/device-management-mock-tests.groovy b/jjb/pipeline/voltha/device-management-mock-tests.groovy
index e837028..90519c0 100644
--- a/jjb/pipeline/voltha/device-management-mock-tests.groovy
+++ b/jjb/pipeline/voltha/device-management-mock-tests.groovy
@@ -1,4 +1,4 @@
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/dmi-build-and-test.groovy b/jjb/pipeline/voltha/dmi-build-and-test.groovy
index 501c7f5..bcb5eb8 100755
--- a/jjb/pipeline/voltha/dmi-build-and-test.groovy
+++ b/jjb/pipeline/voltha/dmi-build-and-test.groovy
@@ -1,6 +1,6 @@
 #!/usr/bin/env groovy
 // -----------------------------------------------------------------------
-// Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2022-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/physical-build.groovy b/jjb/pipeline/voltha/physical-build.groovy
index 69537b3..5cab632 100755
--- a/jjb/pipeline/voltha/physical-build.groovy
+++ b/jjb/pipeline/voltha/physical-build.groovy
@@ -1,4 +1,4 @@
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/software-upgrades.groovy b/jjb/pipeline/voltha/software-upgrades.groovy
index 7ffcaee..b5455e6 100755
--- a/jjb/pipeline/voltha/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/software-upgrades.groovy
@@ -1,4 +1,4 @@
-// Copyright 2021-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2021-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/tucson-build-and-test.groovy b/jjb/pipeline/voltha/tucson-build-and-test.groovy
index 5876876..043db84 100644
--- a/jjb/pipeline/voltha/tucson-build-and-test.groovy
+++ b/jjb/pipeline/voltha/tucson-build-and-test.groovy
@@ -1,4 +1,4 @@
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/voltha-dt-physical-functional-tests.groovy b/jjb/pipeline/voltha/voltha-dt-physical-functional-tests.groovy
index c2937f4..7ab29e2 100644
--- a/jjb/pipeline/voltha/voltha-dt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-dt-physical-functional-tests.groovy
@@ -1,6 +1,6 @@
 #!/usr/bin/env groovy
 // -----------------------------------------------------------------------
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/voltha-physical-functional-tests.groovy b/jjb/pipeline/voltha/voltha-physical-functional-tests.groovy
index eb76b79..7da5a31 100644
--- a/jjb/pipeline/voltha/voltha-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-physical-functional-tests.groovy
@@ -1,6 +1,6 @@
 #!/usr/bin/env groovy
 // -----------------------------------------------------------------------
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/voltha-physical-soak-dt-tests.groovy b/jjb/pipeline/voltha/voltha-physical-soak-dt-tests.groovy
index 14a5724..6420a81 100644
--- a/jjb/pipeline/voltha/voltha-physical-soak-dt-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-physical-soak-dt-tests.groovy
@@ -1,6 +1,6 @@
 #!/usr/bin/env groovy
 // -----------------------------------------------------------------------
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/voltha-scale-lwc-test.groovy b/jjb/pipeline/voltha/voltha-scale-lwc-test.groovy
index e51abd3..df049cb 100644
--- a/jjb/pipeline/voltha/voltha-scale-lwc-test.groovy
+++ b/jjb/pipeline/voltha/voltha-scale-lwc-test.groovy
@@ -1,4 +1,4 @@
-// Copyright 2019-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2019-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/voltha-scale-multi-stack.groovy b/jjb/pipeline/voltha/voltha-scale-multi-stack.groovy
index 8ede30d..42b8e73 100644
--- a/jjb/pipeline/voltha/voltha-scale-multi-stack.groovy
+++ b/jjb/pipeline/voltha/voltha-scale-multi-stack.groovy
@@ -1,4 +1,4 @@
-// Copyright 2019-2023 Open Networking Foundation (ONF) and the ONF Contributors//
+// Copyright 2019-2024 Open Networking Foundation (ONF) and the ONF Contributors
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
diff --git a/jjb/pipeline/voltha/voltha-scale-test.groovy b/jjb/pipeline/voltha/voltha-scale-test.groovy
index 88d6070..635b525 100644
--- a/jjb/pipeline/voltha/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha/voltha-scale-test.groovy
@@ -1,4 +1,4 @@
-// Copyright 2019-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2019-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/jjb/pipeline/voltha/voltha-tt-physical-functional-tests.groovy b/jjb/pipeline/voltha/voltha-tt-physical-functional-tests.groovy
index dec9265..461ce88 100644
--- a/jjb/pipeline/voltha/voltha-tt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-tt-physical-functional-tests.groovy
@@ -1,6 +1,6 @@
 // -*- groovy -*-
 // -----------------------------------------------------------------------
-// Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+// Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
