Lines Matching refs:ic

98 ieee80211_dfs_attach(struct ieee80211com *ic)
100 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
102 callout_init_mtx(&dfs->nol_timer, IEEE80211_LOCK_OBJ(ic), 0);
103 callout_init_mtx(&dfs->cac_timer, IEEE80211_LOCK_OBJ(ic), 0);
105 ic->ic_set_quiet = null_set_quiet;
109 ieee80211_dfs_detach(struct ieee80211com *ic)
112 ieee80211_dfs_reset(ic);
116 ieee80211_dfs_reset(struct ieee80211com *ic)
118 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
124 for (i = 0; i < ic->ic_nchans; i++)
125 ic->ic_channels[i].ic_state = 0;
133 struct ieee80211com *ic = vap->iv_ic;
134 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
137 IEEE80211_LOCK_ASSERT(ic);
146 if (IEEE80211_IS_CHAN_RADAR(ic->ic_curchan)) {
147 ieee80211_notify_cac(ic, ic->ic_curchan,
152 ic->ic_curchan->ic_ieee, ic->ic_curchan->ic_freq);
162 ic->ic_curchan->ic_ieee, ic->ic_curchan->ic_freq);
168 for (i = 0; i < ic->ic_nchans; i++) {
169 struct ieee80211_channel *c = &ic->ic_channels[i];
170 if (c->ic_freq == ic->ic_curchan->ic_freq)
173 ieee80211_notify_cac(ic, ic->ic_curchan,
187 struct ieee80211com *ic = vap->iv_ic;
188 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
190 IEEE80211_LOCK_ASSERT(ic);
195 ic->ic_curchan->ic_ieee, ic->ic_curchan->ic_freq);
196 ieee80211_notify_cac(ic, ic->ic_curchan, IEEE80211_NOTIFY_CAC_START);
205 struct ieee80211com *ic = vap->iv_ic;
206 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
208 IEEE80211_LOCK_ASSERT(ic);
213 ic->ic_curchan->ic_ieee, ic->ic_curchan->ic_freq);
214 ieee80211_notify_cac(ic, ic->ic_curchan,
221 ieee80211_dfs_cac_clear(struct ieee80211com *ic,
226 for (i = 0; i < ic->ic_nchans; i++) {
227 struct ieee80211_channel *c = &ic->ic_channels[i];
236 struct ieee80211com *ic = arg;
237 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
241 IEEE80211_LOCK_ASSERT(ic);
244 for (i = 0; i < ic->ic_nchans; i++) {
245 c = &ic->ic_channels[i];
255 ic_printf(ic, "radar on channel %u "
261 ieee80211_notify_radar(ic, c);
274 announce_radar(struct ieee80211com *ic, const struct ieee80211_channel *curchan,
278 ic_printf(ic, "radar detected on channel %u (%u MHz)\n",
281 ic_printf(ic, "radar detected on channel %u (%u MHz), "
296 ieee80211_dfs_notify_radar(struct ieee80211com *ic, struct ieee80211_channel *chan)
298 struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
301 IEEE80211_LOCK_ASSERT(ic);
311 announce_radar(ic, chan, chan);
312 ieee80211_notify_radar(ic, chan);
328 for (i = 0; i < ic->ic_nchans; i++) {
329 struct ieee80211_channel *c = &ic->ic_channels[i];
336 ieee80211_notify_radar(ic, chan);
340 dfs_timeout, ic);
354 if (chan == ic->ic_bsschan) {
362 dfs->newchan = ieee80211_dfs_pickchannel(ic);
366 announce_radar(ic, chan, dfs->newchan);
374 ieee80211_csa_startswitch(ic, dfs->newchan, 1, 2);
382 ic_printf(ic, "%s: No free channels; waiting for entry "
392 announce_radar(ic, chan, NULL);
394 announce_radar(ic, chan, NULL);
400 ieee80211_dfs_pickchannel(struct ieee80211com *ic)
409 flags = ic->ic_curchan->ic_flags & IEEE80211_CHAN_ALL;
414 c = ieee80211_scan_pickchannel(ic, flags);
423 v %= ic->ic_nchans;
424 for (i = v; i < ic->ic_nchans; i++) {
425 c = &ic->ic_channels[i];
431 c = &ic->ic_channels[i];
436 ic_printf(ic, "HELP, no channel located to switch to!\n");