ORBIT Project Overview www.orbit-lab.org ORBIT Overview: Project - - PowerPoint PPT Presentation
ORBIT Project Overview www.orbit-lab.org ORBIT Overview: Project - - PowerPoint PPT Presentation
ORBIT Project Overview www.orbit-lab.org ORBIT Overview: Project Rationale Wireless testbeds motivated by: cost & time needed to develop experimental prototypes need for reproducible protocol evaluations large-scale system
ORBIT Overview: Project Rationale
- Wireless testbeds motivated by:
– cost & time needed to develop experimental prototypes – need for reproducible protocol evaluations – large-scale system studies (...emergent behavior) – growing importance of cross-layer protocol studies – creation of communities for wireless network research
- ORBIT: open-access multi-user facility for experimental
wireless networking research
– ~24/7 service facility with remote access – open interfaces for flexible layer 2,3 & cross-layer protocols – extensive measurements at PHY, MAC and Net layers – support for wide range of radio system scenarios
ORBIT co-PI’s
- WINLAB, Rutgers University
– Dipankar Raychaudhuri – Max Ott – Ivan Seskar – Wade Trappe – Manish Parashar – Yanyong Zhang
- Columbia University
– Henning Schulzrinne
- Princeton University
– Hisashi Kobayashi
- IBM Research
– Arup Acharya
- Lucent Bell Labs
– Sanjoy Paul
- Thomson
– Kumar Ramaswamy
Urban 300 meters 500 meters Suburban 20 meters ORBIT Testbed
20 meters
Hallway Office
30 meters
Radio Mapping Algorithm
Formulation of Link SNR Mapping
STEP 1 Modeling Link SNR
- f Real Environments
Prototype network (AP, Ad Hoc, etc.) Spatial distribution of terminals Empirical/Analytical path loss model Setting dedicated noise-like sources Setting locations of grid nodes Setting transmission powers of nodes
Fidelity of Grid SINR to Link SNR
STEP 2 Configuring Grid SINR
The Grid: Architecture
80 ft ( 20 nodes ) 70 ft m ( 20 nodes ) Control switch Data switch Application Servers (User applications/ Delay nodes/ Mobility Controllers / Mobile Nodes) Internet VPN Gateway / Firewall Back-end servers Front-end Servers Gigabit backbone VPN Gateway to Wide-Area Testbed SA1 SA2 SAP IS1 IS2 ISQ
RF/Spectrum Measurements Interference Sources
The Grid: Hardware
512 MB RAM
Gigabit Ethernet
(control)
Gigabit
Ethernet
(data)
Atheros miniPCI 802.11 a/b/g
22.1Mhz 1 Ghz pwr/reset volt/temp
20 GB DISK
Serial Console 110 VAC
RJ11 NodeIdBox +5v standby
Power Supply
CPU VIA C3 1Ghz Atheros miniPCI 802.11 a/b/g Bluetooth USB
CPU Rabbit Semi RCM3700 10 BaseT
Ethernet
(CM)
RF Interference grid
- Number of transmitter antennas
providing spatial distribution of interference sources (BW = 40 MHz, f0=250 KHz – 6 GHz)
- Ideally @ each antenna linear
combination of 2-8 sources (cost issue)
- Variety of interference types
(W-CDMA, cdma2000, 1xEV- DO/DV, TD-SCDMA, cdmaOne, GSM/EDGE, GPRS/EGPRS, Bluetooth, GPS, enhanced multitone, NPR, AWGN, or up to 8 sec of arbitrary waveform generation)
Agilent ESG
… …
Agilent ESG Agilent ESG
+
Experiment Support Architecture
System
Control Measure
Deploy & Configure
Experimenter Results Definition
Defining an Experiment
Experiment
Static
- Mapping
nodes to prototype
- Binding
free properties Dynamic P1 Pi
Topology Application
Properties Measurements Test code
Prototype
App 1 Sys
Mapping Strategy
OML: Measurement Framework
Experiment Definition
Experiment.name = "tutorial-1" Experiment.project = "Orbit::Tutorial" Experiment.startMode = Experiment::REBOOT # # Define nodes used in experiment # node([2, 3], :sender) {|n| n.prototype("http://apps.orbit-lab.org/sender", { :if => Node::W0_IF, :packetSize => Experiment.parameter("packetSize"), :rate => Experiment.parameter("rate") }) } node([3, 4]) {|n| n.prototype("http://apps.orbit-lab.org/receiver", {:if => Node::W0_IF}) } # # Configure environment # node("/*/*").net.w0 {|n| n.essid = "HelloWorld" n.mode = "ad-hoc" n.channel = 1 n.xmitPower = 1 ;# What is 1? n.bitrate = "11Mbps" # Force single rate n.ip = "%10.0.%x.%y" } # Start experiment whenReady {|e, n| p.packetSize = 1024 p.rate = 250 e.sleep 5.0 e.done }
Prototype Definition
p = Prototype.create("http://apps.orbit-lab.org/sender") p.name = "Sender" p.description = "Nodes which send a stream of packets" p.addParameter(:if, "Name of interface to use", Node::W0_IF) p.addParameter(:packetSize, "Payload length of outgoing packets", 1000) p.addParameter(:rate, "Rate to send", 1000) p.addParameter(:channel, "Channel to send on", 1) p.addParameter(:useSocket, "If true use socket, otherwise use libmac for transport", true) genny = p.addApplication(:gennySender, "http://apps.orbit-lab.org/gennySender#gennySender") genny.bindProperty(:interface_name, :if) genny.bindProperty(:rate) genny.bindProperty(:payload_length, :packetSize) genny.bindProperty(:use_socket, :useSocket) genny.addMeasurement(:group3, Filter::SAMPLE, {Filter::SAMPLE_SIZE => 100}, [ ["offered_load", Filter::MEAN] ] )
<prototype id='http://apps.orbit-lab.org/sender'> <name>Sender</name> <url>http://apps.orbit-lab.org/sender</url> <description>Nodes which send a stream of packets</description> <parameters> <parameter name='packetSize' id='packetSize'> <description>Payload length of outgoing packets</description> <default>1000</default> </parameter> … </parameters> <applications> <application refid='http://apps.orbit-lab.org/gennySender#gennySender'> <properties> <property idref='interface_name'><binding idref='if'/></property> … </properties> <measurements> <measurement id='group3'> <properties> <property idref='uri:oml:filter:trigger'> … </properties> <metric refid='offered_load'> <filter idref='uri:oml:filter:mean'/> …
Analyzing Experiments
function nsf(dbServer, dbUser, dbPW, database); % Part where we retrieve data from the database; mysql('open',dbServer, dbUser, dbPW); mysql('use', database);
- utput = struct('time',[],'thr_all',[],'node',[]);
[output.time, output.thr_all, output.node] = mysql('select timestamp, throughput, node_id from group2'); [thru1_4, time1_4, thru3_1, time3_1] = sort_mysql(output); % Finally, the plotting part subplot(2,1,1); plot(time1_4, thru1_4, '-*'); title('Throughput On Obstructed Link'); xlabel('Time (sec)'); ylabel('Throuhput (bps)'); grid on; subplot(2,1,2); plot(time3_1, thru3_1, '-*'); title('Throughput On Monitor Node'); xlabel('Time (sec)'); ylabel('Throuhput (bps)'); grid on;
Progress
- Installed Production Nodes
- Scaled to 64 Nodes
- Added Bluetooth
- Semi-automated calibration (+/- 10db)
- Web site is up
- Supporting “Click”
- Started with external experimenter (Columbia)
- Started exploring mobility & NS-2 integration
- V2 of node handler & OML in beta
- 5 Papers accepted
Future
- Delivery of 450 nodes in December
- Extend Beta testers to industry EWPs
- Move into new building (???)
- Explore new radios (Zigbee, Mote, GNU radio)
- Scale to 400
- Interested? Join mailing list
www.orbit-lab.org/community/mailingLists
www.orbit-lab.org
Testbed System
- ORBIT consists of radio grid emulator + field trial network
- Emulator used for detailed protocol evaluations in reproducible
complex radio environments
- Field trial network for further real-world evaluation & application
trials