Index: if_rsu.c =================================================================== --- if_rsu.c (revision 288414) +++ if_rsu.c (working copy) @@ -63,6 +63,9 @@ #include #include #include +#ifdef IEEE80211_SUPPORT_SUPERG +#include +#endif /* IEEE80211_SUPPORT_SUPERG */ #include #include @@ -208,9 +211,7 @@ static void rsu_event_join_bss(struct rsu_softc *, uint8_t *, int); static void rsu_rx_event(struct rsu_softc *, uint8_t, uint8_t *, int); static void rsu_rx_multi_event(struct rsu_softc *, uint8_t *, int); -#if 0 static int8_t rsu_get_rssi(struct rsu_softc *, int, void *); -#endif static struct mbuf * rsu_rx_frame(struct rsu_softc *, uint8_t *, int); static struct mbuf * rsu_rx_multi_frame(struct rsu_softc *, uint8_t *, int); static struct mbuf * @@ -510,6 +511,7 @@ IEEE80211_C_SHPREAMBLE | /* Short preamble supported. */ IEEE80211_C_WME | /* WME/QoS */ IEEE80211_C_SHSLOT | /* Short slot time supported. */ + IEEE80211_C_FF | /* Atheros fast-frames supported */ IEEE80211_C_WPA; /* WPA/RSN. */ /* Check if HT support is present. */ @@ -1416,6 +1418,15 @@ if (ni->ni_flags & IEEE80211_NODE_HT) { frm = ieee80211_add_htcap(frm, ni); frm = ieee80211_add_htinfo(frm, ni); +#ifdef IEEE80211_SUPPORT_SUPERG + if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS)) { + frm = ieee80211_add_ath(frm, + IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS), + ((vap->iv_flags & IEEE80211_F_WPA) == 0 && + ni->ni_authmode != IEEE80211_AUTH_8021X) ? + vap->iv_def_txkey : IEEE80211_KEYIX_NONE); + } +#endif } bss->ieslen = htole32(frm - (uint8_t *)fixed); bss->len = htole32(((frm - buf) + 3) & ~3); @@ -1693,7 +1704,6 @@ } } -#if 0 static int8_t rsu_get_rssi(struct rsu_softc *sc, int rate, void *physt) { @@ -1714,7 +1724,6 @@ } return (rssi); } -#endif static struct mbuf * rsu_rx_frame(struct rsu_softc *sc, uint8_t *buf, int pktlen) @@ -1946,6 +1955,9 @@ (void)ieee80211_input_all(ic, m, rssi, -96); m = next; } +#ifdef IEEE80211_SUPPORT_SUPERG + ieee80211_ff_age_all(ic, 100); +#endif RSU_LOCK(sc); break; default: Index: if_rsureg.h =================================================================== --- if_rsureg.h (revision 288414) +++ if_rsureg.h (working copy) @@ -627,8 +627,12 @@ #define RSU_HOST_CMD_RING_COUNT 32 #define RSU_RXBUFSZ (8 * 1024) +#if 0 #define RSU_TXBUFSZ \ ((sizeof(struct r92s_tx_desc) + IEEE80211_MAX_LEN + 3) & ~3) +#else +#define RSU_TXBUFSZ (8 * 1024) +#endif #define RSU_TX_TIMEOUT 5000 /* ms */ #define RSU_CMD_TIMEOUT 2000 /* ms */