void zfScanMgrScanEventStart(zdev_t* dev) { zmw_get_wlan_dev(dev); zmw_declare_for_critical_section(); if ( wd->sta.bChannelScan ) { return; } zfPowerSavingMgrWakeup(dev); zmw_enter_critical_section(dev); if ( wd->sta.scanMgr.currScanType == ZM_SCAN_MGR_SCAN_NONE ) { goto no_scan; } //zfBssInfoRefresh(dev); zfBssInfoRefresh(dev, 0); wd->sta.bChannelScan = TRUE; wd->sta.bScheduleScan = FALSE; zfTimerCancel(dev, ZM_EVENT_IN_SCAN); zfTimerCancel(dev, ZM_EVENT_TIMEOUT_SCAN); //zm_debug_msg1("start scan = ", KeQueryInterruptTime()); wd->sta.scanFrequency = zfChGetFirstChannel(dev, &wd->sta.bPassiveScan); zmw_leave_critical_section(dev); /* avoid lose receive packet when site survey */ //if ((zfStaIsConnected(dev)) && (!zfPowerSavingMgrIsSleeping(dev))) //{ // zfSendNullData(dev, 1); //} // zm_debug_msg0("scan 0"); // zfCoreSetFrequencyV2(dev, wd->sta.scanFrequency, zfScanMgrEventSetFreqCompleteCb); #if 1 if (zfStaIsConnected(dev)) {// If doing site survey ! zfHpBeginSiteSurvey(dev, 1); zmw_enter_critical_section(dev); wd->sta.ibssSiteSurveyStatus = 1; zmw_leave_critical_section(dev); } else { zfHpBeginSiteSurvey(dev, 0); zmw_enter_critical_section(dev); wd->sta.ibssSiteSurveyStatus = 0; zmw_leave_critical_section(dev); } #endif zm_debug_msg0("scan 0"); zfCoreSetFrequencyV2(dev, wd->sta.scanFrequency, zfScanMgrEventSetFreqCompleteCb); return; no_scan: zmw_leave_critical_section(dev); return; }
void zfGetWrapperSetting(zdev_t *dev) { u8_t bPassive; u16_t vapId = 0; zmw_get_wlan_dev(dev); zmw_declare_for_critical_section(); #if 0 if ((wd->ws.countryIsoName[0] != 0) || (wd->ws.countryIsoName[1] != 0) || (wd->ws.countryIsoName[2] != '\0')) { zfHpGetRegulationTablefromRegionCode(dev, zfHpGetRegionCodeFromIsoName(dev, wd->ws.countryIsoName)); } #endif zmw_enter_critical_section(dev); wd->wlanMode = wd->ws.wlanMode; /* set channel */ if (wd->ws.frequency) { wd->frequency = wd->ws.frequency; wd->ws.frequency = 0; } else { wd->frequency = zfChGetFirstChannel(dev, &bPassive); if (wd->wlanMode == ZM_MODE_IBSS) { if (wd->ws.adhocMode == ZM_ADHOCBAND_A) wd->frequency = ZM_CH_A_36; else wd->frequency = ZM_CH_G_6; } } #ifdef ZM_AP_DEBUG /* honda add for debug, 2437 channel 6, 2452 channel 9 */ wd->frequency = 2437; /* end of add by honda */ #endif /* set preamble type */ switch (wd->ws.preambleType) { case ZM_PREAMBLE_TYPE_AUTO: case ZM_PREAMBLE_TYPE_SHORT: case ZM_PREAMBLE_TYPE_LONG: wd->preambleType = wd->ws.preambleType; break; default: wd->preambleType = ZM_PREAMBLE_TYPE_SHORT; break; } wd->ws.preambleType = 0; if (wd->wlanMode == ZM_MODE_AP) { vapId = zfwGetVapId(dev); if (vapId == 0xffff) { wd->ap.authAlgo[0] = wd->ws.authMode; wd->ap.encryMode[0] = wd->ws.encryMode; } else { wd->ap.authAlgo[vapId + 1] = wd->ws.authMode; wd->ap.encryMode[vapId + 1] = wd->ws.encryMode; } wd->ws.authMode = 0; wd->ws.encryMode = ZM_NO_WEP; /* Get beaconInterval from WrapperSetting */ if ((wd->ws.beaconInterval >= 20) && (wd->ws.beaconInterval <= 1000)) wd->beaconInterval = wd->ws.beaconInterval; else wd->beaconInterval = 100; /* 100ms */ if (wd->ws.dtim > 0) wd->dtim = wd->ws.dtim; else wd->dtim = 1; wd->ap.qosMode = wd->ws.apWmeEnabled & 0x1; wd->ap.uapsdEnabled = (wd->ws.apWmeEnabled & 0x2) >> 1; } else {