From 34c7e2763182af6377e3a5529c2ed3e9264c1043 Mon Sep 17 00:00:00 2001 From: Balaji Shankaran Date: Mon, 18 Nov 2019 15:16:51 +0530 Subject: [PATCH] Configuring repo for documentation Change-Id: I780585983abd441c358250bd12e6fba5349366a0 Signed-off-by: Balaji Shankaran --- .gitignore | 3 +++ .readthedocs.yaml | 16 ++++++++++++++++ Dockerfile | 2 +- Dockerfile-cu-stub | 2 +- docs/README | 2 ++ docs/_static/logo.png | Bin 0 -> 38265 bytes docs/conf.py | 6 ++++++ docs/conf.yaml | 3 +++ docs/favicon.ico | Bin 0 -> 15086 bytes docs/index.rst | 19 +++++++++++++++++++ docs/overview.rst | 13 +++++++++++++ docs/release-notes.rst | 2 +- docs/requirements-docs.txt | 5 +++++ tox.ini | 30 ++++++++++++++++++++++++++++++ 14 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 .readthedocs.yaml create mode 100644 docs/_static/logo.png create mode 100644 docs/conf.py create mode 100644 docs/conf.yaml create mode 100644 docs/favicon.ico create mode 100644 docs/index.rst create mode 100644 docs/overview.rst create mode 100644 docs/requirements-docs.txt create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..9c14461d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# documentation +.tox +docs/_build/ diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 000000000..095222aca --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,16 @@ +--- +version: 2 + +formats: + - htmlzip + +build: + image: latest + +python: + version: 3.7 + install: + - requirements: docs/requirements-docs.txt + +sphinx: + configuration: docs/conf.py diff --git a/Dockerfile b/Dockerfile index eda172454..6c0b7bf76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,4 @@ RUN apt-get update && apt-get install -y libpcap-dev RUN cd build/odu && make clean_all odu MACHINE=BIT64 MODE=FDD -CMD /opt/o-du-l2/bin/odu/odu +#CMD /opt/o-du-l2/bin/odu/odu -f ../config/ssi_mem diff --git a/Dockerfile-cu-stub b/Dockerfile-cu-stub index 61148a2a1..0f32d69b2 100644 --- a/Dockerfile-cu-stub +++ b/Dockerfile-cu-stub @@ -7,4 +7,4 @@ RUN apt-get update && apt-get install -y libpcap-dev RUN cd build/odu && make clean_all cu_stub MACHINE=BIT64 MODE=FDD -CMD /opt/o-du-l2/bin/cu_stub/cu_stub +#CMD /opt/o-du-l2/bin/cu_stub/cu_stub -f ../config/ssi_mem diff --git a/docs/README b/docs/README index 91d4f148b..fef88c391 100644 --- a/docs/README +++ b/docs/README @@ -4,6 +4,8 @@ Directory Structure : a. common : contains individual module's makefile b. config : contains SSI memory configuration c. odu : contains main makefile to generate an executable binary + +2. l2/docs/ : contains README and other configuration files for building docs 2. l2/src/ : contains layer specific source code a. 5gnrmac : MAC source code diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c084e99cc4d43bde94e107be99959bb844a248 GIT binary patch literal 38265 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

4K$ruCE1 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 XY+}&}KC=mD;X?Iq*l*cA?B4$ePY*3q literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 000000000..2c75a0f47 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,19 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 + + +Welcome to O-RAN SC o-du-l2 Documentation +=========================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + overview.rst + release-notes.rst + + + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100644 index 000000000..ea4ac330c --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,13 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 + + +O-DU implements the functional blocks of L2 layer of a 5G NR protocol stacks. +These layers primarily include NR MAC and NR RLC layers. +In order to manage these layers, DU_APP submodule has been introduced which can be comsidered as the +master module of O-DU. + + + +o-du-l2 Overview +====================== diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 237a71aa3..6f626e7d3 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -10,7 +10,7 @@ This document provides the release notes for of . Version history ---------------- +=============== +--------------------+--------------------+--------------------+--------------------+ | **Date** | **Ver.** | **Author** | **Comment** | diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt new file mode 100644 index 000000000..09a0c1cb0 --- /dev/null +++ b/docs/requirements-docs.txt @@ -0,0 +1,5 @@ +sphinx +sphinx-rtd-theme +sphinxcontrib-httpdomain +recommonmark +lfdocs-conf diff --git a/tox.ini b/tox.ini new file mode 100644 index 000000000..72742cff9 --- /dev/null +++ b/tox.ini @@ -0,0 +1,30 @@ +# documentation only +[tox] +minversion = 2.0 +envlist = + docs, + docs-linkcheck, +skipsdist = true + +[testenv:docs] +basepython = python3 +deps = + sphinx + sphinx-rtd-theme + sphinxcontrib-httpdomain + recommonmark + lfdocs-conf + +commands = + sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html + echo "Generated docs available in {toxinidir}/docs/_build/html" +whitelist_externals = echo + +[testenv:docs-linkcheck] +basepython = python3 +deps = sphinx + sphinx-rtd-theme + sphinxcontrib-httpdomain + recommonmark + lfdocs-conf +commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck -- 2.16.6