Avi Berkovich wrote:
> Well, I went through the wiretap library code and saw that while it's 
> aware of the dBm tag (it has it's own "switch case"), it just doesn't 
> read it.

The problem is that, for 802.11 radio information other than in libpcap 
files (where the radio information appears in the packet data as a 
header preceding the 802.11 header), it's presented to the 802.11 
dissector as a "pseudo-header".

That pseudo-header was originally introduced for the file format used by 
AiroPeek before *Peek switched to the new file format (the old file 
format is handled by wiretap/etherpeek.c, because the code to handle it 
was first added to handle files from EtherPeek; the new file format is 
handled by wiretap/airopeek9.c, because the code to handle it was first 
added to handle files from a later version of AiroPeek (the URL 
mentioned in airopeek9.c says 2.0.1)).

The older versions of AiroPeek had a fixed-length radio header, with a 
1-byte data rate value in 500Kb/s units, a 1-byte channel value with a 
channel number and a 1-byte signal level value as a percentage.  Those 
were the only values put into the pseudo-header; some other file formats 
also use it.

The newer versions of EtherPeek, AiroPeek, and presumably OmniPeek, have 
a variable-length TLV-based pseudo-header, with tags for both signal and 
noise as a percentage and as a dBm value, as well as other tags 
(including one mysterious one seen in an EtherPeek capture).  The 
current pseudo-header has no provision for most of those values, so most 
of them are ignored.

There are a couple of ways to handle this:

        1) have a new pseudo-header that can handle all the radio 
pseudo-information found in capture files - including in the Prism, AVS, 
and radiotap headers in libpcap - and funnel all radio information 
through that.

        2) have some mechanism for supplying the raw new-style *Peek TLV header 
and have a dissector for it - and perhaps even use that for the 
old-style *Peek header, CommView header, etc..

1) has the advantage that all the code that knows about particular forms 
of radio information is in Wiretap, and no dissectors or taps need know 
those details.

2) has the advantages that:

        1) we could have an option in the 802.11 dissector to have it either 
just display the extracted radio information (just the values) or 
display a dissection of the raw header - the former is probably what 
most users want (they don't care about the gory details of how a 
radiotap, AVS, or Prism header encodes that information), and the latter 
would be useful if you're debugging a driver generating a radiotap or 
AVS header or are trying to reverse-engineer a radio header);

        2) there's no loss of information from transforming the header to a 
pseudo-header, so if you save packets from a capture the radio 
information will be saved as is.

You *would* need multiple radio-information dissectors, but those could, 
at least, build a pseudo-header to hand to taps, so the taps would be 
independent of the capture file you're reading.
_______________________________________________
Wireshark-users mailing list
Wireshark-users@wireshark.org
http://www.wireshark.org/mailman/listinfo/wireshark-users

Reply via email to