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 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
Radio Mapping Algorithm Suburban Urban ORBIT Testbed 20 meters 300 meters Hallway Office 500 meters 20 meters 30 meters
Formulation of Link SNR Mapping Prototype network (AP, Ad Hoc, etc.) STEP 1 Spatial distribution of terminals Modeling Link SNR of Real Environments Empirical/Analytical path loss model Fidelity of Grid SINR to Link SNR Setting dedicated noise-like sources STEP 2 Configuring Grid Setting locations of grid nodes SINR Setting transmission powers of nodes
The Grid: Architecture Gigabit backbone Front-end VPN Gateway to Servers Wide-Area Testbed 80 ft ( 20 nodes ) Data 70 ft m ( 20 nodes ) switch Application Servers (User applications/ Delay nodes/ Mobility Controllers / Mobile Nodes) Control switch IS 2 IS Q SA 2 SA P IS 1 SA 1 RF/Spectrum Measurements Interference Sources Back-end servers Internet VPN Gateway / Firewall
The Grid: Hardware Atheros Atheros Bluetooth miniPCI miniPCI USB 802.11 802.11 a/b/g a/b/g 1 Ghz 512 MB CPU Gigabit RAM VIA Ethernet (control) C3 1Ghz Gigabit 20 GB Ethernet DISK (data) 22.1Mhz Serial Console 110 CPU 10 BaseT VAC Rabbit Semi Ethernet Power pwr/reset RCM3700 volt/temp (CM) Supply +5v standby RJ11 NodeIdBox
RF Interference grid • Number of transmitter antennas providing spatial distribution of interference sources (BW = 40 Agilent MHz, f0=250 KHz – 6 GHz) ESG + • Ideally @ each antenna linear … combination of 2-8 sources Agilent (cost issue) ESG • Variety of interference types … (W-CDMA, cdma2000, 1xEV- DO/DV, TD-SCDMA, cdmaOne, GSM/EDGE, Agilent GPRS/EGPRS, Bluetooth, GPS, ESG enhanced multitone, NPR, AWGN, or up to 8 sec of arbitrary waveform generation)
Experimenter Experiment Support Architecture Definition Results System Measure Control Deploy & Configure
Defining an Experiment Properties App 1 Test code Sys Measurements Topology Application Prototype Mapping Strategy P1 - Mapping nodes to prototype Pi - Binding free properties Dynamic Static Experiment
OML: Measurement Framework
Experiment Definition # Experiment.name = "tutorial-1" # Configure environment Experiment.project = "Orbit::Tutorial" # Experiment.startMode = Experiment::REBOOT node("/*/*").net.w0 {|n| n.essid = "HelloWorld" # n.mode = "ad-hoc" # Define nodes used in experiment n.channel = 1 # n.xmitPower = 1 ;# What is 1? node([2, 3], :sender) {|n| n.bitrate = "11Mbps" # Force single rate n.prototype("http://apps.orbit-lab.org/sender", { n.ip = "%10.0.%x.%y" :if => Node::W0_IF, } :packetSize => Experiment.parameter("packetSize"), :rate => Experiment.parameter("rate") # Start experiment }) whenReady {|e, n| } p.packetSize = 1024 node([3, 4]) {|n| p.rate = 250 n.prototype("http://apps.orbit-lab.org/receiver", e.sleep 5.0 {:if => Node::W0_IF}) e.done } }
Prototype Definition <prototype id='http://apps.orbit-lab.org/sender'> p = Prototype.create("http://apps.orbit-lab.org/sender") <name>Sender</name> <url>http://apps.orbit-lab.org/sender</url> p.name = "Sender" <description>Nodes which send a stream of packets</description> p.description = "Nodes which send a stream of packets" <parameters> p.addParameter(:if, "Name of interface to use", Node::W0_IF) <parameter name='packetSize' id='packetSize'> p.addParameter(:packetSize, "Payload length of outgoing packets", 1000) <description>Payload length of outgoing packets</description> p.addParameter(:rate, "Rate to send", 1000) <default>1000</default> p.addParameter(:channel, "Channel to send on", 1) </parameter> p.addParameter(:useSocket, "If true use socket, otherwise use libmac for transport", true) … </parameters> <applications> genny = p.addApplication(:gennySender, "http://apps.orbit-lab.org/gennySender#gennySender") <application refid='http://apps.orbit-lab.org/gennySender#gennySender'> genny.bindProperty(:interface_name, :if) <properties> genny.bindProperty(:rate) <property idref='interface_name'><binding idref='if'/></property> genny.bindProperty(:payload_length, :packetSize) … genny.bindProperty(:use_socket, :useSocket) </properties> <measurements> <measurement id='group3'> genny.addMeasurement(:group3, Filter::SAMPLE, <properties> {Filter::SAMPLE_SIZE => 100}, <property idref='uri:oml:filter:trigger'> [ … ["offered_load", Filter::MEAN] </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); output = 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
Recommend
More recommend