| 162 | } |
| 163 | |
| 164 | void |
| 165 | ieee80211_node_latevattach(struct ieee80211vap *vap) |
| 166 | { |
| 167 | if (vap->iv_opmode == IEEE80211_M_HOSTAP) { |
| 168 | /* XXX should we allow max aid to be zero? */ |
| 169 | if (vap->iv_max_aid < IEEE80211_AID_MIN) { |
| 170 | vap->iv_max_aid = IEEE80211_AID_MIN; |
| 171 | if_printf(vap->iv_ifp, |
| 172 | "WARNING: max aid too small, changed to %d\n", |
| 173 | vap->iv_max_aid); |
| 174 | } |
| 175 | vap->iv_aid_bitmap = (uint32_t *) IEEE80211_MALLOC( |
| 176 | howmany(vap->iv_max_aid, 32) * sizeof(uint32_t), |
| 177 | M_80211_NODE, |
| 178 | IEEE80211_M_NOWAIT | IEEE80211_M_ZERO); |
| 179 | if (vap->iv_aid_bitmap == NULL) { |
| 180 | /* XXX no way to recover */ |
| 181 | printf("%s: no memory for AID bitmap, max aid %d!\n", |
| 182 | __func__, vap->iv_max_aid); |
| 183 | vap->iv_max_aid = 0; |
| 184 | } |
| 185 | } |
| 186 | |
| 187 | ieee80211_reset_bss(vap); |
| 188 | |
| 189 | vap->iv_auth = ieee80211_authenticator_get(vap->iv_bss->ni_authmode); |
| 190 | } |
| 191 | |
| 192 | void |
| 193 | ieee80211_node_vdetach(struct ieee80211vap *vap) |
no test coverage detected