802.11 monitor mode changes coming

Paul B. Mahol onemda at gmail.com
Mon May 25 12:15:51 UTC 2009

On 5/18/09, Sam Leffler <sam at errno.com> wrote:
> The patch here:
> http://people.freebsd.org/~sam/monitor-20090518.patch
> has significant changes to monitor mode operation.  Most importantly it
> replaces DLT_IEEE802_11 support in net80211 by DLT_IEEE802_11_RADIO and
> removes the latter from the underlying device.  The upshot is that you
> can no longer do:
> tcpdump -i ath0
> instead you will now need a wlanX ifnet; e.g.
> ifconfig wlan create wlandev ath0 wlanmode monitor channel 6 up
> tcpdump -i wlan0 -y IEEE802_11_RADIO
> This addresses the longstanding issue that applications like kismet that
> want radiotap data needed to open two ifnets, one to receive data and
> one to do channel changes.  My main concern is whether losing
> DLT_IEEE802_11 support will affect any apps.  Those that depend on it
> should be easy to change; you just request a different DLT and strip the
> radiotap header from tap'd frames (or similar).
> In sweeping the drivers to do these changes I've made radiotap support
> more consistent and improved some drivers.  Drivers not tested so far:
> malo, ipw, wpi, and upgt.  I tested iwi and it appears broken in that no
> frames are rx'd but I'm not sure I'll look at it before 8.0.
> I plan to commit these changes by the end of the week.

It makes ndisulator panic, following stupid patch fix it for me:

--- /sys/net80211/ieee80211_radiotap.c  2009-05-25 12:14:29.000000000 +0000
+++ ieee80211_radiotap.c        2009-05-25 12:13:59.000000000 +0000
@@ -102,6 +102,8 @@
        struct ieee80211com *ic = vap->iv_ic;
        struct ieee80211_radiotap_header *th = ic->ic_th;

+       if (th == NULL)
+               return;
        KASSERT(th != NULL, ("no radiotap setup"));

        /* radiotap DLT for raw 802.11 frames */


More information about the freebsd-current mailing list