|
| 1 | +# RAN controller deployment |
| 2 | + |
| 3 | +## 1. Prerequisites |
| 4 | + |
| 5 | +The I2CAT's RAN controller (RACOON) requires an environment of at least: |
| 6 | + |
| 7 | +- 16 GB of RAM |
| 8 | +- 8 CPU (recommended) |
| 9 | +- 50 GB of HD |
| 10 | +- Ports opened: TCP:830, TCP:6640, TCP:8000, TCP:8008 and TCP:8181 |
| 11 | + |
| 12 | +The requirements are quite high since RACOON uses as one of its southbound API an OpenDaylight controller. |
| 13 | + |
| 14 | +## 2. Features |
| 15 | + |
| 16 | +RACOON has been developed as a RAN controller for the 5GCITY (H2020) european project and supports: |
| 17 | + |
| 18 | +- Registration and management of I2CAT's wireless devices |
| 19 | +- Registration and management of Accelleran's small cells |
| 20 | +- Reservation and slicing of sub6 interfaces and LTE ENBs |
| 21 | +- Deployment of multiple access points on the sub6 interfaces |
| 22 | +- Deployment of multiple PLMNs on the LTE ENBs |
| 23 | + |
| 24 | +## 3. Deployment |
| 25 | + |
| 26 | +### 3.1. Dependencies |
| 27 | + |
| 28 | +#### 3.1.1. General dependencies |
| 29 | + |
| 30 | +- OpenVPN is usually required to establish a connection between the RAN controller and the managed nodes. OpenVPN is not mandatory if both the managed nodes are on the same local network or broadcast domain. |
| 31 | +- A [Java SDK (version > 8)](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) is required to run both RACOON and NetconfManager components |
| 32 | +- Two components (RACOON and NetconfManager) have been developed using the [spring boot](https://spring.io/) framework. The problem is that there can't be two running instances of the framework and therefore it is mandatory installing either Netconf Manager or RACOON components on a [linux container](https://linuxcontainers.org/) (lxc) or a similar environment (another option would be a [VirtualBox](https://www.virtualbox.org/) VM or even a OpenStack instance). |
| 33 | + |
| 34 | +#### 3.1.2. Opendaylight |
| 35 | + |
| 36 | +RACOON depends on a proprietary extension of OpenDaylight; to be precise requires the following bundles to be active: |
| 37 | + |
| 38 | +- odl-ovsdb-southbound-impl-ui |
| 39 | +- odl-ovsdb-ui |
| 40 | +- odl-copserver |
| 41 | + |
| 42 | +Since the odl-copserver bundle has been developed by I2CAT and is currently proprietary and non-licensed; a copy of the OpenDaylight BORON SR3 including the previously mentioned bundle can be found at https://drive.google.com/file/d/1g9-2Akoq8oOyBsB5SgY_MDtoLrKcsWU5 (Please contact the I2CAT foundation if not accessible). |
| 43 | + |
| 44 | +To start OpenDaylight: |
| 45 | + |
| 46 | +1. Decompress the `distribution-karaf-0.5.3-Boron-SR3.tar.gz`file |
| 47 | + |
| 48 | + ```sh |
| 49 | + tar -zxvf distribution-karaf-0.5.3-Boron-SR3.tar.gz |
| 50 | + cd distribution-karaf-0.5.3-Boron-SR3 |
| 51 | + ``` |
| 52 | + |
| 53 | +2. Execute the `karaf`executable file: |
| 54 | + |
| 55 | + ```sh |
| 56 | + bin/karaf clean |
| 57 | + ``` |
| 58 | +3. Enable the required bundles on the OpenDaylight's CLI: |
| 59 | +
|
| 60 | + ```sh |
| 61 | + opendaylight-user@root>feature:install odl-ovsdb-southbound-impl-ui |
| 62 | + opendaylight-user@root>feature:install odl-ovsdb-ui |
| 63 | + opendaylight-user@root>feature:install odl-copserver |
| 64 | + ``` |
| 65 | +
|
| 66 | +### 3.1.3. Netconf Manager |
| 67 | +
|
| 68 | +This is the component responsible for the Netconf calls to the nodes. The component has been developed by I2CAT and is proprietary and non-licensed; a copy to the latest stable distribution of this software can be found at https://drive.google.com/file/d/1xcVciwj7eMQXCAK-1uMvfnfnzdtBqowQ (Please contact the I2CAT foundation if not accessible). |
| 69 | +
|
| 70 | +1. Download the `netconf-api-3.2.0.jar`file |
| 71 | +
|
| 72 | +2. To deploy this component just execute `java -jar netconf-api-3.2.0.jar` |
| 73 | + |
| 74 | +### 3.2. RACOON deployment |
| 75 | +
|
| 76 | +This is the main component. This spring boot application has been developed by I2CAT and is proprietary and non-licensed; a copy to the latest stable distribution of this software can be found at https://drive.google.com/file/d/1eCSMPlESGOBD6-mALofYfUlke3WyedkK (Please contact the I2CAT foundation if not accessible). To install the controller: |
| 77 | +
|
| 78 | +1. Download the `api-1.0.0.jar` file |
| 79 | +
|
| 80 | +2. Execute `java -jar api-1.0.0.jar` |
| 81 | +
|
| 82 | +### 3.3. Checking the installation |
| 83 | +
|
| 84 | +The three components have their own front end which can be connected to in order to check if the installation process was successful. |
| 85 | +
|
| 86 | +- OpenDaylight (http://CONTROLLER_IP:8181/index.html): Should display a login page (default username is admin and password is admin as well) |
| 87 | +- NetconfManager (http://CONTROLLER_IP:8000/swagger-ui.html): This should display a lot of entry points. If there are nodes present on the RACOON's topology executing the GET operations should display some more information and details about them. |
| 88 | +- RACOON (http://CONTROLLER_IP:8008/swagger-ui.html): This should be similar to the Netconf Manager view; a lot of entry points. Executing the GET operations on an existing topology should display more information about the nodes and chunks present. |
| 89 | + |
| 90 | +### 3.4. FAQ |
| 91 | + |
| 92 | +Q: Either RACOON or Netconf Manager fails to start |
| 93 | +A: As mentioned above, spring-boot applications can't be instantiated twice on the same computer; install one of the components in a linux container |
| 94 | +
|
| 95 | +Q: I installed a component on a linux container but the application is not responding |
| 96 | +A: Configure IPTABLES to do a static nat to the application's appropriate port; for example, if Netconf Manager has been installed on a container the iptables command would look like this: |
| 97 | + |
| 98 | + ```sh |
| 99 | + iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8000 -j DNAT --to-destination $CONTAINER_IP:8000 |
| 100 | + ``` |
| 101 | + |
| 102 | +Q: No nodes appear on my topology after I install the controller and its components |
| 103 | +A: The node detection has not been implemented on this version therefore the node MUST start the register process. |
| 104 | + |
| 105 | +Q: The service deployment fails quite a lot |
| 106 | +A: This is probably because a node is unstable. The best we can do to solve this issue is to restart OpenDaylight, RACOON and NetconfManager components and check the node's connectivity status towards the RAN controller. |
| 107 | +
|
| 108 | +Q: I have installed the different components on different hardware but every query to the RACOON returns a 500 error |
| 109 | +A: This version does not support the distributed controller; all the components have to be installed on the same bare metal. |
0 commit comments