WiMAX tutorial
Using the WiMAX testbed
In order to use the WiMAX testbed resources offered by the NITOS facility, you will have to reserve the WiMAX base station and the nodes with WIMAX connectivity, offered by the testbed (nodes41-49).
Reserving the base station will render rights to the experimenter to access the WiMAXrf service of the testbed, used to configure and setup the base station at the experimenter's will.
After your reservation has started, login to the NITOS2 server with the following command:
ssh This email address is being protected from spambots. You need JavaScript enabled to view it.
Once you have logged in, you should setup the base station to the default settings, as its configuration might have been altered from its normal behavior by any previous experimenter. In order to setup the BS to the default settings you issue the following command:
wget -qO- "http://wimaxrf:5054/wimaxrf/bs/default"
Which will return you the message:
BS is now set to its default parameters
Since not all of the changes take place immediately, you will need to restart the base station for some of the changes to take effect. You can restart the BS with the following command:
wget -qO- "http://wimaxrf:5054/wimaxrf/bs/restart"
Which returns you the message:
BS restarting
It takes up to 5 minutes for the BS to be back operational. You can see the parameters that can be changed and the WiMAXRF service commands and their syntax by invoking the following command:
wget -qO- "http://wimaxrf:5054/wimaxrf/" | xml_pp
It returns an XML tree with the complete list of WiMAXRF commands. Since the BS is back to its default settings, you can start experimenting with the WiMAX testbed. In order to do so, you can login to your booked nodes with the command:
ssh root@node0XX
where XX is the number identifier of node reserved.
The WiMAX clients installed on the nodes are provided by Teltonika model UM6250. These devices are using a small linux client on them which is configured to serve the WiMAX network to the Linux OS as a simple Ethernet device.
Once you are logged on the node, you can see the WiMAX interface with an ifconfig command. The tel0 interface is the WiMAX device.
tel0 Link encap:Ethernet HWaddr 00:1e:42:02:1c:a4 inet6 addr: fe80::21e:42ff:fe02:1ca4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:103 errors:0 dropped:0 overruns:0 frame:0 TX packets:139 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7116 (7.1 KB) TX bytes:9323 (9.3 KB)
There is an internal network on the 192.168.0.0/24 subnet that is used to operate with the Teltonika device. The device by default is using the 192.168.0.1 IP address. You can configure the tel0 device with an IP of this subnet and connect to the Teltonika device. eg.
ifconfig tel0 192.168.0.46/24 up
In order to connect the device to the NITOS BS, you can use the following commands:
wget --http-user admin --http-password admin -qO - "http://192.168.0.1/cgi/cli?stopSs" wget --http-user admin --http-password admin -qO - "http://192.168.0.1/cgi/cli?addChannel frequency=2590000 bandwidth=10" wget --http-user admin --http-password admin -qO - "http://192.168.0.1/cgi/cli?startSs"
These commands setup the USB dongle to communicate at a center frequency of 2590MHz with a 10MHz bandwidth. You can confirm that the dongle has connected to the BS with the following command:
wget --http-user admin --http-password admin -qO - "http://192.168.0.1/cgi/cli?showSs
Now you can connect to the Teltonika device with the command:
telnet 192.168.0.1 700
You can use as credentials:
username: admin password: admin01
Once you are connected you can see the interfaces used by the client (eth0 and icc0).
eth0 Link encap:Ethernet HWaddr 26:C7:FB:4F:47:C7 inet addr:192.168.0.1 Bcast:0.0.0.0 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:770 errors:0 dropped:0 overruns:0 frame:0 TX packets:621 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:41041 (40.0 KiB) TX bytes:65498 (63.9 KiB) icc0 Link encap:Ethernet HWaddr 00:1E:42:02:1C:A3 inet addr:192.168.55.46 Bcast:0.0.0.0 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:76451 errors:0 dropped:1 overruns:0 frame:0 TX packets:46324 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:9143872 (8.7 MiB) TX bytes:7121807 (6.7 MiB)
The icc0 interface is the WAN interface used to communicate with the BS. The default network that is served by the BS is the 192.168.55.0/24. You need to further add some rules to the dongle and the node in order to enable connectivity among the node's WiMAX interfaces with each other. In the dongle you have to add these rules:
/bin/iptables -t nat -A PREROUTING -d 192.168.55.XX -j DNAT --to 192.168.0.YY
where XX is the node ID (eg. 46 for this example) and YY is the IP address of the tel0 interface. Finally, you have to add the appropriate routing rules to the node in order to be able to communicate over the WiMAX network. These rules are applied with the following commands:
route del default gw dev tel0 route add -net 192.168.55.0/24 gw 192.168.0.1 dev tel0
You can further check for statistics on the downlink quality of the WiMAX clients with the following command:
wget --http-user admin --http-password admin -qO - "http://192.168.0.1/cgi/cli?showPhyStatsRx
Orchestrating WiMAX experiments with OMF
The following is a sample experiment where the WiMAX interface is setup and we generate traffic between two nodes
defProperty('runtime',20,"Time in second for the experiment is to run") defProperty('client',"192.168.55.48","IP address of iperf server") defProperty('interval', "1", "Interval of Iperf measurements") defProperty('sender', 'omf.nitos.node043', "ID of sender node") defProperty('receiver', 'omf.nitos.node048', "ID of sender node") defGroup('Sender', property.sender) do |node| node.net.t0.channel = "2590000,10" node.addApplication("test:app:iperf-5.4") do |app| app.setProperty('client', property.client) app.setProperty('interval', property.interval) app.setProperty('time', property.runtime)
app.setProperty('udp', true) app.measure('transfer', :samples =>1) end end defGroup('Receiver', property.receiver) do |node| node.net.t0.channel = "2590000,10" node.addApplication("test:app:iperf-5.4") do |app| app.setProperty('server', true) app.setProperty('interval', property.interval)
app.setProperty('udp', true) app.measure('transfer', :samples =>1) end end onEvent(:ALL_UP_AND_INSTALLED) do |event| wait 50 info "This is an iperf experiment using a teltonika modem" allGroups.startApplications wait property.runtime wait 2 allGroups.stopApplications wait 2 Experiment.done end
You can run it from the testbed server with the following command:
omf exec experiment.rb --slice your_username
Who's Online
We have 2 guests and no members online