Using the LTE equipment¶
Transmit LTE traffic (ping - iperf)¶
Setup¶
The following picture depicts the LTE network’s architecture
Requirements
- A server node to host the SiRRAN EPC image
- One or more femtocells
- One or more LTE compatible nodes
- Optional - A node to host the LTErf image (for OMF enabled experimentation)
OS Images
The following table shows the name of each respective OS image, the type of the OS and their public urls.
Functionality | Name | Type | Public urn or url |
---|---|---|---|
SiRRAN EPC | SIRRAN_EPC_v1_7_50_2018 | Centos | urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:SIRRAN_EPC_v1_7_50_2018 |
LTErf | LTErf-v2 | Ubuntu 12.04 64bit | https://www.wall1.ilabt.iminds.be/image_metadata.php?uuid=37d19e2c-ca91-11e5-a2c8-003048d1cfa6 |
LTE UE | LTE_UE_Ubuntu_14_04_64bit_v2 | Ubuntu 14.04 64bit | urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2 |
Experiment Description in W-iLab.2 using JFED¶
You can use the following rspec file for LTE experimentation using JFED in W-iLab.2. The file describes the topology, which is depicted in the picture bellow and contains the EPC, the LTErf, the 2 femtocells and all the enabled LTE nodes (fixed and mobile). The experimenter can modify the file regarding his/her needs.
<?xml version='1.0'?>
<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request" generated_by="jFed RSpec Editor" generated="2016-10-20T14:55:14.178+02:00" xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1" xmlns:jfedBonfire="http://jfed.iminds.be/rspec/ext/jfed-bonfire/1" xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1" xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1" xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1" xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:jfed="http://jfed.iminds.be/rspec/ext/jfed/1" xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd ">
<node client_id="EPC" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+server8">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:SIRRAN_EPC_v1_7_50_2018"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="230.0" y="32.5"/>
<interface client_id="EPC:if0">
<ip address="192.168.1.1" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="LTErf" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+server7">
<sliver_type name="raw-pc">
<disk_image name="https://www.wall1.ilabt.iminds.be/image_metadata.php?uuid=37d19e2c-ca91-11e5-a2c8-003048d1cfa6"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="229.0" y="244.5"/>
<interface client_id="LTErf:if0">
<ip address="192.168.1.2" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="Femto1" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+ltefemtocell1">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+emulab-ops:GENERICDEV"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="53.5" y="138.5"/>
<interface client_id="Femto1:if0">
<ip address="192.168.1.10" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="Femto2" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+ltefemtocell2">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+emulab-ops:GENERICDEV"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="401.5" y="140.5"/>
<interface client_id="Femto2:if0">
<ip address="192.168.1.11" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="Mobile1" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile1">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="600.0" y="16.5"/>
</node>
<node client_id="Mobile2" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile2">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="600.0" y="56.5"/>
</node>
<node client_id="Mobile3" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile3">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="600.0" y="96.5"/>
</node>
<node client_id="Mobile4" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile4">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="599.0" y="136.5"/>
</node>
<node client_id="Mobile5" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile5">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="599.0" y="176.5"/>
</node>
<node client_id="Mobile6" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile6">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="730.5" y="16.5"/>
</node>
<node client_id="Mobile7" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile7">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="729.5" y="56.5"/>
</node>
<node client_id="Mobile8" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile8">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="729.0" y="96.5"/>
</node>
<node client_id="Mobile9" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile9">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="729.0" y="136.5"/>
</node>
<node client_id="Mobile10" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile10">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="729.5" y="177.5"/>
</node>
<node client_id="Mobile11" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile11">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="867.5" y="19.5"/>
</node>
<node client_id="Mobile12" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile12">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="869.0" y="57.5"/>
</node>
<node client_id="Mobile13" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile13">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="869.5" y="97.5"/>
</node>
<node client_id="Mobile14" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile14">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="869.5" y="137.5"/>
</node>
<node client_id="Mobile15" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+mobile15">
<sliver_type name="raw-pc">
<disk_image name="https://www.wilab2.ilabt.iminds.be/image_metadata.php?uuid=a16c037d-0ebc-11e5-a185-000c293cff7f"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="868.5" y="175.5"/>
</node>
<node client_id="zotacB3" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacB3">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="9.0" y="316.5"/>
</node>
<node client_id="zotacB4" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacB4">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="8.5" y="356.5"/>
</node>
<node client_id="zotacC1" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacC1">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="9.5" y="397.5"/>
</node>
<node client_id="zotacC4" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacC4">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="7.5" y="436.5"/>
</node>
<node client_id="zotacD6" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacD6">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="139.5" y="317.5"/>
</node>
<node client_id="zotacE3" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacE3">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="140.5" y="358.5"/>
</node>
<node client_id="zotacF1" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacF1">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="139.5" y="398.5"/>
</node>
<node client_id="zotacF6" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacF6">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="138.5" y="437.5"/>
</node>
<node client_id="zotacG3" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacG3">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="268.5" y="318.5"/>
</node>
<node client_id="zotacG4" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacG4">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="268.5" y="359.5"/>
</node>
<node client_id="zotacH1" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacH1">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="267.5" y="397.5"/>
</node>
<node client_id="zotacH6" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacH6">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="268.5" y="438.5"/>
</node>
<node client_id="zotacI3" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacI3">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="397.5" y="317.5"/>
</node>
<node client_id="zotacJ2" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacJ2">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="398.0" y="359.5"/>
</node>
<node client_id="zotacJ3" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacJ3">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="398.5" y="398.5"/>
</node>
<node client_id="zotacK4" exclusive="true" component_manager_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wilab2.ilabt.iminds.be+node+zotacK4">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="398.0" y="438.5"/>
</node>
<link client_id="link0">
<component_manager name="urn:publicid:IDN+wilab2.ilabt.iminds.be+authority+cm"/>
<interface_ref client_id="EPC:if0"/>
<interface_ref client_id="LTErf:if0"/>
<interface_ref client_id="Femto1:if0"/>
<interface_ref client_id="Femto2:if0"/>
<link_type name="lan"/>
</link>
</rspec>
Experiment Descirption using Emulab¶
The following experiment uses:
- Server 8 to load the SiRRAN EPC image
- Server 7 to load the LTErf image
- Robot 10 to load the LTE UE image
- Node E3 (25) to load the LTE UE image
- 2 femtocells
# Generated by NetlabClient
set ns [new Simulator]
source tb_compat.tcl
# Nodes
# Femtocell 1
set lte1 [$ns node]
$lte1 add-desire LTE-FEMTOCELL 1.0
tb-fix-node $lte1 ltefemtocell1
# Femtocell 2
set lte2 [$ns node]
$lte2 add-desire LTE-FEMTOCELL 1.0
tb-fix-node $lte2 ltefemtocell2
# zotacE3 (static node 25) - dongle
set zotac1 [$ns node]
#$zotacE3 add-desire ZOTAC
tb-fix-node $zotac1 zotacE3
tb-set-node-os $zotac1 #url_of_the_UE_image_goes_here
# mobile10 (robot 10) - dongle
set robot1 [$ns node]
tb-fix-node $robot1 mobile10
tb-set-node-os $robot1 #url_of_the_UE_image_goes_here
# Node 8 - SiRRAN EPC
set serv8 [$ns node]
tb-set-node-os $serv8 #urn_of_the_EPC_image_goes_here
set serv7 [$ns node] - LTErf
tb-fix-node $serv7 server7
tb-set-node-os $serv7 #url_of_the_LTErf_image_goes_here
# Lans
set lan0 [$ns make-lan "$lte1 $lte2 $serv8 $serv7" 1000000.0kb 0.0ms]
tb-set-ip-lan $serv8 $lan0 192.168.1.1
tb-set-ip-lan $serv7 $lan0 192.168.1.2
$ns rtproto Static
$ns run
# NetlabClient generated file ends here.
# Finished at: 3/18/14 4:08 PM
Experiment Description using Qosmotec framework¶
You can use the following rspec file for LTE experimentation using JFED in the Qosmotec framework. The file describes the topology, which is depicted in the picture bellow and contains the EPC, the LTErf, the 2 femtocells and the two enabled LTE nodes zotacSB3 and zotacSB4. The experimenter can modify the file regarding his/her needs.
<?xml version='1.0'?>
<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request" generated_by="jFed RSpec Editor" generated="2016-06-27T15:59:40.234+02:00" xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1" xmlns:jfedBonfire="http://jfed.iminds.be/rspec/ext/jfed-bonfire/1" xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1" xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1" xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1" xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:jfed="http://jfed.iminds.be/rspec/ext/jfed/1" xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd ">
<node client_id="EPC" exclusive="true" component_manager_id="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wall1.ilabt.iminds.be+node+n073-23a">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:SIRRAN_EPC_v1_7_50_2018"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="247.0" y="261.5"/>
<interface client_id="EPC:if0">
<ip address="192.168.1.1" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="Femto1" exclusive="true" component_manager_id="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wall1.ilabt.iminds.be+node+switch1-13-46">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wall1.ilabt.iminds.be+image+emulab-ops:GENERICDEV"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="91.5" y="162.5"/>
<interface client_id="Femto1:if0">
<ip address="192.168.1.12" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="Femto2" exclusive="true" component_manager_id="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wall1.ilabt.iminds.be+node+switch1-13-47">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wall1.ilabt.iminds.be+image+emulab-ops:GENERICDEV"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="389.5" y="161.5"/>
<interface client_id="Femto2:if0">
<ip address="192.168.1.13" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="LTErf" exclusive="true" component_manager_id="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm">
<sliver_type name="raw-pc">
<disk_image name="https://www.wall1.ilabt.iminds.be/image_metadata.php?uuid=37d19e2c-ca91-11e5-a2c8-003048d1cfa6"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="247.0" y="55.5"/>
<interface client_id="LTErf:if0">
<ip address="192.168.1.2" netmask="255.255.255.0" type="ipv4"/>
</interface>
</node>
<node client_id="UE1" exclusive="true" component_manager_id="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wall1.ilabt.iminds.be+node+zotacSB3">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="560.0" y="97.5"/>
</node>
<node client_id="UE2" exclusive="true" component_manager_id="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm" component_id="urn:publicid:IDN+wall1.ilabt.iminds.be+node+zotacSB4">
<sliver_type name="raw-pc">
<disk_image name="urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_UE_Ubuntu_14_04_64bit_v2"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="559.0" y="229.5"/>
</node>
<link client_id="link0">
<component_manager name="urn:publicid:IDN+wall1.ilabt.iminds.be+authority+cm"/>
<interface_ref client_id="EPC:if0"/>
<interface_ref client_id="Femto1:if0"/>
<interface_ref client_id="Femto2:if0"/>
<interface_ref client_id="LTErf:if0"/>
<link_type name="lan"/>
</link>
</rspec>
LTE node preparation (UEs)¶
Scripted way
sudo bash configure_lte_dongle.sh -c
To reset the dongle run:
sudo bash configure_lte_dongle.sh -r
For check all the availalbe functionalities run:
sudo bash configure_lte_dongle.sh -h
Manually
AT+COPS=? # to search for the available networks
AT+COPS=1,2,"22345" # to register to a network with PLMN code "22345" which is the iMinds PLMN code
AT+CGATT=1 # to attach to the registered network
AT+CGDCONT=1,"IP","default" # where "default" is the iMinds APN
AT^NDISDUP=1,1 # to initialize the NDIS connection
AT^DHCP? # to obtain an IP address
The AT^DHCP? command returns the IP in the following HEX form: 203000a,fcffffff,103000a,103000a,8080808,4040808,100000000,50000000 In order to convert the IP to decimal type run the following command with the returned IP as parameter.
perl -e 'print join(",",map { join(".", unpack("C4", pack("L", hex))) } split /,/, shift),"\n"' 203000a,fcffffff,103000a,103000a,8080808,4040808
Afterwards, you have to enable the wwan0 interface and assign the obtained IP address
sudo ifconfig wwan0 10.0.3.2 netmask 255.255.255.0 -arp up
As an additional step, you have to perform an SSH connection to the node (from an other separate node) using its control interface IP address. This is necessary as we need to change the default gateway in order the node to be able to communicate using the wwan0 interface.
Finally, you have to delete the default gateway and replace it with the EPC’s address.
sudo route del default gw 10.11.31.254
sudo route add default gw 10.0.3.1 dev wwan0
Experimentation
To ping the wwan0 interface on each LTE node from the EPC and vice versa
ping 10.0.3.1 # tap0 interface of EPC
ping 10.0.3.2 # wwan0 interface of LTE node 1
ping 10.0.3.3 # wwan0 interface of LTE node 2
In order to send an iperf traffic between the two LTE nodes or between a node and the EPC run the following commands for the server and the client respectively
iperf -s -u -i 1 # For the server
iperf -u -c [ip of the server] -b 100M -i 1 -t 40 # For the client
Using the Huawei E3372h-153 dongles¶
The Huawei E3372h USB LTE dongles are configured in HiLink mode. This means that the dongle functions as router performing NAT. For this reason, HiLink mode cannot be used for remote access applications (e.g. Remote Desktop, VNC, web servers, etc.) where “inbound” connections are initiated by computers on the Internet. To use HiLink mode, your application must require only “outbound” initiated connections (e.g. web browsing, email, etc.), or you must implement a VPN connection to another device which is initiated by the router which has the HiLink mode modem installed.
Switch mode Some times the OS recognizes the dongle as CD (12d1:1f01) or HiLink modem (12d1:14dc). In order to check the mode of the attached dongle run:
lsusb
You should see something like:
Bus 001 Device 004: ID 12d1:1f01 Huawei Technologies Co., Ltd.
or
Bus 001 Device 006: ID 12d1:14dc Huawei Technologies Co., Ltd.
If the dongle is in CD (12d1:1f01) mode then you should switch it to HiLink (12d1:14dc) mode. Normally you have to do this procedure once and the modem stays in HiLink mode until it is switched manually to another mode. To do so you have to create in your home folder two files named:
- sw_project_mode.sh
- sw_project_mode.xml
Then for the sw_project_mode.sh paste the following code:
curl -X POST -d @sw_project_mode.xml http://192.168.8.1/CGI
read -p "prompt"
and for the sw_project_mode.xml paste the following code:
<?xml version="1.0" encoding="UTF-8"?>
<api version="1.0">
<header>
<function>switchMode</function>
</header>
<body>
<request>
<switchType>0</switchType>
</request>
</body>
</api>
In order to switch to HiLink (12d1:14dc) mode run in the folder where you created the files the following command:
sudo bash sw_project_mode.sh
If the script does not exit press Ctrl+C to kill it. Verify that the dongle has switched to HiLink (12d1:14dc) mode by running:
lsusb
When the dongle is in HiLink (12d1:14dc) mode, creates an eth1 interface. You can verify this by running:
ifconfig
Connect to the LTE network
The dongles are preconfigured to attach to the LTE network. This can be verifies by checking the desired IMSI in the “Active subscribers” list of the EPC.
To change the network settings of the dongle in HiLink (12d1:14dc) mode you have to access the Web GUI of the dongle. This can be found in the following url:
192.168.8.1
To be able to access the url first you have to configure the dongle’s interface (normally eth1) to an address in the same range. To do so you can either run the dhclient command:
dhclient eth1
or assign an (unused) IP address manually. For instance:
sudo ifconfig eth1 192.168.8.4 up
The from the command line (install and) run firefox using X-forwarding. By accessing the 192.168.8.1 address and going to Settings -> Profile Management tab you can configure the APN of the desired LTE network.
- Profile name: default
- username: leave it empty
- password: leave it empty
- APN: default
At the Settings -> Mobile Connection tab activate the roaming option.
Then, you must be able to see your dongle in the “Active subscribers” list of the EPC.
Ping the EPC
To ping the EPC from a node using a Huawei E3372h-153 dongle you have to add the following ip route:
ip route add 10.0.3.0/24 via 192.168.8.1 dev eth1
Control an Android smarphone via ADB¶
For experimentation with an Android smartphone load the following image to the node on which the smartphone is attached to.
Functionality | Name | Type | URN |
---|---|---|---|
Android Smartphone | LTE_Android_Ubuntu_14_04_v1 | Ubuntu 14.04 64bit | urn:publicid:IDN+wilab2.ilabt.iminds.be+image+wall2-ilabt-iminds-be:LTE_Android_Ubuntu_14_04_v1 |
This image offers pre-installed the ADB tool to control the Android smartphone via USB. The ADB tool can be found under:
/android/android-sdk-linux/platform-tools
Initial steps
The first time you login into the node execute the following commands:
cd /android/android-sdk-linux/platform-tools
sudo ./adb devices
sudo ./adb kill-server
sudo cp /share/upload/LTE/android/keys/adbkey ~/.android/
sudo cp /share/upload/LTE/android/keys/adbkey.pub ~/.android/
sudo ./adb devices
This way you will replace the keys that are used for authentication between the node and the smartphone with the predefined ones.
Shell access
To gain shell access to the Android device run:
cd /android/android-sdk-linux/platform-tools
sudo ./adb shell
In the Android shell you can type su in order to gain root access.
Remote Android screen access
The afforementioned image comes with androidscreencast pre-installed. This tool allows the experimenter to get remote access of the smartphone’s screen.
cd /android/android-sdk-linux/platform-tools
javaws androidscreencast.jnlp
Press “Run” or “Yes” in all the pop-up windows that appear to gain access to the smartphone’s screen.
Manage APNs
cd /android/android-sdk-linux/platform-tools
./adb shell
su
Check if your carrier is listed in the default list of carriers. Origins in [] are optional
content query --uri content://telephony/carriers [--where "name=''"]
If your carrier is not listed, you have to add it to the list.
content insert --uri content://telephony/carriers --bind name:s:"default" --bind numeric:s:"22345" --bind type:s:"" --bind mcc:i:223 --bind mnc:s:45 --bind apn:s:default --bind user:s:"" --bind password:s:""
To delete the carrier run:
content delete --uri content://telephony/carriers --where "numeric='22345'"
Exit the shell
exit
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<set name="bearer_multi">
<string>0</string>
</set>
<string name="apn_http_proxy"></string>
<string name="select_usb_configuration">mtp</string>
<boolean name="wait_for_debugger" value="false" />
<boolean name="show_cpu_usage" value="false" />
<boolean name="force_hw_ui" value="false" />
<boolean name="bugreport_in_power" value="false" />
<string name="apn_type"></string>
<string name="apn_mnc">45</string>
<boolean name="pointer_location" value="false" />
<boolean name="keep_screen_on" value="false" />
<boolean name="mobile_data_always_on" value="false" />
<string name="apn_mms_proxy"></string>
<boolean name="legacy_dhcp_client" value="false" />
<boolean name="enable_adb" value="true" />
<string name="mvno_match_data"></string>
<string name="apn_protocol">IP</string>
<boolean name="bt_hci_snoop_log" value="false" />
<boolean name="debug_layout" value="false" />
<boolean name="wifi_aggressive_handover" value="false" />
<string name="apn_apn">default</string>
<boolean name="show_hw_screen_udpates" value="false" />
<string name="apn_http_port"></string>
<boolean name="strict_mode" value="false" />
<boolean name="wifi_display_certification" value="false" />
<boolean name="show_hw_layers_udpates" value="false" />
<boolean name="usb_audio" value="false" />
<boolean name="wifi_allow_scan_with_traffic" value="false" />
<string name="apn_user"></string>
<boolean name="show_screen_updates" value="false" />
<string name="mvno_type"></string>
<boolean name="show_touches" value="false" />
<boolean name="debug_view_attributes" value="false" />
<string name="apn_roaming_protocol">IP</string>
<boolean name="wifi_verbose_logging" value="false" />
<boolean name="immediately_destroy_activities" value="false" />
<boolean name="oem_unlock_enable" value="true" />
<string name="apn_mcc">223</string>
<boolean name="verify_apps_over_usb" value="true" />
<boolean name="show_all_anrs" value="false" />
<boolean name="force_msaa" value="false" />
<string name="apn_name">default</string>
<string name="apn_password"></string>
<boolean name="carrier_enabled" value="true" />
<string name="apn_mms_port"></string>
<boolean name="disable_overlays" value="false" />
<string name="apn_mmsc"></string>
<string name="apn_server"></string>
<boolean name="force_rtl_layout_all_locales" value="false" />
<string name="select_logd_size">262144</string>
</map>
This file is located under /share/upload/LTE/android/apn/ folder. To copy it in the afforementioned folder of the Android smartphone run:
cd /android/android-sdk-linux/platform-tools
adb push /share/upload/LTE/android/apn/com.android.settings_preferences.xml /sdcard
./adb shell
su
cp /sdcard/com.android.settings_preferences.xml /data/data/com.android.settings/shared_prefs/com.android.settings_preferences.xml
rm /sdcard/com.android.settings_preferences.xml
exit
exit
Toggle Data
cd /android/android-sdk-linux/platform-tools
./adb shell svc data enable
./adb shell svc data disable
Toggle Wi-Fi
cd /android/android-sdk-linux/platform-tools
./adb shell su -c 'svc wifi enable'
./adb shell su -c 'svc wifi disable'
Sending LTE downlink traffic to a mobile node using a static MCS profile¶
In the following link there is a demo video describing how LTE downlink traffic can be sent to a mobile node using a static MCS profile
https://www.youtube.com/watch?v=VD0hoZL-Dw4
Using the WiSHFUL framework¶
NEW !! INSTALL WISHFUL USING ANSIBLE
The following code has been tested on Ubuntu 14.04 64-bit
apt-get install ansible
git clone https://github.com/WirelessTestbedsAcademy/ExperimentationTools.git
cd ExperimentationTools/Ansible/wilabt/
ansible-playbook install_wishful.yml
MANUAL INSTALL INSTRUCTIONS BELOW
Install all required software. These commands should be executed on your nodes before downloading the WiSHFUL software.
You can also chose to use a custom image which has all the WiSHFUL software (incl. patched ath9k driver) pre-installed. In this image, the WiSHFUL sofware is installed in /root/wishful
urn:publicid:IDN+wilab2.ilabt.iminds.be+image+testbed:UBUNTU14-64-wishful
If you are using the default image (UBUNTU14-64-WILAB), then run these commands:
sudo apt-get update
sudo apt-get install -y wget git python python-virtualenv python-dev python3-dev python3-pip
sudo pip3 install --force-reinstall --upgrade pip
Install the WiSHFUL framework on a shared NFS directory. You only have to run this once.
cd /groups/wall2-ilabt-iminds-be/<your-project-name>/
mkdir wishful
cd wishful
#configure your git credentials
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
#download git-repo
wget https://storage.googleapis.com/git-repo-downloads/repo
chmod a+x ./repo
#get manifest files
./repo init -u https://github.com/wishful-project/manifests.git
#configure user-only manifest file
./repo init -m user.xml
# get all repositories
./repo sync
# to create master branch on all
./repo start master --all
# to check status of all repositories
./repo status
# create a virtual python environment
virtualenv -p /usr/bin/python3 ./dev
# activate virtual python environment
source ./dev/bin/activate
# make sure pip3 version is 18.0 or higher
pip3 install --force-reinstall --upgrade pip ; pip3 --version
# install all dependencies
# *******WARNING*******
# DO NOT EXECUTE pip3 install as sudo, unless you run all your scripts with the root user.
pip3 install -U -r ./.repo/manifests/requirements.txt
For future experiments, you can now just activate your virtual environment:
sudo apt-get update
sudo apt-get install -y wget git python python-virtualenv python-dev python3-dev python3-pip
cd /groups/wall2-ilabt-iminds-be/<your-project-name>/wishful
source ./dev/bin/activate
WiFi QoS Management¶
In this experiment, four nodes are used as devices under test, while the fifth node is used as a WiSHFUL controller. The four nodes are split into two AP - client setups sharing the same channel and are running the iPerf application to measure network bandwidth. The WiFi QoS manager implemented as WiSHFUL controller will modify EDCA parameters of one of the flows changing the bandwidth allocation.
Create an experiment in jFed containing 7 nodes, named as follows:
- ec
- oml
- controller
- ap1
- ap2
- client1
- client2
An example OMF experiment description can be found in the shared directory:
/share/upload/omf6/wishful/wishful_edca.rb
/share/upload/omf6/wishful/iperf.rb
Copy the files to your group directory and modify them:
- replace all occurrences of <YOUR-PROJECT-NAME>
- replace all occurrences of <YOUR-SLICE-NAME>
- replace <IP-ADDRESS-OF-YOUR-CONTROLLER> with the actual IP address of your controller
- make sure that you named your nodes as listed above, otherwise you also have to change those in your OMF experiment description
Run it with:
omf_ec -u amqp://labwiki.test.atlantis.ugent.be exec --oml_uri tcp:<NAME-OF-YOUR-OML-SERVER>:3003 wishful_edca.rb
To patch the ath9k driver (UNTESTED!!):
sudo -s
wget https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.4.2/backports-4.4.2-1.tar.xz
tar -xJf backports-4.4.2-1.tar.xz
cd backports-4.4.2-1/
cd drivers/net/wireless/ath/
#the steps below will make sure the ath9k driver uses the correct regulatory restrictions for your country
wget --no-check-certificate https://dev.openwrt.org/export/32952/trunk/package/mac80211/patches/403-ath_regd_optional.patch
patch -Np5 -i 403-ath_regd_optional.patch
echo "#define ATH_USER_REGD 1" | cat - regd.c > /tmp/out && mv /tmp/out regd.c
cp /share/upload/ath9k/edca_tpc_patch.patch .
patch -Np5 -i edca_tpc_patch.patch
cd -
make defconfig-ath9k menuconfig
#enable debugging in ath9k as described here: https://wireless.wiki.kernel.org/en/users/drivers/ath9k/debug
make
make install
reboot
Retrieve statistics of connected stations¶
Create an experiment in jFed containing 7 nodes, named as follows:
- ec
- oml
- controller
- ap1
- ap2
- client1
- client2
Use this image:
urn:publicid:IDN+wilab2.ilabt.iminds.be+image+testbed:UBUNTU14-64-wishful
An example OMF experiment description can be found in the shared directory:
/share/upload/omf6/wishful/wishful_rssi.rb
/share/upload/omf6/wishful/iperf.rb
Copy the files to your group directory and modify them:
- replace all occurences of <YOUR-SLICE-NAME>
- replace <IP-ADDRESS-OF-YOUR-CONTROLLER> with the actual IP address of your controller
- make sure that you named your nodes as listed above, otherwise you also have to change those in your OMF experiment description
Modify your global control program on your controller :
nano /root/wishful/examples/wilab/rssi/wishful_simple_controller
And put your own experiment details in:
omlDB=OMLBase("station_info", "<EXP_NAME>","controller","tcp:<OML-SERVER>:3003")
Run it with (replace <EXP_NAME> with a UNIQUE name for your experiment (same as the one above in the control program). If you run the same experiment multiple times, change the name of the experiment EVERY time):
omf_ec --name <EXP_NAME> -u amqp://labwiki.test.atlantis.ugent.be exec --oml_uri tcp:<NAME-OF-YOUR-OML-SERVER>:3003 wishful_edca.rb