wiki:Architecture/Deployment/Measurements

Version 11 (modified by mpk2138, 3 years ago) ( diff )

This page lists coverage measurements performed for the COSMOS nodes. The goal is to give experimenters an idea of what coverage each node provides in the testbed area, so experiments may be planned more effectively.

Contributors: Gulnur Avci, Sienna Brent, Tingjun Chen, Angel Daniel Estigarribia, Sabbir Hossain, Manav Kohli, Jared Moser, Watson Mushimbei, Leoni Lu, Dwiref Oza, Irfan Tamim, Jeswanth Yadagani

For any questions, please email mpk2138[at]columbia.edu.

Node Coverage Measurements

Measurement Overview

A uniform procedure is used to measure each node. The procedure utilizes the USRP 2974 in each node to transmit real 802.11g data packets at regular 100ms intervals with fixed +27 dBm power on channel 1 (2412 MHz). The modulation and coding scheme used for these packets is QPSK 3/4. The 802.11g packets are generated in GNU Radio, using an 802.11 out-of-tree (OOT) framework [ 1 ], and transmitted through the node's RF Front End, as shown in Figure 1. A Dell XPS 13 laptop computer with an Intel 8265 WiFi card [ 2 ] is then used to receive and decode these packets in different locations, with the output provided by the tcpdump command. Each decoded packet reports its received power from the perspective of the Laptop WiFi card.

Figure 1: Overview of node measurement procedure.

Each measurement location is measured for 20 seconds, allowing both an average received power and packet reception ratio (PRR) to be computed over 200 packets.

Detailed Measurement Procedure

The specific procedure for setting up a node for measurements is outlined in this section.

Setting up the Node As an example, node s3-lg1 is used, but the following commands may be used on any node in the testbed.

  1. Load the correct image onto the USRP 2974 in s3-lg1
    console~$ omf load -i mpk2138-cosmos-node-measurements-2021-03-26.ndz -t sdr2-s3-lg1
    
  1. Set up the RF front end of the node to transmit at 2.412 GHz.
    console~$ curl "am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=sdr2-md2.bed.cosmos-lab.org&rf_port=0,1&power_amp=on&f_lower=2400&f_upper=2460"
    
  1. Turn on the USRP 2974. Wait one minute for the radio to turn on after issuing this command.
    console~$ omf tell -a on -t sdr2-md2.bed.cosmos-lab.org
    
  1. Login to the USRP 2974 and set it up for transmitting the WiFi packets. The prompt will say sdr2-s3-lg1 no matter what node you use.
    console~$ ssh -X root@sdr2-md2
    sdr2-s3-lg1~# /usr/local/bin/niusrprio_pcie start
    sdr2-s3-lg1~# sudo sysctl -w net.core.wmem_max=625000000
    sdr2-s3-lg1~# sudo sysctl -w net.core.rmem_max=625000000
    sdr2-s3-lg1~# cd cosmos_measurements
    

Setting up the Laptop

The instructions here are specific to the Dell XPS 13 laptop with Intel 8265 [ 2 ] WiFi card running Ubuntu 18.10. Performance with other WiFi cards may vary, and setup may also be different.

  1. Restart the laptop.
  2. Setup the WiFi card to monitor all incoming packets on 2.412 GHz. Please note, the wlp2s0 WiFi card interface may be named differently - use the ifconfig -a command to find the name of the WiFi card interface.
    $ sudo su
    $ iw dev
    $ iw phy phy0 info
    $ iw phy phy0 interface add mon0 type monitor
    $ ip link
    $ iw dev wlp2s0 del
    $ rfkill unblock wifi
    $ ip link set mon0 up
    $ iw dev mon0 info
    $ iw dev mon0 set freq 2412
    $ exit
    $ cd ~/COSMOS\ Measurements
    

Taking Measurements

Measurements are taken by placing the laptop at various locations around the node and recording the WiFi packets as the USRP 2974 in the node transmits them. The node image loaded onto the USRP 2974 provides a Python script that will start the packet transmissions from the USRP 2974. To transmit packets for roughly 45 seconds, run the following on the node SSH terminal:

sdr2-s3-lg1~/cosmos_measurements# timeout 45s python wifi_tx_nogui.py

Once the command line shows the radio has started transmitting (usually the presence of U showing up confirms this), the following script can be run on the Dell laptop to collect a 20 second packet measurement:

COSMOS Measurements$ sudo python measure.py 20 <filename> <measurement number> 

The filename can be anything but it is recommended to be descriptive including a date and the node being measured. The measurement number starts at 001 and increments with every measurement. Therefore an example measurement command would be:

COSMOS Measurements$ sudo python measure.py 20 2050-01-01-s3lg1Measurement 001

After the 20 second measurement has concluded, the GPS coordinates of the current laptop position can be recorded using an app such as one on iOS and Android called "Coordinates" [ 3 ]. The Dell laptop can then be moved to the next location, and the next measurement can be performed.

References

[ 1 ] - IEEE 802.11 a/g/p transceiver for GNU Radio

[ 2 ] - Intel 8265 Dual Band WiFi Card

[ 3 ] - Coordinates App

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.