Ethereal-users: [Ethereal-users] RE: netxray.c Time Calculations (file version 2.2)
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
      
      
>Message: 10
>Date: Sat, 29 Jan 2005 
02:47:29 -0800
>From: Guy Harris <gharris@xxxxxxxxx>
>Subject: Re: [Ethereal-users] RE: Capture Header Decoding for 
Netxray
> (NetAsyst)
>To: Ethereal user support <ethereal-users@xxxxxxxxxxxx>
>Message-ID: <41FB69C1.6090407@xxxxxxxxx>
>Content-Type: text/plain; charset=ISO-8859-1; 
format=flowed
>
>Ken Mann wrote:
>> The structure below is 
what I have come up with. The noise level seems 
>> to use different 
units from the signal strength, 127 = 100%, 0xFF = 
>> ignore it. 
dummy2[2] appears to be set to 5 when the packet is WEP 
>> encrypted. 
The errorFlag value is either 1 or 5 when there is a problem 
>> with 
the packet (either CRC or WEP errors).
>> typedef struct
>> 
{
>>     UINT64  
pktTimeuSec;
>>     SINT16  
capLen;
>>     SINT16  
pktLen;
>
>Ethereal currently treats the first of the 16-bit 
integers as the actual 
>length of the packet and the second of them as 
the number of bytes 
>captured (that number can be smaller than the actual 
length because of 
>slicing, or whatever it's called in 
Sniffer).
>
>The names you give them make it sound to me as if the 
first of them is 
>the number of bytes captured and the second is the 
actual length, 
>instead; is that the case?
[Ken Mann] I 
probably have them backwards. For the software I am writing, they have to be the 
same. 
>
>>     UCHAR 
errorFlag;     // 802.11 only
>
>That doesn't 
appear to be 802.11-only - I think we've seen Ethernet 
>captures where, 
if the low-order bit is set, there's a bad FCS.
>
>Do you happen to 
know what the difference between a value of 1 and 5 
>here is?  Both 
of them have the low-order bit set; one but not the other 
>has 0x4 
set.  (If you can *generate* Sniffer files that the Sniffer can 
>read, it might be interesting to experiment with different bits set in 
>this field.)
[Ken Mann] No, I simply ignore the packet if this field is 
non-zero. Schedules and other priorities don't permit any further 
experiments. 
>
>>     
UCHAR dummy2[3];     // Appear to always be 
zero
>
>errorFlag and dummy2 could be a 4-byte little-endian flag 
word - or they 
>could be a 1-byte flag and 3 padding bytes, or a 2-byte 
little-endian 
>flag word and 2 padding bytes.  (Again, if you can 
generate Sniffer 
>files, it might be interesting to tweak various bits in 
dummy2[0-2].)
>
>>     UCHAR 
channel;       // 802.11 
only
>>     UCHAR 
speed;         // 802.11 
only
>>     UCHAR signalStrength;// 802.11 
only
>>     UCHAR noiseLevel;    // 
FF (none reported) or 127 (0x7F) == 100%
> 
>What are the units of 
signalStrength?
[Ken Mann] The value in the file is the literal Percent 
number reported in the packet decode 
view. 
>
>Presumably noiseLevel is also 
802.11-only.
>
>>     UCHAR 
dummy3[4];    // Meaning unknown, can be 
zeroed
>>     UCHAR 
srcMac[6];     // 802.11 only
>
>Is that any 
different from the source MAC address in the 802.11 header?
[Ken Mann] I 
believe it is always the 
same.