Infrastructure Setup
====================
-In order to set up the service VM as an IPv6 vRouter, we need to
-prepare 3 hosts, each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller
+In order to set up the service VM as an IPv6 vRouter, we need to prepare 3 hosts,
+each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller
Node. The second host is used as Open Daylight Controller Node. And the third one is used as
OpenStack Compute Node.
+Please **NOTE** that in case of HA (High Availability) deployment model where multiple controller
+nodes are used, the setup procedure is the same. When ``ipv6-router`` is created in step **SETUP-SVM-11**,
+it could be created in any of the controller node. Thus you need to identify in which controller node
+``ipv6-router`` is created in order to manually spawn ``radvd`` daemon inside the ``ipv6-router`` namespace
+in steps **SETUP-SVM-24** through **SETUP-SVM-30**.
+
For exemplary purpose, we assume:
* The hostname of OpenStack Controller+Network+Compute Node is ``opnfv-os-controller``, and the host IP address
Let us manually spawn a ``radvd`` daemon inside ``ipv6-router`` namespace to simulate an external router.
First of all, we will have to identify the ``ipv6-router`` namespace and move to the namespace.
+Please **NOTE** that in case of HA (High Availability) deployment model where multiple controller
+nodes are used, ``ipv6-router`` created in step **SETUP-SVM-11** could be in any of the controller
+node. Thus you need to identify in which controller node ``ipv6-router`` is created in order to manually
+spawn ``radvd`` daemon inside the ``ipv6-router`` namespace in steps **SETUP-SVM-24** through
+**SETUP-SVM-30**.
+
**SETUP-SVM-24**: identify the ``ipv6-router`` namespace and move to the namespace
.. code-block:: bash
Underlay Network Topology - Scenario 1
-**Please note that the IP address shown in** :numref:`s1-figure1`
-**are for exemplary purpose. You need to configure your public IP
-address connecting to Internet according to your actual network
-infrastructure. And you need to make sure the private IP address are
-not conflicting with other subnets**.
+**Please note that:**
+
+* **the IP address shown in** :numref:`s1-figure1` **are for exemplary purpose.
+ You need to configure your public IP address connecting to Internet according
+ to your actual network infrastructure. And you need to make sure the private IP address are
+ not conflicting with other subnets**.
+* **Although the deployment model of single controller node is assumed, in case of HA (High Availability)
+ deployment model where multiple controller nodes are used, there is no impact and the setup procedure
+ is the same.**
************
Prerequisite
Architectural Design of Using a VM as an IPv6 vRouter
+This design applies to deployment model of single controller node as well as HA (High Availability)
+deployment model of multiple controller nodes.
+
controller which is built from the latest stable/Lithium branch which includes the fix.
In this scenario, we can fully automate the setup similar to Scenario 1.
+Please **NOTE** that the instructions in this document assume the deployment model of single
+controller node. In case of HA (High Availability) deployment model where multiple controller
+nodes are used, the setup procedure is the same. In particular:
+
+* There is **No Impact** on Scenario 1 and Scenario 3.
+* For Scenario 2, when ``ipv6-router`` is created in step **SETUP-SVM-11**, it could be
+ created in any of the controller node. Thus you need to identify in which controller node
+ ``ipv6-router`` is created in order to manually spawn ``radvd`` daemon inside the
+ ``ipv6-router`` namespace in steps **SETUP-SVM-24** through **SETUP-SVM-30**.
+
.. toctree::
:numbered:
:maxdepth: 4
Infrastructure Setup
====================
-In order to set up the service VM as an IPv6 vRouter, we need to
-prepare 3 hosts, each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller
+In order to set up the service VM as an IPv6 vRouter, we need to prepare 3 hosts,
+each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller
Node. The second host is used as Open Daylight Controller Node. And the third one is used as
OpenStack Compute Node.
+** Please NOTE that Although the deployment model of single controller node is assumed, in case of HA
+(High Availability) deployment model where multiple controller nodes are used, there is no impact and the
+setup procedure is the same.**
+
For exemplary purpose, we assume:
* The hostname of OpenStack Controller+Network+Compute Node is ``opnfv-os-controller``, and the host IP address
* We use ``opnfv`` as username to login.
* We use ``devstack`` to install OpenStack Kilo. Please note that OpenStack Liberty can be used as well.
-The underlay network topology of those 3 hosts are shown as follows in :numref:`s2-figure1`:
+The underlay network topology of those 3 hosts are shown as follows in :numref:`s3-figure1`:
-.. figure:: images/ipv6-topology-scenario-2.png
- :name: s2-figure1
+.. figure:: images/ipv6-topology-scenario-3.png
+ :name: s3-figure1
:width: 100%
- Underlay Network Topology - Scenario 2
+ Underlay Network Topology - Scenario 3
-**Please note that the IP address shown in** :numref:`s2-figure1`
+**Please note that the IP address shown in** :numref:`s3-figure1`
**are for exemplary purpose. You need to configure your public IP
address connecting to Internet according to your actual network
infrastructure. And you need to make sure the private IP address are
* We use ``opnfv`` as username to login.
* Java 7 is installed in directory ``/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/``
-**ODL-1**: Login to Open Daylight Controller Node with username ``opnfv``.
+Please **NOTE** that this Scenario 3 uses an Open Daylight Lithium controller which is built
+from the latest ``stable/Lithium`` branch that includes the fix of a bug, there is a **prerequisite**
+that you are able to build this Open Daylight Lithium Controller from the the latest ``stable/Lithium``
+branch. Please refer to relevant documentation from Open Daylight.
-**ODL-2**: Download the ODL Lithium distribution from
-``http://www.opendaylight.org/software/downloads``
+**ODL-1**: **Prerequisite** - build Open Daylight Lithium Controller from the the latest
+``stable/Lithium`` branch, and make it available for step **ODL-3**.
-.. code-block:: bash
-
- wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.3-Lithium-SR3/distribution-karaf-0.3.3-Lithium-SR3.tar.gz
+**ODL-2**: Login to Open Daylight Controller Node with username ``opnfv``.
-**Note**: This **ODL-2** is a placeholder, and to be replaced with actual URL of a build from the latest
-``stable/Lithium`` branch which includes the fix.
-
-**ODL-3**: Extract the tar file
+**ODL-3**: Extract the tar file of your custom build of Open Daylight Lithium Controller
+from step **ODL-1**.
.. code-block:: bash
- tar -zxvf distribution-karaf-0.3.3-Lithium-SR3.tar.gz
-
-**Note**: This **ODL-3** is a placeholder, and to be replaced with actual tarball of a build from the latest
-``stable/Lithium`` branch which includes the fix.
+ tar -zxvf <filename-of-your-custom-build>.tar.gz
**ODL-4**: Install Java7
cp /opt/stack/opnfv_os_ipv6_poc/scenario2/local.conf.odl.controller ~/devstack/local.conf
-Please **note** that you need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address
-of Open Daylight Controller.
+Please **note** that:
+
+* Note 1: Because Scenario 3 and Scenario 2 are essentially the same, and their only difference
+ is using different build of Open Daylight, they share the same ``local.conf``` file of OpenStack.
+* Note 2: You need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address
+ of Open Daylight Controller.
**OS-N-6**: Initiate Openstack setup by invoking ``stack.sh``
Please Note:
-* Note 1: you need to change the IP address of ``SERVICE_HOST`` to point to your actual IP address
+* Note 1: Because Scenario 3 and Scenario 2 are essentially the same, and their only difference
+ is using different build of Open Daylight, they share the same ``local.conf``` file of OpenStack.
+* Note 2: you need to change the IP address of ``SERVICE_HOST`` to point to your actual IP address
of OpenStack Controller.
-* Note 2: you need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address
+* Note 3: you need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address
of Open Daylight Controller.
**OS-M-6**: Initiate Openstack setup by invoking ``stack.sh``