Version 1 (modified by 14 years ago) ( diff ) | ,
---|
WiMAX "Hello World" Tutorial
This tutorial presents a simple example of using WiMAX devices that are available in ORBIT. The tutorial assumes basic understanding of OMF so, if you are not familiar with it, you may want to read the short OMF System Overview to familiarize yourself with the testbed control framework.
Experimental Scenario
The experimental scenario is fairly simple: our goal is to measure RTT of basic WiMAX link (single hop).
Experiment Description
Configuring WiMAX inteface
We need to connect to the basestation; will use wimaxcu userspace utility for that.
defApplication('wimaxcu', 'wimaxcu') {|a| a.name = "wimaxcu" a.version(0, 0, 1) a.path = "/usr/bin/wimaxcu" a.defProperty('args', "Arguments for wimaxcu command", nil, {:order => 1, :dynamic => false, :type => :string, :use_name => false
Assigning the WiMAX IP Address
We will use dhclient command on the node to assign the IP address to the WiMAX interface. The following code snippet is the dhclient command wrapper that is used for address assignement.
defApplication('dhclient', 'dhclient') {|a| a.name = "dhclient" a.version(0, 0, 1) a.path = "/sbin/dhclient -q" a.defProperty('interface', "DHCP client interface name", nil, {:order => 1 , :dynamic => false, :type => :string, :use_name => false
Ping Application
Wrapper for ping application.
defApplication('pingtest_app', 'pingtest') do |a| a.path = "/usr/bin/pingtest.rb" a.version(0, 0, 1) a.shortDescription = "Wrapper around Ping -c" a.description = <<TEXT This is a wrapper around the ping command. This application is using OML4R part of OML v2.3 or v2.4 TEXT a.defProperty('ip', 'Ip address to ping', 'i', {:type => :string, :dynamic => false}) # List the Measurement Points and associated metrics that are available # for this application # a.defMeasurement('pingtest') do |m| m.defMetric('ip',:string) m.defMetric('time',:string) m.defMetric('x',:string) m.defMetric('y',:string) end end
Experiment Code
Specify the nodes involved in the experiment and declare the applications with parameters that they would be running
defGroup('tester', [1,1]) do |node| node.addApplication('wimaxcu') { |app| app.setProperty('args','connect network 51') } node.addApplication('dhclient') { |app| app.setProperty('interface',"wmx0") } node.addApplication("pingtest_app") { |a| a.setProperty('ip',"10.41.0.1") a.measure('pingtest') } end
The actual experiment: boot the nodes. wait for 10 seconds for them to worm up and then
whenAllInstalled() {|node| info "Give machines some time to warm up" wait 10 allGroups.startApplications info "Colect measurements for 100 seconds" wait 100 info "Finish it." Experiment.done }
Attachments (1)
-
wimax-tutorial1.rb
(2.0 KB
) - added by 14 years ago.
Wimax tutroal 1 ED file
Download all attachments as: .zip