From: Benoit PAPILLAULT <benoit.papillault@free.fr>
To: Gertjan van Wingerde <gwingerde@gmail.com>
Cc: rt2x00 Users List <users@rt2x00.serialmonkey.com>,
linux-wireless@vger.kernel.org
Subject: Re: [rt2x00-users] [PATCH v2] rt2x00: Further L2 padding fixes.
Date: Sun, 29 Nov 2009 18:55:22 +0100 [thread overview]
Message-ID: <4B12B58A.1010808@free.fr> (raw)
In-Reply-To: <4B12B272.9090607@gmail.com>
Gertjan van Wingerde a écrit :
>> I fully disagree here. It's a bit of chicken-egg problem. I'm using
>> monitor mode to debug other wireless drivers, so I need a tool that
>> gives me the frame as it appears on the radio medium, be it invalid or
>> not. And I do see lots of invalid 802.11 frames in real life that are
>> generated by bogus drivers or intended to be bogus in order to crash
>> wireless drivers.
>
> So, what do you suggest we do here?
>
> If we don't know what kind of data is given (clearly even the ieee80211 header
> is malformed), then how can we detect what padding has been added by the hardware.
> We know that the hardware puts padding between the header and the payload, but in
> this case we don't even have a full header.
> The only sane thing to do here is to assume that no padding has been applied at all.
>
> Also, do we know how mac80211 reacts to these kinds of frames, so is it safe to
> pass it to mac80211?
Here is my feeling :
- for padding, we need to understand how the hardware behaves. My test
shows that hardware uses the frame_control field to computes L2PAD flag,
even if the header is malformed. Padding is always applied after 802.11
header, if the frame is long enough. Otherwise, no padding of course.
I've tested on ath9k where ath9k provides FCS field and here FCS can be
used to check we did proper unpadding. Using ath9k, I then found how
rt2800 works.
- regarding invalid frames (yes, they do exists), they must be passed to
upper layers (here mac80211). If mac80211 crashes on invalid frame, then
mac80211 should be fixed. A quick check in ieee80211_rx() shows that
ieee80211_rx_monitor() does this work already (ie, invalid frames are
forwarded to monitor interfaces and then ignored by other interfaces).
Regards,
Benoit
next prev parent reply other threads:[~2009-11-29 17:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-29 11:47 [PATCH v2] rt2x00: Further L2 padding fixes Gertjan van Wingerde
2009-11-29 13:27 ` Ivo Van Doorn
2009-11-29 14:32 ` [rt2x00-users] " Benoit PAPILLAULT
2009-11-29 14:59 ` Gertjan van Wingerde
2009-11-29 17:21 ` Benoit PAPILLAULT
2009-11-29 17:42 ` Gertjan van Wingerde
2009-11-29 17:55 ` Benoit PAPILLAULT [this message]
2009-11-29 20:38 ` Gertjan van Wingerde
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B12B58A.1010808@free.fr \
--to=benoit.papillault@free.fr \
--cc=gwingerde@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=users@rt2x00.serialmonkey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).