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