kern/149643: [rum] device not sending proper beacon frames in
ap mode
Steven Chamberlain
steven at pyro.eu.org
Sun Oct 16 19:32:59 UTC 2011
On 16/10/11 17:46, Adrian Chadd wrote:
> I don't think it's the mbuf. It looks like the mbuf allocation is fine.
> The linux code in compat-wireless...
Hi Adrian!
Thanks for your suggestions. Happily I've got it working, and it wasn't
nearly that complicated. I'm only using i386 architecture.
I looked further into the magic 88-byte threshold after which the bug
occurs. It turns out that figure included the 24-byte tx_desc, and up
to 64 bytes of beacon frame (header+data).
rum_write_multi doesn't seem happy with writing >64 bytes at a time to
the MAC register. If I break it up into separate calls (e.g. bytes
0-63, then bytes 64-65, written at the appropriate offset) I see the
proper beacon frames being transmitted now.
It's working for any length of ESSID from 0-32 bytes so padding,
alignment or guard bytes don't appear to be necessary for the beacon
frame. (For tx_data, though, there is code to handle that).
I'll neaten this up, produce a patch and test some more.
Thanks,
Regards,
--
Steven Chamberlain
steven at pyro.eu.org
More information about the freebsd-net
mailing list