Download
Latest version is 5.0.
- Licence
- WiPal 5.0 — Download
- WiPal 4.0 — Download
- WiPal 3.1 — Download
- WiPal 3.0 — Download
- WiPal 2.1 — Download
- WiPal 2.0 — Download
- WiPal 1.2 — Download
- WiPal 1.1 — Download
- WiPal 1.0 — Download
- WiPal 1.0a — Download
- Prerequisites
Licence
Copyright © 2007, 2008, 2009, 2010 Université Pierre et Marie Curie — Paris 6
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation ; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.
WiPal 5.0 — Download
- wipal-5.0.tar.bz2
- wipal-5.0.zip
- Debian packages (for i386 only)
News
- Port WiPal to GCC 4.4.
wipal-list-frame
: Enable using-f
and-F
to provide hexadecimal dumps of frames.wipal-stats
: The “STA counters” sections now include “total number of frames” and “average frames per microsecond” columns. See WiPal manual.- Introduce
wipal-plot-onoff
to plot the “ON/OFF events” section reported bywipal-stats
. This requires a valid Python installation and Pycairo. - WiPal library: every compound is now located inside the top-level
wpl
namespace. - Revamp the library’s pcap input/output system. This induces faster
pcap operations (both for WiPal’s binaries and the library). But
this is also a huge API change for those using the library.
The most important changes are:
- the
pcapxx
namespace becomeswpl::pcap
, -
pcapxx::descriptor<>
becomeswpl::pcap::file<>
(inwipal/pcap/stream.hh
), -
pcapxx::dumper
becomeswpl::pcap::ostream
(inwipal/pcap/ostream.hh
), - introduction of a
wpl::pkt
namespace for file-format independent compounds. To this regard,pcapxx::frame_descriptor<>
becomeswpl::pkt::packet<>
(inwipal/pcap/pkt.hh
). Itspcap_header()
method becomesmeta()
. - pcap files with indexes are now a separate class:
wpl::pcap::indexed_file<>
.
- the
- Library: perform a lot of file and compound renamings. Among the
most important ones:
- move everything from
wipal/wifi/frame/filter
towipal/filter
, - move everything else from
wipal/wifi/frame
towipal/wifi
. Thewifi::frame namespace
does not exist anymore either. -
filter::microseconds_stamper
becomesfilter::timetracker
, -
wifi::mactime_tracker
becomesphy::timetracker
.
- move everything from
- Fix a few bugs, as usual.
WiPal 4.0 — Download
- wipal-4.0.tar.bz2
- wipal-4.0.zip
- Debian packages (for i386 only)
News
- Make WiPal able to work with Ethernet II traces. Beware this has some
shortcomings:
- Traces must contain OLSR packets or IPv6 router advertisements (RA).
- Traces must be short enough so OLSR packets or IPv6 RA do not wrap.
- One cannot expect operations to be as precise as usual, because
of timestamp inaccuracies. Using the new
-x
option might be needed.
Before trying, you should carefully read and understand WiPal’s manual, sections 1.7, 1.7.1, and 1.5.1, in this order.
(Idea and original patch from Ryad Ben-El-Kezadri.)
- Add a command line option to specify the default precision of
timestamp comparisons (this is the same as the “expected
synchronization precision”). Previous versions used a static value
and changing this value required a recompilation. Now one just has
to use the
-x
option.The default is still 106 microseconds. See WiPal’s manual for details, section 1.1.1.
- Add a command line option to force the use of PCAP timestamps. When
several timestamps are available for a single frame, the default is
to use the most precise one (that is, not the PCAP timestamp). It
is possible to change this behavior with the new
-y
and-Y
options.(Idea and original patch from Ryad Ben-El-Kezadri.)
- Make WiPal able to decapsulate frames up to application level for
unique frames extraction.
With some traces (e.g. Ethernet II traces, or NS-3 generated traces) the standard procedure to extract unique frames based on IEEE 802.11 beacons and probe requests does not work. Therefore one needs to use other frames. WiPal is now able to decapsulate Ethernet II and IEEE 802.11 data frames in order use OLSR packets and IPv6 router advertisements.
Note that decapsulating IEEE 802.11 data frame is disabled by default. Use the configure script’s
--enable-attributes
option to enable it. See WiPal manual, section 1.7.1 for details.(Ideas and several patches from Ryad Ben-El-Kezadri and Hajime Tazaki)
- Provide the
wipal-merge-and-synchronize
command. This command enables synchronizing an arbitrary number of traces on the same timeline. See WiPal’s manual, section 1.6.1. - As usual, several minor bug-fixes.
WiPal 3.1 — Download
- wipal-3.1.tar.bz2
- wipal-3.1.zip
- Debian packages (for i386 only)
News
This is a minor release. It only fixes bugs and does not introduce new features. Yet there are many fixes, and some bugs were really annoying so this deserved a release.
- Fix WiPal for AMD64 architectures. Especially, fix compilation
errors. The test suite now succeeds on both i386 and AMD64.
Note that WiPal has not been tested on big endian systems so far. We do not have big endian machines with enough RAM at our disposal.
- Make
wipal-stats
more robust to traces that contain some non-increasing timestamps. - Make
wipal-anonymize
more robust to truncated frames. (In some cases truncated beacon frames caused segmentation faults.) - Fix a bug that prevented
wipal-anonymize
to parse correctly some ESSID mapping files. - Do not hang when synchronizing or merging two traces that do not share any reference frame.
WiPal 3.0 — Download
- wipal-3.0.tar.bz2
- wipal-3.0.zip
- Debian packages (for i386 only)
News
- Provide
wipal-anonymize
. This program uses a simple scheme to anonymize IEEE 802.11 PCAP traces. It basically- anonymizes the NIC specific part of MAC addresses,
- anonymizes ESSIDs with a prefix-preserving scheme, and
- truncates data frames to keep only MAC headers.
See documentation for details.
- Improve
wipal-stats
:-
wipal-stats
now produces an “ON/OFF events” section that gives information about each STA’s activity periods. See documentation for details. - wipal-stats now produces a “per STA counters” section. For each STA that emitted frames, this section gives the value of various counters. E.g. total number of bytes emitted, average rate, etc. See documentation for details.
- Give more information about each BSS in the “BSS figures” section. For instance, give the ESSIDs each BSS advertises or indicate how many beacons of a BSS claim to belong to an independent BSS.
- Fix various annoying bugs. For instance, in some uncommon conditions the “BSS figures” section used to forget reporting some BSS’s. Also, growth information was incorrect when using wipal-stats on multiple traces.
-
- Minor changes in outputs.
- Change the format for warnings. “
WARNING:
” is no longer printed at the beginning of lines. - Change the frame reporting format. The new format is now
“
<file>:<frame number>
” instead of just “<frame number>
”. - It is possible that some parts of WiPal 3.0 still do not conform to these new formats. We know, and we are sorry for that. We fix it each time we spot such a bug in WiPal’s code.
- Try to filter some warnings in the unique frame intersection process to reduce the number of false-negative warnings. That is, warnings that do not indicate an anomaly in input traces.
- Change the format for warnings. “
WiPal 2.1 — Download
- wipal-2.1.tar.bz2
- wipal-2.1.zip
- Debian packages (for i386 only)
News
- Improve
wipal-stats
and related programs:- Its output now displays traces’ earliest and latest frame timestamps.
- It is now possible to plot “growth graphs”. That is, the number of distinct addresses and BSSIDs seen in the trace since its beginning w.r.t. time. See documentation for details.
- Scripts that plot graphs with time on the x axis now use PCAP
timestamps. They used to display the number of elapsed minutes
since the beginning of the trace. Beware that this is GMT
time, so you might have to adapt it according to the timezone
the trace was measured in. Use the
WP_TZ
environment variable to specify a different time zone. See documentation for details. - A new
wipal-plot-all
script enables users to plot all graphs from a statistic file in one command. - Distinct AP and client frames in some figures (e.g. network activity graph).
- Add
wipal-list-frames
, a simple tool to list a trace’s frames (possibly with their corresponding timestamps). - Several important bugfixes. Especially, when merging some specific traces, previous versions of WiPal generated traces which first frames’ timestamps were incorrect. This is now fixed.
- Improve
wipal-merge
. Remove useless computations. Use a simple heuristic to minimize memory consumption. Still,wipal-merge
’s output is not very clear, especially in case there are errors and warnings. It is possible to clarify that (a bit) by compiling with-DWP_ENABLE_INFO
. - Add a
debian/
subdirectory to the package with proper files so one can easily build Debian packages from a fresh tarball. Just run:$ tar xjf wipal-2.1.tar.bz2 $ cd wipal-2.1 $ dpkg-buildpackage -rfakeroot
- Support GCC 4.3.
- Some minor changes in output messages:
-
"make check"
should produce a clearer output. - Instead of just giving frame indices, some warnings now refer to specific frames as “file:id”.
-
WiPal 2.0 — Download
News
- Extend and document
wipal-stats
, so WiPal is able to produce figures about wireless traces. Introducewipal-plot-activity
,wipal-plot-tfi
, andwipal-plot-gaplenfreqs
, in order make plots fromwipal-stats
’ output.For instance, one might use WiPal to produce the following figures and plots, among others:
- Frame count, retransmission count, count and traffic size for each individual frame type/subtype. Many other counters are available.
- Estimation of the number of missed frames, beacons, etc.
- List of SSID, list of BSS and their corresponding APs.
- Traffic rate w.r.t. elapsed time for the whole trace, only for data frames, or only for management frames.
- T-Fi plots (see Schulman et al., On the Fidelity of 802.11 Packet Traces, PAM 2008).
See WiPal’s manual to have more information on these tools.
- Rename
wipal-merge
aswipal-simple-merge
, and introduce a newwipal-merge
to perform merge operations involving more than two traces.wipal-merge
guesses an optimal merging sequence and then runs it on the input traces.wipal-merge
comes along withwipal-similarity
, a program to approximate how similar to each other several traces are.These programs are rather experimental for the moment: despite they are fully functional, they lack polishing and using them is a bit rough. Specifically, their output messages are not very clear. This is OK when the merge is a success, but makes it a pain to debug and identify errors when something goes wrong. That should evolve with future releases.
See WiPal’s manual to have more information on these tools.
- Add some small features to avoid minor merging bugs:
- Identify some misordered packets w.r.t. MAC timestamps. Avoid these anomalies to generate “time gaps” as they did in previous versions.
- When performing linear regressions to synchronize traces, identify results that are not precise enough to avoid duplicates. Ignore them.
WiPal 1.2 — Download
News
- Fix a silly endianness bug that prevented
wipal-synchronize
andwipal-windowed-merge
to work correctly with AVS headers. AVS headers are now tested by the test suite. - Update documentation concerning frame attributes. Hopefully this is
clearer now. Make
hsh
the default attribute when OpenSSL is enabled. Remove useless attributes from the default build to decrease compilation time. - Rename
wipal-windowed-merge
aswipal-merge
. - Provide
wipal-extract-transmitter
to extract frames from a given transmitter. - Provide
wipal-extract-bssid
to extract frames from a given BSS.
WiPal 1.1 — Download
News
- Add support for the following PCAP link types:
- IEEE 802.11 (
IEEE802_11
) Use PCAP timestamps for synchronization. - Radiotap headers (
IEEE802_11_RADIO
) Use the TSF field’s values. - AVS headers (
IEEE802_11_RADIO_AVS
) Use MAC timestamps.
Previous versions of WiPal only supported:
- Prism headers (
PRISM_HEADER
) Use MAC timestamps.
WARNING: Merging traces with AVS headers was not tested! This is rather simple code so it should work fine, but be warned there may be some unexpected bugs.
This lack of testing is due to the unavailability of suitable test traces, as well as Scapy (which we use to generate test cases) not handling this protocol.
- IEEE 802.11 (
- When OpenSSL is present, add the
hsh
frame attribute. Use it by adding `-a hsh
’ to your command lines. This results in WiPal hashing unique frames and using the digest as unique frame identifier. Though you might expect slightly reduced performance, this will provide better unique frames identification. - Most of WiPal’s programs now accept the
-a
option.
WiPal 1.0 — Download
News
WiPal is a piece of software dedicated to IEEE 802.11 traces manipulation. It comes as a set of programs and a C++ library.
WiPal 1.0a — Download
This is a pre-realease version anterior to WiPal 1.0.
Prerequisites
WiPal needs:
- GCC.
- The Boost C++ libraries. More specifically:
- any,
- array,
- conversion/lexical_cast,
- date_time,
- filesystem,
- foreach,
- format,
- multi_array,
- optional,
- preprocessor
- smart_ptr,
- string_algo,
- tuple.
- The GNU MP Bignum Library,
- OpenSSL.