• 1
  • 2
  • 3
  • 4

Activities

  • NITOS Outdoor deployment consists of powerful nodes that feature multiple wireless interfaces and allow for experimentation with heterogeneous (Wi-Fi, WiMAX,

    Read More
  • The setup NITOS testbed is currently using is a fixed setup (employing no mobility between BSs) that does not require

    Read More
  • Towards the development of a remote accessible LTE testbed, where experimenters from all the word will be able to run

    Read More
  • NITOS facility provides remote access to OpenFlow switches (2 x Pronto 3290 , 2 x HP 3800 ), enabling the user to create

    Read More
  • NITlab developed a software defined radio (SDR) testbed that consists of 18 Universal Software Radio Peripheral (USRP) devices attached to

    Read More
  • NITOS is an Intelligent Transport System (ITS) compatible facility thanks to the implementation of the key components of the ITS

    Read More
  • NITOS cloud infrastructure is based on HP GEN8 blade servers and one HP DL380p GEN8 server. Cloud Infrastructure UTH Each blade server has

    Read More

NITOS

The Future Internet Facility

  • Outdoor Testbed

    Experiments under real world environment Read More
  • Indoor Testbed

    Experiments in RF isolated environment Read More
  • Office testbed

    Experiments in an office environment Read More
  • 1
  • 2
  • 3

Broker Rspecs

NITOS RSpecs

The AM of the NITOS is accessible through:

  • GENI AM v2: https://nitlab.inf.uth.gr:8001/RPC2
  • GENI AM v3: under development

Advertisement of available resources

The first step in completing a reservation using SFA, is getting an advertisement of the available resources. Below we quote a sample advertisement. The RSpecs are based on GENI v3 with extensions regarding WiFi channels and reservations.

<?xml version="1.0"?>
<rspec xmlns="http://www.geni.net/resources/rspec/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ol="http://nitlab.inf.uth.gr/schema/sfa/rspec/1" xmlns:omf="http://schema.mytestbed.net/sfa/rspec/1" type="advertisement" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/ad.xsd http://nitlab.inf.uth.gr/schema/sfa/rspec/1 http://nitlab.inf.uth.gr/schema/sfa/rspec/1/ad-reservation.xsd" generated="2013-12-09T17:13:36+02:00" expires="2013-12-09T17:23:36+02:00">
 <ol:lease id="8749d9cc-2a0c-452d-84fe-5601800cb55f" valid_from="2013-12-09T17:11:13+02:00" valid_until="2013-12-09T18:11:13+02:00"/>
 <ol:lease id="eaba325f-27b8-44aa-baa2-dd4945c142cd" valid_from="2013-12-09T18:11:13+02:00" valid_until="2013-12-09T19:11:13+02:00"/>
 <ol:channel component_id="urn:publicid:IDN+omf:nitos+ol:channel+1" component_manager_id="urn:publicid:IDN+omf:nitos+authority+am" component_name="1" frequency="2.412GHZ"/>
 <node component_id="urn:publicid:IDN+omf:nitos.outdoor+node+node0" component_manager_id="urn:publicid:IDN+omf:nitos+authority+am" component_name="node0" exclusive="true">
   <available now="true"/>
   <interface component_id="urn:publicid:IDN+omf:nitos.outdoor+interface+node0:if0" component_name="node0:if0">
     <ip address="10.0.1.0" ip_type="ipv4" netmask="255.255.255.0"/>
   </interface>
   <ol:lease_ref id_ref="8749d9cc-2a0c-452d-84fe-5601800cb55f"/>
 </node>
 <node component_id="urn:publicid:IDN+omf:nitos.outdoor+node+node1" component_manager_id="urn:publicid:IDN+omf:nitos+authority+am" component_name="node1" exclusive="true">
   <available now="true"/>
   <interface component_id="urn:publicid:IDN+omf:nitos.outdoor+interface+node1:if0" component_name="node1:if0">
     <ip address="10.0.1.1" ip_type="ipv4" netmask="255.255.255.0"/>
   </interface>
   <ol:lease_ref id_ref="8749d9cc-2a0c-452d-84fe-5601800cb55f"/>
   <ol:lease_ref id_ref="eaba325f-27b8-44aa-baa2-dd4945c142cd"/>
 </node>
</rspec>

In the advertisement above we can come to the conclusion that:

  1. Two nodes are available (node0 and node1)
    • node0 has one interface with ip 10.0.1.0
    • node1 has one interface with ip 10.0.1.1
  2. Channel 1 is available with frequency '2.412GHZ'
  3. There are two leases active,  that are being referred by node0 and node1. Node0 is reserved during the dates that are listed in the first lease whereas node1 is also reserved during the dates of the second lease. 

Reservation Request

After inspecting an advertisement, we have all the required information to generate a request to make a new reservation with the available resources. For example, if we want to create a new lease that reserves node1 from "2013-01-08T19:00:00Z" to "2013-01-08T20:00:00Z", we have to generate and send the following RSpec:

<?xml version="1.0"?>
<rspec type="request" xmlns="http://www.geni.net/resources/rspec/3" xmlns:ol="http://nitlab.inf.uth.gr/schema/sfa/rspec/1" xmlns:omf="http://schema.mytestbed.net/sfa/rspec/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 http://nitlab.inf.uth.gr/schema/sfa/rspec/1 http://nitlab.inf.uth.gr/schema/sfa/rspec/1/request-reservation.xsd">  
 <ol:lease client_id="l1" valid_from="2013-01-08T19:00:00Z" valid_until="2013-01-08T20:00:00Z"/>
 <node component_id="urn:publicid:IDN+omf:nitos.outdoor+node+node1" component_manager_id="urn:publicid:IDN+omf:nitos+authority+am" component_name="node1" exclusive="true" client_id="my_node">    
   <interface component_id="urn:publicid:IDN+omf:nitos+interface+control" component_name="control">      
     <ip address="10.0.0.1"/>      
   </interface>
   <ol:lease_ref id_ref="l1"/>
 </node>
</rspec>

In the Request RSpec we make use of temporary IDs with the help of the attribute "client_id" in the lease and node elements. We make use of this temporary ID in the lease element in order to reference it in every node we want to reserve.

Manifest

After a request is sent, a response comes back in the form of a manifest, the manifest of the above request is:

<?xml version="1.0"?>
<rspec xmlns="http://www.geni.net/resources/rspec/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ol="http://nitlab.inf.uth.gr/schema/sfa/rspec/1" xmlns:omf="http://schema.mytestbed.net/sfa/rspec/1" type="manifest" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/manifest.xsd http://nitlab.inf.uth.gr/schema/sfa/rspec/1 http://nitlab.inf.uth.gr/schema/sfa/rspec/1/request-reservation.xsd" generated="2013-12-09T17:15:19+02:00">
 <ol:lease id="9e2893b9-af8e-4d60-9b5d-4d1836475a39" client_id="l1" valid_from="2013-01-08T21:00:00+02:00" valid_until="2013-01-08T22:00:00+02:00"/>
 <node client_id="my_node" component_id="urn:publicid:IDN+omf:nitos.outdoor+node+node1" component_manager_id="urn:publicid:IDN+omf:nitos+authority+am" component_name="node1" exclusive="true">
   <available now="true"/>
   <interface component_id="urn:publicid:IDN+omf:nitos.outdoor+interface+node1:if0" component_name="node1:if0">
     <ip address="10.0.1.1" ip_type="ipv4" netmask="255.255.255.0"/>
   </interface>
   <ol:lease_ref id_ref="9e2893b9-af8e-4d60-9b5d-4d1836475a39"/>
 </node>
</rspec>

This informs us that the request successfully created a lease from "2013-01-08T21:00:00+02:00" until "2013-01-08T22:00:00+02:00" for node1. We can also see the client_id tags we have sent with the request RSpec but now assosciated with unique IDs assigned by the AM itself.

Compilation of ath9k driver on .ndz images for NITOS-grid Commell LV-67B nodes

Compilation of ath9k driver and modules usage

We use "ubuntu_nitos_commell_ath9k_enabled.ndz" image located on /var/lib/omf-images-5.3 directory. Instructions about creating the above image can be found here.

 

@nitos:$~>  t_reboot 24 pxe; omf load -i /var/lib/omf-images-5.3/ubuntu_nitos_commell_plain.ndz -t omf.nitos.node024; ssh root@node024;
root@node024:$~> route add default gw 10.0.1.200; apt-get update
root@node024:$~> wget http://www.orbit-lab.org/kernel/compat-wireless-2.6/compat-wireless-2.6.tar.bz2 //Download compat wireless
root@node024:$~> tar -jxvf compat-wireless-2.6.tar.bz2
root@node024:$~> cd compat-wireless-2011-06-01
root@node024:$ compat-wireless-2011-06-01> ./scripts/driver-select ath9k //select ath9k to compile
root@node024:$ compat-wireless-2011-06-01> make KLIB=/usr/src/linux-headers-2.6.35.13-my-new-kernel-atheros-enabled KLIB_BUILD=/usr/src/linux-headers-2.6.35.13-my-new-kernel-atheros-enabled //compile against the respective headers
root@node024:$ compat-wireless-2011-06-01> make KLIB=/usr/src/linux-headers-2.6.35.13-my-new-kernel-atheros-enabled KLIB_BUILD=/usr/src/linux-headers-2.6.35.13-my-new-kernel-atheros-enabled install-modules
or
root@node024:$ compat-wireless-2011-06-01> make KLIB=/usr/src/linux-headers-2.6.35.13-my-new-kernel-atheros-enabled KLIB_BUILD=/usr/src/linux-headers-2.6.35.13-my-new-kernel-atheros-enabled KMODPATH_ARG='INSTALL_MOD_PATH=~/my_ath9k_driver' install-modules //compile and install the modules in the "directory /my_ath9k_driver
root@node024:~>ls;  // You will see my_ath9k_driver directory created, and containing the new modules. Now copy them to systems's library
root@node024:~> cp  -r ~/my_ath9k_driver/lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/
root@node024$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/compat/compat.ko //use of insmod for loading each module seperately
root@node025$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/net/wireless/cfg80211.ko
root@node024$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/net/mac80211/mac80211.ko
root@node024$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/drivers/net/wireless/ath/ath.ko
root@node024$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
root@node024$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/drivers/net/wireless/ath/ath9k/ath9k_common.ko
root@node024$:~>insmod  /lib/modules/2.6.35.13-my-new-kernel-atheros-enabled/updates/drivers/net/wireless/ath/ath9k/ath9k.ko
root@node024$:~> iwconfig //Now we can use the configured interface(s)
root@node024$:~> exit
@nitos:~> omf save -n omf.nitos.node024 // when you finish, save the image for future use

Enabling Frequency Slicing

In order to enable frequency slicing, all NITOS users are obligated to copy scheduler's public key to the authorized_keys file located in /root/.ssh folder at the image that they use to boot the nodes.

Just copy this line to the authorized_keys file. If the file does not exist, create it. Users that do not apply this change will be treated as malicius users. Save your image after that change so you do not have to do this every time you boot the nodes.

Note that the key should be in one line.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCniP1UIbBAfa67C0ij0MeWbRCTzjjD7TQvR8Lovfu8sM+ZcCvKqie2kvIiFzcCidOqZknQfAf9Goo+dPGEHilJ/Ad/mmcG+GrwZ9DCLQ7NtQjzoSJNeDGuahFBtkF7/NmtjS5AxQnBsLeE2L3XM1ttUFWnz3rMrw9jmGrzqWBUDRkifc5tQZb5fkmFCfqTBfl/3fDhbeWRt3qsRCkEs6+0p+ZqRobgUht2aExv1eSUH8icYM1bXUzjSrDh2o5/kRG+4Maz4YuuKdhYO5U8jH4YVzUSoO4oj7U4f9YQSyDuQubhxXQbMlM1wwszJ9pKaLLilftcXl+V1Hxer4/eUpGX scheduler@nitlab

What Our Experimenters Say

  • NITOS is a very reliable and well managed platform. The offered infrastructure and features are great. The management team is very supportive.

    Mustafa Al-Bado
    Postdoctoral researcher
    Insight centre, University College Cork (UCC)
  • 1
  • 2
 
uth
image
image
image
 
 

Login Form