diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ba0cef7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+venv-docs
+_build
+.vscode
+.env
+.DS_Store
diff --git a/Apache-2.0.txt b/Apache-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/Apache-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9f3cc5c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,60 @@
+# Makefile for Sphinx documentation
+
+# use bash for pushd/popd, and to fail quickly
+SHELL = bash -e -o pipefail
+
+# You can set these variables from the command line.
+SPHINXOPTS   ?= -W
+SPHINXBUILD  ?= sphinx-build
+SOURCEDIR    ?= .
+BUILDDIR     ?= _build
+
+# name of python virtualenv that is used to run commands
+VENV_NAME      := venv-docs
+
+.PHONY: help test lint doc8 reload Makefile prep
+
+# Put it first so that "make" without argument is like "make help".
+help: $(VENV_NAME)
+	source $</bin/activate ; set -u ;\
+  $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+# Create the virtualenv with all the tools installed
+$(VENV_NAME):
+	python3 -m venv $(VENV_NAME) ;\
+  source $@/bin/activate ;\
+  pip install -r requirements.txt
+
+# automatically reload changes in browser as they're made
+reload: $(VENV_NAME)
+	source $</bin/activate ; set -u ;\
+  sphinx-reload $(SOURCEDIR)
+
+# lint and link verification. linkcheck is part of sphinx
+test: lint spelling linkcheck
+
+lint: doc8
+
+doc8: $(VENV_NAME) | $(OTHER_REPO_DOCS)
+	source $</bin/activate ; set -u ;\
+  doc8 --max-line-length 119 \
+  $$(find . -name \*.rst ! -path "*venv*" ! -path "*vendor*" ! -path "*repos*" )
+
+# clean up
+clean:
+	rm -rf $(BUILDDIR)
+
+clean-all: clean
+	rm -rf $(VENV_NAME)
+
+# build multiple versions
+multiversion: $(VENV_NAME) Makefile | prep $(OTHER_REPO_DOCS)
+	source $</bin/activate ; set -u ;\
+  sphinx-multiversion "$(SOURCEDIR)" "$(BUILDDIR)/multiversion" $(SPHINXOPTS)
+	cp "$(SOURCEDIR)/_templates/meta_refresh.html" "$(BUILDDIR)/multiversion/index.html"
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: $(VENV_NAME) Makefile | $(OTHER_REPO_DOCS) $(STATIC_DOCS)
+	source $</bin/activate ; set -u ;\
+  $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..0d4d124
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+0.1.0-dev
diff --git a/_static/css/rtd_theme_mods.css b/_static/css/rtd_theme_mods.css
new file mode 100644
index 0000000..e449bde
--- /dev/null
+++ b/_static/css/rtd_theme_mods.css
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2019-present Open Networking Foundation
+ *
+ * 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.  */
+
+/* Don't restrict content width on the RTD theme
+ * from: https://stackoverflow.com/a/32898444 */
+
+.wy-nav-content {
+  max-width: none;
+}
+
+.wy-table-responsive table td, .wy-table-responsive table th {
+  white-space: normal;
+}
+
+.wy-side-nav-search {
+  background-color: #d9d9d9;
+}
+
+.wy-side-nav-search>div.version {
+  color: #404040;
+}
diff --git a/_static/fonts/Inconsolata-Bold.ttf b/_static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 0000000..9addc89
--- /dev/null
+++ b/_static/fonts/Inconsolata-Bold.ttf
Binary files differ
diff --git a/_static/fonts/Inconsolata-Regular.ttf b/_static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 0000000..592ccd2
--- /dev/null
+++ b/_static/fonts/Inconsolata-Regular.ttf
Binary files differ
diff --git a/_static/sdcore-favicon-128.png b/_static/sdcore-favicon-128.png
new file mode 100644
index 0000000..d70ff40
--- /dev/null
+++ b/_static/sdcore-favicon-128.png
Binary files differ
diff --git a/_static/sdcore.svg b/_static/sdcore.svg
new file mode 100644
index 0000000..87c422e
--- /dev/null
+++ b/_static/sdcore.svg
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   viewBox="0 0 637.784 212.39067"
+   height="212.39067"
+   width="637.784"
+   xml:space="preserve"
+   id="svg10"
+   version="1.1"><metadata
+     id="metadata16"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs14"><clipPath
+       id="clipPath26"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path24"
+         d="M 0,159.293 H 478.338 V 0 H 0 Z" /></clipPath><clipPath
+       id="clipPath42"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path40"
+         d="m 223.821,88.489 15.264,-9.686 16.554,9.382 -15.987,16.113 z" /></clipPath><clipPath
+       id="clipPath58"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path56"
+         d="M 0,159.293 H 478.338 V 0 H 0 Z" /></clipPath><clipPath
+       id="clipPath66"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path64"
+         d="m 254.53,119.008 v 0 0 z" /></clipPath><linearGradient
+       id="linearGradient162"
+       spreadMethod="pad"
+       gradientTransform="matrix(65.200195,0,0,-65.200195,83.998894,34.353432)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop156"
+         offset="0"
+         style="stop-opacity:1;stop-color:#1c407d" /><stop
+         id="stop158"
+         offset="0.72166213"
+         style="stop-opacity:1;stop-color:#047bc1" /><stop
+         id="stop160"
+         offset="1"
+         style="stop-opacity:1;stop-color:#047bc1" /></linearGradient><clipPath
+       id="clipPath172"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path170"
+         d="M 0,159.293 H 478.338 V 0 H 0 Z" /></clipPath><linearGradient
+       id="linearGradient202"
+       spreadMethod="pad"
+       gradientTransform="matrix(62.560059,0,0,-62.560059,332.23669,34.353432)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop194"
+         offset="0"
+         style="stop-opacity:1;stop-color:#0078ba" /><stop
+         id="stop196"
+         offset="0.121528"
+         style="stop-opacity:1;stop-color:#0078ba" /><stop
+         id="stop198"
+         offset="0.62908058"
+         style="stop-opacity:1;stop-color:#4fb2e0" /><stop
+         id="stop200"
+         offset="1"
+         style="stop-opacity:1;stop-color:#4fb2e0" /></linearGradient><clipPath
+       id="clipPath212"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path210"
+         d="M 0,159.293 H 478.338 V 0 H 0 Z" /></clipPath></defs><g
+     transform="matrix(1.3333333,0,0,-1.3333333,0,212.39067)"
+     id="g18"><g
+       id="g20"><g
+         clip-path="url(#clipPath26)"
+         id="g22"><g
+           transform="translate(239.7845,125.1674)"
+           id="g28"><path
+             id="path30"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -11.569,0 -20.948,-9.379 -20.948,-20.947 0,-11.57 9.379,-20.949 20.948,-20.949 11.569,0 20.947,9.379 20.947,20.949 C 20.947,-9.379 11.569,0 0,0 m 0,-6.225 c 8.118,0 14.723,-6.604 14.723,-14.722 0,-8.119 -6.605,-14.724 -14.723,-14.724 -8.119,0 -14.723,6.605 -14.723,14.724 0,8.118 6.604,14.722 14.723,14.722" /></g><g
+           transform="translate(239.849,114.768)"
+           id="g32"><path
+             id="path34"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -5.785,0 -10.474,-4.689 -10.474,-10.474 0,-5.784 4.689,-10.473 10.474,-10.473 5.784,0 10.474,4.689 10.474,10.473 C 10.474,-4.689 5.784,0 0,0 m 0,-4.149 c 3.487,0 6.324,-2.837 6.324,-6.325 0,-3.487 -2.837,-6.324 -6.324,-6.324 -3.487,0 -6.324,2.837 -6.324,6.324 0,3.488 2.837,6.325 6.324,6.325" /></g></g></g><g
+       id="g36"><g
+         clip-path="url(#clipPath42)"
+         id="g38"><g
+           transform="translate(239.7845,125.1674)"
+           id="g44"><path
+             id="path46"
+             style="fill:#a01e21;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -11.569,0 -20.948,-9.379 -20.948,-20.947 0,-11.57 9.379,-20.949 20.948,-20.949 11.569,0 20.947,9.379 20.947,20.949 C 20.947,-9.379 11.569,0 0,0 m 0,-6.225 c 8.118,0 14.723,-6.604 14.723,-14.722 0,-8.119 -6.605,-14.724 -14.723,-14.724 -8.119,0 -14.723,6.605 -14.723,14.724 0,8.118 6.604,14.722 14.723,14.722" /></g><g
+           transform="translate(239.849,114.768)"
+           id="g48"><path
+             id="path50"
+             style="fill:#c72127;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -5.785,0 -10.474,-4.689 -10.474,-10.474 0,-5.784 4.689,-10.473 10.474,-10.473 5.784,0 10.474,4.689 10.474,10.473 C 10.474,-4.689 5.784,0 0,0 m 0,-4.149 c 3.487,0 6.324,-2.837 6.324,-6.325 0,-3.487 -2.837,-6.324 -6.324,-6.324 -3.487,0 -6.324,2.837 -6.324,6.324 0,3.488 2.837,6.325 6.324,6.325" /></g></g></g><g
+       id="g52"><g
+         clip-path="url(#clipPath58)"
+         id="g54"><g
+           id="g60"><g
+             id="g62" /><g
+             id="g70"><g
+               id="g68"
+               opacity="0.5"
+               clip-path="url(#clipPath66)" /></g></g><g
+           transform="translate(242.9125,104.224)"
+           id="g72"><path
+             id="path74"
+             style="fill:#d34235;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c 0,-1.728 -1.4,-3.128 -3.128,-3.128 -1.727,0 -3.127,1.4 -3.127,3.128 0,1.727 1.4,3.127 3.127,3.127 C -1.4,3.127 0,1.727 0,0" /></g><g
+           transform="translate(268.0663,124.4662)"
+           id="g76"><path
+             id="path78"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C -2.067,-2.06 -5.413,-2.054 -7.474,0.014 -9.531,2.08 -9.525,5.426 -7.457,7.486 -5.393,9.547 -2.045,9.539 0.014,7.473 2.073,5.404 2.067,2.059 0,0" /></g><g
+           transform="translate(244.9613,138.6684)"
+           id="g80"><path
+             id="path82"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -0.008,-2.92 -2.375,-5.281 -5.294,-5.276 -2.919,0.005 -5.28,2.377 -5.274,5.295 0.004,2.919 2.373,5.279 5.294,5.274 C -2.358,5.287 0.005,2.916 0,0" /></g><g
+           transform="translate(218.579,132.3686)"
+           id="g84"><path
+             id="path86"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c 2.059,-2.066 2.055,-5.411 -0.012,-7.473 -2.069,-2.058 -5.414,-2.05 -7.475,0.015 -2.058,2.069 -2.052,5.413 0.016,7.473 C -5.404,2.075 -2.06,2.069 0,0" /></g><g
+           transform="translate(204.3763,109.2651)"
+           id="g88"><path
+             id="path90"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c 2.92,-0.008 5.282,-2.375 5.278,-5.294 -0.008,-2.92 -2.376,-5.282 -5.297,-5.274 -2.918,0.005 -5.279,2.374 -5.272,5.293 C -5.286,-2.356 -2.917,0.004 0,0" /></g><g
+           transform="translate(210.6747,82.8822)"
+           id="g92"><path
+             id="path94"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 2.07,2.059 5.415,2.054 7.475,-0.014 9.533,-2.081 9.527,-5.426 7.458,-7.487 5.392,-9.546 2.047,-9.541 -0.011,-7.472 -2.072,-5.404 -2.067,-2.061 0,0" /></g><g
+           transform="translate(233.7831,68.6811)"
+           id="g96"><path
+             id="path98"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 0.007,2.918 2.375,5.28 5.293,5.275 8.212,5.269 10.573,2.897 10.565,-0.02 10.561,-2.937 8.191,-5.3 5.273,-5.294 2.355,-5.287 -0.006,-2.918 0,0" /></g><g
+           transform="translate(260.163,74.977)"
+           id="g100"><path
+             id="path102"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C -2.059,2.072 -2.053,5.412 0.014,7.473 2.083,9.533 5.428,9.524 7.487,7.459 9.545,5.392 9.541,2.046 7.472,-0.015 5.406,-2.074 2.06,-2.066 0,0" /></g><g
+           transform="translate(278.0472,99.7778)"
+           id="g104"><path
+             id="path106"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C -2.07,-2.059 -5.411,-2.055 -7.471,0.012 -9.534,2.079 -9.524,5.425 -7.458,7.484 -5.391,9.545 -2.045,9.539 0.014,7.473 2.074,5.404 2.066,2.061 0,0" /></g><g
+           transform="translate(253.015,128.8481)"
+           id="g108"><path
+             id="path110"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C -1.033,-1.03 -2.706,-1.027 -3.736,0.008 -4.766,1.04 -4.764,2.715 -3.729,3.745 -2.696,4.773 -1.023,4.769 0.008,3.737 1.038,2.704 1.033,1.031 0,0" /></g><g
+           transform="translate(231.286,131.2074)"
+           id="g112"><path
+             id="path114"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -0.003,-1.459 -1.187,-2.641 -2.647,-2.638 -1.46,0.004 -2.641,1.189 -2.638,2.646 0.004,1.46 1.187,2.642 2.648,2.638 C -1.178,2.643 0.002,1.459 0,0" /></g><g
+           transform="translate(214.2508,117.5102)"
+           id="g116"><path
+             id="path118"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c 1.033,-1.033 1.029,-2.707 -0.006,-3.736 -1.033,-1.031 -2.705,-1.026 -3.735,0.006 -1.032,1.035 -1.027,2.708 0.008,3.736 C -2.701,1.036 -1.03,1.035 0,0" /></g><g
+           transform="translate(211.8924,95.7797)"
+           id="g120"><path
+             id="path122"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 1.461,-0.004 2.643,-1.189 2.637,-2.646 2.635,-4.106 1.45,-5.286 -0.01,-5.282 -1.468,-5.283 -2.65,-4.096 -2.645,-2.638 -2.642,-1.178 -1.46,0.002 0,0" /></g><g
+           transform="translate(225.5917,78.7455)"
+           id="g124"><path
+             id="path126"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 1.032,1.032 2.707,1.028 3.736,-0.007 4.765,-1.041 4.762,-2.713 3.729,-3.743 2.695,-4.772 1.021,-4.771 -0.008,-3.735 -1.039,-2.7 -1.036,-1.028 0,0" /></g><g
+           transform="translate(247.3226,76.3871)"
+           id="g128"><path
+             id="path130"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 0,1.459 1.185,2.642 2.645,2.639 4.105,2.633 5.283,1.448 5.282,-0.012 5.279,-1.469 4.095,-2.65 2.635,-2.645 1.176,-2.645 -0.005,-1.46 0,0" /></g><g
+           transform="translate(264.3549,90.0844)"
+           id="g132"><path
+             id="path134"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C -1.031,1.034 -1.028,2.708 0.005,3.736 1.041,4.765 2.712,4.763 3.742,3.729 4.771,2.696 4.77,1.022 3.733,-0.006 2.7,-1.036 1.029,-1.034 0,0" /></g><g
+           transform="translate(266.7118,111.8139)"
+           id="g136"><path
+             id="path138"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -1.458,0 -2.638,1.189 -2.636,2.646 0.004,1.459 1.187,2.641 2.647,2.637 1.46,0 2.639,-1.186 2.635,-2.644 C 2.646,1.178 1.462,-0.004 0,0" /></g><g
+           transform="translate(15.4388,31.3529)"
+           id="g140"><path
+             id="path142"
+             style="fill:#1d407d;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -1.28,0.561 -2.4,1.32 -3.36,2.28 -0.96,0.96 -1.72,2.08 -2.28,3.361 -0.56,1.28 -0.84,2.666 -0.84,4.16 0,1.492 0.28,2.88 0.84,4.16 0.56,1.279 1.32,2.399 2.28,3.359 0.96,0.96 2.08,1.72 3.36,2.281 1.28,0.559 2.667,0.839 4.16,0.839 h 48.56 c 1.066,0 1.972,-0.374 2.72,-1.12 0.746,-0.747 1.12,-1.653 1.12,-2.719 0,-1.068 -0.374,-1.974 -1.12,-2.72 -0.748,-0.748 -1.654,-1.12 -2.72,-1.12 L 4,12.761 C 3.2,12.761 2.493,12.48 1.88,11.921 1.266,11.36 0.96,10.653 0.96,9.801 0.96,9 1.266,8.307 1.88,7.721 2.493,7.133 3.2,6.841 4,6.841 h 44.24 c 1.492,0 2.892,-0.28 4.2,-0.841 1.306,-0.56 2.44,-1.319 3.4,-2.279 0.96,-0.96 1.72,-2.094 2.28,-3.401 0.56,-1.307 0.84,-2.707 0.84,-4.2 0,-1.493 -0.28,-2.88 -0.84,-4.159 -0.56,-1.28 -1.32,-2.4 -2.28,-3.36 -0.96,-0.96 -2.094,-1.708 -3.4,-2.241 -1.308,-0.533 -2.708,-0.799 -4.2,-0.799 H -0.24 c -1.068,0 -1.974,0.372 -2.72,1.12 -0.748,0.746 -1.12,1.652 -1.12,2.719 0,1.067 0.372,1.973 1.12,2.72 0.746,0.747 1.652,1.12 2.72,1.12 h 48.8 c 0.8,0 1.493,0.281 2.08,0.84 0.586,0.561 0.88,1.24 0.88,2.04 0,0.853 -0.294,1.573 -0.88,2.16 -0.587,0.587 -1.28,0.88 -2.08,0.88 H 4.16 C 2.667,-0.84 1.28,-0.56 0,0" /></g></g></g><g
+       id="g144"><g
+         id="g146"><g
+           id="g152"><g
+             id="g154"><path
+               id="path164"
+               style="fill:url(#linearGradient162);stroke:none"
+               d="m 87.839,51.793 c -1.067,0 -1.974,-0.373 -2.72,-1.119 v 0 c -0.748,-0.747 -1.12,-1.654 -1.12,-2.72 v 0 -27.201 c 0,-1.067 0.372,-1.974 1.12,-2.72 v 0 c 0.746,-0.748 1.653,-1.119 2.72,-1.119 v 0 h 47.44 c 2.186,0.106 4.133,0.705 5.84,1.8 v 0 c 1.707,1.092 3.16,2.466 4.36,4.119 v 0 c 1.2,1.652 2.12,3.493 2.76,5.52 v 0 c 0.64,2.027 0.96,4.026 0.96,6 v 0 c 0,2.026 -0.334,4.066 -1,6.12 v 0 c -0.667,2.053 -1.64,3.92 -2.92,5.601 v 0 c -1.28,1.679 -2.828,3.052 -4.64,4.12 v 0 c -1.814,1.066 -3.868,1.599 -6.16,1.599 v 0 z m 3.84,-7.68 h 41.12 c 1.812,0 3.306,-0.333 4.48,-0.999 v 0 c 1.172,-0.668 2.092,-1.481 2.76,-2.44 v 0 c 0.666,-0.961 1.12,-2.014 1.36,-3.161 v 0 c 0.24,-1.148 0.36,-2.199 0.36,-3.16 v 0 c 0,-0.96 -0.12,-2.013 -0.36,-3.159 v 0 c -0.24,-1.148 -0.694,-2.201 -1.36,-3.161 v 0 c -0.668,-0.959 -1.588,-1.774 -2.76,-2.44 v 0 c -1.174,-0.667 -2.668,-1 -4.48,-1 v 0 h -41.12 z" /></g></g></g></g><g
+       id="g166"><g
+         clip-path="url(#clipPath172)"
+         id="g168"><g
+           transform="translate(189.118,34.353)"
+           id="g174"><path
+             id="path176"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c 0,2.026 0.333,4.066 1,6.12 0.666,2.053 1.64,3.92 2.92,5.601 1.28,1.679 2.826,3.052 4.64,4.12 1.813,1.065 3.866,1.599 6.16,1.599 h 46.64 c 1.066,0 1.973,-0.374 2.72,-1.12 0.746,-0.747 1.12,-1.653 1.12,-2.719 0,-1.068 -0.374,-1.974 -1.12,-2.72 -0.747,-0.748 -1.654,-1.12 -2.72,-1.12 H 16.4 c -1.867,0 -3.374,-0.334 -4.52,-1 C 10.732,8.093 9.826,7.28 9.16,6.32 8.493,5.36 8.04,4.307 7.8,3.16 7.56,2.013 7.44,0.961 7.44,0 c 0,-0.96 0.12,-2.014 0.36,-3.159 0.24,-1.148 0.693,-2.2 1.36,-3.16 0.666,-0.96 1.572,-1.775 2.72,-2.441 1.146,-0.667 2.653,-1 4.52,-1 h 44.96 c 1.066,0 1.973,-0.373 2.72,-1.12 0.746,-0.747 1.12,-1.653 1.12,-2.72 0,-1.067 -0.374,-1.973 -1.12,-2.719 -0.747,-0.748 -1.654,-1.12 -2.72,-1.12 H 13.92 c -2.188,0 -4.134,0.532 -5.84,1.599 -1.707,1.067 -3.16,2.441 -4.36,4.12 -1.2,1.681 -2.12,3.561 -2.76,5.641 C 0.32,-4 0,-1.974 0,0" /></g><g
+           transform="translate(312.3177,25.5932)"
+           id="g178"><path
+             id="path180"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 1.172,0.666 2.092,1.48 2.76,2.44 3.426,3.4 3.88,4.453 4.12,5.601 4.36,6.746 4.48,7.8 4.48,8.76 c 0,0.961 -0.12,2.012 -0.36,3.16 -0.24,1.146 -0.694,2.2 -1.36,3.16 -0.668,0.96 -1.588,1.773 -2.76,2.441 -1.174,0.666 -2.667,1 -4.48,1 H -36.8 c -1.867,0 -3.374,-0.334 -4.52,-1 -1.148,-0.668 -2.054,-1.481 -2.72,-2.441 -0.668,-0.96 -1.12,-2.014 -1.36,-3.16 -0.24,-1.148 -0.36,-2.199 -0.36,-3.16 0,-0.96 0.12,-2.014 0.36,-3.159 0.24,-1.148 0.692,-2.201 1.36,-3.161 0.666,-0.96 1.572,-1.774 2.72,-2.44 1.146,-0.667 2.653,-1 4.52,-1 h 32.32 c 1.813,0 3.306,0.333 4.48,1 m 11.92,8.76 c 0,-2.028 -0.334,-4.068 -1,-6.119 C 10.252,0.587 9.28,-1.279 8,-2.96 6.72,-4.64 5.172,-6.014 3.36,-7.08 1.546,-8.147 -0.508,-8.68 -2.8,-8.68 h -36.48 c -2.188,0.107 -4.134,0.706 -5.84,1.8 -1.708,1.093 -3.16,2.467 -4.36,4.12 -1.2,1.653 -2.12,3.492 -2.76,5.52 -0.64,2.026 -0.96,4.026 -0.96,6 0,2.026 0.332,4.066 1,6.12 0.666,2.053 1.64,3.92 2.92,5.6 1.28,1.68 2.826,3.053 4.64,4.121 1.812,1.065 3.866,1.599 6.16,1.599 H -2 C 0.186,26.093 2.132,25.493 3.84,24.4 5.546,23.307 7,21.933 8.2,20.28 c 1.2,-1.653 2.12,-3.494 2.76,-5.52 0.64,-2.028 0.96,-4.028 0.96,-6" /></g></g></g><g
+       id="g182"><g
+         id="g184"><g
+           id="g190"><g
+             id="g192"><path
+               id="path204"
+               style="fill:url(#linearGradient202);stroke:none"
+               d="m 336.076,51.793 c -1.067,0 -1.974,-0.373 -2.72,-1.119 v 0 c -0.747,-0.747 -1.119,-1.654 -1.119,-2.72 v 0 c 0,-1.068 0.372,-1.974 1.119,-2.72 v 0 c 0.746,-0.748 1.653,-1.121 2.72,-1.121 v 0 h 48.241 c 0.799,0 1.506,-0.293 2.12,-0.879 v 0 c 0.612,-0.588 0.919,-1.28 0.919,-2.081 v 0 c 0,-0.854 -0.307,-1.56 -0.919,-2.119 v 0 c -0.614,-0.561 -1.321,-0.84 -2.12,-0.84 v 0 h -42.4 c -1.388,0 -2.667,-0.255 -3.84,-0.761 v 0 c -1.175,-0.507 -2.188,-1.199 -3.04,-2.08 v 0 c -0.854,-0.88 -1.534,-1.92 -2.041,-3.119 v 0 c -0.507,-1.2 -0.759,-2.468 -0.759,-3.801 v 0 -7.68 c 0,-1.067 0.372,-1.974 1.119,-2.72 v 0 c 0.746,-0.748 1.653,-1.119 2.72,-1.119 v 0 c 1.014,0 1.906,0.371 2.68,1.119 v 0 c 0.773,0.746 1.161,1.653 1.161,2.72 v 0 6.8 c 0,0.8 0.24,1.467 0.72,2 v 0 c 0.479,0.533 1.066,0.853 1.76,0.96 v 0 h 15.92 c 2.88,0 5.652,-0.348 8.32,-1.04 v 0 c 2.666,-0.694 5.239,-1.627 7.72,-2.8 v 0 c 2.48,-1.173 4.866,-2.508 7.159,-4 v 0 c 2.294,-1.493 4.533,-3.04 6.721,-4.64 v 0 c 0.905,-0.748 1.811,-1.119 2.72,-1.119 v 0 c 1.065,0 1.971,0.371 2.719,1.119 v 0 c 0.746,0.746 1.121,1.653 1.121,2.72 v 0 c 0,0.746 -0.215,1.401 -0.641,1.96 v 0 c -0.427,0.561 -0.933,1.053 -1.519,1.481 v 0 c -1.548,1.226 -3.068,2.359 -4.561,3.399 v 0 c -1.493,1.04 -2.96,2.012 -4.4,2.92 v 0 h 0.321 c 1.492,0 2.891,0.281 4.199,0.84 v 0 c 1.307,0.56 2.454,1.321 3.441,2.28 v 0 c 0.986,0.96 1.759,2.08 2.32,3.361 v 0 c 0.56,1.279 0.84,2.665 0.84,4.159 v 0 c 0,1.493 -0.28,2.88 -0.84,4.161 v 0 c -0.561,1.279 -1.334,2.4 -2.32,3.359 v 0 c -0.987,0.96 -2.134,1.72 -3.441,2.281 v 0 c -1.308,0.559 -2.707,0.839 -4.199,0.839 v 0 z" /></g></g></g></g><g
+       id="g206"><g
+         clip-path="url(#clipPath212)"
+         id="g208"><g
+           transform="translate(414.1552,16.9135)"
+           id="g214"><path
+             id="path216"
+             style="fill:#20c4f4;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 0,0 c -1.173,0 -2.347,0.252 -3.52,0.76 -1.173,0.507 -2.213,1.213 -3.12,2.12 -0.907,0.906 -1.653,2 -2.24,3.28 -0.587,1.279 -0.88,2.72 -0.88,4.319 v 7.201 c 0,1.44 0.413,2.4 1.24,2.88 0.827,0.48 2.121,0.72 3.88,0.72 h 53.68 c 1.066,0 1.973,-0.374 2.721,-1.12 0.746,-0.748 1.12,-1.654 1.12,-2.721 0,-1.067 -0.374,-1.973 -1.12,-2.719 C 51.013,13.973 50.106,13.6 49.04,13.6 H -2.079 V 9.68 c 0,-0.534 0.225,-1 0.68,-1.4 0.452,-0.4 1.052,-0.6 1.799,-0.6 h 50.401 c 1.066,0 1.972,-0.373 2.72,-1.12 0.746,-0.748 1.12,-1.654 1.12,-2.72 0,-1.068 -0.374,-1.974 -1.12,-2.72 C 52.773,0.372 51.867,0 50.801,0 Z m -9.76,31.04 c 0,1.066 0.373,1.973 1.12,2.72 0.746,0.746 1.653,1.12 2.72,1.12 h 56.721 c 1.066,0 1.972,-0.374 2.72,-1.12 0.746,-0.747 1.12,-1.654 1.12,-2.72 0,-1.067 -0.374,-1.974 -1.12,-2.72 -0.748,-0.748 -1.654,-1.12 -2.72,-1.12 H -5.92 c -1.067,0 -1.974,0.372 -2.72,1.12 -0.747,0.746 -1.12,1.653 -1.12,2.72" /></g><g
+           transform="translate(183.1937,36.6703)"
+           id="g218"><path
+             id="path220"
+             style="fill:#047bc1;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="M 0,0 C 0.723,-0.724 1.084,-1.602 1.084,-2.634 1.084,-3.668 0.723,-4.545 0,-5.268 -0.724,-5.992 -1.602,-6.353 -2.634,-6.353 h -23.242 c -0.93,0.103 -1.731,0.504 -2.402,1.202 -0.672,0.697 -1.007,1.536 -1.007,2.517 0,1.032 0.361,1.91 1.084,2.634 0.723,0.723 1.601,1.085 2.635,1.085 H -2.634 C -1.602,1.085 -0.724,0.723 0,0" /></g></g></g></g></svg>
diff --git a/_templates/meta_refresh.html b/_templates/meta_refresh.html
new file mode 100644
index 0000000..b940c76
--- /dev/null
+++ b/_templates/meta_refresh.html
@@ -0,0 +1,8 @@
+<!--
+SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+SPDX-License-Identifier: Apache-2.0
+--!>
+<html><head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0;url=master/index.html" />
+</head></html>
diff --git a/_templates/versions.html b/_templates/versions.html
new file mode 100644
index 0000000..8ed5e31
--- /dev/null
+++ b/_templates/versions.html
@@ -0,0 +1,31 @@
+<!--
+SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+SPDX-License-Identifier: Apache-2.0
+--!>
+{%- if current_version %}
+<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> Other Versions</span>
+    v: {{ current_version.name }}
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+    {%- if versions.tags %}
+    <dl>
+      <dt>Tags</dt>
+      {%- for item in versions.tags %}
+      <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
+      {%- endfor %}
+    </dl>
+    {%- endif %}
+    {%- if versions.branches %}
+    <dl>
+      <dt>Branches</dt>
+      {%- for item in versions.branches %}
+      <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
+      {%- endfor %}
+    </dl>
+    {%- endif %}
+  </div>
+</div>
+{%- endif %}
diff --git a/conf.py b/conf.py
new file mode 100644
index 0000000..9fa6e27
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,264 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+import os
+
+def get_version():
+    with open("VERSION") as f:
+        return f.read().strip()
+
+# -- Project information -----------------------------------------------------
+
+project = u'SD-Core Docs'
+copyright = u'2021-current, Open Networking Foundation'
+author = u'Open Networking Foundation'
+
+# The short X.Y version
+version = get_version()
+
+# The full version, including alpha/beta/rc tags
+release = version
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# make all warnings errors
+warning_is_error = True
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autosectionlabel',
+    'sphinx.ext.coverage',
+    'sphinx.ext.graphviz',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.intersphinx',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.todo',
+    'sphinxcontrib.spelling',
+    "sphinx_multiversion",
+]
+
+# require document prefix on section labels
+autosectionlabel_prefix_document = True
+
+# Text files with lists of words that shouldn't fail the spellchecker:
+spelling_word_list_filename=['dict.txt', ]
+
+# sphinx-multiversion prep, run in each versioned source directory
+prep_commands = [
+]
+
+# inlcude only the branches matching master and aether-*
+smv_branch_whitelist = r'^(master|sdcore-.*)$'
+
+# include all remote branches
+smv_remote_whitelist = r'^.*$'
+
+# Add any paths that contain templates here, relative to this directory.
+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']
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = [
+        '*/LICENSE.md',
+        '*/vendor',
+        '.DS_Store',
+        'Thumbs.db',
+        '_build',
+        'venv-docs',
+        'requirements.txt',
+]
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+# -- Options for HTML output -------------------------------------------------
+
+# 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_logo = '_static/sdcore.svg'
+
+html_favicon = '_static/sdcore-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
+}
+
+# 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']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'SD-CoreDocs'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # 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',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'SD-CoreDocs.tex', u'SD-Core Docs',
+     u'ONF', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'SD-Core Docs', u'SD-Core Docs',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'SD-Core Docs', u'SD-Core Docs',
+     author, 'SD-CoreDocs', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+
+# -- Extension configuration -------------------------------------------------
+
+# blockdiag/etc. config
+
+rackdiag_antialias = True
+rackdiag_html_image_format = "SVG"
+rackdiag_fontpath = [
+    "_static/fonts/Inconsolata-Regular.ttf",
+    "_static/fonts/Inconsolata-Bold.ttf",
+]
+
+nwdiag_antialias = True
+nwdiag_html_image_format = "SVG"
+nwdiag_fontpath = [
+    "_static/fonts/Inconsolata-Regular.ttf",
+    "_static/fonts/Inconsolata-Bold.ttf",
+]
+
+# -- Options for todo extension ----------------------------------------------
+# 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 = [
+    r'https://jenkins.aetherproject.org/.*',
+    r'https://gerrit.opencord.org/.*',
+]
+
+linkcheck_timeout = 3
+linkcheck_retries = 2
+
+# -- options for Intersphinx extension ---------------------------------------
+
+intersphinx_mapping = {
+    'sphinx': ('https://www.sphinx-doc.org/en/master', None),
+    'sysapproach5g': ('https://5g.systemsapproach.org/', None),
+    'sysapproachnet': ('https://book.systemsapproach.org/', None),
+    'sysapproachsdn': ('https://sdn.systemsapproach.org/', None),
+    }
+
+def setup(app):
+
+    app.add_css_file('css/rtd_theme_mods.css')
diff --git a/dict.txt b/dict.txt
new file mode 100644
index 0000000..12d8ad2
--- /dev/null
+++ b/dict.txt
@@ -0,0 +1,15 @@
+Aether
+Dockerfile
+ONF
+SD-Core
+dev
+hssdb
+omec
+patchset
+patchsets
+reStructuredText
+repo
+repos
+sdcore
+unsuffixed
+virtualenv
diff --git a/index.rst b/index.rst
new file mode 100644
index 0000000..a86043b
--- /dev/null
+++ b/index.rst
@@ -0,0 +1,38 @@
+SD-Core Documentation
+=====================
+
+SD-Core is an ONF's 5G/LTE Core.  More information about Aether can be found at
+the `ONF website <https://opennetworking.org/sd-core/>`_.
+
+
+Getting Started with SD-Core
+----------------------------
+
+Here are some useful places to start with SD-Core:
+
+* Read the most recent :doc:`Release Notes </release/1.0>`.
+
+Community
+---------
+
+Information about participating in the Aether community and development process
+can be found on the `ONF Wiki
+<https://wiki.opennetworking.org/display/COM/SD-Core>`_.
+
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Releases
+   :hidden:
+   :glob:
+
+   release/1*
+   release/process.rst
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Meta
+   :hidden:
+   :glob:
+
+   readme
diff --git a/readme.rst b/readme.rst
new file mode 100644
index 0000000..6b25028
--- /dev/null
+++ b/readme.rst
@@ -0,0 +1,80 @@
+Documentation Guide
+===================
+
+Writing Documentation
+---------------------
+
+Docs are generated using :doc:`Sphinx <sphinx:usage/index>`.
+
+Documentation is written in :doc:`reStructuredText
+<sphinx:usage/restructuredtext/basics>` - see this link for the basic format.
+
+In reStructuredText documents, to create the section hierarchy (mapped in HTML
+to ``<h1>`` through ``<h5>``) use these characters to underline headings in the
+order given: ``=``, ``-`` ``"``, ``'``, ``^``.
+
+Referencing other Documentation
+-------------------------------
+
+Other Sphinx-built documentation, both ONF and non-ONF can be linked to using
+:doc:`Intersphinx <sphinx:usage/extensions/intersphinx>`.
+
+You can see all link targets available on a remote Sphinx's docs by running::
+
+  python -msphinx.ext.intersphinx http://otherdocs/objects.inv
+
+Building the Docs
+------------------
+
+The documentation build process is stored in the ``Makefile``. Building docs
+requires Python to be installed, and most steps will create a virtualenv
+(``venv_docs``) which contains the required tools.  You may also need to
+install the ``enchant`` C library using your system's package manager for the
+spelling checker to function properly.
+
+Run ``make html`` to generate html documentation in ``_build/html``.
+
+To check the formatting of documentation, run ``make lint``. This will be done
+in Jenkins to validate the documentation, so please do this before you create a
+patchset.
+
+To check spelling, run ``make spelling``. If there are additional words that
+are correctly spelled but not in the dictionary (acronyms, trademarks, etc.)
+please add them to the ``dict.txt`` file.
+
+Creating new Versions of Docs
+-----------------------------
+
+To change the version shown on the built site, change the contents of the
+``VERSION`` file.
+
+There is a ``make multiversion`` target which will build all versions published
+on the remote to ``_build``. This will use a fork of `sphinx-multiversion
+<https://github.com/Holzhaus/sphinx-multiversion>`_ to build multiple versions
+for the site.
+
+Adding Images and Diagrams
+--------------------------
+
+There are multiple ways to add images and diagrams to the documentation.
+Generally, you should prefer using `SVG
+<https://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ images, as these can
+be scaled to any size without quality loss.
+
+If you're creating diagrams, there are multiple tools available.
+:doc:`Graphviz <sphinx:usage/extensions/graphviz>` can render inline text-based
+graphs definitions and diagrams within the documentation, and is best for
+simple diagrams.
+
+More complex diagrams can be created in `Diagrams.net/Draw.io
+<https://www.diagrams.net/>`_ format. When saving these diagrams, use the
+SVG format, and check the "Include a copy of my diagram". This will let
+someone open the SVG later directly from the documentation and edit it, without
+any loss in functionality or quality.
+
+The last resort is to use raster images. If they're drawings or screen
+captures, use the `PNG
+<https://en.wikipedia.org/wiki/Portable_Network_Graphics>`_ format.  Consider
+compressing them with a tool like `OptiPNG <http://optipng.sourceforge.net/>`_,
+or `pngquant <https://pngquant.org/>`_.  If it's a photograph, use `JPEG
+<https://en.wikipedia.org/wiki/JPEG>`_.
diff --git a/release/1.0.rst b/release/1.0.rst
new file mode 100644
index 0000000..26539e9
--- /dev/null
+++ b/release/1.0.rst
@@ -0,0 +1,32 @@
+SD-Core 1.0 Release
+===================
+
+Highlights
+----------
+
+New Features and Improvements
+-----------------------------
+
+Testing
+-------
+
+Documentation
+-------------
+
+Aether documentation is available at `docs.sd-core.opennetworking.org
+<https://docs.sd-core.opennetworking.org>`_
+
+
+Known Issues and Limitations
+----------------------------
+
+Component Versions in the 1.0 Release
+-------------------------------------
+
+Helm Chart Versions and their component charts and containers:
+
+* sdcore-helm-chart: ``0.1.0``
+
+    * omec-control-plane: ``0.1.0``
+
+        * hssdb: ``c3po-hssdb:0.1.0``
diff --git a/release/process.rst b/release/process.rst
new file mode 100644
index 0000000..4fce892
--- /dev/null
+++ b/release/process.rst
@@ -0,0 +1,118 @@
+Release Process
+===============
+
+Prerequisites
+-------------
+
+SD-Core makes the following assumptions about the components are included in a
+release:
+
+Git tags
+""""""""
+
+Code receives Git tags as a part of the CI process
+
+* Tag content comes from a **VERSION** file within the repo, and tags are
+  created only the version is a SemVer released version (example: ``1.2.3``, no
+  ``-dev`` or ``-rc`` extensions)
+
+* Tagging is *only done by the CI system* (Jenkins), which pushes tags to git
+  repos after a submit/merge of code which changes the **VERSION** file.
+
+* CI system enforces tag uniqueness - no two commits have the same released
+  version tags.
+
+  * You can't re-release or "fix" a version that has problem - make a new
+    version with fixes in it.
+
+Docker container images
+"""""""""""""""""""""""
+
+All docker images are tagged based on their git tags.
+
+* For released versions, the CI system should prevent a Dockerfile from
+  referencing a parent containers that are a moving target, such as ``latest``
+  or ``master``.
+
+  * This allows a container to be rebuilt given an arbitrary git commit with
+    fair confidence that it will result in the same code in the container.
+
+* Official images are only pushed to registries by the CI system
+
+    * Increases repeatability of the process, and prevents human accidents.
+
+Helm charts
+"""""""""""
+
+* Each chart may only contain references to released, SemVer tagged container images
+
+  * Chart CI process must check that a chart version is unique - a chart can't
+    be created with the same version twice.  This should be done against the
+    chart repo.
+
+Release Steps
+-------------
+
+All Helm charts are checked that the containers they use have a SemVer version
+tag
+
+A branch is created on the Helm charts repo, with the abbreviated name of the
+release - for example **sdcore-1.0**.
+
+To allow for future patches to go into the repo in a way that does not conflict
+with the version branch, each component repo's **VERSION** file should have it's
+minor version increased. (ex: 1.2.n to 1.3.0-dev, so future 1.3.n+1 component
+release can easily be created).
+
+The same should be done on Helm charts in the chart repos post release, but the
+versions there shouldn't include a ``-dev`` suffix because chart publishing
+requires that every new chart version be unique and unsuffixed SemVer is a
+more consistent release numbering pattern.
+
+Finally, the ``sdcore-helm-charts`` repo overall **VERSION** should also be incremented
+to the next minor version (1.6.0-dev) on the **master** branch, so all 1.0.x
+releases of the overall charts repo will happen on the **sdcore-1.0** branch.
+
+Creating releases on the 1.0.x branch
+"""""""""""""""""""""""""""""""""""""
+
+If a fix is needed only to the helm charts:
+
+1. Make the fix on the master branch of sdcore-helm-charts (assuming that it is
+   required in both places).
+
+2. After the master tests pass, manually cherry-pick the fix to the **sdcore-1.0**
+   branch (the Chart version would be different, requiring the manual step).
+
+3. Cherry-picked patchsets on that branch will be checked by the **sdcore-1.0**
+   branch of tests.
+
+4. When it passes, submitting the change will make a new 1.0.x release
+
+5. Update the documentation to reflect the chart changes, a description of the
+   changes m, and increment the tag on the docs from 1.0.n to 1.0.n+1, to
+   reflect the patch change.
+
+6. If all the charts are updated and working correctly, create a new charts
+   point release by increasing the 1.0.n **VERSION** file in the
+   sdcore-helm-charts repo.  This should be the same as the version in the
+   documentation.  Immediately make another patch that returns the
+   ``sdcore-helm-charts`` **VERSION** to 1.0.n+1-dev, so that development
+   patches can continue on that branch.
+
+If a fix is needed to the components/containers that are included by the helm charts:
+
+1. Develop a fix to the issue on the master branch, get it approved after
+   passing master tests.
+
+2. If it doesn't exist, create an **sdcore-1.0** branch on the component repo,
+   starting at the commit where the **VERSION** of the component used in 1.0 was
+   created - this is known as "lazy branching".
+
+
+3. Manually cherry-pick to the **sdcore-1.0** branch of the component, incrementing
+   the patch version, and test with the **sdcore-1.0** version of
+   sdcore-system-tests and helm charts.
+
+4. Update helm charts and go through the helm chart update process above
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..e81d18d
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,7 @@
+Sphinx~=4.1.2
+doc8~=0.9.0
+reuse~=0.13.0
+docutils==0.16
+sphinx-rtd-theme~=0.5.2
+sphinxcontrib-spelling~=7.2.1
+sphinx-multiversion~=0.2.4
