Path Discovery Mechanism/Analysis
This page is dedicated to the PDM-analysis tool, a small python script that takes a pcap file as input and outputs statistics on the Path Discovery Mechanism.
The PDM-analysis tool
Requirements
- You also need wireshark on the box (the script uses tshark to decode the file). If you want to decode mesh frames you will need the mesh patch. No other dependencies.
Download
Download the current version here
Usage
Just make the script executable and fire it:
./PDM-Analysis.py -f <pcap_file> [--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 --no-fcs don't check if frames have bad crc
- 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>.tmp2
- This file can be used instead of the original pcap file (using the -t option). This is meant to save processing time if you just want to generate the same report later.
- The .tmp3 file can be safely removed
The Report
The PDM-Analysis tool will generate a report like the following:
------------------------------------------------------------------------ ROUTE DISCOVERY REPORT (for ../route_exp/captures/10s-mcastping-1.pcap) ------------------------------------------------------------------------ Captured route discovery frames: 14152 [RREQs 12936 (91.41%) RREPs 1141 (8.06%) RERRs 75 (0.53%)] Route discovery clusters: 852 Average # of frames captured per cluster: 16.52 (stdev = 11.57) [RREQs 15.18, RREPs 1.34, RERRs 0.09] Replied requisitions (with any rrep captured): 509 (59.00%) Completed requisitions (with final rrep captured): 158 (18.00%) RREQs: By Hop Count: 1: 2165 (16.74%) 2: 4449 (34.39%) 3: 3354 (25.93%) 4: 2280 (17.63%) 5: 688 (5.32%) By Datarate: 54: 2374 (18.35%) 36: 2470 (19.09%) 11: 3991 (30.85%) 1: 4101 (31.70%) Unknown: 0 (0.00%) RREPs: By Hop Count: 1: 93 (8.15%) 2: 362 (31.73%) 3: 478 (41.89%) 4: 180 (15.78%) 5: 28 (2.45%) Estimated % of multihop paths: 34.26% First RREP elapsed time (ms): 62.27 (stdev = 35.94) MIN: 14.87 MAX: 183.31 Route acquisition time (ms): 80.74 (stdev = 50.73) MIN 14.87 MAX 263.99 Route discovery lifespan (ms): 94.71 (stdev = 57.99) MAX 263.99 RREQ distribution for 1 hop(s) (ms): mean = 11.02 (stdev = 24.53) MIN: 0.00 MAX: 189.35 RREQ distribution for 2 hop(s) (ms): mean = 34.07 (stdev = 38.90) MIN: 1.69 MAX: 232.48 RREQ distribution for 3 hop(s) (ms): mean = 52.19 (stdev = 40.12) MIN: 4.94 MAX: 227.01 RREQ distribution for 4 hop(s) (ms): mean = 64.19 (stdev = 39.30) MIN: 10.75 MAX: 194.59 RREQ distribution for 5 hop(s) (ms): mean = 82.54 (stdev = 42.35) MIN: 18.09 MAX: 189.81 PDM Airtime (ms): 5778.6543 PDM Activity Interval (s): 68.53 PDM Airtime %: 8.43 Participants: 10 00:17:c4:05:2c:ae: FWD 1518 ORIGIN 65 => 1309 TARGET 65 => 1199 00:17:c4:05:23:3a: FWD 1475 ORIGIN 61 => 1217 TARGET 83 => 1325 00:17:c4:0c:e8:eb: FWD 1307 ORIGIN 145 => 2205 TARGET 82 => 1463 00:17:c4:02:2f:59: FWD 1325 ORIGIN 127 => 1823 TARGET 91 => 1711 00:17:c4:05:27:98: FWD 1691 ORIGIN 149 => 1968 TARGET 78 => 1351 00:17:c4:05:23:02: FWD 1080 ORIGIN 43 => 874 TARGET 109 => 1615 00:17:c4:03:57:1b: FWD 1357 ORIGIN 60 => 1006 TARGET 81 => 1361 00:17:c4:05:2a:79: FWD 1525 ORIGIN 68 => 1217 TARGET 98 => 1701 00:17:c4:03:56:e0: FWD 1477 ORIGIN 67 => 1264 TARGET 83 => 1121 00:17:c4:05:27:a3: FWD 1397 ORIGIN 67 => 1194 TARGET 82 => 1230
How to read the Report
The header informs the name of the file used to generate the report
------------------------------------------------------------------------ ROUTE DISCOVERY REPORT (for ../route_exp/captures/10s-mcastping-1.pcap) ------------------------------------------------------------------------
GENERAL INFORMATION SECTION: The total number of PDM frames captured [and for each type]:
Captured route discovery frames: 14152 [RREQs 12936 (91.41%) RREPs 1141 (8.06%) RERRs 75 (0.53%)]
The number of times the PDM was started and the average composition of a cluster:
Route discovery clusters: 852 Average # of frames captured per cluster: 16.52 (stdev = 11.57) [RREQs 15.18, RREPs 1.34, RERRs 0.09]
For how many of the clusters at least one RREP was captured, and for how many a final rrep (i.e. one with the transmission address of the originator of the cluster):
Replied requisitions (with any rrep captured): 509 (59.00%) Completed requisitions (with final rrep captured): 158 (18.00%)
ROUTE REQUESTS SECTION:
RREQs: By Hop Count: 1: 2165 (16.74%) 2: 4449 (34.39%) 3: 3354 (25.93%) 4: 2280 (17.63%) 5: 688 (5.32%) By Datarate: 54: 2374 (18.35%) 36: 2470 (19.09%) 11: 3991 (30.85%) 1: 4101 (31.70%) Unknown: 0 (0.00%)
ROUTE RESPONSES SECTION:
RREPs: By Hop Count: 1: 93 (8.15%) 2: 362 (31.73%) 3: 478 (41.89%) 4: 180 (15.78%) 5: 28 (2.45%) Estimated % of multihop paths: 34.26%
TIME LINE SECTION:
First RREP elapsed time (ms): 62.27 (stdev = 35.94) MIN: 14.87 MAX: 183.31 Route acquisition time (ms): 80.74 (stdev = 50.73) MIN 14.87 MAX 263.99 Route discovery lifespan (ms): 94.71 (stdev = 57.99) MAX 263.99 RREQ distribution for 1 hop(s) (ms): mean = 11.02 (stdev = 24.53) MIN: 0.00 MAX: 189.35 RREQ distribution for 2 hop(s) (ms): mean = 34.07 (stdev = 38.90) MIN: 1.69 MAX: 232.48 RREQ distribution for 3 hop(s) (ms): mean = 52.19 (stdev = 40.12) MIN: 4.94 MAX: 227.01 RREQ distribution for 4 hop(s) (ms): mean = 64.19 (stdev = 39.30) MIN: 10.75 MAX: 194.59 RREQ distribution for 5 hop(s) (ms): mean = 82.54 (stdev = 42.35) MIN: 18.09 MAX: 189.81
PDM AIRTIME STATISTICS:
PDM Airtime (ms): 5778.6543 PDM Activity Interval (s): 68.53 PDM Airtime %: 8.43
PARTICIPANTS SECTION:
Participants: 10
The number of PDM frames forwarded (FWD) by each node. The number of PREQ clusters originated by each node (ORIGIN) and how many frames were triggered by the original RREQs. The number of PREQ clusters destined (targeted at) the node and how many frames were triggered by the original RREQs.
00:17:c4:05:2c:ae: FWD 1518 ORIGIN 65 => 1309 TARGET 65 => 1199 00:17:c4:05:23:3a: FWD 1475 ORIGIN 61 => 1217 TARGET 83 => 1325 00:17:c4:0c:e8:eb: FWD 1307 ORIGIN 145 => 2205 TARGET 82 => 1463 00:17:c4:02:2f:59: FWD 1325 ORIGIN 127 => 1823 TARGET 91 => 1711 00:17:c4:05:27:98: FWD 1691 ORIGIN 149 => 1968 TARGET 78 => 1351 00:17:c4:05:23:02: FWD 1080 ORIGIN 43 => 874 TARGET 109 => 1615 00:17:c4:03:57:1b: FWD 1357 ORIGIN 60 => 1006 TARGET 81 => 1361 00:17:c4:05:2a:79: FWD 1525 ORIGIN 68 => 1217 TARGET 98 => 1701 00:17:c4:03:56:e0: FWD 1477 ORIGIN 67 => 1264 TARGET 83 => 1121 00:17:c4:05:27:a3: FWD 1397 ORIGIN 67 => 1194 TARGET 82 => 1230