[rfc] INJECT mode for net80211

Adrian Chadd adrian at freebsd.org
Sun Aug 10 08:02:55 UTC 2014


On 10 August 2014 00:54, Rui Paulo <rpaulo at freebsd.org> wrote:
> On Aug 9, 2014, at 23:41, Adrian Chadd <adrian at FreeBSD.org> wrote:
>
>> Hi!
>>
>> I kinda got fed up with the lack of functioning inject.
>>
>> * monitor mode isn't inject mode;
>> * ahdemo mode seems .. less useful.
>>
>> So I just created IEEE80211_M_INJECT and taught net80211 / ath about
>> it. This is like monitor mode (straight to RUN, no need to set an
>> SSID, no auto scanning by default) but it allows transmit and
>> populates the node table with temporary node entries.
>>
>> So:
>>
>> http://people.freebsd.org/~adrian/ath/20140809-net80211-ath-inject-1.diff
>
> This patch looks incomplete.  Did you forget to diff sys/net?

Hm, try:

http://people.freebsd.org/~adrian/ath/20140809-net80211-ath-inject-2.diff

> In general, I'd prefer to have one mode.  aircrack used to work in monitor mode, so I'm surprised the problem is the lack of an inject mode.  Looking at the code, you're pretty much defining INJECT to be MONITOR mode.

How did it used to work?

* monitor mode very specifically doesn't define output methods at all;
* there's no temporary nodes created when transmitting, so it all
simply ends up being dropped because no txnode was found.

So perhaps there was some path via the raw output method which no
longer is working. The _output() method supposedly permits BPF
injected packets to work by sending packets using a node ==
vap->iv_bss, but that can't possibly work with the existing monitor
mode because code in ieee80211.c doesn't set the output methods for
monitor mode.



-a


More information about the freebsd-wireless mailing list