On 09/19/2018 01:35 PM, Johannes Berg wrote:
On Wed, 2018-09-19 at 13:33 -0700, Ben Greear wrote:
This is with a modified 4.16.18+ kernel, though the code in question
is from 2011, so this is not new...
I am attempting to use radiotap packet injection on a monitor port.
In the ieee80211_monitor_start_xmit method, before this code below
runs, sdata is 'moni6a', my monitor port. But, since I have a
station wlan1 with the same MAC address, then when this code is
completed, stdata becomes wlan1.
Ath10k has all sorts of issues transmitting raw frames, and sending on
the wrong vdev only makes it even more broken!
If user-space binds a socket to a monitor vdev and transmits a frame,
why would we want to change the vdev here?
For one, the driver has no concept of the original vif, since monitor
vifs aren't added to it.
ath10k does create a monitor vif, but maybe it is not mapped directly
to mac80211.
Secondly, the old hostapd code before nl80211 injects frames that way,
and they need to go there.
Ok, I agree we should not break backwards compat then. I'll poke some more
to see if I can get it working.
Thanks,
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com