|
|
* Setup Overview
|
|
|
* [OpenvSwitch](ovs)
|
|
|
* [LL-MEC](ll-mec)
|
|
|
* [Core Network - OpenAir-CN](oai-cn)
|
|
|
* [eNodeB - OpenAirInterface](oai-enb)
|
|
|
* API Documentation |
|
|
\ No newline at end of file |
|
|
# Setup Overview
|
|
|
## OpenvSwitch
|
|
|
In order to run LL-MEC, one OpenvSwitch with GTP ability is necessary. One repository is ready to provide all the scripts you need to install and setup the switch.
|
|
|
|
|
|
# Clone the repository first
|
|
|
git clone https://gitlab.eurecom.fr/mosaic5g/ll-mec-ovs.git
|
|
|
|
|
|
### For installation (Prerequisite: kernel version 4.9)
|
|
|
All you need to do is to run the install.sh.
|
|
|
|
|
|
cd ll-mec-ovs/ovs_kernel_gtp
|
|
|
./install.sh # require sudoer
|
|
|
### For configuration
|
|
|
setting up OVS is quite easy with the scripts provided.
|
|
|
|
|
|
cd ll-mec-ovs
|
|
|
|
|
|
Filling the required information in config file
|
|
|
|
|
|
# In config
|
|
|
|
|
|
EXT_INTERFACE=enp3s0 # the interface with Internet access
|
|
|
EXT_IP=172.16.1.1 # explained above
|
|
|
|
|
|
CTRL_IP=192.168.12.42 # controller IP, i.e. LL-MEC IP
|
|
|
CTRL_PORT=6653 # controller port, default to 6653
|
|
|
OF_VERSION=OpenFlow10,OpenFlow13 # supported version
|
|
|
|
|
|
To ease the commands typing, few scripts are ready to start, setup, and tear down the OVS server and switch.
|
|
|
|
|
|
./0-start-ovs.sh # Setup OVS server. Require only once after booting.
|
|
|
|
|
|
./1-setup-switch.sh # Bring up switch
|
|
|
|
|
|
./2-remove-switch.sh # Tear down switch
|
|
|
## LL-MEC
|
|
|
### Dependencies installation
|
|
|
$ ./install_dependencies.sh
|
|
|
|
|
|
### Prerequisite
|
|
|
* CMake version 2.8 or newer
|
|
|
* GCC version 4.8.1 or newer (for c++11 support)
|
|
|
|
|
|
### Build
|
|
|
|
|
|
./build_ll-mec.sh
|
|
|
# the executable will be present in the same folder
|
|
|
|
|
|
./clean_ll-mec.sh
|
|
|
# to clean
|
|
|
### Run
|
|
|
sudo ./ll-mec
|
|
|
|
|
|
### Configuration example (llmec_config.json)
|
|
|
{
|
|
|
"llmec": {
|
|
|
"address": "0.0.0.0",
|
|
|
"port": 6653,
|
|
|
"number_of_workers": 4,
|
|
|
"secure_connection": false
|
|
|
},
|
|
|
"northbound_api": {
|
|
|
"port": 9999
|
|
|
},
|
|
|
"gateway": {
|
|
|
"mac": "00:24:9b:23:33:a6"
|
|
|
},
|
|
|
"ovs_switch": {
|
|
|
"s1u_port": 2,
|
|
|
"external_port": 1
|
|
|
}
|
|
|
}
|
|
|
|
|
|
## Core Network - OpenAir-CN
|
|
|
In this setup example, core network is required to help setup the UE/bearer context. Here we take OpenAir-CN as an example and assume you already managed to setup OpenAir-CN. If not, it's highly suggest to check https://github.com/OPENAIRINTERFACE/openair-cn/ for more information. Especially EPC_User_Guide.pdf located in /DOCS of develop branch.
|
|
|
|
|
|
# Switch to the branch where remote_controller is available.
|
|
|
# Note that the branch will be develop in the near future after certain internal integration.
|
|
|
git checkout devel_back_y16w38_y17w18
|
|
|
|
|
|
# Re-compile the spgw
|
|
|
./scripts/build_spgw -c
|
|
|
|
|
|
# Enable the remote_controller in /usr/local/etc/oai/spgw.conf
|
|
|
# external controller for managing context of UE and its user plane
|
|
|
SGW_REMOTE_CONTROLLER_ENABLED = "yes";
|
|
|
SGW_REMOTE_CONTROLLER_IPV4_ADDRESS = "192.168.12.242";
|
|
|
SGW_REMOTE_CONTROLLER_PORT = 9999;
|
|
|
|
|
|
# Run the whole EPC (same as regular steps)
|
|
|
./run_hhs
|
|
|
./run_mme
|
|
|
./run_spgw
|
|
|
|
|
|
## eNodeB - OpenAirInterface
|
|
|
For the RAN side, we take OpenAirInterface as an example. Basically, no extra modifications or configuration are needed which means the existence of MEC is totally transparent to the RAN. Please refer to https://gitlab.eurecom.fr/oai/openairinterface5g to setup your RAN part.
|
|
|
|
|
|
# API Documentation
|
|
|
Current supported northbound API documentation is located at https://gitlab.eurecom.fr/mosaic5g/ll-mec/tree/develop/docs. You will need to clone LL-MEC and open the docs/index.html directly. |
|
|
\ No newline at end of file |