ieee80211_input() and fragmented mbufs

Sam Leffler sam at errno.com
Thu Sep 8 13:56:20 PDT 2005


Sebastien wrote:
> Hello,
> I'm passing ieee80211_input() heavily fragmented mbuf chains and it makes (at 
> least) the function fail to parse beacons correctly. I have the 
> "ieee80211_recv_mgmt: no ratesin beacon frame" message, and it makes the 
> driver unable to scan for networks (always return no results).
> Defragmenting the mbuf before passing it to ieee80211_input() works around the 
> problem. Moreover, in monitor mode, the frames are sent correctly in 
> userland, regardless the fragmentation of the mbufs.
> Is it a bug in ieee80211_input(), or should certain types of frames, such as 
> beacons, not be contained in fragmented mbufs ?

ieee80211_input (implicitly) assumes the 802.11 header is contiguous on 
entry.  Since most drivers use dma into mbuf clusters to recv frames 
this has never been an issue (others like wi dtrt from what I remember).

	Sam


More information about the freebsd-hackers mailing list