added sdran blueprint
Change-Id: I7b264f301e48e56f3cc6c41c37ef4f1d3ab71f9b
diff --git a/conf.py b/conf.py
index d03773d..c900cab 100644
--- a/conf.py
+++ b/conf.py
@@ -268,6 +268,7 @@
r'https://cloud.google.com/.*',
r'https://ark.intel.com/.*',
r'https://wiki.onosproject.org/.*',
+ r'https://wiki.opennetworking.org/.*',
]
linkcheck_timeout = 3
diff --git a/onramp/blueprints.rst b/onramp/blueprints.rst
index 5274d87..c40defd 100644
--- a/onramp/blueprints.rst
+++ b/onramp/blueprints.rst
@@ -74,6 +74,13 @@
this blueprint is demonstrated using gNBsim, the assumed base models
are given by ``roc-5g-models.json``.)
+* Two nightly integration tests that validate the Multi-UPF blueprint
+ can be viewed on Jenkins (assuming you are a registered user):
+ `single-server test
+ <https://jenkins.aetherproject.org/view/Aether%20OnRamp/job/AetherOnRamp_QuickStart_Multi-UPF/>`__,
+ `two-server test
+ <https://jenkins.aetherproject.org/view/Aether%20OnRamp/job/AetherOnRamp_2servers_Multi-UPF/>`__.
+
To use Multi-UPF, first copy the vars file to ``main.yml``:
.. code-block::
@@ -165,4 +172,93 @@
$ make gnbsim-simulator-run
+SD-RAN
+~~~~~~~~~~~~~~~~~~~~~~
+
+This blueprint runs SD-Core and SD-RAN in tandem, with RANSIM
+emulating various RAN elements. (The OnRamp roadmap includes plans to
+couple SD-RAN with other virtual and physical RAN elements, but RANSIM
+is currently the only option.)
+
+The SD-RAN blueprint includes the following:
+
+* Global vars file ``vars/main-sdran.yml`` gives the overall
+ blueprint specification.
+
+* Inventory file ``hosts.ini`` is identical to that used in the Quick
+ Start deployment, with both SD-RAN and Sd-Core co-located on a
+ single server.
+
+* New make targets, ``aether-sdran-install`` and
+ ``aether-sdran-uninstall``, to be executed after the standard
+ SD-Core installation.
+
+* A new submodule ``deps/sdran`` (corresponding to repo
+ ``aether-sdran``) defines the Ansible Roles and Playbooks required
+ to deploy SD-RAN.
+
+* A nightly integration test that validates the SD-RAN blueprint can
+ be viewed on `Jenkins
+ <https://jenkins.aetherproject.org/view/Aether%20OnRamp/job/AetherOnRamp_QuickStart_SDRAN/>`__
+ (assuming you are a registered user).
+
+To use SD-RAN, first copy the vars file to ``main.yml``:
+
+.. code-block::
+
+ $ cd vars
+ $ cp main-sdran.yml main.yml
+
+Then edit ``hosts.ini`` and ``vars/main.yml`` to match your local
+target servers, and deploy the base system (as in previous sections),
+followed by SD-RAN:
+
+.. code-block::
+
+ $ make aether-k8s-install
+ $ make aether-5gc-install
+ $ make aether-sdran-install
+
+Use ``kubectl`` to validate that the SD-RAN workload is running, which
+should result in output similar to the following:
+
+.. code-block::
+
+ $ kubectl get pods -n sdran
+ NAME READY STATUS RESTARTS AGE
+ onos-a1t-68c59fb46-8mnng 2/2 Running 0 3m12s
+ onos-cli-c7d5b54b4-cddhr 1/1 Running 0 3m12s
+ onos-config-5786dbc85c-rffv7 3/3 Running 0 3m12s
+ onos-e2t-5798f554b7-jgv27 2/2 Running 0 3m12s
+ onos-kpimon-555c9fdb5c-cgl5b 2/2 Running 0 3m12s
+ onos-topo-6b59c97579-pf5fm 2/2 Running 0 3m12s
+ onos-uenib-6f65dc66b4-b78zp 2/2 Running 0 3m12s
+ ran-simulator-5d9465df55-p8b9z 1/1 Running 0 3m12s
+ sd-ran-consensus-0 1/1 Running 0 3m12s
+ sd-ran-consensus-1 1/1 Running 0 3m12s
+ sd-ran-consensus-2 1/1 Running 0 3m12s
+
+Note that the SD-RAN workload includes RANSIM as one of its pods;
+there is no separate "run simulator" step as is the case with gNBsim.
+To validate that the emulation ran correctly, query the ONOS CLI as
+follows:
+
+Check ``onos-kpimon`` to see if 6 cells are present:
+
+.. code-block::
+
+ $ kubectl exec -it deployment/onos-cli -n sdran -- onos kpimon list metrics
+
+Check ``ran-simulator`` to see if 10 UEs and 6 cells are present:
+
+.. code-block::
+
+ $ kubectl exec -it deployment/onos-cli -n sdran -- onos ransim get cells
+ $ kubectl exec -it deployment/onos-cli -n sdran -- onos ransim get ues
+
+Check ``onos-topo`` to see if ``E2Cell`` is present:
+
+.. code-block::
+
+ $ kubectl exec -it deployment/onos-cli-n sdran -- onos topo get entity -v
diff --git a/onramp/network.rst b/onramp/network.rst
index b883358..f250267 100644
--- a/onramp/network.rst
+++ b/onramp/network.rst
@@ -28,7 +28,7 @@
``10.76.28.187``, ``10.76.28.113``, ``ens18`` are specific to
a particular deployment site.
-As shown in the figure, there are two Macvlan bridges that connect the
+As shown in the figure, there are two bridges that connect the
physical interface (``ens18`` in our example) with the UPF
container. The ``access`` bridge connects the UPF downstream to the
RAN (this corresponds to 3GPP's N3 interface) and is assigned IP subnet
@@ -174,7 +174,7 @@
a single gNBsim traffic source, but once we scale up the gNBsim by
co-locating multiple containers on a single server, we need to
introduce another network so each container has a unique IP address
-(even though they are all hosted at the same IP address). This more
+(even though the containers are all hosted on the same node). This more
complex configuration is depicted in :numref:`Figure %s <fig-gnbsim>`,
where ``172.20.0.0/16`` is the IP subnet for the virtual network (also
implemented by a Macvlan bridge, and named ``gnbaccess``).