--- ../wi.org/if_wi.c Sun Dec 21 21:16:09 2003 +++ if_wi.c Mon Dec 22 01:46:14 2003 @@ -375,6 +375,8 @@ */ if (sc->sc_sta_firmware_ver >= 803) ic->ic_flags |= IEEE80211_F_HASHOSTAP; + if (sc->sc_sta_firmware_ver >=10603) + sc->sc_flags |= WI_FLAGS_HAS_ENHSEC; sc->sc_ibss_port = htole16(0); break; @@ -661,6 +663,8 @@ wi_write_val(sc, WI_RID_RTS_THRESH, sc->sc_rts_thresh); if (sc->sc_flags & WI_FLAGS_HAS_FRAGTHR) wi_write_val(sc, WI_RID_FRAG_THRESH, sc->sc_frag_thresh); + if (sc->sc_flags & WI_FLAGS_HAS_ENHSEC) + wi_write_val(sc, WI_RID_CNFENHSEC, sc->sc_enhsec); /* driver specific 802.11 configuration */ if (sc->sc_flags & WI_FLAGS_HAS_SYSSCALE) @@ -1716,6 +1720,16 @@ case WI_RID_TX_RATE: return ieee80211_cfgget(ifp, cmd, data); + case WI_RID_CNFENHSEC: + if (sc->sc_enabled && (sc->sc_flags & WI_FLAGS_HAS_ENHSEC)) { + error = wi_read_rid(sc, wreq.wi_type, wreq.wi_val, + &len); + break; + } + wreq.wi_val[0] = htole16(sc->sc_enhsec); + len = sizeof(u_int16_t); + break; + case WI_RID_MICROWAVE_OVEN: if (sc->sc_enabled && (sc->sc_flags & WI_FLAGS_HAS_MOR)) { error = wi_read_rid(sc, wreq.wi_type, wreq.wi_val, @@ -1882,6 +1896,7 @@ memcpy(sc->sc_nodename, &wreq.wi_val[1], sc->sc_nodelen); break; + case WI_RID_CNFENHSEC: case WI_RID_MICROWAVE_OVEN: case WI_RID_ROAMING_MODE: case WI_RID_SYSTEM_SCALE: