From: Andy Green <andy@warmcat.com>
To: Jouni Malinen <jkm@devicescape.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
Michael Wu <flamingice@sourmilk.net>,
linux-wireless@vger.kernel.org
Subject: Re: Question about PRISM2 header rate field
Date: Mon, 05 Mar 2007 20:39:29 +0000 [thread overview]
Message-ID: <45EC8001.9000102@warmcat.com> (raw)
In-Reply-To: <20070305165512.GB10947@devicescape.com>
Jouni Malinen wrote:
> On Mon, Mar 05, 2007 at 12:34:07PM +0100, Johannes Berg wrote:
>
>> But if you want to do injection over monitor interfaces we'll need to
>> have the stupid mgmt interface hack around forever for the userspace
>> MLME so it can receive only management traffic (even the non-promisc
>> monitor iface we should have gets *far* too much traffic for a userspace
>> MLME)
>
> I'm probably fine with this with Linux socket filter. I haven't verified
> this, but I would assume it can match on the 802.11 header frace control
> field to select only management frames. I don't think I would like to
> see variable length pseudo-header before the 802.11 header, though, in
> this case.. It might be possible to parse that in the filter byte code,
> but it would certainly be easier if the filter code can just refer to
> the beginning of the 802.11 header.
>
> It has been too long since I last used LSF and I think it was only for
> matching things in the IP header, so I don't remember what exactly can
> be matched in the headers before the IP headert and how easy this would
> be in case of monitoring headers. Before throughing away the management
> interface, someone would need to verify that this can indeed be done
> reasonably.
libpcap at least allows you to express presumably kernel-side filters like
"radio[0x4a:4]==0x13223344"
which means that the u32 at +0x4a bytes from the radio header (this is
for Prism2) must match the constant.
What I saw earlier when wandering through some related code (ipw3945 or
iwlwifi I think) was that other folks have adopted a hybrid system: they
used variable length radiotap headers alright but padded them to 0x40
bytes length. It's not the most beautiful architectural concept but
since mac80211 will be filling in the monitor side with a canned set of
radiotap elements it is in a position to guarantee no violation of it.
For the injection side variable length incoming radiotap headers are
probably no issue, since there is a length field at a fixed place near
the start of the radiotap stuff and the BPF syntax isn't being applied.
>> Besides, to userspace, this is almost identical. In both cases it opens
>> a socket, binds to something (either raw socket bound to netdev or
>> netlink socket bound to nl80211) and then stuffs frames into that socket
>> with some fixed header format (for most apps anyway)
>
> Well, almost identical still means a change to the kernel-user space
> interface.. Though, I think I would be willing to live with the
> consequencies in this case assuming we come up with a solution that is
> likely to stick for next several years without incompatible changes.
My guess is that whoever has to work with that management mode ioctl
forest, with one half of it in userspace or the other half in kernel out
of his control, will jump at the chance to replace it with a nice clean
reliable packet injection mechanism where if the driver only honours the
injection parameters, the usermode guy is in control of the whole
association protocol "soup to nuts" and can monitor everything from
tcpdump too.
-Andy
prev parent reply other threads:[~2007-03-05 21:21 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-04 10:23 Question about PRISM2 header rate field Andy Green
2007-03-04 16:35 ` Andy Green
2007-03-05 0:15 ` Johannes Berg
2007-03-05 1:02 ` Andy Green
2007-03-05 3:10 ` Michael Wu
2007-03-05 8:10 ` Andy Green
2007-03-05 11:24 ` non-promisc monitor interfaces [was: Re: Question about PRISM2 header rate field] Johannes Berg
2007-03-05 11:34 ` Question about PRISM2 header rate field Johannes Berg
2007-03-05 13:00 ` Filtering in Monitor Mode (was Question about PRISM2 header rate field) Andy Green
2007-03-05 13:05 ` Johannes Berg
2007-03-05 13:18 ` Andy Green
2007-03-05 13:22 ` Johannes Berg
2007-03-05 13:46 ` Andy Green
2007-03-05 16:55 ` Question about PRISM2 header rate field Jouni Malinen
2007-03-05 20:39 ` Andy Green [this message]
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=45EC8001.9000102@warmcat.com \
--to=andy@warmcat.com \
--cc=flamingice@sourmilk.net \
--cc=jkm@devicescape.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/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).