eNodeB and HSS Database Setup

Supported eNodeBs

M-CORD's virtual EPC should work with any standard eNodeB. We tested the Cavium eNodeB (model CNF7100-REF2-RF17). In this section we describe how to configure this eNodeB to work with M-CORD.

Connect the eNodeB to the pod

For physical connectivity, this eNodeB has a single Ethernet interface. Our test setup uses a single physical compute node for hosting the VNFs. We connect the eNodeB to one of the NICs on the compute node.

There are two logical connectivities for a eNodeB: (1) S1MME interface connection, between eNodeB and MME for attaching process. (2) S1U interface connection, between eNodeB and SPGWU (SGWU+PGWU) for user traffic. To enable this connectivity, on the compute node we add the NIC connected to the eNodeB to the fabric bridge.

eNodeB configuration

The configuration file on Cavium eNodeB is located at /mnt/app/startup.cfg. Find the following lines and change the values:

configure net net u32enbipaddress
configure net net u32enbsubnetmask
configure net net u32enbgwipaddress
configure net mme u32mmeipaddress 0
configure net mme u16mmesctpportnumber 0 36412
configure net sgw u32sgwipaddress 0

u32enbipaddress is the eNodeB data plane IP address for S1U interface. The default IP address in M-CORD is You will need to specify it when you create the EPC in XOS; see below.

Since u32enbipaddress and SPGWU IP on S1U address are on the same flat network inside OVS, u32enbgwipaddress (gateway IP) does not matter. You can give any IP as long as it is not used by eNodeB or SPGWU.

u32mmeipaddress: MME IP address on S1MME interface.

36412: the default communication port number.

u32sgwipaddress: SPGWU IP address on S1U interface.

Where to get those IP addresses? As described at the end of the M-CORD quick start page, the command openstack server list --all-projects will list the VNFs and their IP addresses. For example, the flat_network_s1mme of MME VM is the u32mmeipaddress. The flat_network_s1u is the u32sgwipaddress.

Besides this, you should also config the S1U IP and S1MME interface IP address on eNodeB by the following command lines. The default value of S1MME we use is, while the default value of S1U is

sudo ifconfig eth0
sudo ip addr add dev eth0

Configure the VNFs on the pod for the eNodeB

Specify the eNodeB IP addresses when creating the EPC in the XOS UI. To create one, click on Add on the Virtual Evolved Packet Core ServiceInstances page. You will see:

Enodeb ip addr s1mme
external eNodeB IP address of S1-MME is the default S1MME interface IP on the eNodeB. is the default S1U interface IP on the eNodeB.

Make sure that the IP addresses here are the same as the IP addresses you configed on your eNodeB.

Add subscriber infomation to the HSS database

Prepare the three values of a SIM card: IMSI, key, and opc. For apn value, we will use the default value "apn1". Login to the HSS-DB VM, with user name "c3po" and password "c3po", and run:

~/c3po/db_docs/data_provisioning_users.sh <imsi> 1122334456 apn1 <key> 1 <ip>

Then login to the database:

cqlsh <ip>

Set the opc value:

cqlsh> use vhss;
cqlsh:vhss> update users_imsi set opc='<opc>' where imsi='<imsi>';

Connect a phone to the eNodeB

You can use any phone, as long as it supports the same band as your eNodeB. Search the mobile networks. You should see your eNodeB relative name as one of the choices.

Setup verification

Download a ping applicaiton on your phone. You can ping the SGI interface IP address of SPGWU from the phone.

Another way to test is to use our InternetEmulator VM. The username and password are also "c3po" and "c3po". You need to modify a route on this machine:

sudo route add -net gw <SPGWU-SGI-IP> dev ens3 is the default subnet assigned for the phones, you can ignore it. SPGWU-SGI-IP is the SGI interface IP address on SPGWU. You can find this IP through the same method as with the u32mmeipaddress above.

results matching ""

    No results matching ""