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/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([
