Saturday, November 23, 2024

youtube

   
Text Size

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