ieee80211_dfs.h revision 186107
137Srgrimes/*- 247783Sandreas * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting 337Srgrimes * All rights reserved. 450472Speter * 5705Swollman * Redistribution and use in source and binary forms, with or without 637Srgrimes * modification, are permitted provided that the following conditions 784772Sarchie * are met: 8705Swollman * 1. Redistributions of source code must retain the above copyright 937Srgrimes * notice, this list of conditions and the following disclaimer. 1030672Sitojun * 2. Redistributions in binary form must reproduce the above copyright 1137Srgrimes * notice, this list of conditions and the following disclaimer in the 1247783Sandreas * documentation and/or other materials provided with the distribution. 1337Srgrimes * 14705Swollman * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1547826Sandreas * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1637Srgrimes * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1747783Sandreas * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1837Srgrimes * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 1947783Sandreas * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2047783Sandreas * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2147783Sandreas * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2237Srgrimes * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2347783Sandreas * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2447783Sandreas * 2547783Sandreas * $FreeBSD: head/sys/net80211/ieee80211_dfs.h 186107 2008-12-15 01:26:33Z sam $ 2647783Sandreas */ 2737Srgrimes#ifndef _NET80211_IEEE80211_DFS_H_ 2847783Sandreas#define _NET80211_IEEE80211_DFS_H_ 2947783Sandreas 3037Srgrimes/* 3147783Sandreas * 802.11h/DFS definitions. 3237Srgrimes */ 3347783Sandreas 3447783Sandreasstruct ieee80211_dfs_state { 3547783Sandreas int nol_event[IEEE80211_CHAN_MAX]; 3647783Sandreas struct callout nol_timer; /* NOL list processing */ 3737Srgrimes struct callout cac_timer; /* CAC timer */ 3847783Sandreas struct timeval lastevent; /* time of last radar event */ 3947783Sandreas int cureps; /* current events/second */ 4047783Sandreas const struct ieee80211_channel *lastchan;/* chan w/ last radar event */ 4147783Sandreas struct ieee80211_channel *newchan; /* chan selected next */ 4247783Sandreas}; 4347783Sandreas 4447783Sandreasvoid ieee80211_dfs_attach(struct ieee80211com *); 4547783Sandreasvoid ieee80211_dfs_detach(struct ieee80211com *); 46705Swollman 4747783Sandreasvoid ieee80211_dfs_reset(struct ieee80211com *); 4847783Sandreas 4947783Sandreasvoid ieee80211_dfs_cac_start(struct ieee80211vap *); 5047783Sandreasvoid ieee80211_dfs_cac_stop(struct ieee80211vap *); 5130672Sitojunvoid ieee80211_dfs_cac_clear(struct ieee80211com *, 5247783Sandreas const struct ieee80211_channel *); 5330672Sitojun 5430672Sitojunvoid ieee80211_dfs_notify_radar(struct ieee80211com *, 5547783Sandreas struct ieee80211_channel *); 5610422Swollmanstruct ieee80211_channel *ieee80211_dfs_pickchannel(struct ieee80211com *); 5747783Sandreas#endif /* _NET80211_IEEE80211_DFS_H_ */ 5847783Sandreas