Download Firefox: WindowsMac OS X
logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: getting frames with bad crc: msg#00001

Subject: Re: getting frames with bad crc
On Wed, May 04, 2005 at 06:40:08PM +0200, Francesco Potorti` wrote:
> I have recently tried to get corrupted frames, in order to examine how
> they are corrupted.  In order to do that, I hacked the orinoco.13e
> driver with the monitor patch.  I identified four candidate tests to
> change for getting bad frames, and I am experimenting with disabling
> them.  I'd like to ask for some help understanding their exact meaning:

Unfortunately, I can't be sure of the exact meaning, because these are
indications from the firmware, for which I don't have documentation.

Note that the driver itself never sees the PLCP header - all its
processing is handled in firmware.  We only see the MAC header.

> 1) (status & HERMES_RXSTAT_UNDECRYPTABLE)
>    What does exactly mean?  I am speculating that this is where the PLCP
>    header CRC is checked.  Is this correct?

I don't think so.  I believe this flag is set when the firmware
encounters a WEP encoded frame, but doesn't have a suitable key to
decrypt the frame.

I doubt frames with a bad PLCP header are supplied to the driver at
all.

> 2) (status & HERMES_RXSTAT_BADCRC)
>    This follows immediately (in fact is an `else' clause) and I suppose
>    it is where the MPDU CRC is checked.  Is this correct?

I suppose so - I imagine this flag is set when the firmware detects a
bad MPDU checksum.

> 3) (length > IEEE802_11_DATA_LEN)
>    This is a sanity check.  I suppose the length is taken from the PLCP
>    header, right?

The length is given to us by the firmware.  I imagine it, in turn,
calculates it from the PLCP header.

> 4) ( HERMES_RXSTATUS_MACPORT_GET(status) )
>    If the CRC is bad, this one may be broken, right?  That is, if the
>    CRC is bad, one could get any number here.  Can this be broken if the
>    PLCP header CRC is good?

I don't think so.  This information comes from the Rx descriptor.
This is a small chunk of information fed to us by the firmware giving
receive side status and low-level information - this doesn't go over
the air.

> Thanks for reading, and thanks to those that will care to answer.
> 

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/people/dgibson


-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click


<Prev in Thread] Current Thread [Next in Thread>