11n ifmedia doesn't pick up monitor mode correctly.

ok?

Index: ieee80211.c
===================================================================
RCS file: /cvs/src/sys/net80211/ieee80211.c,v
retrieving revision 1.51
diff -u -p -r1.51 ieee80211.c
--- ieee80211.c 27 Nov 2015 04:03:45 -0000      1.51
+++ ieee80211.c 15 Dec 2015 17:05:34 -0000
@@ -366,6 +366,8 @@ ieee80211_media_init(struct ifnet *ifp,
                if (ic->ic_caps & IEEE80211_C_HOSTAP)
                        ADD(ic, IFM_AUTO, mopt | IFM_IEEE80211_HOSTAP);
 #endif
+               if (ic->ic_caps & IEEE80211_C_MONITOR)
+                       ADD(ic, IFM_AUTO, mopt | IFM_IEEE80211_MONITOR);
                for (i = 0; i < IEEE80211_HT_NUM_MCS; i++) {
                        if (!isset(ic->ic_sup_mcs, i))
                                continue;
@@ -378,6 +380,9 @@ ieee80211_media_init(struct ifnet *ifp,
                                ADD(ic, IFM_IEEE80211_HT_MCS0 + i,
                                    mopt | IFM_IEEE80211_HOSTAP);
 #endif
+                       if (ic->ic_caps & IEEE80211_C_MONITOR)
+                               ADD(ic, IFM_IEEE80211_HT_MCS0 + i,
+                                   mopt | IFM_IEEE80211_MONITOR);
                }
                ic->ic_flags |= IEEE80211_F_HTON; /* enable 11n by default */
        }

Reply via email to