... | ... | @@ -2,8 +2,10 @@ Welcome to LL-MEC Wiki |
|
|
================================================
|
|
|
In this wiki, we are trying to go through a complete setup of LL-MEC and its dependent components. This setup allows you to connect multiple UE to LTE with LL-MEC enabled.
|
|
|
# Setup Illustration
|
|
|
Please note that due to the port (2152) conflicts, neither eNodeB nor OpenAir-CN could be setup in the same machine as the OpenvSwitch that is handling GTP traffic. Also both LL-MEC and OpenvSwitch can be virtualized but not recommended in the same node.
|
|
|
![ll-mec-mobicom_2](/uploads/3a38547ac633cc50c3826ed13a64791b/ll-mec-mobicom_2.png)
|
|
|
Please note that due to the port (2152) conflicts, neither eNodeB nor OpenAir-CN could be setup in the same machine as the OpenvSwitch that is handling GTP traffic (there might be some workaround for this). Also both LL-MEC and OpenvSwitch can be virtualized, however, we did not test the case where they are in the same node.
|
|
|
![llmec_configuration](/uploads/9299bd2092a6179f61c53d3a95d7d3f2/llmec_configuration.png)
|
|
|
(source file of the above figure can be found at [llmec_configuration.vsdx](/uploads/529a4da985ce1aa095fc41889261a967/llmec_configuration.vsdx))
|
|
|
|
|
|
# Setup Instruction
|
|
|
## 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.
|
... | ... | @@ -25,8 +27,8 @@ 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
|
|
|
EXT_INTERFACE=enp3s0 # the interface name with Internet access
|
|
|
EXT_IP=172.16.1.1 # the ip address of the interface with the Internet access
|
|
|
|
|
|
CTRL_IP=192.168.12.240 # controller IP, i.e. LL-MEC IP
|
|
|
CTRL_PORT=6653 # controller port, default to 6653
|
... | ... | @@ -39,8 +41,10 @@ To ease the commands typing, few scripts are ready to start, setup, and tear dow |
|
|
./1-setup-switch.sh # Bring up switch
|
|
|
|
|
|
./2-remove-switch.sh # Tear down switch
|
|
|
|
|
|
## LL-MEC
|
|
|
Setting up LL-MEC is very simple within few steps.
|
|
|
Setting up LL-MEC from the source code is very simple within few steps. Another option would be to use the [ll-mec snap](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis/Llmec).
|
|
|
|
|
|
### Dependencies installation
|
|
|
$ ./install_dependencies.sh
|
|
|
|
... | ... | @@ -68,18 +72,30 @@ Setting up LL-MEC is very simple within few steps. |
|
|
"port": 9999
|
|
|
},
|
|
|
"gateway": {
|
|
|
"mac": "00:24:9b:23:33:a6"
|
|
|
"mac": "aa:bb:cc:dd:ee:ff"
|
|
|
},
|
|
|
"ovs_switch": {
|
|
|
"s1u_port": 2,
|
|
|
"external_port": 1
|
|
|
}
|
|
|
}
|
|
|
### Run
|
|
|
sudo ./ll-mec
|
|
|
|
|
|
The description of each configuration parameters can be found below:
|
|
|
|
|
|
1. **"address": "0.0.0.0"** is the LL-MEC @IP: either 0.0.0.0 or particular IP address,
|
|
|
2. **"port": 6653** is the LL-MEC SBI PORT towards openflow,
|
|
|
3. **"number_of_workers": 4** is the number of threads to run. Connections will be attributed to event loops running on threads on a round-robin fashion. The first event loop will also listen for new connections. Inherited from fluidbase. More details can be found in OFServer.hh / .c
|
|
|
4. **"secure_connection": false** enables TLS for the connections. In such a case, TLS support must compiled into the library and you need to call libfluid_ssl_init before you can use this feature. This feature is not tested, butmight still work. Inherited from fluidbase. More details can be found in OFServer.hh / .c
|
|
|
5. **"port": 9999** is the LL-MEC NBI port towards the MEC application
|
|
|
6. **"mac" : "aa:bb:cc:dd:ee:ff"** is the MAC address of the device performing NAT (Router or a PC)
|
|
|
7. **"s1u_port" : 2** and **"external_port": 1** are the OVS port number and mainly for constructing the OVS rules. LL-MEC doesn't support OVS orchestration yet which means users have to setup the OVS manually before connecting LL-MEC. These port number are fixed as long as you follow the provided steps to setup OVS, specifically this script - https://gitlab.eurecom.fr/mosaic5g/ll-mec-ovs/blob/master/1-setup-switch.sh
|
|
|
|
|
|
### Run LL-MEC
|
|
|
1. manually: sudo ./ll-mec
|
|
|
2. as a service through snap: sudo ll-mec.start
|
|
|
|
|
|
## 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. The current working branch with ll-mec is openair-cn-llmec.
|
|
|
In this setup example, core network is required to help setup the UE/bearer context in control plane. 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. The current working branch with ll-mec is openair-cn-llmec.
|
|
|
|
|
|
# Switch to the branch where remote_controller is available.
|
|
|
# Note that the branch will be develop in the near future after certain internal integration.
|
... | ... | @@ -91,17 +107,47 @@ In this setup example, core network is required to help setup the UE/bearer cont |
|
|
# 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.240";
|
|
|
SGW_REMOTE_CONTROLLER_PORT = 9999;
|
|
|
SGW_REMOTE_CONTROLLER_IPV4_ADDRESS = "192.168.12.240"; # this is the LL-MEC IP address
|
|
|
SGW_REMOTE_CONTROLLER_PORT = 9999; # this is the LL-MEC NBi port
|
|
|
|
|
|
# set up the user plane between eNB and SP-GW by changing the
|
|
|
# SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP to OVS IP, and keep the port the same.
|
|
|
SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP = "192.168.12.241" ; # this is the OVS IP address
|
|
|
|
|
|
# Run the whole EPC (same as regular steps)
|
|
|
./run_hhs
|
|
|
./run_hss
|
|
|
./run_mme
|
|
|
./run_spgw
|
|
|
|
|
|
Note1:
|
|
|
> Through the LL-MEC IP address (i.e. SGW_REMOTE_CONTROLLER_IPV4_ADDRESS), UEs will be automatically be added/updated/removed to/from the LL-MEC. For example, upon a successful attach procedure, SPGW will call the LL-MEC NBI with the required information to add the UE (you need to see logs in LL-MEC related to this). So there is not need to manually add a UE to LL-MEC. If this is not happening, double check your configuration files. Alternatively, use the [LL-MEC mailing list](mailto:llmec@mosaic-5g.io)
|
|
|
|
|
|
Note2:
|
|
|
>no modification or configuration is required for MME and HSS configuration files.
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
## Gateway Node
|
|
|
|
|
|
The gateway can either be a router or a PC performing the NAT operation for UEs, i.e. masquerading of UE IP address. This gateway is connected to the OVS EXT_IP in order to NAT the UE traffic. If your gateway is a router, then you need to configure the NAT, otherwise, in a Linux-based PC, perform the following operation for the gateway node:
|
|
|
|
|
|
```
|
|
|
iptables -t nat -A POSTROUTING -s $UE_IP_MASK -o $GW_EXT_IP -j MASQUERADE
|
|
|
```
|
|
|
|
|
|
where the $GW_EXT_IP is the outgoing IP address of the NAT machine with Internet Access, and
|
|
|
the $UE_IP_MASK=172.16.0.0/1, as given in spgw.conf
|
|
|
|
|
|
```
|
|
|
IP_ADDRESS_POOL :
|
|
|
{
|
|
|
IPV4_LIST = (
|
|
|
"172.16.0.0/12" # STRING, CIDR, YOUR NETWORK CONFIG HERE.
|
|
|
);
|
|
|
};
|
|
|
```
|
|
|
|
|
|
# Testing
|
|
|
## With COTS user equipment
|
|
|
As soon as all the components are up and running, you can connect the COTS phone and browse Internet with GTP traffic redirected by OVS instead of S/P-GW.
|
... | ... | |