Wireless airtime analysis: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 29: Line 29:


[http://wiki.laptop.org/images/a/ab/Airtime.py This python tool] was designed to take a capture file (tcpdump format) as input and calculate the airtime consumption of a given type of traffic (specified by a wireshark filter) for a consolidation interval:
[http://wiki.laptop.org/images/a/ab/Airtime.py This python tool] was designed to take a capture file (tcpdump format) as input and calculate the airtime consumption of a given type of traffic (specified by a wireshark filter) for a consolidation interval:

=== Instructions ===


./airtime.py -f <pcap-file> -i <interval> -w <filter> -o <output_format> [--no-fcs]
./airtime.py -f <pcap-file> -i <interval> -w <filter> -o <output_format> [--no-fcs]

Options:
-h, --help show this help message and exit
-f PCAPFILE, --pcap-file=PCAPFILE
Capture dump
-t TEXTFILE, --text-file=TEXTFILE
Capture already converted/filtered
-i INTERVAL, --interval=INTERVAL
Consolidation interval in seconds
-w FILTER, --filter=FILTER
Wireshark filter
-o OUTPUT, --output-format=OUTPUT
Output Format [csv, lines]
--no-fcs don't check if frames have bad crc

=== Notes ===

* The input file (PCAPFILE) is a tcpdump capture file (captured by tcpdump, wireshark or any other compatible tool)
** Radiotap header must be present (for the script needs the tx datarate)
** If your capture does not provide Frame CheckSum (this is the case of the captures from XOs) you must provide the flag --no-fcs
** By default only frames with good FCS will be computed
* The script generates a temporary file in the local directory named <caprute file>.tmp3
** This file can be used instead of the original pcap file (using the -t option), if the filter is the same. This is meant to save processing time if you are to use the same set of data, changing only the consolidation interval.
** The .tmp3 file can be safely removed
* The default output format will dump a line for each consolidation timeslot with the percentage of airtime consumed.
** You can use '-o csv' to get a comma separated file that can be easily imported by a spreadsheet program
* Filters should be quoted: -w "filter expression". (see examples bellow)
** If you do not provide a filter, all frames in the file will be computed (total airtime)
* Default consolidation interval is 1 second.
** Fractions of a second can be used too.

=== Examples ===

1. To compute all airtime consumption for each one second interval
./airtime.py -f capture.dump

2. To compute all traffic related to XOs i

Revision as of 13:03, 6 June 2008

This page is devoted to the analysis of the airtime consumption in XO networks. In other words, to getting answers to questions like: how much of the medium is consumed by management traffic, or beacons, or the path discovery mechanism.

To obtain this answers we do a little math and introduce a tool that will make this math easier to do.

Airtime and Modulation technique

The time necessary to transmit a given frame is function not only of the transmission rate; it is also affected by the modulation technique in use. An XO will transmit frames in two different mechanisms:

  • For the rates 1, 2, 5.5 and 11Mbps, frames will be transmitted in CCK
  • For the rates 6, 9, 12, 18, 24, 36, 48 and 54Mbps, frames will be transmitted in OFDM

Given:

  • Frame size in bytes: S
  • Datarate in Mbps: R
  • Airtime in microseconds (us): T


For frames transmitted in CCK:

T = 192 + (S*8)/R

Note1: 192 is preamble duration (144us) + PLPC header duration (48us)
Note2: Supposing long preambles are being used in all transmissions.


For frames transmitted at more than 11Mbps (OFDM):

T = 26 + (S*8)/R

Note: 26 is signal extension time (6us) + preamble (20us)

Airtime tool

This python tool was designed to take a capture file (tcpdump format) as input and calculate the airtime consumption of a given type of traffic (specified by a wireshark filter) for a consolidation interval:

Instructions

./airtime.py -f <pcap-file> -i <interval> -w <filter> -o <output_format> [--no-fcs]
Options:
 -h, --help            show this help message and exit
 -f PCAPFILE, --pcap-file=PCAPFILE
                       Capture dump
 -t TEXTFILE, --text-file=TEXTFILE
                       Capture already converted/filtered
 -i INTERVAL, --interval=INTERVAL
                       Consolidation interval in seconds
 -w FILTER, --filter=FILTER
                       Wireshark filter
 -o OUTPUT, --output-format=OUTPUT
                       Output Format [csv, lines]
 --no-fcs              don't check if frames have bad crc

Notes

  • The input file (PCAPFILE) is a tcpdump capture file (captured by tcpdump, wireshark or any other compatible tool)
    • Radiotap header must be present (for the script needs the tx datarate)
    • If your capture does not provide Frame CheckSum (this is the case of the captures from XOs) you must provide the flag --no-fcs
    • By default only frames with good FCS will be computed
  • The script generates a temporary file in the local directory named <caprute file>.tmp3
    • This file can be used instead of the original pcap file (using the -t option), if the filter is the same. This is meant to save processing time if you are to use the same set of data, changing only the consolidation interval.
    • The .tmp3 file can be safely removed
  • The default output format will dump a line for each consolidation timeslot with the percentage of airtime consumed.
    • You can use '-o csv' to get a comma separated file that can be easily imported by a spreadsheet program
  • Filters should be quoted: -w "filter expression". (see examples bellow)
    • If you do not provide a filter, all frames in the file will be computed (total airtime)
  • Default consolidation interval is 1 second.
    • Fractions of a second can be used too.

Examples

1. To compute all airtime consumption for each one second interval

./airtime.py -f capture.dump

2. To compute all traffic related to XOs i