diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d764883..6e55a3c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -3,15 +3,16 @@
 # -----------------------------------------------------------------------
 # [NOTE] - Propogate .pre-commit-config.yaml edits to all repositories!
 # -----------------------------------------------------------------------
+# [NOTE] - Common config file source lives in repo:onf-make
+#    - https://gerrit.opencord.org/plugins/gitiles/onf-make/
+#        +/refs/heads/master/.pre-commit-config.yaml
+# -----------------------------------------------------------------------
 # [TODO]
 #    - pre-commit yaml config exists individually within repositories.
 #    - Generally lint config and benavior is consistent for all repos.
 #    - Exclusions and bulk cleanup necessitate per-repo custom configs.
 #    - Dynamically generate this config file from common and custom
 # -----------------------------------------------------------------------
-# [HOOKS: disabled]
-#    - reuse
-# -----------------------------------------------------------------------
 
 # -----------------------------------------------------------------------
 # Copyright 2024 Open Networking Foundation Contributors
@@ -34,21 +35,42 @@
 # See https://pre-commit.com for more information
 # See https://pre-commit.com/hooks.html for more hooks
 # -----------------------------------------------------------------------
-# .pre-commit-config-yaml 2024-04-10 v0.3
+# .pre-commit-config-yaml 2024-04-19 v0.4
 # -----------------------------------------------------------------------
 
 # ci:
-#   skip: [sync]
+#  autofix_commit_msg: "Chore: pre-commit autoupdate"
+##  skip: [sync]
+#  skip:
+#    # pre-commit.ci does not have actionlint installed
+#    - actionlint
+#
+# exclude: '^docs/conf.py'
 
 repos:
-  # Sync from repo
   - repo: https://github.com/pre-commit/pre-commit-hooks
+#    rev: c4a0b883114b00d8d76b479c820ce7950211c99b  # frozen: v4.5.0
     rev: v4.5.0
     hooks:
       - id: trailing-whitespace
-      - id: end-of-file-fixer
-      - id: check-yaml
       - id: check-added-large-files
+      - id: check-ast
+      - id: check-json
+      - id: check-merge-conflict
+      - id: check-xml
+      - id: check-yaml
+#      - id: debug-statements
+      - id: end-of-file-fixer
+      - id: fix-encoding-pragma
+#     - id: double-quote-string-fixer
+      - id: requirements-txt-fixer
+      - id: mixed-line-ending
+        args: ['--fix=lf']
+
+  - repo: https://github.com/jorisroovers/gitlint
+    rev: acc9d9de6369b76d22cb4167029d2035e8730b98  # frozen: v0.19.1
+    hooks:
+      - id: gitlint
 
   - repo: https://github.com/koalaman/shellcheck-precommit
     rev: v0.10.0
@@ -61,6 +83,37 @@
       - id: yamllint
 
 ## -----------------------------------------------------------------------
+## [SOURCE] Documentation
+## -----------------------------------------------------------------------
+  - repo: https://github.com/rstcheck/rstcheck
+    rev: v6.2.1
+    hooks:
+      - id: rstcheck
+
+  - repo: https://github.com/markdownlint/markdownlint
+    rev: v0.13.0
+    hooks:
+      - id: markdownlint
+#      - id: markdownlint_docker
+
+## -----------------------------------------------------------------------
+## [SOURCE] Docker
+## -----------------------------------------------------------------------
+  - repo: https://github.com/hadolint/hadolint
+    rev: v2.12.0
+    hooks:
+      - id: hadolint
+#      - id: hadolint-docker
+
+## -----------------------------------------------------------------------
+## [SOURCE] Golang
+## -----------------------------------------------------------------------
+  - repo: https://github.com/golangci/golangci-lint
+    rev: v1.41.1
+    hooks:
+      - id: golangci-lint
+
+## -----------------------------------------------------------------------
 ## [SOURCE] REUSE License Checking
 ## -----------------------------------------------------------------------
 #  - repo: https://github.com/fsfe/reuse-tool
@@ -68,6 +121,11 @@
 #    hooks:
 #      - id: reuse
 #     - id: add-license-headers
+#
+# - repo: https://github.com/ansys/pre-commit-hooks
+#   rev: v0.2.9
+#   hooks:
+#     - id: add-license-headers
 #   args:
 # - --custom_copyright=custom copyright phrase
 # - --custom_template=template_name
@@ -78,41 +136,45 @@
 ## -----------------------------------------------------------------------
 ## [SOURCE] Python
 ## -----------------------------------------------------------------------
-
-# - repo: https://github.com/psf/black
-#   rev: 22.10.0
-#   hooks:
-#     - id: black
+  - repo: https://github.com/psf/black
+    rev: 22.10.0
+    hooks:
+      - id: black
 
   - repo: https://github.com/PyCQA/doc8
     rev: v1.1.1
     hooks:
       - id: doc8
 
-  - repo: https://github.com/pre-commit/pygrep-hooks
-    rev: v1.10.0
+## -----------------------------------------------------------------------
+## [SOURCE] Testing
+## -----------------------------------------------------------------------
+  - repo: https://github.com/MarketSquare/robotframework-tidy
+    rev: 4.11.0
     hooks:
-      - id: rst-backticks
-      - id: rst-directive-colons
-      - id: rst-inline-touching-normal
+      - id: robotidy
 
 # -------------------------------------------------------------------
 # https://docs.python.org/3/library/re.html#regular-expression-syntax
 # -------------------------------------------------------------------
 exclude: |
     (?x)^(
-        ^jjb/.*             |
         ^makefiles/.*       |
         ^lf/.*              |
         ^.venv/.*           |
-        ^jenkins-scripts/.* |
-        ^lf-ansible/.*      |
-        ^packer/.*          |
         ^test/.*            |
-        ^jjb/pipeline/voltha/voltha-physical-soak-dt-tests.groovy
+        ^\[END-OF-EXCLUDE\]
     )$
 
 # [SEE ALSO]
 # -----------------------------------------------------------------------
+# https://github.com/memfault/interrupt/blob/master/example/pre-commit/.pre-commit-config.yaml
+# https://pre-commit.com/hooks.html
+# https://github.com/floatingpurr/sync_with_poetry/blob/main/.pre-commit-config.yaml
+# https://github.com/the-common/pre-commit-config-template/blob/master/.pre-commit-config.yaml
+# https://github.com/memfault/interrupt/blob/master/example/pre-commit/.pre-commit-config.yaml
+# -----------------------------------------------------------------------
+# https://www.hatica.io/blog/pre-commit-git-hooks/
+# -----------------------------------------------------------------------
 
 # [EOF]
diff --git a/VERSION b/VERSION
index 6f14001..72c808e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.12.41
+2.12.42
diff --git a/conf.py b/conf.py
index 3f9d075..2c1c986 100644
--- a/conf.py
+++ b/conf.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+# -----------------------------------------------------------------------
+# Copyright 2019-2024 Open Networking Foundation 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
+#
+# http:#www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# -----------------------------------------------------------------------
+# SPDX-FileCopyrightText: 2019-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
 
 # Configuration file for the Sphinx documentation builder.
 #
@@ -21,14 +41,13 @@
 
 # --------------------------------------------------------------
 # Large exclusion list(s) extracted from conf.py => .sphinx/*.py
-if True: # Set searchpath early
-    abs_path = Path('.').resolve().as_posix()
+if True:  # Set searchpath early
+    abs_path = Path(".").resolve().as_posix()
     sys.path.insert(0, abs_path)
 
-# from sphinx_conf import *
+# -- Options for linkcheck ----------------------------------------------
 from sphinx_conf.exclude_patterns import exclude_patterns
 from sphinx_conf.linkcheck_ignore import linkcheck_ignore
-# --------------------------------------------------------------
 
 # -----------------------------------------------------------------------
 # -----------------------------------------------------------------------
@@ -36,11 +55,14 @@
     with open("VERSION") as f:
         return f.read().strip()
 
+
 # -- Project information -----------------------------------------------------
 
-project = u'VOLTHA Docs'
-copyright = u'Copyright 2019-2023 Open Networking Foundation (ONF) and the ONF Contributors'
-author = u'VOLTHA Contributors'
+project = "VOLTHA Docs"
+copyright = (
+    "Copyright 2019-2024 Open Networking Foundation Contributors"
+)
+author = "VOLTHA Contributors"
 
 # The short X.Y version
 version = get_version()
@@ -60,15 +82,15 @@
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'recommonmark',
-    'sphinx.ext.coverage',
-    'sphinx.ext.extlinks',
-    'sphinx.ext.graphviz',
-    'sphinx.ext.ifconfig',
-#    'sphinx.ext.intersphinx',    # :doc:`my document <../my_doc{.rst}>`
-    'sphinx.ext.mathjax',
-    'sphinx.ext.todo',
-    'sphinxcontrib.spelling',
+    "recommonmark",
+    "sphinx.ext.coverage",
+    "sphinx.ext.extlinks",
+    "sphinx.ext.graphviz",
+    "sphinx.ext.ifconfig",
+    #    'sphinx.ext.intersphinx',    # :doc:`my document <../my_doc{.rst}>`
+    "sphinx.ext.mathjax",
+    "sphinx.ext.todo",
+    "sphinxcontrib.spelling",
     "sphinx_multiversion",
     "sphinx.ext.intersphinx",
     "sphinxcontrib.openapi",
@@ -87,36 +109,38 @@
 #   ]
 
 # Text files with lists of words that shouldn't fail the spellchecker:
-spelling_word_list_filename=['dict.txt', ]
+spelling_word_list_filename = [
+    "dict.txt",
+]
 
-#sphinx-multiversion prep, run in each versioned source directory
+# sphinx-multiversion prep, run in each versioned source directory
 prep_commands = [
-    'ln -sf _root_/repos _target_/repos',
-    'make prep',
+    "ln -sf _root_/repos _target_/repos",
+    "make prep",
 ]
 
 # don't include tags
 # smv_tag_whitelist = None
 # smv_tag_whitelist = disabled^ # Was = None
-smv_tag_whitelist = 'disabled_a^' # Was = None
+smv_tag_whitelist = "disabled_a^"  # Was = None
 
 # inlcude only the branches matching master and voltha-*
-smv_branch_whitelist = r'^(master|voltha-.*)$'
+smv_branch_whitelist = r"^(master|voltha-.*)$"
 
 # include all remote branches
-smv_remote_whitelist = r'^.*$'
+smv_remote_whitelist = r"^.*$"
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
 
 # The suffix(es) of source filenames.
 # You can specify multiple suffix as a list of string:
 #
 # source_suffix = ['.rst', '.md']
-source_suffix = ['.rst', '.md']
+source_suffix = [".rst", ".md"]
 
 # The master toctree document.
-master_doc = 'index'
+master_doc = "index"
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -133,24 +157,22 @@
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
 #
-html_theme = 'sphinx_rtd_theme'
+html_theme = "sphinx_rtd_theme"
 
-html_logo = '_static/voltha.svg'
+html_logo = "_static/voltha.svg"
 
-html_favicon = '_static/voltha-favicon-128.png'
+html_favicon = "_static/voltha-favicon-128.png"
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
 #
-html_theme_options = {
-    'logo_only': True
-}
+html_theme_options = {"logo_only": True}
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+html_static_path = ["_static"]
 
 # Custom sidebar templates, must be a dictionary that maps document names
 # to template names.
@@ -163,11 +185,10 @@
 # html_sidebars = {}
 
 
-
 # -- Options for HTMLHelp output ---------------------------------------------
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'VOLTHADocs'
+htmlhelp_basename = "VOLTHADocs"
 
 
 # -- Options for LaTeX output ------------------------------------------------
@@ -176,15 +197,12 @@
     # The paper size ('letterpaper' or 'a4paper').
     #
     # 'papersize': 'letterpaper',
-
     # The font size ('10pt', '11pt' or '12pt').
     #
     # 'pointsize': '10pt',
-
     # Additional stuff for the LaTeX preamble.
     #
     # 'preamble': '',
-
     # Latex figure (float) alignment
     #
     # 'figure_align': 'htbp',
@@ -194,8 +212,7 @@
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    (master_doc, 'VOLTHADocs.tex', u'VOLTHA Docs',
-     u'VOLTHA Team', 'manual'),
+    (master_doc, "VOLTHADocs.tex", "VOLTHA Docs", "VOLTHA Team", "manual"),
 ]
 
 
@@ -203,10 +220,7 @@
 
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
-man_pages = [
-    (master_doc, 'VOLTHA Docs', u'VOLTHA Docs',
-     [author], 1)
-]
+man_pages = [(master_doc, "VOLTHA Docs", "VOLTHA Docs", [author], 1)]
 
 
 # -- Options for Texinfo output ----------------------------------------------
@@ -215,9 +229,15 @@
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    (master_doc, 'VOLTHA Docs', u'VOLTHA Docs',
-     author, 'VOLTHADocs', 'One line description of project.',
-     'Miscellaneous'),
+    (
+        master_doc,
+        "VOLTHA Docs",
+        "VOLTHA Docs",
+        author,
+        "VOLTHADocs",
+        "One line description of project.",
+        "Miscellaneous",
+    ),
 ]
 
 
@@ -236,7 +256,7 @@
 # epub_uid = ''
 
 # A list of files that should not be packed into the epub file.
-epub_exclude_files = ['search.html']
+epub_exclude_files = ["search.html"]
 
 
 # -- Extension configuration -------------------------------------------------
@@ -261,14 +281,16 @@
 # ..seealso: https://www.sphinx-doc.org/en/master/usage/extensions/todo.html
 #        'vhc' : 'https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts',
 
-extlinks=\
-    {
-        'vol-jira' : ('https://jira.opencord.org/projects/VOL/issues/%s', 'jira::%s'),
-        # macros for gerrit or github URL construction
-        'repo'     : ('https://github.com/opencord/%s', 'repo::%s'),
-        'vol-ger'  : ('https://gerrit.opencord.org/plugins/gitiles/%s', 'gerrit::%s'),
-        'vol-git'  : ('https://github.com/opencord/%s', 'git::%s'),
-    }
+extlinks = {
+    "vol-jira": ("https://jira.opencord.org/projects/VOL/issues/%s", "jira::%s"),
+    "jira-browse": ("https://jira.opencord.org/browse/%s", "jira::%s"),
+    # macros for gerrit or github URL construction
+    "repo": ("https://github.com/opencord/%s", "repo::%s"),
+    "vol-ger": ("https://gerrit.opencord.org/plugins/gitiles/%s", "gerrit::%s"),
+    "vol-git": ("https://github.com/opencord/%s", "git::%s"),
+    # https://mvnrepository
+    "mvn-cord": ("http://mvnrepository.com/artifact/org.opencord/%s", "mvn::%s"),
+}
 
 # -- Options for inlining a constant value -----------------------------------
 # NOTE: rst_prolog will affect every file in the repository.
@@ -282,25 +304,26 @@
 # If true, `todo` and `todoList` produce output, else they produce nothing.
 todo_include_todos = True
 
-# -- Options for linkcheck ---------------------------------------------------
-# The link checker strips off .md from links and then complains
-# linkcheck_ignore SEE .sphinx/linkcheck_ignore.py
-
 # -- Configure recommonmark to use AutoStructify -----------------------------
 # Docs: https://recommonmark.readthedocs.io/en/latest/auto_structify.html
 
 import recommonmark
 from recommonmark.transform import AutoStructify
 
-github_doc_root = 'https://github.com/opencord/voltha-docs'
+github_doc_root = "https://github.com/opencord/voltha-docs"
+
 
 def setup(app):
 
-    app.add_css_file('css/rtd_theme_mods.css')
+    app.add_css_file("css/rtd_theme_mods.css")
 
-    app.add_config_value('recommonmark_config', {
-            'url_resolver': lambda url: github_doc_root + url,
-            'auto_toc_tree_section': 'Contents',
-        }, True)
+    app.add_config_value(
+        "recommonmark_config",
+        {
+            "url_resolver": lambda url: github_doc_root + url,
+            "auto_toc_tree_section": "Contents",
+        },
+        True,
+    )
 
     app.add_transform(AutoStructify)
diff --git a/overview/contributing/copyright.rst b/overview/contributing/copyright.rst
index 05ef2a2..6d9eae7 100644
--- a/overview/contributing/copyright.rst
+++ b/overview/contributing/copyright.rst
@@ -3,11 +3,34 @@
 
 Include a copyright notice with all submissions to ONF repositoreis.
 
-- ``Copyright 2017-2023 Open Networking Foundation Contributors``
-- NOTE: Range values such as -present are not legally binding
+- Copyright 2017-2023 Open Networking Foundation Contributors
 
+  - NOTE: Range values such as -present are not legally binding
   - Copyright notice should be dated to the last year sources were modified.
 
+.. code-block:: BASH
+   :caption: Project Copyright Notice
+
+   # -----------------------------------------------------------------------
+   # Copyright 2017-2024 Open Networking Foundation 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
+   #
+   # http://www.apache.org/licenses/LICENSE-2.0
+   #
+   # Unless required by applicable law or agreed to in writing, software
+   # distributed under the License is distributed on an "AS IS" BASIS,
+   # 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.
+   # -----------------------------------------------------------------------
+   # SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation Contributors
+   # SPDX-License-Identifier: Apache-2.0
+   # -----------------------------------------------------------------------
+
+
 See Also
 --------
 
@@ -15,3 +38,5 @@
 - `Message syntax <https://github.com/joey-onf/copyright/blob/origin/master/notice>`_
 - `ONF CLA Information <https://wiki.opencord.org>`_
 - `Contributing License Agreement Manager <https://cla.opennetworking.org/>`_
+
+`Copyrights <copyright/copyright>`_
diff --git a/overview/contributing/copyright/Makefile.rst b/overview/contributing/copyright/Makefile.rst
new file mode 100644
index 0000000..cb93667
--- /dev/null
+++ b/overview/contributing/copyright/Makefile.rst
@@ -0,0 +1,26 @@
+Copyright Notice: Makefile Syntax
+=================================
+
+.. code-block:: BASH
+   :caption: Makefile Syntax
+
+# -----------------------------------------------------------------------
+# Copyright 2017-2024 Open Networking Foundation 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
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# -----------------------------------------------------------------------
+# SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
diff --git a/overview/contributing/copyright/copyright.rst b/overview/contributing/copyright/copyright.rst
new file mode 100644
index 0000000..13743b1
--- /dev/null
+++ b/overview/contributing/copyright/copyright.rst
@@ -0,0 +1,42 @@
+Copyright Notice
+================
+
+Include a copyright notice with all submissions to ONF repositoreis.
+
+- ``Copyright 2017-2023 Open Networking Foundation Contributors``
+- NOTE: Range values such as -present are not legally binding
+
+  - Copyright notice should be dated to the last year sources were modified.
+
+- Add SPDX tokens for programatic validation.
+
+.. toctree::
+   :maxdepth: 1
+   :hidden:
+   :caption: Copyright notice syntax
+
+   golang syntax <golang>
+   JSON <json>
+   Makefile <Makefile>
+   Markdown <markdown>
+
+License Validation: linting
+---------------------------
+
+- `REUSE Software <https://reuse.software/>`_
+- `The REUSE tool <https://git.fsfe.org/reuse/tool>`_
+- `pre-commit <https://pre-commit.com/>`_ hook `reuse-tool <https://github.com/fsfe/reuse-tool>`_
+
+See Also
+--------
+
+- `Copyright notices <https://github.com/joey-onf/copyright>`_
+- `Message syntax <https://github.com/joey-onf/copyright/blob/origin/master/notice>`_
+- `ONF CLA Information <https://wiki.opencord.org>`_
+- `Contributing License Agreement Manager <https://cla.opennetworking.org/>`_
+
+SPDX
+^^^^
+
+- `Handling license info <https://spdx.dev/learn/handling-license-info/>`_
+- `SPDX License List <https://spdx.org/licenses/>`_
diff --git a/overview/contributing/copyright/golang.rst b/overview/contributing/copyright/golang.rst
new file mode 100644
index 0000000..13ec153
--- /dev/null
+++ b/overview/contributing/copyright/golang.rst
@@ -0,0 +1,25 @@
+Copyright Notice: golang syntax
+===============================
+
+.. code-block:: GOLANG
+   :caption: Copyright Syntax
+
+   /* -----------------------------------------------------------------------
+    * Copyright 2017-2024 Open Networking Foundation 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
+    *
+    * http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing, software
+    * distributed under the License is distributed on an "AS IS" BASIS,
+    * 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.
+    * -----------------------------------------------------------------------
+    * SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation Contributors
+    * SPDX-License-Identifier: Apache-2.0
+    * -----------------------------------------------------------------------
+    */
diff --git a/overview/contributing/copyright/json.rst b/overview/contributing/copyright/json.rst
new file mode 100644
index 0000000..18b0776
--- /dev/null
+++ b/overview/contributing/copyright/json.rst
@@ -0,0 +1,16 @@
+Copyright Notice: Json syntax
+=============================
+
+.. code-block:: JSON
+   :caption: Copyright Syntax
+
+   {
+      {
+          "name": "sample-json-syntax",
+          "version": 1,
+      },
+      "copyright-notice" : {
+          "SPDX-FileCopyrightText" : "2024 Open Networking Foundation Contributors",
+          "SPDX-License-Identifier" : "Apache-2.0"
+      }
+   }
diff --git a/overview/contributing/copyright/markdown.rst b/overview/contributing/copyright/markdown.rst
new file mode 100644
index 0000000..e57068e
--- /dev/null
+++ b/overview/contributing/copyright/markdown.rst
@@ -0,0 +1,28 @@
+Copyright Notice: markdown syntax
+=================================
+
+.. code-block:: HTML
+   :caption: Markdown Syntax
+
+   <!--
+   # -----------------------------------------------------------------------
+   # Copyright 2017-2024 Open Networking Foundation 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
+   #
+   # http:#www.apache.org/licenses/LICENSE-2.0
+   #
+   # Unless required by applicable law or agreed to in writing, software
+   # distributed under the License is distributed on an "AS IS" BASIS,
+   # 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.
+   # -----------------------------------------------------------------------
+   # SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation Contributors
+   # SPDX-License-Identifier: Apache-2.0
+   # -----------------------------------------------------------------------
+   # Intent:
+   # -----------------------------------------------------------------------
+   -->
diff --git a/release_notes/voltha_2.12.rst b/release_notes/voltha_2.12.rst
index c2cbc35..dc35693 100644
--- a/release_notes/voltha_2.12.rst
+++ b/release_notes/voltha_2.12.rst
@@ -19,45 +19,45 @@
 
    * - Jira
      - Description
-   * - `VOL-4949 <|jira-opencord|/VOL-4949>`_
+   * - `VOL-4949 <:jira-browse:/VOL-4949>`_
      - Introduce DEVICE_BUSY reason in the UploadDebugInfoStatus DMI message
-   * - `VOL-4783 <|jira-opencord|/VOL-4783>`_
+   * - `VOL-4783 <:jira-browse:/VOL-4783>`_
      - Introduce UploadDebugInformation RPC in DMI
-   * - `VOL-4788 <|jira-opencord|/VOL-4788>`_
+   * - `VOL-4788 <:jira-browse:/VOL-4788>`_
      - Create package in voltha-libs-go for support of prometheus counters in voltha
-   * - `VOL-4782 <|jira-opencord|/VOL-4782>`_
+   * - `VOL-4782 <:jira-browse:/VOL-4782>`_
      - Enchance DMI to include DataValueType in Events and also clarification for Transceiver Events
-   * - `VOL-4878 <|jira-opencord|/VOL-4878>`_
+   * - `VOL-4878 <:jira-browse:/VOL-4878>`_
      - Improve the voltha-protos extensions interface to get the Rx Power levels from an OLT
-   * - `VOL-4877 <|jira-opencord|/VOL-4877>`_
+   * - `VOL-4877 <:jira-browse:/VOL-4877>`_
      - Enhance DMI interface to be able to retrieve the Tx Power on the Transceivers
-   * - `VOL-4958 <|jira-opencord|/VOL-4958>`_
+   * - `VOL-4958 <:jira-browse:/VOL-4958>`_
      - Introduce protobuf dependencies in DMI for the python testing framework
-   * - `VOL-4952 <|jira-opencord|/VOL-4952>`_
+   * - `VOL-4952 <:jira-browse:/VOL-4952>`_
      - Add retry client options to the grpc library in voltha-lib-go
-   * - `VOL-4983 <|jira-opencord|/VOL-4983>`_
+   * - `VOL-4983 <:jira-browse:/VOL-4983>`_
      - voltctl list device meters with traffic shaping info
-   * - `VOL-5043 <|jira-opencord|/VOL-5043>`_
+   * - `VOL-5043 <:jira-browse:/VOL-5043>`_
      - Enhance DMI interface to have CPU/Mem/Disk usage alarms and also NTP synch alarms
-   * - `VOL-4444 <|jira-opencord|/VOL-4444>`_
+   * - `VOL-4444 <:jira-browse:/VOL-4444>`_
      - VOL-4340 Create API for profile in voltha rw-core for profile operations
-   * - `VOL-4436 <|jira-opencord|/VOL-4436>`_
+   * - `VOL-4436 <:jira-browse:/VOL-4436>`_
      - VOL-4340 Create proto files for sip profile and voip service
-   * - `VOL-5046 <|jira-opencord|/VOL-5046>`_
+   * - `VOL-5046 <:jira-browse:/VOL-5046>`_
      - Reuse grpc clinet connection in grpc clinet lib
-   * - `VOL-4972 <|jira-opencord|/VOL-4972>`_
+   * - `VOL-4972 <:jira-browse:/VOL-4972>`_
      - Changes in openolt adapter to reconcile onu device and pon states
-   * - `VOL-4953 <|jira-opencord|/VOL-4953>`_
+   * - `VOL-4953 <:jira-browse:/VOL-4953>`_
      - Retry for grpc towards core in openolt adapter
-   * - `VOL-5216 <|jira-opencord|/VOL-5216>`_
+   * - `VOL-5216 <:jira-browse:/VOL-5216>`_
      - Handle transition in core during device reboot
-   * - `VOL-5197 <|jira-opencord|/VOL-5197>`_
+   * - `VOL-5197 <:jira-browse:/VOL-5197>`_
      - In DMI add QSFP-DD as a form factor for the TransceiverAttributes
-   * - `VOL-4950 <|jira-opencord|/VOL-4950>`_
+   * - `VOL-4950 <:jira-browse:/VOL-4950>`_
      - Move the component_uuid from EventsConfigurationRequest to EventCfg of DMI interface
-   * - `VOL-5241 <|jira-opencord|/VOL-5241>`_
+   * - `VOL-5241 <:jira-browse:/VOL-5241>`_
      - Add Zyxel to ONU Vendor list
-   * - `VOL-5233 <|jira-opencord|/VOL-5233>`_
+   * - `VOL-5233 <:jira-browse:/VOL-5233>`_
      - VOL-5206 Change "ONU_DYING_GASP_EVENT" check to "ONU_DYING_GASP_RAISE_EVENT" in Alarm tests
 
 Bug Fixes
@@ -71,57 +71,57 @@
      - Description
    * -
      -
-   * - `VOL-4926 <|jira-opencord|/VOL-4926>`_
+   * - `VOL-4926 <:jira-browse:/VOL-4926>`_
      - VOL-4836 kail - godownloader.sh no longer available: alternative needed
-   * - `VOL-4934 <|jira-opencord|/VOL-4934>`_
+   * - `VOL-4934 <:jira-browse:/VOL-4934>`_
      - omci-lib-go: MIC (AES-128) calculation does not properly support the Extended Message Set
-   * - `VOL-4927 <|jira-opencord|/VOL-4927>`_
+   * - `VOL-4927 <:jira-browse:/VOL-4927>`_
      - omci-lib-go: ONT-G ME alarms are not supposed
-   * - `VOL-4929 <|jira-opencord|/VOL-4929>`_
+   * - `VOL-4929 <:jira-browse:/VOL-4929>`_
      - openonuAdapterGo - memory leak seen in long term tests
-   * - `VOL-4931 <|jira-opencord|/VOL-4931>`_
+   * - `VOL-4931 <:jira-browse:/VOL-4931>`_
      - openoltAdapter: memory leak seen in long term tests
-   * - `VOL-4984 <|jira-opencord|/VOL-4984>`_
+   * - `VOL-4984 <:jira-browse:/VOL-4984>`_
      - voltctl log level list does not display the component open-flow-agent
-   * - `VOL-5105 <|jira-opencord|/VOL-5105>`_
+   * - `VOL-5105 <:jira-browse:/VOL-5105>`_
      - cli label missing for pon ports in BBSIM
-   * - `VOL-5193 <|jira-opencord|/VOL-5193>`_
+   * - `VOL-5193 <:jira-browse:/VOL-5193>`_
      - OpenOnuAdapterGo: MIB sync handling fails , when the MIB template has NULL terminated strings.
-   * - `VOL-5187 <|jira-opencord|/VOL-5187>`_
+   * - `VOL-5187 <:jira-browse:/VOL-5187>`_
      - openolt adaptor should not set discovery in progress for a given onu in case the particular discovery request fails
-   * - `VOL-5165 <|jira-opencord|/VOL-5165>`_
+   * - `VOL-5165 <:jira-browse:/VOL-5165>`_
      - Openoltagent getting crashed when ONT is rebooted
-   * - `VOL-5172 <|jira-opencord|/VOL-5172>`_
+   * - `VOL-5172 <:jira-browse:/VOL-5172>`_
      - Olt adaptor trying to add flows to the devices even when the parent olt is not up
-   * - `VOL-5104 <|jira-opencord|/VOL-5104>`_
+   * - `VOL-5104 <:jira-browse:/VOL-5104>`_
      - BBSIM crashed when adding flows
-   * - `VOL-4993 <|jira-opencord|/VOL-4993>`_
+   * - `VOL-4993 <:jira-browse:/VOL-4993>`_
      - Upon OLT reboot, OLT's OPERSTATUS is observed as "rebooted" and no ONTs are discovered
-   * - `VOL-4798 <|jira-opencord|/VOL-4798>`_
+   * - `VOL-4798 <:jira-browse:/VOL-4798>`_
      - voltctl - log configuration for multiple stacks doesn't work
-   * - `VOL-5212 <|jira-opencord|/VOL-5212>`_
+   * - `VOL-5212 <:jira-browse:/VOL-5212>`_
      - Unable to fetch PON RX power for all the ONTs on a PON port.
-   * - `VOL-5215 <|jira-opencord|/VOL-5215>`_
+   * - `VOL-5215 <:jira-browse:/VOL-5215>`_
      - After rebooting ONUs the BBSIM OLT is crashing
-   * - `VOL-5208 <|jira-opencord|/VOL-5208>`_
+   * - `VOL-5208 <:jira-browse:/VOL-5208>`_
      - onu adapter will go into race and crash if delete-device and delete gemport from olt adapter happens at once
-   * - `VOL-5210 <|jira-opencord|/VOL-5210>`_
+   * - `VOL-5210 <:jira-browse:/VOL-5210>`_
      - Open onu adapter crashes when processing requests and device is deleted
-   * - `VOL-5107 <|jira-opencord|/VOL-5107>`_
+   * - `VOL-5107 <:jira-browse:/VOL-5107>`_
      - forced crash during child device detected may result in duplicate device
-   * - `VOL-5219 <|jira-opencord|/VOL-5219>`_
+   * - `VOL-5219 <:jira-browse:/VOL-5219>`_
      - in case voltha core goes down before it gets a chance to fire reconcile to the adaptors it should retrigger the reconcile process once it comes back up
-   * - `VOL-5175 <|jira-opencord|/VOL-5175>`_
+   * - `VOL-5175 <:jira-browse:/VOL-5175>`_
      - OLT device ports list in ONOS is empty after rebooting the OLT
-   * - `VOL-5195 <|jira-opencord|/VOL-5195>`_
+   * - `VOL-5195 <:jira-browse:/VOL-5195>`_
      - Missing ANI-G Signal Fail and Signal Degrade alarm notification
-   * - `VOL-5209 <|jira-opencord|/VOL-5209>`_
+   * - `VOL-5209 <:jira-browse:/VOL-5209>`_
      - Open onu adapter crashes during delete device
-   * - `VOL-5249 <|jira-opencord|/VOL-5249>`_
+   * - `VOL-5249 <:jira-browse:/VOL-5249>`_
      - error loading onos image in voltha-onos-sanity_test
-   * - `VOL-5236 <|jira-opencord|/VOL-5236>`_
+   * - `VOL-5236 <:jira-browse:/VOL-5236>`_
      - onu adapter should gracefully reset vlan config fsm on onu down
-   * - `VOL-5223 <|jira-opencord|/VOL-5223>`_
+   * - `VOL-5223 <:jira-browse:/VOL-5223>`_
      - OpenOnuAdapterGo: Alarm Mgr has to handle unconfigured MEs responses from ONT during Alarm Audit.
 
 
@@ -134,7 +134,7 @@
 
    * - Jira
      - Description
-   * - `VOL-4829 <|jira-opencord|/VOL-4829>`_
+   * - `VOL-4829 <:jira-browse:/VOL-4829>`_
      - openonuAdapterGo: Robustness - Test of reconciling openonu-adapter with continuous traffic at real HW
 
 
@@ -240,92 +240,92 @@
      -
      -
    * - `aaa <https://gerrit.opencord.org/gitweb?p=aaa.git;a=summary>`_
-     - `2.11.0 <https://mvnrepository.com/artifact/org.opencord/aaa/2.11.0>`__
-     - `X <|mvn-aaa|-api/2.11.0>`__
-     - `X <|mvn-api|-api/2.11.0>`__
-     - `X <|mvn-api|/2.11.0>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/aaa/+/refs/tags/2.11.0>`__
-     - `X <https://github.com/opencord/aaa/releases/tag/2.11.0>`__
+     - `2.11.0 <:mvn-cord:aaai/2.11.0>`__
+     - `X <:mvn-cord:aaa-api/2.11.0>`__
+     - `X <:mvn-cord:aaa-app/2.11.0>`__
+     - `X <:mvn-cord:aaa/2.11.0>`__
+     - `X <:vol-ger:/aaa/+/refs/tags/2.11.0>`__
+     - `X <:vol-git:/aaa/releases/tag/2.11.0>`__
      -
    * - `bng <https://gerrit.opencord.org/gitweb?p=bng.git;a=summary>`__
-     - `2.5.1 <https://mvnrepository.com/artifact/org.opencord/bng/2.5.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/bng-api/2.5.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/bng-app/2.5.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/bng/2.5.1>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/bng/+/refs/tags/2.5.1>`__
-     - `X <https://github.com/opencord/bng/releases/tag/2.5.1>`__
+     - `2.5.1 <:mvn-cord:/bng/2.5.1>`__
+     - `X <:mvn-cord:/bng-api/2.5.1>`__
+     - `X <:mvn-cord:/bng-app/2.5.1>`__
+     - `X <:mvn-cord:/bng/2.5.1>`__
+     - `X <:vol-ger:/bng/+/refs/tags/2.5.1>`__
+     - `X <:vol-git:/bng/releases/tag/2.5.1>`__
      -
    * - `dhcpl2relay <https://gerrit.opencord.org/gitweb?p=dhcpl2relay.git;a=summary>`__
-     - `2.11.0 <https://mvnrepository.com/artifact/org.opencord/dhcpl2relay/2.11.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/dhcpl2relay-api/2.11.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/dhcpl2relay-app/2.11.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/dhcpl2relay>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/dhcpl2relay/+/refs/tags/2.11.0>`__
-     - `X <https://github.com/opencord/dhcpl2relay/releases/tag/2.11.0>`__
+     - `2.11.0 <:mvn-cord:/dhcpl2relay/2.11.0>`__
+     - `X <:mvn-cord:/dhcpl2relay-api/2.11.0>`__
+     - `X <:mvn-cord:/dhcpl2relay-app/2.11.0>`__
+     - `X <:mvn-cord:/dhcpl2relay>`__
+     - `X <:vol-ger:/dhcpl2relay/+/refs/tags/2.11.0>`__
+     - `X <:vol-git:/dhcpl2relay/releases/tag/2.11.0>`__
      -
    * - `igmpproxy <https://gerrit.opencord.org/gitweb?p=igmpproxy.git;a=summary>`__
-     - `2.9.0 <https://mvnrepository.com/artifact/org.opencord/onos-app-igmpproxy/2.9.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/onos-app-igmpproxy-api/2.9.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/onos-app-igmpproxy-app/2.9.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/onos-app-igmpproxy/2.9.0>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/igmpproxy/+/refs/tags/2.9.0>`__
-     - `X <https://github.com/opencord/igmpproxy/releases/tag/2.9.0>`__
+     - `2.9.0 <:mvn-cord:/onos-app-igmpproxy/2.9.0>`__
+     - `X <:mvn-cord:/onos-app-igmpproxy-api/2.9.0>`__
+     - `X <:mvn-cord:/onos-app-igmpproxy-app/2.9.0>`__
+     - `X <:mvn-cord:/onos-app-igmpproxy/2.9.0>`__
+     - `X <:vol-ger:/igmpproxy/+/refs/tags/2.9.0>`__
+     - `X <:vol-git:/igmpproxy/releases/tag/2.9.0>`__
      -
    * - `kafka <https://gerrit.opencord.org/gitweb?p=kafka-onos.git;a=summary>`__
-     - `2.13.2 <https://mvnrepository.com/artifact/org.opencord/kafka/2.13.2>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/kafka-api/2.13.2>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/kafka-app/2.13.2>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/kafka/2.13.2>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/kafka-onos/+/refs/tags/2.13.2>`__
-     - `X <https://github.com/opencord/kafka-onos/releases/tag/2.13.2>`__
+     - `2.13.2 <:mvn-cord:/kafka/2.13.2>`__
+     - `X <:mvn-cord:/kafka-api/2.13.2>`__
+     - `X <:mvn-cord:/kafka-app/2.13.2>`__
+     - `X <:mvn-cord:/kafka/2.13.2>`__
+     - `X <:vol-ger:/kafka-onos/+/refs/tags/2.13.2>`__
+     - `X <:vol-git:/kafka-onos/releases/tag/2.13.2>`__
      - ``N``
-   * - `maclearner <https://gerrit.opencord.org/plugins/gitiles/mac-learning>`__
-     - `1.2.3 <https://mvnrepository.com/artifact/org.opencord/maclearner/1.2.3>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/maclearner-api/1.2.3>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/maclearner-app/1.2.3>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/maclearner>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/mac-learning/+/refs/tags/1.2.3>`__
-     - `X <https://github.com/opencord/mac-learning/releases/tag/1.2.3>`__, `T <https://github.com/opencord/mac-learning/tree/1.2.3>`__
+   * - `maclearner <:vol-ger:/mac-learning>`__
+     - `1.2.3 <:mvn-cord:/maclearner/1.2.3>`__
+     - `X <:mvn-cord:/maclearner-api/1.2.3>`__
+     - `X <:mvn-cord:/maclearner-app/1.2.3>`__
+     - `X <:mvn-cord:/maclearner>`__
+     - `X <:vol-ger:/mac-learning/+/refs/tags/1.2.3>`__
+     - `X <:vol-git:/mac-learning/releases/tag/1.2.3>`__, `T <:vol-git:/mac-learning/tree/1.2.3>`__
      -
    * - `mcast <https://gerrit.opencord.org/gitweb?p=mcast.git;a=summary>`__
-     - `2.9.1 <https://mvnrepository.com/artifact/org.opencord/mcast/2.9.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/mcast-api/2.9.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/mcast-app/2.9.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/mcast/2.9.1>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/mcast/+/refs/tags/2.9.1>`__
-     - `X <https://github.com/opencord/mcast/releases/tag/2.9.1>`__, `T <https://github.com/opencord/mcast/tree/2.9.1>`__
+     - `2.9.1 <:mvn-cord:/mcast/2.9.1>`__
+     - `X <:mvn-cord:/mcast-api/2.9.1>`__
+     - `X <:mvn-cord:/mcast-app/2.9.1>`__
+     - `X <:mvn-cord:/mcast/2.9.1>`__
+     - `X <:vol-ger:/mcast/+/refs/tags/2.9.1>`__
+     - `X <:vol-git:/mcast/releases/tag/2.9.1>`__, `T <:vol-git:/mcast/tree/2.9.1>`__
      -
    * - `olt <https://gerrit.opencord.org/gitweb?p=olt.git;a=summary>`__
-     - `5.2.6 <https://mvnrepository.com/artifact/org.opencord/olt/5.2.6>`__
-     - `X <|mvn-olt|-api/5.2.6>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/olt-app/5.2.6>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/olt/5.2.6>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/olt/+/refs/tags/5.2.6>`__
-     - `X <https://github.com/opencord/olt/releases/tag/5.2.6>`__
+     - `5.2.6 <:mvn-cord:/olt/5.2.6>`__
+     - `X <:mvn-cord:/olt-api/5.2.6>`__
+     - `X <:mvn-cord:/olt-app/5.2.6>`__
+     - `X <:mvn-cord:/olt/5.2.6>`__
+     - `X <:vol-ger:/olt/+/refs/tags/5.2.6>`__
+     - `X <:vol-git:/olt/releases/tag/5.2.6>`__
      -
-   * - `olttopology <https://gerrit.opencord.org/plugins/gitiles/olttopology/>`__
-     - `1.3.1 <https://mvnrepository.com/artifact/org.opencord/olttopology/1.3.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/olttopology-api/1.3.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/olttopology-app/1.3.1>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/olttopology>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/olttopology/+/refs/tags/1.3.1>`__
-     - `X <https://github.com/opencord/olttopology/releases/tag/1.3.1>`__
+   * - `olttopology <:vol-ger:/olttopology/>`__
+     - `1.3.1 <:mvn-cord:/olttopology/1.3.1>`__
+     - `X <:mvn-cord:/olttopology-api/1.3.1>`__
+     - `X <:mvn-cord:/olttopology-app/1.3.1>`__
+     - `X <:mvn-cord:/olttopology>`__
+     - `X <:vol-ger:/olttopology/+/refs/tags/1.3.1>`__
+     - `X <:vol-git:/olttopology/releases/tag/1.3.1>`__
      -
-   * - `pppoeagent <https://gerrit.opencord.org/plugins/gitiles/pppoeagent/>`__
-     - `1.3.0 <https://mvnrepository.com/artifact/org.opencord/pppoeagent/1.3.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/pppoeagent-api/1.3.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/pppoeagent-app/1.3.0>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/pppoeagent>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/pppoeagent/+/refs/tags/1.3.0>`__
-     - `X <https://github.com/opencord/pppoeagent/releases/tag/1.3.0>`__
+   * - `pppoeagent <:vol-ger:/pppoeagent/>`__
+     - `1.3.0 <:mvn-cord:/pppoeagent/1.3.0>`__
+     - `X <:mvn-cord:/pppoeagent-api/1.3.0>`__
+     - `X <:mvn-cord:/pppoeagent-app/1.3.0>`__
+     - `X <:mvn-cord:/pppoeagent>`__
+     - `X <:vol-ger:/pppoeagent/+/refs/tags/1.3.0>`__
+     - `X <:vol-git:/pppoeagent/releases/tag/1.3.0>`__
      -
    * - `sadis <https://gerrit.opencord.org/gitweb?p=sadis.git;a=summary>`__
-     - `5.12.2 <https://mvnrepository.com/artifact/org.opencord/sadis/5.12.2>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/sadis-api/5.12.2>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/sadis-app/5.12.2>`__
-     - `X <https://mvnrepository.com/artifact/org.opencord/sadis>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/sadis/+/refs/tags/5.12.2>`__
-     - `X <https://github.com/opencord/sadis/releases/tag/5.12.2>`__
+     - `5.12.2 <:mvn-cord:/sadis/5.12.2>`__
+     - `X <:mvn-cord:/sadis-api/5.12.2>`__
+     - `X <:mvn-cord:/sadis-app/5.12.2>`__
+     - `X <:mvn-cord:/sadis>`__
+     - `X <:vol-ger:/sadis/+/refs/tags/5.12.2>`__
+     - `X <:vol-git:/sadis/releases/tag/5.12.2>`__
      -
 
 - See Also
@@ -343,9 +343,9 @@
 
    * - Component
      - VOLTHA
-     - `Chart.yaml <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master>`_
+     - `Chart.yaml <:vol-ger:/voltha-helm-charts/+/refs/heads/master>`_
      - `Gerrit <https://gerrit.opencord.org/admin/repos>`_
-     - `Github <https://github.com/opencord>`_
+     - `Github <:vol-git:>`_
      - `Docker <https://hub.docker.com/search?q=voltha>`_
      - `Golang <https://pkg.go.dev>`_
      - `Pypi <https://pypi.org>`_
@@ -369,28 +369,28 @@
      -
      -
    * - `ofagent-go <https://gerrit.opencord.org/gitweb?p=ofagent-go.git;a=tree>`_
-     - `2.2.1 <https://gerrit.opencord.org/plugins/gitiles/ofagent-go/+/refs/heads/voltha-2.12/VERSION>`_
+     - `2.2.1 <:vol-ger:/ofagent-go/+/refs/heads/voltha-2.12/VERSION>`_
      - ``N/A``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/ofagent-go/+/refs/tags/v2.2.1>`__
-     - `X <https://github.com/opencord/ofagent-go/releases/tag/v2.2.1>`__
+     - `X <:vol-ger:/ofagent-go/+/refs/tags/v2.2.1>`__
+     - `X <:vol-git:/ofagent-go/releases/tag/v2.2.1>`__
      - `1.1.4(stale) <https://hub.docker.com/layers/voltha/ofagent-go/1.1.4/images/sha256-8231111b69c8643c4981d64abff0a85d71f80763bb98632bb101e92b89882647?context=explore>`_
      - `1.6.5(stale) <https://pkg.go.dev/github.com/opencord/ofagent-go/cmd/ofagent>`_
      -
      -
    * - `voltha-go <https://gerrit.opencord.org/gitweb?p=voltha-go.git;a=tree>`_
-     - `3.5.4 <https://gerrit.opencord.org/plugins/gitiles/voltha-go/+/refs/heads/voltha-2.12/VERSION>`_
+     - `3.5.4 <:vol-ger:/voltha-go/+/refs/heads/voltha-2.12/VERSION>`_
      - ``N/A``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-go/+/refs/tags/v3.5.4>`__
-     - `X <https://github.com/opencord/voltha-go/releases/tag/v3.5.4>`__
+     - `X <:vol-ger:/voltha-go/+/refs/tags/v3.5.4>`__
+     - `X <:vol-git:/voltha-go/releases/tag/v3.5.4>`__
      - ``N/A``
      - ``v7:?``
      -
      -
-   * - `voltha-lib-go <https://gerrit.opencord.org/plugins/gitiles/voltha-lib-go>`_
-     - `7.5.3 <https://gerrit.opencord.org/plugins/gitiles/voltha-lib-go/+/refs/heads/master/VERSION>`_
+   * - `voltha-lib-go <:vol-ger:/voltha-lib-go>`_
+     - `7.5.3 <:vol-ger:/voltha-lib-go/+/refs/heads/master/VERSION>`_
      - ``N/A``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-lib-go/+/refs/tags/v7.5.3>`__
-     - `X <https://github.com/opencord/voltha-lib-go/releases/tag/v7.5.3>`__
+     - `X <:vol-ger:/voltha-lib-go/+/refs/tags/v7.5.3>`__
+     - `X <:vol-git:/voltha-lib-go/releases/tag/v7.5.3>`__
      - ``?``
      - `v7 <https://pkg.go.dev/github.com/opencord/voltha-lib-go/v7@v7.5.3>`__
      - ``?``
@@ -398,44 +398,44 @@
    * - `voltha-onos <https://gerrit.opencord.org/gitweb?p=voltha-onos.git;a=tree>`_
      - ``5.1.10``
      - ``0.1.27``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-onos/+/refs/tags/5.1.10>`__
-     - `X <https://github.com/opencord/voltha-onos/releases/tag/5.1.10>`__
+     - `X <:vol-ger:/voltha-onos/+/refs/tags/5.1.10>`__
+     - `X <:vol-git:/voltha-onos/releases/tag/5.1.10>`__
      - `X <https://hub.docker.com/layers/voltha/voltha-onos/5.1.10/images/sha256-d2498af38194a1cd01a1b9072a58af8647ed50fea2dbc9bd3ac4d4e4b583d72a?context=explore>`__
      -
      -
      - ``N``
    * - `voltha-openolt-adapter <https://gerrit.opencord.org/gitweb?p=voltha-openolt-adapter.git;a=tree>`_
-     - `4.4.11 <https://gerrit.opencord.org/plugins/gitiles/voltha-openolt-adapter/+/refs/heads/voltha-2.12/VERSION>`_
-     - `2.12.6 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master/voltha-adapter-openolt/Chart.yaml#20>`_
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-openolt-adapter/+/refs/tags/v4.4.11>`__
-     - `X <https://github.com/opencord/voltha-openolt-adapter/releases/tag/v4.4.11>`__
+     - `4.4.11 <:vol-ger:/voltha-openolt-adapter/+/refs/heads/voltha-2.12/VERSION>`_
+     - `2.12.6 <:vol-ger:/voltha-helm-charts/+/refs/heads/master/voltha-adapter-openolt/Chart.yaml#20>`_
+     - `X <:vol-ger:/voltha-openolt-adapter/+/refs/tags/v4.4.11>`__
+     - `X <:vol-git:/voltha-openolt-adapter/releases/tag/v4.4.11>`__
      - `X <https://hub.docker.com/layers/voltha/voltha-openolt-adapter/4.4.11/images/sha256-eed64f687f6029f4cbf531162a10d5e496ea454878987ec0212cd5dbf4c6d9cf?context=explore>`__
      - ``N/A``
      - ``N/A``
      -
    * - `voltha-openonu-adapter-go <https://gerrit.opencord.org/gitweb?p=voltha-openonu-adapter-go.git;a=tree>`_
-     - `2.11.12 <https://gerrit.opencord.org/plugins/gitiles/voltha-openonu-adapter-go/+/refs/heads/voltha-2.12/VERSION>`_
-     - `2.12.2 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master/voltha-adapter-openonu/Chart.yaml#17>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-openonu-adapter-go/+/refs/tags/v2.11.12>`__
-     - `X <https://github.com/opencord/voltha-openonu-adapter-go/releases/tag/v2.11.12>`__
+     - `2.11.12 <:vol-ger:/voltha-openonu-adapter-go/+/refs/heads/voltha-2.12/VERSION>`_
+     - `2.12.2 <:vol-ger:/voltha-helm-charts/+/refs/heads/master/voltha-adapter-openonu/Chart.yaml#17>`__
+     - `X <:vol-ger:/voltha-openonu-adapter-go/+/refs/tags/v2.11.12>`__
+     - `X <:vol-git:/voltha-openonu-adapter-go/releases/tag/v2.11.12>`__
      - `X <https://hub.docker.com/layers/voltha/voltha-openonu-adapter-go/2.11.12/images/sha256-e9484a8963d08748af5766a6a8ce7f7485efb384488bcf93840ecc1142d7ad74?context=explore>`__
      - `stale <https://pkg.go.dev/github.com/opencord/voltha-openonu-adapter-go>`_
      - ``N/A``
      -
-   * - `voltha-protos <https://gerrit.opencord.org/plugins/gitiles/voltha-protos>`_
-     - `5.4.11 <https://gerrit.opencord.org/plugins/gitiles/voltha-protos/+/refs/heads/voltha-2.12/VERSION>`_
+   * - `voltha-protos <:vol-ger:/voltha-protos>`_
+     - `5.4.11 <:vol-ger:/voltha-protos/+/refs/heads/voltha-2.12/VERSION>`_
      - ``N/A``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-protos/+/refs/tags/v5.4.11>`__
-     - `X <https://github.com/opencord/voltha-protos/releases/tag/v5.4.11>`__
+     - `X <:vol-ger:/voltha-protos/+/refs/tags/v5.4.11>`__
+     - `X <:vol-git:/voltha-protos/releases/tag/v5.4.11>`__
      - `stale <https://hub.docker.com/r/voltha/voltha-protos/tags>`__
      - `stale <https://pkg.go.dev/github.com/opencord/voltha-protos>`__
      - `5.4.11 <https://pypi.org/project/voltha-protos/5.4.11>`__
      -
-   * - `voltha-system-tests <https://github.com/opencord/voltha-system-tests/releases/tag/2.9.0>`__
+   * - `voltha-system-tests <:vol-git:/voltha-system-tests/releases/tag/2.9.0>`__
      - ``2.12.13``
      -
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-system-tests/+/refs/tags/2.12.13>`__
-     - `X <https://github.com/opencord/voltha-system-tests/tree/2.12.13>`__
+     - `X <:vol-ger:/voltha-system-tests/+/refs/tags/2.12.13>`__
+     - `X <:vol-git:/voltha-system-tests/tree/2.12.13>`__
      -
      -
      -
@@ -465,9 +465,9 @@
 
    * - Component
      - VOLTHA
-     - `Chart.yaml <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master>`_
+     - `Chart.yaml <:vol-ger:/voltha-helm-charts/+/refs/heads/master>`_
      - `Gerrit <https://gerrit.opencord.org/admin/repos>`_
-     - `Github <https://github.com/opencord>`_
+     - `Github <:vol-git:>`_
      - `Docker <https://hub.docker.com/search?q=voltha>`_
      - `Golang <https://pkg.go.dev>`_
      - `Pypi <https://pypi.org>`_
@@ -490,38 +490,38 @@
      -
      -
      -
-   * - `voltha-docs <https://gerrit.opencord.org/plugins/gitiles/voltha-docs>`_ , `docs.voltha.org <https://docs.voltha.org>`_
+   * - `voltha-docs <:vol-ger:/voltha-docs>`_ , `docs.voltha.org <https://docs.voltha.org>`_
      - ``2.12.25``
      - ``N/A``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltha-docs/+/refs/tags/2.12.25>`__
-     - `X <https://github.com/opencord/voltha-docs/releases/tag/2.12.25>`__
+     - `X <:vol-ger:/voltha-docs/+/refs/tags/2.12.25>`__
+     - `X <:vol-git:/voltha-docs/releases/tag/2.12.25>`__
      -
      -
      -
      - ``N``
    * - `bbsim <https://gerrit.opencord.org/gitweb?p=bbsim.git;a=tree>`__
      - ``1.16.3+``
-     - ``4.8.6`` `chart <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/voltha-2.12/bbsim/Chart.yaml>`__
-     - `X <https://gerrit.opencord.org/plugins/gitiles/bbsim>`__
-     - `X <https://github.com/opencord/bbsim/tree/v1.14.4>`__
+     - ``4.8.6`` `chart <:vol-ger:/voltha-helm-charts/+/refs/heads/voltha-2.12/bbsim/Chart.yaml>`__
+     - `X <:vol-ger:/bbsim>`__
+     - `X <:vol-git:/bbsim/tree/v1.14.4>`__
      - `X <https://hub.docker.com/layers/voltha/bbsim/1.14.4/images/sha256-c23de193c1d7cf8d32c48edfbec4bfa6c47dbeecd4b31d040da0255eeab2ec58?context=explore>`__
      - ``?``
      - ``?``
      - ``N``
    * - `Bbsim-sadis-server <https://gerrit.opencord.org/gitweb?p=bbsim-sadis-server.git;a=tree>`__
-     - `0.3.6 <https://gerrit.opencord.org/plugins/gitiles/bbsim-sadis-server/+/refs/heads/voltha-2.12/VERSION>`_
-     - `0.3.3 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/voltha-2.12/voltha-infra/Chart.yaml#45>`_
-     - `X <https://gerrit.opencord.org/plugins/gitiles/bbsim-sadis-server/+/refs/tags/v0.3.6/VERSION>`__
-     - `X <https://github.com/opencord/bbsim-sadis-server/releases/tag/v0.3.6>`__
+     - `0.3.6 <:vol-ger:/bbsim-sadis-server/+/refs/heads/voltha-2.12/VERSION>`_
+     - `0.3.3 <:vol-ger:/voltha-helm-charts/+/refs/heads/voltha-2.12/voltha-infra/Chart.yaml#45>`_
+     - `X <:vol-ger:/bbsim-sadis-server/+/refs/tags/v0.3.6/VERSION>`__
+     - `X <:vol-git:/bbsim-sadis-server/releases/tag/v0.3.6>`__
      - `X <https://hub.docker.com/layers/voltha/bbsim-sadis-server/0.3.6/images/sha256-0ea9df1be13f8b1d0a8314cbf0e0800e4a4b7e2920ae3ce5e119abddb9359350?context=explore>`__
      -
      -
      - ``N``
    * - `voltctl <https://gerrit.opencord.org/gitweb?p=voltctl.git;a=tree>`_
-     - `1.10.2 <https://gerrit.opencord.org/plugins/gitiles/voltctl/+/refs/heads/voltha-2.12/VERSION>`_
+     - `1.10.2 <:vol-ger:/voltctl/+/refs/heads/voltha-2.12/VERSION>`_
      - ``N/A``
-     - `X <https://gerrit.opencord.org/plugins/gitiles/voltctl/+/refs/tags/v1.10.2>`__
-     - `? <https://github.com/opencord/voltctl/releases/tag/v1.10.2>`_
+     - `X <:vol-ger:/voltctl/+/refs/tags/v1.10.2>`__
+     - `? <:vol-git:/voltctl/releases/tag/v1.10.2>`_
      - ``N/A``
      - `X <https://pkg.go.dev/github.com/opencord/voltctl@v1.10.2>`__
      - ``N/A``
@@ -543,13 +543,13 @@
    * -
      -
    * - Helm Charts (voltha-helm-charts)
-     - `3.3.0 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/voltha-2.12/VERSION>`_
+     - `3.3.0 <:vol-ger:/voltha-helm-charts/+/refs/heads/voltha-2.12/VERSION>`_
    * - Voltha
-     - `2.12.17 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master/voltha/Chart.yaml#20>`_
+     - `2.12.17 <:vol-ger:/voltha-helm-charts/+/refs/heads/master/voltha/Chart.yaml#20>`_
    * - Voltha-infra
-     - `2.12.6 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master/voltha-infra/Chart.yaml#37>`__
+     - `2.12.6 <:vol-ger:/voltha-helm-charts/+/refs/heads/master/voltha-infra/Chart.yaml#37>`__
    * - Voltha-stack
-     - `2.12.9 <https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts/+/refs/heads/master/voltha-stack/Chart.yaml#37>`_
+     - `2.12.9 <:vol-ger:/voltha-helm-charts/+/refs/heads/master/voltha-stack/Chart.yaml#37>`_
 
 BAL Version
 +++++++++++
@@ -653,8 +653,3 @@
   - `Wiki <https://wiki.opencord.org>`_
 
 |
-
-.. |jira-opencord|  replace:: replacement https://jira.opencord.org/browse
-.. |mvn-artifact|   replace:: replacement https://mvnrepository.com/artifact/org.opencord
-.. |mvn-aaa|        replace:: replacement https://mvnrepository.com/artifact/org.opencord/aaa
-.. |mvn-olt|        replace:: replacement |mvn-artifact|/olt
diff --git a/sphinx_conf/linkcheck_ignore.py b/sphinx_conf/linkcheck_ignore.py
index 3401c3d..0783de5 100644
--- a/sphinx_conf/linkcheck_ignore.py
+++ b/sphinx_conf/linkcheck_ignore.py
@@ -1,9 +1,24 @@
 # -*- coding: utf-8 -*-
-#
-# Configuration file for the Sphinx documentation builder.
-#
 # -----------------------------------------------------------------------
-
+# Copyright 2017-2024 Open Networking Foundation 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
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# -----------------------------------------------------------------------
+# SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent: Configuration file for the Sphinx documentation builder.
+# -----------------------------------------------------------------------
 
 # -- Options for linkcheck ---------------------------------------------------
 # The link checker strips off .md from links and then complains
@@ -23,6 +38,8 @@
         r'https://mvnrepository.com/artifact/org.mockito/mockito-all',
         r'https://mvnrepository.com/artifact/com.h3xstream.findsecbugs/findsecbugs-plugin',
         r'https://mvnrepository.com/artifact/com.github.spotbugs/spotbugs-maven-plugin',
+        r'\s+/release_notes/voltha-2.12\s+',
+        r'\s+/release_notes/voltha_2.12.rst',
     ]
 
 linkcheck_ignore.extend([
