Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438641
  • 博文数量: 78
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 1002
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 15:25
文章分类

全部博文(78)

文章存档

2012年(1)

2011年(1)

2010年(4)

2009年(12)

2008年(60)

我的朋友

分类: LINUX

2008-11-30 20:59:25

如果AP开的频道有DFS要求,Madwifi会在VAP_UP之前设置一个DFS WAIT等待时间。用来侦测radar信号。

ath_chan_set()
    if (!(sc->sc_curchan.privFlags & CHANNEL_DFS_CLEAR)) { 
          sc->sc_dfs->sc_dfswait=1;
          OS_SET_TIMER(&sc->sc_dfs->sc_dfswaittimer, ATH_DFS_WAIT_MS);
    }

sc_dfswaittimer的处理函数是OS_TIMER_FUNC(ath_check_dfs_clear)
这个函数会清除dfswait的标志,然后把状态机切换到RUN状态。
    sc->sc_dfs->sc_dfswait=0;
    vap->iv_newstate(vap,IEEE80211_S_RUN, 0);

VAP切到RUN状态最终要调用ath_vap_up
  scn->sc_ops->up(scn->sc_dev, avn->av_if_id, ni->ni_bssid, aid, flags);
这个函数中会检测dfswait这个标志,如果没有等待完,VAP就不会进入RUN状态。
    if (sc->sc_dfs && sc->sc_dfs->sc_dfswait
            && avp->av_opmode == HAL_M_HOSTAP) {
        /* push the vap to RUN state once DFS is cleared */
        DPRINTF(sc, ATH_DEBUG_STATE, "%s: avp  -> DFS_WAIT\n", __func__);
        avp->av_dfswait_run = 1;
        error = EAGAIN;
        goto bad;
    }

在5.255G以上的频段有DFS的要求,对应的频道从Channel 52 : 5.26 GHz开始。

前一个频道为Channel 48 : 5.24 GHz




 


 

阅读(2740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~