Staging: vt665x: Text janitor in prep for driver merge, part 2

Text only changes to remove textual differences between the vt6655
and vt6656 trees in prep for driver merge.

Signed-off-by: Jim Lieb <lieb@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Jim Lieb 2009-08-12 14:54:03 -07:00 committed by Greg Kroah-Hartman
parent 77f58b133e
commit 612822f5dd
37 changed files with 217 additions and 217 deletions

View file

@ -16,10 +16,11 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: 80211hdr.h * File: 80211hdr.h
* *
* Purpose: Defines the macros, types, and functions for dealing * Purpose: 802.11 MAC headers related pre-defines and macros.
* with 802.11 MAC headers. *
* *
* Author: Lyndon Chen * Author: Lyndon Chen
* *

View file

@ -16,7 +16,6 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: 80211mgr.c * File: 80211mgr.c
* *
* Purpose: Handles the 802.11 management support functions * Purpose: Handles the 802.11 management support functions
@ -747,7 +746,6 @@ vMgrDecodeProbeResponse(
) )
{ {
PWLAN_IE pItem; PWLAN_IE pItem;
// BYTE byCheckEID = 0;
pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@ -765,12 +763,6 @@ vMgrDecodeProbeResponse(
+ WLAN_PROBERESP_OFF_SSID); + WLAN_PROBERESP_OFF_SSID);
while( ((PBYTE)pItem) < (pFrame->pBuf + pFrame->len) ) { while( ((PBYTE)pItem) < (pFrame->pBuf + pFrame->len) ) {
/*
if (pItem->byElementID < byCheckEID)
break;
else
byCheckEID = pItem->byElementID;
*/
switch (pItem->byElementID) { switch (pItem->byElementID) {
case WLAN_EID_SSID: case WLAN_EID_SSID:
if (pFrame->pSSID == NULL) if (pFrame->pSSID == NULL)

View file

@ -16,10 +16,11 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: 80211mgr.h * File: 80211mgr.h
* *
* Purpose: Defines the macros, types, and functions for dealing * Purpose: 802.11 managment frames pre-defines.
* with 802.11 management frames. *
* *
* Author: Lyndon Chen * Author: Lyndon Chen
* *
@ -273,7 +274,6 @@ typedef struct _WLAN_IE_FH_PARMS {
BYTE byHopIndex; BYTE byHopIndex;
} WLAN_IE_FH_PARMS, *PWLAN_IE_FH_PARMS; } WLAN_IE_FH_PARMS, *PWLAN_IE_FH_PARMS;
// DS Parameter Set // DS Parameter Set
#pragma pack(1) #pragma pack(1)
typedef struct tagWLAN_IE_DS_PARMS { typedef struct tagWLAN_IE_DS_PARMS {

View file

@ -16,6 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: baseband.c * File: baseband.c
* *
* Purpose: Implement functions to access baseband * Purpose: Implement functions to access baseband
@ -44,8 +45,11 @@
* Add the comments. * Add the comments.
* 09-01-2003 Bryan YC Fan: RF & BB tables updated. * 09-01-2003 Bryan YC Fan: RF & BB tables updated.
* Modified BBvLoopbackOn & BBvLoopbackOff(). * Modified BBvLoopbackOn & BBvLoopbackOff().
*
*
*/ */
#if !defined(__TMACRO_H__) #if !defined(__TMACRO_H__)
#include "tmacro.h" #include "tmacro.h"
#endif #endif
@ -80,6 +84,7 @@ static int msglevel =MSG_LEVEL_INFO;
/*--------------------- Static Classes ----------------------------*/ /*--------------------- Static Classes ----------------------------*/
/*--------------------- Static Variables --------------------------*/ /*--------------------- Static Variables --------------------------*/
/*--------------------- Static Functions --------------------------*/ /*--------------------- Static Functions --------------------------*/
/*--------------------- Export Variables --------------------------*/ /*--------------------- Export Variables --------------------------*/
@ -1806,6 +1811,7 @@ BBuGetFrameTime (
if (uRateIdx > RATE_54M) { if (uRateIdx > RATE_54M) {
ASSERT(0);
return 0; return 0;
} }
@ -2897,8 +2903,6 @@ TimerSQ3CallBack (
PSDevice pDevice = (PSDevice)hDeviceContext; PSDevice pDevice = (PSDevice)hDeviceContext;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack..."); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack...");
spin_lock_irq(&pDevice->lock); spin_lock_irq(&pDevice->lock);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"3.[%08x][%08x], %d\n",(int)pDevice->ulRatio_State0, (int)pDevice->ulRatio_State1, (int)pDevice->uDiversityCnt); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"3.[%08x][%08x], %d\n",(int)pDevice->ulRatio_State0, (int)pDevice->ulRatio_State1, (int)pDevice->uDiversityCnt);
@ -2915,8 +2919,8 @@ TimerSQ3CallBack (
add_timer(&pDevice->TimerSQ3Tmax3); add_timer(&pDevice->TimerSQ3Tmax3);
add_timer(&pDevice->TimerSQ3Tmax2); add_timer(&pDevice->TimerSQ3Tmax2);
spin_unlock_irq(&pDevice->lock);
spin_unlock_irq(&pDevice->lock);
return; return;
} }

View file

@ -16,6 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: baseband.h * File: baseband.h
* *
* Purpose: Implement functions to access baseband * Purpose: Implement functions to access baseband
@ -26,11 +27,9 @@
* *
*/ */
#ifndef __BASEBAND_H__ #ifndef __BASEBAND_H__
#define __BASEBAND_H__ #define __BASEBAND_H__
#if !defined(__TTYPE_H__) #if !defined(__TTYPE_H__)
#include "ttype.h" #include "ttype.h"
#endif #endif
@ -106,12 +105,11 @@
#define TOP_RATE_2M 0x00200000 #define TOP_RATE_2M 0x00200000
#define TOP_RATE_1M 0x00100000 #define TOP_RATE_1M 0x00100000
/*--------------------- Export Types ------------------------------*/ /*--------------------- Export Types ------------------------------*/
/*--------------------- Export Macros ------------------------------*/ /*--------------------- Export Macros ------------------------------*/
#define BBvClearFOE(dwIoBase) \ #define BBvClearFOE(dwIoBase) \
{ \ { \
BBbWriteEmbeded(dwIoBase, 0xB1, 0); \ BBbWriteEmbeded(dwIoBase, 0xB1, 0); \
@ -173,13 +171,15 @@ VOID BBvSetDeepSleep(DWORD_PTR dwIoBase, BYTE byLocalID);
VOID BBvExitDeepSleep(DWORD_PTR dwIoBase, BYTE byLocalID); VOID BBvExitDeepSleep(DWORD_PTR dwIoBase, BYTE byLocalID);
// timer for antenna diversity // timer for antenna diversity
VOID VOID
TimerSQ3CallBack( TimerSQ3CallBack (
IN HANDLE hDeviceContext IN HANDLE hDeviceContext
); );
VOID VOID
TimerState1CallBack( TimerState1CallBack(
IN HANDLE hDeviceContext IN HANDLE hDeviceContext
); );
void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3); void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
@ -188,11 +188,8 @@ BBvClearAntDivSQ3Value (PSDevice pDevice);
#ifdef __cplusplus #ifdef __cplusplus
} /* End of extern "C" { */ } /* End of extern "C" { */
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif // __BASEBAND_H__ #endif // __BASEBAND_H__

View file

@ -170,7 +170,7 @@ BSSpSearchBSSList(
IN HANDLE hDeviceContext, IN HANDLE hDeviceContext,
IN PBYTE pbyDesireBSSID, IN PBYTE pbyDesireBSSID,
IN PBYTE pbyDesireSSID, IN PBYTE pbyDesireSSID,
IN CARD_PHY_TYPE ePhyType IN CARD_PHY_TYPE ePhyType
) )
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; PSDevice pDevice = (PSDevice)hDeviceContext;
@ -187,7 +187,7 @@ BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00};
*pbyDesireBSSID,*(pbyDesireBSSID+1),*(pbyDesireBSSID+2), *pbyDesireBSSID,*(pbyDesireBSSID+1),*(pbyDesireBSSID+2),
*(pbyDesireBSSID+3),*(pbyDesireBSSID+4),*(pbyDesireBSSID+5)); *(pbyDesireBSSID+3),*(pbyDesireBSSID+4),*(pbyDesireBSSID+5));
if ((!IS_BROADCAST_ADDRESS(pbyDesireBSSID)) && if ((!IS_BROADCAST_ADDRESS(pbyDesireBSSID)) &&
(memcmp(pbyDesireBSSID, ZeroBSSID, 6)!= 0)) { (memcmp(pbyDesireBSSID, ZeroBSSID, 6)!= 0)){
pbyBSSID = pbyDesireBSSID; pbyBSSID = pbyDesireBSSID;
} }
} }
@ -246,11 +246,11 @@ if(pDevice->bLinkPass==FALSE) pCurrBSS->bSelected = FALSE;
(pSSID->len != ((PWLAN_IE_SSID)pCurrBSS->abySSID)->len)) { (pSSID->len != ((PWLAN_IE_SSID)pCurrBSS->abySSID)->len)) {
// SSID not match skip this BSS // SSID not match skip this BSS
continue; continue;
} }
} }
if (((pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA) && WLAN_GET_CAP_INFO_ESS(pCurrBSS->wCapInfo)) || if (((pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA) && WLAN_GET_CAP_INFO_ESS(pCurrBSS->wCapInfo)) ||
((pMgmt->eConfigMode == WMAC_CONFIG_ESS_STA) && WLAN_GET_CAP_INFO_IBSS(pCurrBSS->wCapInfo)) ((pMgmt->eConfigMode == WMAC_CONFIG_ESS_STA) && WLAN_GET_CAP_INFO_IBSS(pCurrBSS->wCapInfo))
) { ){
// Type not match skip this BSS // Type not match skip this BSS
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSS type mismatch.... Config[%d] BSS[0x%04x]\n", pMgmt->eConfigMode, pCurrBSS->wCapInfo); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSS type mismatch.... Config[%d] BSS[0x%04x]\n", pMgmt->eConfigMode, pCurrBSS->wCapInfo);
continue; continue;
@ -399,6 +399,7 @@ BSSpAddrIsInBSSList(
/*+ /*+
* *
* Routine Description: * Routine Description:
@ -450,7 +451,7 @@ BSSbInsertToBSSList (
} }
if (ii == MAX_BSS_NUM){ if (ii == MAX_BSS_NUM){
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Get free KnowBSS node failed.\n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Get free KnowBSS node failed.\n");
return FALSE; return FALSE;
} }
// save the BSS info // save the BSS info
@ -575,8 +576,6 @@ BSSbInsertToBSSList (
pIE_Country); pIE_Country);
} }
if ((bParsingQuiet == TRUE) && (pIE_Quiet != NULL)) { if ((bParsingQuiet == TRUE) && (pIE_Quiet != NULL)) {
if ((((PWLAN_IE_QUIET)pIE_Quiet)->len == 8) && if ((((PWLAN_IE_QUIET)pIE_Quiet)->len == 8) &&
(((PWLAN_IE_QUIET)pIE_Quiet)->byQuietCount != 0)) { (((PWLAN_IE_QUIET)pIE_Quiet)->byQuietCount != 0)) {
@ -663,6 +662,7 @@ BSSbUpdateToBSSList (
if (pBSSList == NULL) if (pBSSList == NULL)
return FALSE; return FALSE;
HIDWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(HIDWORD(qwTimestamp)); HIDWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(HIDWORD(qwTimestamp));
LODWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(LODWORD(qwTimestamp)); LODWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(LODWORD(qwTimestamp));
pBSSList->wBeaconInterval = cpu_to_le16(wBeaconInterval); pBSSList->wBeaconInterval = cpu_to_le16(wBeaconInterval);
@ -711,7 +711,7 @@ BSSbUpdateToBSSList (
} }
} }
WPA_ClearRSN(pBSSList); //mike update WPA_ClearRSN(pBSSList); //mike update
if (pRSNWPA != NULL) { if (pRSNWPA != NULL) {
UINT uLen = pRSNWPA->len + 2; UINT uLen = pRSNWPA->len + 2;
@ -722,7 +722,7 @@ BSSbUpdateToBSSList (
} }
} }
WPA2_ClearRSN(pBSSList); //mike update WPA2_ClearRSN(pBSSList); //mike update
if (pRSN != NULL) { if (pRSN != NULL) {
UINT uLen = pRSN->len + 2; UINT uLen = pRSN->len + 2;
@ -1067,7 +1067,7 @@ BSSvSecondCallBack(
UINT uSleepySTACnt = 0; UINT uSleepySTACnt = 0;
UINT uNonShortSlotSTACnt = 0; UINT uNonShortSlotSTACnt = 0;
UINT uLongPreambleSTACnt = 0; UINT uLongPreambleSTACnt = 0;
viawget_wpa_header* wpahdr; viawget_wpa_header* wpahdr; //DavidWang
spin_lock_irq(&pDevice->lock); spin_lock_irq(&pDevice->lock);
@ -1145,7 +1145,7 @@ start:
union iwreq_data wrqu; union iwreq_data wrqu;
memset(&wrqu, 0, sizeof (wrqu)); memset(&wrqu, 0, sizeof (wrqu));
wrqu.ap_addr.sa_family = ARPHRD_ETHER; wrqu.ap_addr.sa_family = ARPHRD_ETHER;
printk("wireless_send_event--->SIOCGIWAP(disassociated)\n"); PRINT_K("wireless_send_event--->SIOCGIWAP(disassociated)\n");
wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL); wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL);
} }
#endif #endif
@ -1161,14 +1161,13 @@ start:
for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) { for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) {
if (pMgmt->sNodeDBTable[ii].bActive) { if (pMgmt->sNodeDBTable[ii].bActive) {
// Increase in-activity counter // Increase in-activity counter
pMgmt->sNodeDBTable[ii].uInActiveCount++; pMgmt->sNodeDBTable[ii].uInActiveCount++;
if (ii > 0) { if (ii > 0) {
if (pMgmt->sNodeDBTable[ii].uInActiveCount > MAX_INACTIVE_COUNT) { if (pMgmt->sNodeDBTable[ii].uInActiveCount > MAX_INACTIVE_COUNT) {
BSSvRemoveOneNode(pDevice, ii); BSSvRemoveOneNode(pDevice, ii);
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
"Inactive timeout [%d] sec, STA index = [%d] remove\n", MAX_INACTIVE_COUNT, ii); "Inactive timeout [%d] sec, STA index = [%d] remove\n", MAX_INACTIVE_COUNT, ii);
continue; continue;
} }
@ -1200,7 +1199,6 @@ start:
} }
// Rate fallback check // Rate fallback check
if (!pDevice->bFixRate) { if (!pDevice->bFixRate) {
/* /*
if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (ii == 0)) if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (ii == 0))
@ -1300,7 +1298,7 @@ start:
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID; pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID;
pCurrSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID; pCurrSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
//printk("pCurrSSID=%s\n",pCurrSSID->abySSID);
if ((pMgmt->eCurrMode == WMAC_MODE_STANDBY) || if ((pMgmt->eCurrMode == WMAC_MODE_STANDBY) ||
(pMgmt->eCurrMode == WMAC_MODE_ESS_STA)) { (pMgmt->eCurrMode == WMAC_MODE_ESS_STA)) {
@ -1309,17 +1307,18 @@ start:
//if (pDevice->bUpdateBBVGA) { //if (pDevice->bUpdateBBVGA) {
// s_vCheckSensitivity((HANDLE) pDevice); // s_vCheckSensitivity((HANDLE) pDevice);
//} //}
if (pDevice->bUpdateBBVGA) { if (pDevice->bUpdateBBVGA) {
// s_vCheckSensitivity((HANDLE) pDevice); // s_vCheckSensitivity((HANDLE) pDevice);
s_vCheckPreEDThreshold((HANDLE)pDevice); s_vCheckPreEDThreshold((HANDLE)pDevice);
} }
if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) && if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) &&
(pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) { (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) {
pDevice->byBBVGANew = pDevice->abyBBVGA[0]; pDevice->byBBVGANew = pDevice->abyBBVGA[0];
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL);
} }
if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) { if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) {
pMgmt->sNodeDBTable[0].bActive = FALSE; pMgmt->sNodeDBTable[0].bActive = FALSE;
pMgmt->eCurrMode = WMAC_MODE_STANDBY; pMgmt->eCurrMode = WMAC_MODE_STANDBY;
@ -1348,29 +1347,29 @@ start:
union iwreq_data wrqu; union iwreq_data wrqu;
memset(&wrqu, 0, sizeof (wrqu)); memset(&wrqu, 0, sizeof (wrqu));
wrqu.ap_addr.sa_family = ARPHRD_ETHER; wrqu.ap_addr.sa_family = ARPHRD_ETHER;
printk("wireless_send_event--->SIOCGIWAP(disassociated)\n"); PRINT_K("wireless_send_event--->SIOCGIWAP(disassociated)\n");
wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL); wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL);
} }
#endif #endif
} }
} }
else if (pItemSSID->len != 0) { else if (pItemSSID->len != 0) {
if (pDevice->uAutoReConnectTime < 10) { if (pDevice->uAutoReConnectTime < 10) {
pDevice->uAutoReConnectTime++; pDevice->uAutoReConnectTime++;
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
//network manager support need not do Roaming scan??? //network manager support need not do Roaming scan???
if(pDevice->bWPASuppWextEnabled ==TRUE) if(pDevice->bWPASuppWextEnabled ==TRUE)
pDevice->uAutoReConnectTime = 0; pDevice->uAutoReConnectTime = 0;
#endif #endif
} }
else { else {
//mike use old encryption status for wpa reauthen //mike use old encryption status for wpa reauthen
if(pDevice->bWPADEVUp) if(pDevice->bWPADEVUp)
pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus; pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n");
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
pMgmt->eScanType = WMAC_SCAN_ACTIVE; pMgmt->eScanType = WMAC_SCAN_ACTIVE;
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID);
pDevice->uAutoReConnectTime = 0; pDevice->uAutoReConnectTime = 0;
@ -1386,13 +1385,14 @@ start:
} }
else { else {
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n"); DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n");
pMgmt->eScanType = WMAC_SCAN_ACTIVE; pMgmt->eScanType = WMAC_SCAN_ACTIVE;
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL);
pDevice->uAutoReConnectTime = 0; pDevice->uAutoReConnectTime = 0;
}; };
} }
if (pMgmt->eCurrState == WMAC_STATE_JOINTED) { if (pMgmt->eCurrState == WMAC_STATE_JOINTED) {
if (pDevice->bUpdateBBVGA) { if (pDevice->bUpdateBBVGA) {
//s_vCheckSensitivity((HANDLE) pDevice); //s_vCheckSensitivity((HANDLE) pDevice);
s_vCheckPreEDThreshold((HANDLE)pDevice); s_vCheckPreEDThreshold((HANDLE)pDevice);
@ -1600,6 +1600,7 @@ BSSvUpdateNodeTxCounter(
return; return;
} }
@ -1784,3 +1785,4 @@ VOID s_vCheckPreEDThreshold(
} }
return; return;
} }

View file

@ -33,7 +33,9 @@
//#if !defined(__DEVICE_H__) //#if !defined(__DEVICE_H__)
//#include "device.h" //#include "device.h"
//#endif //#endif
#include <linux/skbuff.h> #include <linux/skbuff.h>
#if !defined(__80211HDR_H__) #if !defined(__80211HDR_H__)
#include "80211hdr.h" #include "80211hdr.h"
#endif #endif
@ -103,13 +105,13 @@ typedef enum _NDIS_802_11_NETWORK_TYPE
typedef struct tagSERPObject { typedef struct tagSERPObject {
BOOL bERPExist; BOOL bERPExist;
BYTE byERP; BYTE byERP;
} ERPObject, DEF* PERPObject; }ERPObject, DEF* PERPObject;
typedef struct tagSRSNCapObject { typedef struct tagSRSNCapObject {
BOOL bRSNCapExist; BOOL bRSNCapExist;
WORD wRSNCap; WORD wRSNCap;
} SRSNCapObject, DEF* PSRSNCapObject; }SRSNCapObject, DEF* PSRSNCapObject;
// BSS info(AP) // BSS info(AP)
#pragma pack(1) #pragma pack(1)
@ -126,11 +128,12 @@ typedef struct tagKnownBSS {
WORD wCapInfo; WORD wCapInfo;
BYTE abySSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; BYTE abySSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
BYTE byRxRate; BYTE byRxRate;
// WORD wATIMWindow; // WORD wATIMWindow;
BYTE byRSSIStatCnt; BYTE byRSSIStatCnt;
LONG ldBmMAX; LONG ldBmMAX;
LONG ldBmAverage[RSSI_STAT_COUNT]; LONG ldBmAverage[RSSI_STAT_COUNT];
LONG ldBmAverRange; LONG ldBmAverRange;
//For any BSSID selection improvment //For any BSSID selection improvment
BOOL bSelected; BOOL bSelected;
@ -345,6 +348,7 @@ BSSvSecondCallBack(
IN HANDLE hDeviceContext IN HANDLE hDeviceContext
); );
VOID VOID
BSSvUpdateNodeTxCounter( BSSvUpdateNodeTxCounter(
IN HANDLE hDeviceContext, IN HANDLE hDeviceContext,

View file

@ -43,6 +43,9 @@
#endif #endif
/*--------------------- Export Definitions -------------------------*/ /*--------------------- Export Definitions -------------------------*/
#define B_OWNED_BY_CHIP 1 // #define B_OWNED_BY_CHIP 1 //
@ -129,6 +132,7 @@
#define CB_PROTOCOL_RESERVED_SECTION 16 #define CB_PROTOCOL_RESERVED_SECTION 16
// if retrys excess 15 times , tx will abort, and // if retrys excess 15 times , tx will abort, and
// if tx fifo underflow, tx will fail // if tx fifo underflow, tx will fail
// we should try to resend it // we should try to resend it

View file

@ -81,9 +81,10 @@
// //
// device specific
// //
// device specific
//
#if !defined(_KCOMPAT_H) #if !defined(_KCOMPAT_H)
#include "kcompat.h" #include "kcompat.h"
#endif #endif
@ -122,11 +123,9 @@
#if !defined(__DESC_H__) #if !defined(__DESC_H__)
#include "desc.h" #include "desc.h"
#endif #endif
#if !defined(__KEY_H__) #if !defined(__KEY_H__)
#include "key.h" #include "key.h"
#endif #endif
#if !defined(__MAC_H__) #if !defined(__MAC_H__)
#include "mac.h" #include "mac.h"
#endif #endif
@ -189,6 +188,7 @@
#define BB_VGA_CHANGE_THRESHOLD 16 #define BB_VGA_CHANGE_THRESHOLD 16
#ifndef RUN_AT #ifndef RUN_AT
#define RUN_AT(x) (jiffies+(x)) #define RUN_AT(x) (jiffies+(x))
#endif #endif
@ -312,7 +312,6 @@ typedef struct tagSPMKIDCandidateEvent {
PMKID_CANDIDATE CandidateList[MAX_PMKIDLIST]; PMKID_CANDIDATE CandidateList[MAX_PMKIDLIST];
} SPMKIDCandidateEvent, DEF* PSPMKIDCandidateEvent; } SPMKIDCandidateEvent, DEF* PSPMKIDCandidateEvent;
//-- //--
//++ 802.11h related //++ 802.11h related
@ -347,7 +346,6 @@ typedef struct tagSCacheEntry{
BYTE abyAddr2[U_ETHER_ADDR_LEN]; BYTE abyAddr2[U_ETHER_ADDR_LEN];
} SCacheEntry, *PSCacheEntry; } SCacheEntry, *PSCacheEntry;
typedef struct tagSCache{ typedef struct tagSCache{
/* The receive cache is updated circularly. The next entry to be written is /* The receive cache is updated circularly. The next entry to be written is
* indexed by the "InPtr". * indexed by the "InPtr".
@ -372,7 +370,6 @@ typedef struct tagSDeFragControlBlock
//flags for options //flags for options
#define DEVICE_FLAGS_IP_ALIGN 0x00000001UL #define DEVICE_FLAGS_IP_ALIGN 0x00000001UL
#define DEVICE_FLAGS_PREAMBLE_TYPE 0x00000002UL #define DEVICE_FLAGS_PREAMBLE_TYPE 0x00000002UL
@ -417,11 +414,11 @@ typedef struct _RxManagementQueue
typedef struct __device_opt { typedef struct __device_opt {
int nRxDescs0; //Number of RX descriptors0 int nRxDescs0; //Number of RX descriptors0
int nRxDescs1; //Number of RX descriptors1 int nRxDescs1; //Number of RX descriptors1
int nTxDescs[2]; //Number of TX descriptors 0, 1 int nTxDescs[2]; //Number of TX descriptors 0, 1
int int_works; //interrupt limits int int_works; //interrupt limits
int rts_thresh; //rts threshold int rts_thresh; //rts threshold
int frag_thresh; int frag_thresh;
int data_rate; int data_rate;
int channel_num; int channel_num;
@ -609,8 +606,8 @@ typedef struct __device_info {
BYTE byERPFlag; BYTE byERPFlag;
WORD wUseProtectCntDown; WORD wUseProtectCntDown;
BOOL bRadioControlOff; BOOL bRadioControlOff;
BOOL bRadioOff; BOOL bRadioOff;
BOOL bEnablePSMode; BOOL bEnablePSMode;
WORD wListenInterval; WORD wListenInterval;
BOOL bPWBitOn; BOOL bPWBitOn;
@ -666,6 +663,7 @@ typedef struct __device_info {
//2007-0925-01<Add>by MikeLiu //2007-0925-01<Add>by MikeLiu
//mike add :save old Encryption //mike add :save old Encryption
NDIS_802_11_WEP_STATUS eOldEncryptionStatus; NDIS_802_11_WEP_STATUS eOldEncryptionStatus;
SKeyManagement sKey; SKeyManagement sKey;
DWORD dwIVCounter; DWORD dwIVCounter;
@ -674,7 +672,6 @@ typedef struct __device_info {
RC4Ext SBox; RC4Ext SBox;
BYTE abyPRNG[WLAN_WEPMAX_KEYLEN+3]; BYTE abyPRNG[WLAN_WEPMAX_KEYLEN+3];
BYTE byKeyIndex; BYTE byKeyIndex;
UINT uKeyLength; UINT uKeyLength;
BYTE abyKey[WLAN_WEP232_KEYLEN]; BYTE abyKey[WLAN_WEP232_KEYLEN];
@ -713,6 +710,7 @@ typedef struct __device_info {
BYTE byBBPreEDRSSI; BYTE byBBPreEDRSSI;
BYTE byBBPreEDIndex; BYTE byBBPreEDIndex;
BOOL bRadioCmd; BOOL bRadioCmd;
DWORD dwDiagRefCount; DWORD dwDiagRefCount;

View file

@ -1,5 +1,6 @@
/* /*
* Copyright (c) 1996, 2003 VIA Networking, Inc. All rights reserved. * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -15,7 +16,6 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: device_cfg.h * File: device_cfg.h
* *
* Purpose: Driver configuration header * Purpose: Driver configuration header
@ -100,6 +100,7 @@ struct _version {
#ifndef DEVICE_VERSION #ifndef DEVICE_VERSION
#define DEVICE_VERSION "1.19.12" #define DEVICE_VERSION "1.19.12"
#endif #endif
//config file //config file
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/fcntl.h> #include <linux/fcntl.h>

View file

@ -144,6 +144,7 @@ static BOOL s_bAPModeRxCtl(
); );
static BOOL s_bAPModeRxData ( static BOOL s_bAPModeRxData (
IN PSDevice pDevice, IN PSDevice pDevice,
IN struct sk_buff* skb, IN struct sk_buff* skb,
@ -532,6 +533,8 @@ device_receive_frame (
return FALSE; return FALSE;
} }
} }
if (IS_FC_WEP(pbyFrame)) { if (IS_FC_WEP(pbyFrame)) {
BOOL bRxDecryOK = FALSE; BOOL bRxDecryOK = FALSE;
@ -718,7 +721,6 @@ device_receive_frame (
} }
return FALSE; return FALSE;
} }
//mike add:station mode check eapol-key challenge---> //mike add:station mode check eapol-key challenge--->
{ {
BYTE Protocol_Version; //802.1x Authentication BYTE Protocol_Version; //802.1x Authentication
@ -742,8 +744,10 @@ device_receive_frame (
} }
} }
// Data frame Handle // Data frame Handle
if (pDevice->bEnablePSMode) { if (pDevice->bEnablePSMode) {
if (IS_FC_MOREDATA((skb->data+4))) { if (IS_FC_MOREDATA((skb->data+4))) {
if (BITbIsBitOn(*pbyRsr, RSR_ADDROK)) { if (BITbIsBitOn(*pbyRsr, RSR_ADDROK)) {
@ -890,12 +894,11 @@ device_receive_frame (
pDevice->dev->name); pDevice->dev->name);
} }
} }
//2008-0409-07, <Add> by Einsn Liu
//2008-0409-07, <Add> by Einsn Liu
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
//send event to wpa_supplicant //send event to wpa_supplicant
//if(pDevice->bWPADevEnable == TRUE) //if(pDevice->bWPADevEnable == TRUE)
{ {
union iwreq_data wrqu; union iwreq_data wrqu;
struct iw_michaelmicfailure ev; struct iw_michaelmicfailure ev;
int keyidx = pbyFrame[cbHeaderSize+3] >> 6; //top two-bits int keyidx = pbyFrame[cbHeaderSize+3] >> 6; //top two-bits
@ -917,6 +920,8 @@ device_receive_frame (
} }
#endif #endif
if ((pDevice->bWPADEVUp) && (pDevice->skb != NULL)) { if ((pDevice->bWPADEVUp) && (pDevice->skb != NULL)) {
wpahdr = (viawget_wpa_header *)pDevice->skb->data; wpahdr = (viawget_wpa_header *)pDevice->skb->data;
if ((pDevice->pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && if ((pDevice->pMgmt->eCurrMode == WMAC_MODE_ESS_STA) &&
@ -1067,6 +1072,7 @@ device_receive_frame (
} }
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
@ -1429,6 +1435,7 @@ static BOOL s_bHostWepRxEncryption (
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TSC0_15: %x\n", *pwRxTSC15_0); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TSC0_15: %x\n", *pwRxTSC15_0);
if (byDecMode == KEY_CTL_TKIP) { if (byDecMode == KEY_CTL_TKIP) {
if ((pDevice->byLocalID <= REV_ID_VT3253_A1) || (bOnFly == FALSE)) { if ((pDevice->byLocalID <= REV_ID_VT3253_A1) || (bOnFly == FALSE)) {
// Software TKIP // Software TKIP
// 1. 3253 A // 1. 3253 A
@ -1471,8 +1478,6 @@ static BOOL s_bHostWepRxEncryption (
static BOOL s_bAPModeRxData ( static BOOL s_bAPModeRxData (
IN PSDevice pDevice, IN PSDevice pDevice,
IN struct sk_buff* skb, IN struct sk_buff* skb,
@ -1487,10 +1492,10 @@ static BOOL s_bAPModeRxData (
BOOL bRelayOnly = FALSE; BOOL bRelayOnly = FALSE;
BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80}; BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80};
WORD wAID; WORD wAID;
struct sk_buff* skbcpy = NULL; struct sk_buff* skbcpy = NULL;
if (FrameSize > CB_MAX_BUF_SIZE) if (FrameSize > CB_MAX_BUF_SIZE)
return FALSE; return FALSE;
// check DA // check DA
@ -1498,6 +1503,7 @@ static BOOL s_bAPModeRxData (
if (pMgmt->sNodeDBTable[0].bPSEnable) { if (pMgmt->sNodeDBTable[0].bPSEnable) {
skbcpy = dev_alloc_skb((int)pDevice->rx_buf_sz); skbcpy = dev_alloc_skb((int)pDevice->rx_buf_sz);
// if any node in PS mode, buffer packet until DTIM. // if any node in PS mode, buffer packet until DTIM.
if (skbcpy == NULL) { if (skbcpy == NULL) {
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "relay multicast no skb available \n"); DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "relay multicast no skb available \n");
@ -1507,6 +1513,7 @@ static BOOL s_bAPModeRxData (
skbcpy->len = FrameSize; skbcpy->len = FrameSize;
memcpy(skbcpy->data, skb->data+cbHeaderOffset, FrameSize); memcpy(skbcpy->data, skb->data+cbHeaderOffset, FrameSize);
skb_queue_tail(&(pMgmt->sNodeDBTable[0].sTxPSQueue), skbcpy); skb_queue_tail(&(pMgmt->sNodeDBTable[0].sTxPSQueue), skbcpy);
pMgmt->sNodeDBTable[0].wEnQueueCnt++; pMgmt->sNodeDBTable[0].wEnQueueCnt++;
// set tx map // set tx map
pMgmt->abyPSTxMap[0] |= byMask[0]; pMgmt->abyPSTxMap[0] |= byMask[0];

View file

@ -16,7 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
* File: whdr.h * File: dpc.h
* *
* Purpose: * Purpose:
* *

View file

@ -109,7 +109,7 @@ static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked)
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Enabling hostapd mode\n", dev->name); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Enabling hostapd mode\n", dev->name);
pDevice->apdev = (struct net_device *)kmalloc(sizeof(struct net_device), GFP_KERNEL); pDevice->apdev = (struct net_device *)kmalloc(sizeof(struct net_device), GFP_KERNEL);
if (pDevice->apdev == NULL) if (pDevice->apdev == NULL)
return -ENOMEM; return -ENOMEM;
memset(pDevice->apdev, 0, sizeof(struct net_device)); memset(pDevice->apdev, 0, sizeof(struct net_device));
@ -118,7 +118,7 @@ static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked)
*apdev_priv = *pDevice; *apdev_priv = *pDevice;
memcpy(pDevice->apdev->dev_addr, dev->dev_addr, ETH_ALEN); memcpy(pDevice->apdev->dev_addr, dev->dev_addr, ETH_ALEN);
pDevice->apdev->netdev_ops = &apdev_netdev_ops; pDevice->apdev->netdev_ops = &apdev_netdev_ops;
pDevice->apdev->type = ARPHRD_IEEE80211; pDevice->apdev->type = ARPHRD_IEEE80211;
@ -288,7 +288,9 @@ static int hostap_add_sta(PSDevice pDevice,
WLAN_GET_CAP_INFO_SHORTPREAMBLE(pMgmt->sNodeDBTable[uNodeIndex].wCapInfo); WLAN_GET_CAP_INFO_SHORTPREAMBLE(pMgmt->sNodeDBTable[uNodeIndex].wCapInfo);
pMgmt->sNodeDBTable[uNodeIndex].wAID = (WORD)param->u.add_sta.aid; pMgmt->sNodeDBTable[uNodeIndex].wAID = (WORD)param->u.add_sta.aid;
pMgmt->sNodeDBTable[uNodeIndex].ulLastRxJiffer = jiffies; pMgmt->sNodeDBTable[uNodeIndex].ulLastRxJiffer = jiffies;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Add STA AID= %d \n", pMgmt->sNodeDBTable[uNodeIndex].wAID); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Add STA AID= %d \n", pMgmt->sNodeDBTable[uNodeIndex].wAID);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MAC=%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X \n", DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MAC=%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X \n",
param->sta_addr[0], param->sta_addr[0],
@ -327,6 +329,7 @@ static int hostap_get_info_sta(PSDevice pDevice,
if (BSSDBbIsSTAInNodeDB(pMgmt, param->sta_addr, &uNodeIndex)) { if (BSSDBbIsSTAInNodeDB(pMgmt, param->sta_addr, &uNodeIndex)) {
param->u.get_info_sta.inactive_sec = param->u.get_info_sta.inactive_sec =
(jiffies - pMgmt->sNodeDBTable[uNodeIndex].ulLastRxJiffer) / HZ; (jiffies - pMgmt->sNodeDBTable[uNodeIndex].ulLastRxJiffer) / HZ;
//param->u.get_info_sta.txexc = pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts; //param->u.get_info_sta.txexc = pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts;
} }
else { else {

View file

@ -1,5 +1,6 @@
/* /*
* Copyright (c) 1996, 2003 VIA Networking, Inc. All rights reserved. * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -73,12 +74,12 @@ typedef enum tagWMAC_CMD {
WLAN_CMD_SET_HOST_WEP, WLAN_CMD_SET_HOST_WEP,
WLAN_CMD_SET_WPA, WLAN_CMD_SET_WPA,
WLAN_CMD_GET_NODE_CNT, WLAN_CMD_GET_NODE_CNT,
WLAN_CMD_ZONETYPE_SET, WLAN_CMD_ZONETYPE_SET,
WLAN_CMD_GET_NODE_LIST WLAN_CMD_GET_NODE_LIST
} WMAC_CMD, DEF* PWMAC_CMD; } WMAC_CMD, DEF* PWMAC_CMD;
typedef enum tagWZONETYPE { typedef enum tagWZONETYPE {
ZoneType_USA=0, ZoneType_USA=0,
ZoneType_Japan=1, ZoneType_Japan=1,
ZoneType_Europe=2 ZoneType_Europe=2
@ -106,7 +107,6 @@ typedef enum tagWMAC_CMD {
#define WEP_104BIT_LEN 13 #define WEP_104BIT_LEN 13
#define WEP_232BIT_LEN 16 #define WEP_232BIT_LEN 16
// Ioctl interface structure // Ioctl interface structure
// Command structure // Command structure
// //
@ -118,7 +118,6 @@ typedef struct tagSCmdRequest {
U16 wCmdCode; U16 wCmdCode;
} SCmdRequest, *PSCmdRequest; } SCmdRequest, *PSCmdRequest;
// //
// Scan // Scan
// //
@ -145,6 +144,10 @@ typedef struct tagSCmdBSSJoin {
} SCmdBSSJoin, *PSCmdBSSJoin; } SCmdBSSJoin, *PSCmdBSSJoin;
//
// Zonetype Setting
//
typedef struct tagSCmdZoneTypeSet { typedef struct tagSCmdZoneTypeSet {
BOOL bWrite; BOOL bWrite;
@ -162,7 +165,6 @@ typedef struct tagSWPAResult {
} SWPAResult, *PSWPAResult; } SWPAResult, *PSWPAResult;
#endif #endif
typedef struct tagSCmdStartAP { typedef struct tagSCmdStartAP {
U16 wBSSType; U16 wBSSType;

View file

@ -65,12 +65,11 @@
//static int msglevel =MSG_LEVEL_DEBUG; //static int msglevel =MSG_LEVEL_DEBUG;
static int msglevel =MSG_LEVEL_INFO; static int msglevel =MSG_LEVEL_INFO;
/*--------------------- Static Functions --------------------------*/
#ifdef WPA_SM_Transtatus #ifdef WPA_SM_Transtatus
SWPAResult wpa_Result; SWPAResult wpa_Result;
#endif #endif
/*--------------------- Static Functions --------------------------*/
/*--------------------- Export Variables --------------------------*/ /*--------------------- Export Variables --------------------------*/
@ -101,7 +100,6 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
LONG ldBm; LONG ldBm;
pReq->wResult = 0; pReq->wResult = 0;
switch(pReq->wCmdCode) { switch(pReq->wCmdCode) {
@ -250,7 +248,6 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
break; break;
case WLAN_CMD_SET_WEP: case WLAN_CMD_SET_WEP:
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_SET_WEP Key. \n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_SET_WEP Key. \n");
memset(&sWEPCmd, 0 ,sizeof(SCmdSetWEP)); memset(&sWEPCmd, 0 ,sizeof(SCmdSetWEP));
if (copy_from_user(&sWEPCmd, pReq->data, sizeof(SCmdSetWEP))) { if (copy_from_user(&sWEPCmd, pReq->data, sizeof(SCmdSetWEP))) {
@ -695,13 +692,13 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
wpa_Result.key_mgmt = 0; wpa_Result.key_mgmt = 0;
wpa_Result.eap_type = 0; wpa_Result.eap_type = 0;
wpa_Result.authenticated = FALSE; wpa_Result.authenticated = FALSE;
pDevice->fWPA_Authened = FALSE; pDevice->fWPA_Authened = FALSE;
if (copy_from_user(&wpa_Result, pReq->data, sizeof(wpa_Result))) { if (copy_from_user(&wpa_Result, pReq->data, sizeof(wpa_Result))) {
result = -EFAULT; result = -EFAULT;
break; break;
} }
if(wpa_Result.authenticated==TRUE) { if(wpa_Result.authenticated==TRUE) {
#ifdef SndEvt_ToAPI #ifdef SndEvt_ToAPI
{ {
union iwreq_data wrqu; union iwreq_data wrqu;
@ -728,7 +725,6 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
break; break;
#endif #endif
default: default:
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Private command not support..\n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Private command not support..\n");
} }

View file

@ -1,5 +1,6 @@
/* /*
* Copyright (c) 1996, 2003 VIA Networking, Inc. All rights reserved. * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -105,6 +105,7 @@ struct iw_statistics *iwctl_get_wireless_stats(struct net_device *dev)
{ {
PSDevice pDevice = netdev_priv(dev); PSDevice pDevice = netdev_priv(dev);
long ldBm; long ldBm;
pDevice->wstats.status = pDevice->eOPMode; pDevice->wstats.status = pDevice->eOPMode;
#ifdef Calcu_LinkQual #ifdef Calcu_LinkQual
#if 0 #if 0
@ -161,7 +162,6 @@ static int iwctl_commit(struct net_device *dev,
return 0; return 0;
} }
/* /*
* Wireless Handler : get protocol name * Wireless Handler : get protocol name
*/ */
@ -197,8 +197,8 @@ int iwctl_siwscan(struct net_device *dev,
char *extra) char *extra)
{ {
PSDevice pDevice = (PSDevice)netdev_priv(dev); PSDevice pDevice = (PSDevice)netdev_priv(dev);
struct iw_scan_req *req = (struct iw_scan_req *)extra; PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); struct iw_scan_req *req = (struct iw_scan_req *)extra;
BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
PWLAN_IE_SSID pItemSSID=NULL; PWLAN_IE_SSID pItemSSID=NULL;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWSCAN \n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWSCAN \n");
@ -207,14 +207,14 @@ int iwctl_siwscan(struct net_device *dev,
if(pDevice->byReAssocCount > 0) { //reject scan when re-associating! if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
//send scan event to wpa_Supplicant //send scan event to wpa_Supplicant
union iwreq_data wrqu; union iwreq_data wrqu;
printk("wireless_send_event--->SIOCGIWSCAN(scan done)\n"); PRINT_K("wireless_send_event--->SIOCGIWSCAN(scan done)\n");
memset(&wrqu, 0, sizeof(wrqu)); memset(&wrqu, 0, sizeof(wrqu));
wireless_send_event(pDevice->dev, SIOCGIWSCAN, &wrqu, NULL); wireless_send_event(pDevice->dev, SIOCGIWSCAN, &wrqu, NULL);
return 0; return 0;
} }
spin_lock_irq(&pDevice->lock); spin_lock_irq(&pDevice->lock);
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
//mike add: active scan OR passive scan OR desire_ssid scan //mike add: active scan OR passive scan OR desire_ssid scan
if(wrq->length == sizeof(struct iw_scan_req)) { if(wrq->length == sizeof(struct iw_scan_req)) {
@ -230,7 +230,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
else else
pItemSSID->len = req->essid_len; pItemSSID->len = req->essid_len;
pMgmt->eScanType = WMAC_SCAN_PASSIVE; pMgmt->eScanType = WMAC_SCAN_PASSIVE;
printk("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID, PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID,
((PWLAN_IE_SSID)abyScanSSID)->len); ((PWLAN_IE_SSID)abyScanSSID)->len);
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID);
spin_unlock_irq(&pDevice->lock); spin_unlock_irq(&pDevice->lock);
@ -246,6 +246,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
} }
pMgmt->eScanType = WMAC_SCAN_PASSIVE; pMgmt->eScanType = WMAC_SCAN_PASSIVE;
//printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n");
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
spin_unlock_irq(&pDevice->lock); spin_unlock_irq(&pDevice->lock);
@ -288,18 +289,19 @@ int iwctl_giwscan(struct net_device *dev,
break; break;
pBSS = &(pMgmt->sBSSList[jj]); pBSS = &(pMgmt->sBSSList[jj]);
if (pBSS->bActive) { if (pBSS->bActive) {
//ADD mac address
memset(&iwe, 0, sizeof(iwe)); memset(&iwe, 0, sizeof(iwe));
iwe.cmd = SIOCGIWAP; iwe.cmd = SIOCGIWAP;
iwe.u.ap_addr.sa_family = ARPHRD_ETHER; iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
memcpy(iwe.u.ap_addr.sa_data, pBSS->abyBSSID, WLAN_BSSID_LEN); memcpy(iwe.u.ap_addr.sa_data, pBSS->abyBSSID, WLAN_BSSID_LEN);
current_ev = iwe_stream_add_event(info,current_ev,end_buf, &iwe, IW_EV_ADDR_LEN); current_ev = iwe_stream_add_event(info,current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
//ADD ssid //ADD ssid
memset(&iwe, 0, sizeof(iwe)); memset(&iwe, 0, sizeof(iwe));
iwe.cmd = SIOCGIWESSID; iwe.cmd = SIOCGIWESSID;
pItemSSID = (PWLAN_IE_SSID)pBSS->abySSID; pItemSSID = (PWLAN_IE_SSID)pBSS->abySSID;
iwe.u.data.length = pItemSSID->len; iwe.u.data.length = pItemSSID->len;
iwe.u.data.flags = 1; iwe.u.data.flags = 1;
current_ev = iwe_stream_add_point(info,current_ev,end_buf, &iwe, pItemSSID->abySSID); current_ev = iwe_stream_add_point(info,current_ev,end_buf, &iwe, pItemSSID->abySSID);
//ADD mode //ADD mode
memset(&iwe, 0, sizeof(iwe)); memset(&iwe, 0, sizeof(iwe));
iwe.cmd = SIOCGIWMODE; iwe.cmd = SIOCGIWMODE;
@ -310,7 +312,7 @@ int iwctl_giwscan(struct net_device *dev,
iwe.u.mode = IW_MODE_ADHOC; iwe.u.mode = IW_MODE_ADHOC;
} }
iwe.len = IW_EV_UINT_LEN; iwe.len = IW_EV_UINT_LEN;
current_ev = iwe_stream_add_event(info,current_ev, end_buf, &iwe, IW_EV_UINT_LEN); current_ev = iwe_stream_add_event(info,current_ev, end_buf, &iwe, IW_EV_UINT_LEN);
//ADD frequency //ADD frequency
pSuppRates = (PWLAN_IE_SUPP_RATES)pBSS->abySuppRates; pSuppRates = (PWLAN_IE_SUPP_RATES)pBSS->abySuppRates;
pExtSuppRates = (PWLAN_IE_SUPP_RATES)pBSS->abyExtSuppRates; pExtSuppRates = (PWLAN_IE_SUPP_RATES)pBSS->abyExtSuppRates;
@ -319,9 +321,7 @@ int iwctl_giwscan(struct net_device *dev,
iwe.u.freq.m = pBSS->uChannel; iwe.u.freq.m = pBSS->uChannel;
iwe.u.freq.e = 0; iwe.u.freq.e = 0;
iwe.u.freq.i = 0; iwe.u.freq.i = 0;
current_ev = iwe_stream_add_event(info,current_ev,end_buf, &iwe, IW_EV_FREQ_LEN); current_ev = iwe_stream_add_event(info,current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
//2008-0409-04, <Add> by Einsn Liu //2008-0409-04, <Add> by Einsn Liu
{ {
int f = (int)pBSS->uChannel - 1; int f = (int)pBSS->uChannel - 1;
@ -329,7 +329,7 @@ int iwctl_giwscan(struct net_device *dev,
iwe.u.freq.m = frequency_list[f] * 100000; iwe.u.freq.m = frequency_list[f] * 100000;
iwe.u.freq.e = 1; iwe.u.freq.e = 1;
} }
current_ev = iwe_stream_add_event(info,current_ev,end_buf, &iwe, IW_EV_FREQ_LEN); current_ev = iwe_stream_add_event(info,current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
//ADD quality //ADD quality
memset(&iwe, 0, sizeof(iwe)); memset(&iwe, 0, sizeof(iwe));
iwe.cmd = IWEVQUAL; iwe.cmd = IWEVQUAL;
@ -369,14 +369,14 @@ int iwctl_giwscan(struct net_device *dev,
break; break;
// Bit rate given in 500 kb/s units (+ 0x80) // Bit rate given in 500 kb/s units (+ 0x80)
iwe.u.bitrate.value = ((pSuppRates->abyRates[kk] & 0x7f) * 500000); iwe.u.bitrate.value = ((pSuppRates->abyRates[kk] & 0x7f) * 500000);
current_val = iwe_stream_add_value(info,current_ev, current_val, end_buf, &iwe, IW_EV_PARAM_LEN); current_val = iwe_stream_add_value(info,current_ev, current_val, end_buf, &iwe, IW_EV_PARAM_LEN);
} }
for (kk = 0 ; kk < 8 ; kk++) { for (kk = 0 ; kk < 8 ; kk++) {
if (pExtSuppRates->abyRates[kk] == 0) if (pExtSuppRates->abyRates[kk] == 0)
break; break;
// Bit rate given in 500 kb/s units (+ 0x80) // Bit rate given in 500 kb/s units (+ 0x80)
iwe.u.bitrate.value = ((pExtSuppRates->abyRates[kk] & 0x7f) * 500000); iwe.u.bitrate.value = ((pExtSuppRates->abyRates[kk] & 0x7f) * 500000);
current_val = iwe_stream_add_value(info,current_ev, current_val, end_buf, &iwe, IW_EV_PARAM_LEN); current_val = iwe_stream_add_value(info,current_ev, current_val, end_buf, &iwe, IW_EV_PARAM_LEN);
} }
if((current_val - current_ev) > IW_EV_LCP_LEN) if((current_val - current_ev) > IW_EV_LCP_LEN)
@ -386,7 +386,7 @@ int iwctl_giwscan(struct net_device *dev,
iwe.cmd = IWEVCUSTOM; iwe.cmd = IWEVCUSTOM;
sprintf(buf, "bcn_int=%d", pBSS->wBeaconInterval); sprintf(buf, "bcn_int=%d", pBSS->wBeaconInterval);
iwe.u.data.length = strlen(buf); iwe.u.data.length = strlen(buf);
current_ev = iwe_stream_add_point(info,current_ev, end_buf, &iwe, buf); current_ev = iwe_stream_add_point(info,current_ev, end_buf, &iwe, buf);
if ((pBSS->wWPALen > 0) && (pBSS->wWPALen <= MAX_WPA_IE_LEN)) { if ((pBSS->wWPALen > 0) && (pBSS->wWPALen <= MAX_WPA_IE_LEN)) {
memset(&iwe, 0, sizeof(iwe)); memset(&iwe, 0, sizeof(iwe));
@ -712,7 +712,7 @@ int iwctl_siwap(struct net_device *dev,
PSDevice pDevice = (PSDevice)netdev_priv(dev); PSDevice pDevice = (PSDevice)netdev_priv(dev);
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
int rc = 0; int rc = 0;
BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00}; BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00};
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWAP \n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWAP \n");
if (pMgmt->eScanState == WMAC_IS_SCANNING) { if (pMgmt->eScanState == WMAC_IS_SCANNING) {
@ -733,7 +733,7 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
//mike :add //mike :add
if ((IS_BROADCAST_ADDRESS(pMgmt->abyDesireBSSID)) || if ((IS_BROADCAST_ADDRESS(pMgmt->abyDesireBSSID)) ||
(memcmp(pMgmt->abyDesireBSSID, ZeroBSSID, 6) == 0)){ (memcmp(pMgmt->abyDesireBSSID, ZeroBSSID, 6) == 0)){
printk("SIOCSIWAP:invalid desired BSSID return!\n"); PRINT_K("SIOCSIWAP:invalid desired BSSID return!\n");
return rc; return rc;
} }
//mike add: if desired AP is hidden ssid(there are two same BSSID in list), //mike add: if desired AP is hidden ssid(there are two same BSSID in list),
@ -747,10 +747,11 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
} }
} }
if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!! if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!!
printk("SIOCSIWAP:ignore for desired AP in hidden mode\n"); PRINT_K("SIOCSIWAP:ignore for desired AP in hidden mode\n");
return rc; return rc;
} }
} }
if (pDevice->flags & DEVICE_FLAGS_OPENED) { if (pDevice->flags & DEVICE_FLAGS_OPENED) {
pDevice->bCommit = TRUE; pDevice->bCommit = TRUE;
} }
@ -866,11 +867,10 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
} }
// Check if we asked for `any' // Check if we asked for `any'
if(wrq->flags == 0) { if(wrq->flags == 0) {
// Just send an empty SSID list
// Just send an empty SSID list // Just send an empty SSID list
memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1); memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1);
memset(pMgmt->abyDesireBSSID, 0xFF,6); memset(pMgmt->abyDesireBSSID, 0xFF,6);
printk("set essid to 'any' \n"); PRINT_K("set essid to 'any' \n");
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
//Unknown desired AP,so here need not associate?? //Unknown desired AP,so here need not associate??
//if(pDevice->bWPASuppWextEnabled == TRUE) { //if(pDevice->bWPASuppWextEnabled == TRUE) {
@ -882,8 +882,9 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1); memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1);
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID; pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID;
pItemSSID->byElementID = WLAN_EID_SSID; pItemSSID->byElementID = WLAN_EID_SSID;
memcpy(pItemSSID->abySSID, extra, wrq->length); memcpy(pItemSSID->abySSID, extra, wrq->length);
if (pItemSSID->abySSID[wrq->length - 1] == '\0') { if (pItemSSID->abySSID[wrq->length - 1] == '\0') {
if(wrq->length>0) if(wrq->length>0)
pItemSSID->len = wrq->length - 1; pItemSSID->len = wrq->length - 1;
} }
@ -896,7 +897,7 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
(memcmp(pItemSSID->abySSID,((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->abySSID,len)==0)) (memcmp(pItemSSID->abySSID,((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->abySSID,len)==0))
return 0; return 0;
//mike:need clear desiredBSSID //mike:need clear desiredBSSID
if(pItemSSID->len==0) { if(pItemSSID->len==0) {
memset(pMgmt->abyDesireBSSID, 0xFF,6); memset(pMgmt->abyDesireBSSID, 0xFF,6);
return 0; return 0;
@ -921,7 +922,7 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
); );
if (pCurr == NULL){ if (pCurr == NULL){
printk("SIOCSIWESSID:hidden ssid site survey before associate.......\n"); PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n");
vResetCommandTimer((HANDLE) pDevice); vResetCommandTimer((HANDLE) pDevice);
pMgmt->eScanType = WMAC_SCAN_ACTIVE; pMgmt->eScanType = WMAC_SCAN_ACTIVE;
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
@ -949,10 +950,6 @@ if (pMgmt->eScanState == WMAC_IS_SCANNING) {
#endif #endif
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "set essid = %s \n", pItemSSID->abySSID); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "set essid = %s \n", pItemSSID->abySSID);
/*
DBG_PRT(MSG_LEVEL_INFO, KERN_INFO " SIOCSIWESSID2 \n");
pItemSSID->len = wrq->length;
*/
} }
if (pDevice->flags & DEVICE_FLAGS_OPENED) { if (pDevice->flags & DEVICE_FLAGS_OPENED) {
@ -1064,8 +1061,7 @@ int iwctl_siwrate(struct net_device *dev,
printk("Rate Fix\n"); printk("Rate Fix\n");
pDevice->bFixRate = TRUE; pDevice->bFixRate = TRUE;
if ((pDevice->byBBType == BB_TYPE_11B)&& (brate > 3)) { if ((pDevice->byBBType == BB_TYPE_11B)&& (brate > 3)) {
pDevice->uConnectionRate = 3;
pDevice->uConnectionRate = 3;
} }
else { else {
pDevice->uConnectionRate = brate; pDevice->uConnectionRate = brate;
@ -1077,7 +1073,7 @@ int iwctl_siwrate(struct net_device *dev,
pDevice->bFixRate = FALSE; pDevice->bFixRate = FALSE;
pDevice->uConnectionRate = 13; pDevice->uConnectionRate = 13;
printk("auto rate:connection_rate is 13\n"); printk("auto rate:connection_rate is 13\n");
} }
return rc; return rc;
} }
@ -1441,7 +1437,7 @@ if((wrq->flags & IW_ENCODE_DISABLED)==0){
//End Modify,Einsn //End Modify,Einsn
/* /*
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWENCODE \n"); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWENCODE \n");
// Check the size of the key // Check the size of the key
if (wrq->length > WLAN_WEP232_KEYLEN) { if (wrq->length > WLAN_WEP232_KEYLEN) {
@ -1663,6 +1659,7 @@ int iwctl_giwencode(struct net_device *dev,
return 0; return 0;
} }
/* /*
* Wireless Handler : set power mode * Wireless Handler : set power mode
*/ */
@ -1790,20 +1787,19 @@ int iwctl_siwauth(struct net_device *dev,
case IW_AUTH_WPA_VERSION: case IW_AUTH_WPA_VERSION:
wpa_version = wrq->value; wpa_version = wrq->value;
if(wrq->value == IW_AUTH_WPA_VERSION_DISABLED) { if(wrq->value == IW_AUTH_WPA_VERSION_DISABLED) {
printk("iwctl_siwauth:set WPADEV to disable at 1??????\n"); PRINT_K("iwctl_siwauth:set WPADEV to disable at 1??????\n");
//pDevice->bWPADevEnable = FALSE; //pDevice->bWPADevEnable = FALSE;
} }
else if(wrq->value == IW_AUTH_WPA_VERSION_WPA) { else if(wrq->value == IW_AUTH_WPA_VERSION_WPA) {
printk("iwctl_siwauth:set WPADEV to WPA1******\n"); PRINT_K("iwctl_siwauth:set WPADEV to WPA1******\n");
} }
else { else {
printk("iwctl_siwauth:set WPADEV to WPA2******\n"); PRINT_K("iwctl_siwauth:set WPADEV to WPA2******\n");
} }
//pDevice->bWPASuppWextEnabled =TRUE; //pDevice->bWPASuppWextEnabled =TRUE;
break; break;
case IW_AUTH_CIPHER_PAIRWISE: case IW_AUTH_CIPHER_PAIRWISE:
pairwise = wrq->value; pairwise = wrq->value;
if(pairwise == IW_AUTH_CIPHER_CCMP){ if(pairwise == IW_AUTH_CIPHER_CCMP){
pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled;
}else if(pairwise == IW_AUTH_CIPHER_TKIP){ }else if(pairwise == IW_AUTH_CIPHER_TKIP){
@ -1968,10 +1964,10 @@ int iwctl_siwencodeext(struct net_device *dev,
//original member //original member
wpa_alg alg_name; wpa_alg alg_name;
u8 addr[6]; u8 addr[6];
int key_idx, set_tx; int key_idx, set_tx=0;
u8 seq[IW_ENCODE_SEQ_MAX_SIZE]; u8 seq[IW_ENCODE_SEQ_MAX_SIZE];
u8 key[64]; u8 key[64];
size_t seq_len,key_len=0; size_t seq_len=0,key_len=0;
// //
// int ii; // int ii;
u8 *buf; u8 *buf;
@ -1979,7 +1975,7 @@ int iwctl_siwencodeext(struct net_device *dev,
u8 key_array[64]; u8 key_array[64];
int ret=0; int ret=0;
printk("SIOCSIWENCODEEXT...... \n"); PRINT_K("SIOCSIWENCODEEXT...... \n");
blen = sizeof(*param); blen = sizeof(*param);
buf = kmalloc((int)blen, (int)GFP_KERNEL); buf = kmalloc((int)blen, (int)GFP_KERNEL);
@ -2003,7 +1999,7 @@ switch (ext->alg) {
alg_name = WPA_ALG_CCMP; alg_name = WPA_ALG_CCMP;
break; break;
default: default:
printk("Unknown alg = %d\n",ext->alg); PRINT_K("Unknown alg = %d\n",ext->alg);
ret= -ENOMEM; ret= -ENOMEM;
goto error; goto error;
} }
@ -2046,7 +2042,6 @@ param->u.wpa_key.seq = (u8 *)seq;
param->u.wpa_key.seq_len = seq_len; param->u.wpa_key.seq_len = seq_len;
#if 0 #if 0
int ii;
printk("param->u.wpa_key.alg_name =%d\n",param->u.wpa_key.alg_name); printk("param->u.wpa_key.alg_name =%d\n",param->u.wpa_key.alg_name);
printk("param->addr=%02x:%02x:%02x:%02x:%02x:%02x\n", printk("param->addr=%02x:%02x:%02x:%02x:%02x:%02x\n",
param->addr[0],param->addr[1],param->addr[2], param->addr[0],param->addr[1],param->addr[2],

View file

@ -227,6 +227,7 @@ int iwctl_siwmlme(struct net_device *dev,
struct iw_point *wrq, struct iw_point *wrq,
char *extra); char *extra);
#endif // #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT #endif // #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
//End Add -- //2008-0409-07, <Add> by Einsn Liu
extern const struct iw_handler_def iwctl_handler_def; extern const struct iw_handler_def iwctl_handler_def;

View file

@ -1,6 +1,5 @@
/* /*
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * Copyright (c) 1996, 2003 VIA Networking, Inc. All rights reserved.
* All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -66,6 +65,7 @@
#ifndef IRQ_RETVAL #ifndef IRQ_RETVAL
typedef void irqreturn_t; typedef void irqreturn_t;
#define IRQ_RETVAL(x) #define IRQ_RETVAL(x)
#endif #endif
@ -75,6 +75,5 @@ typedef void irqreturn_t;
#define MODULE_LICESEN(x) #define MODULE_LICESEN(x)
#endif #endif
#endif #endif

View file

@ -85,6 +85,7 @@ s_vCheckKeyTableValid (PSKeyManagement pTable, DWORD_PTR dwIoBase)
(pTable->KeyTable[i].GroupKey[2].bKeyValid == FALSE) && (pTable->KeyTable[i].GroupKey[2].bKeyValid == FALSE) &&
(pTable->KeyTable[i].GroupKey[3].bKeyValid == FALSE) (pTable->KeyTable[i].GroupKey[3].bKeyValid == FALSE)
) { ) {
pTable->KeyTable[i].bInUse = FALSE; pTable->KeyTable[i].bInUse = FALSE;
pTable->KeyTable[i].wKeyCtl = 0; pTable->KeyTable[i].wKeyCtl = 0;
pTable->KeyTable[i].bSoftWEP = FALSE; pTable->KeyTable[i].bSoftWEP = FALSE;

View file

@ -16,6 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: mac.c * File: mac.c
* *
* Purpose: MAC routines * Purpose: MAC routines
@ -67,6 +68,8 @@
* *
*/ */
#if !defined(__TMACRO_H__) #if !defined(__TMACRO_H__)
#include "tmacro.h" #include "tmacro.h"
#endif #endif
@ -95,6 +98,10 @@ static int msglevel =MSG_LEVEL_INFO;
/*--------------------- Export Functions --------------------------*/ /*--------------------- Export Functions --------------------------*/
/* /*
* Description: * Description:
* Read All MAC Registers to buffer * Read All MAC Registers to buffer

View file

@ -24,18 +24,16 @@
* Author: Tevin Chen * Author: Tevin Chen
* *
* Date: May 21, 1996 * Date: May 21, 1996
*
* Revision History: * Revision History:
* 07-01-2003 Bryan YC Fan: Re-write codes to support VT3253 spec. * 07-01-2003 Bryan YC Fan: Re-write codes to support VT3253 spec.
* 08-25-2003 Kyle Hsu: Porting MAC functions from sim53. * 08-25-2003 Kyle Hsu: Porting MAC functions from sim53.
* 09-03-2003 Bryan YC Fan: Add MACvDisableProtectMD & MACvEnableProtectMD * 09-03-2003 Bryan YC Fan: Add MACvDisableProtectMD & MACvEnableProtectMD
*
*/ */
#ifndef __MAC_H__ #ifndef __MAC_H__
#define __MAC_H__ #define __MAC_H__
#if !defined(__TTYPE_H__) #if !defined(__TTYPE_H__)
#include "ttype.h" #include "ttype.h"
#endif #endif
@ -130,7 +128,7 @@
#define MAC_REG_IFREGCTL 0x70 // #define MAC_REG_IFREGCTL 0x70 //
#define MAC_REG_IFDATA 0x71 // #define MAC_REG_IFDATA 0x71 //
#define MAC_REG_ITRTMSET 0x74 // #define MAC_REG_ITRTMSET 0x74 //
#define MAC_REG_PAPEDELAY 0x77 // #define MAC_REG_PAPEDELAY 0x77
#define MAC_REG_SOFTPWRCTL 0x78 // #define MAC_REG_SOFTPWRCTL 0x78 //
#define MAC_REG_GPIOCTL0 0x7A // #define MAC_REG_GPIOCTL0 0x7A //
#define MAC_REG_GPIOCTL1 0x7B // #define MAC_REG_GPIOCTL1 0x7B //

View file

@ -16,6 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: power.c * File: power.c
* *
* Purpose: Handles 802.11 power management functions * Purpose: Handles 802.11 power management functions

View file

@ -16,7 +16,6 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: power.h * File: power.h
* *
* Purpose: Handles 802.11 power management functions * Purpose: Handles 802.11 power management functions

View file

@ -1,5 +1,6 @@
/* /*
* File: rc4.c * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -15,6 +16,8 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
* File: rc4.c
*
* Purpose: * Purpose:
* *
* Functions: * Functions:

View file

@ -31,6 +31,7 @@
* Revision History: * Revision History:
* *
*/ */
#if !defined(__MAC_H__) #if !defined(__MAC_H__)
#include "mac.h" #include "mac.h"
#endif #endif

View file

@ -16,7 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
* File: whdr.h * File: rxtx.h
* *
* Purpose: * Purpose:
* *

View file

@ -36,9 +36,10 @@
#endif #endif
/*--------------------- Export Definitions -------------------------*/
/*--------------------- Export Definitions -------------------------*/
#define EEP_MAX_CONTEXT_SIZE 256 #define EEP_MAX_CONTEXT_SIZE 256
#define CB_EEPROM_READBYTE_WAIT 900 //us #define CB_EEPROM_READBYTE_WAIT 900 //us
@ -48,7 +49,6 @@
// //
// Contents in the EEPROM // Contents in the EEPROM
// //
#define EEP_OFS_PAR 0x00 // physical address #define EEP_OFS_PAR 0x00 // physical address
#define EEP_OFS_ANTENNA 0x16 #define EEP_OFS_ANTENNA 0x16
#define EEP_OFS_RADIOCTL 0x17 #define EEP_OFS_RADIOCTL 0x17
@ -97,8 +97,6 @@
#define EEP_RADIOCTL_ENABLE 0x80 #define EEP_RADIOCTL_ENABLE 0x80
#define EEP_RADIOCTL_INV 0x01 #define EEP_RADIOCTL_INV 0x01
/*--------------------- Export Types ------------------------------*/ /*--------------------- Export Types ------------------------------*/
// AT24C02 eeprom contents // AT24C02 eeprom contents
@ -175,5 +173,3 @@ BOOL SROMbAutoLoad (DWORD_PTR dwIoBase);
#endif // __EEPROM_H__ #endif // __EEPROM_H__

View file

@ -2,6 +2,7 @@
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved. * All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
@ -15,6 +16,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
* *
* File: tpci.h * File: tpci.h

View file

@ -1,5 +1,6 @@
/* /*
* File: ttype.h * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -15,6 +16,8 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
* File: ttype.h
*
* Purpose: define basic common types and macros * Purpose: define basic common types and macros
* *
* Author: Tevin Chen * Author: Tevin Chen

View file

@ -39,6 +39,7 @@
#if !defined(__CARD_H__) #if !defined(__CARD_H__)
#include "card.h" #include "card.h"
#endif #endif
#include "wpa2.h"
/*--------------------- Export Definitions -------------------------*/ /*--------------------- Export Definitions -------------------------*/
#define RATE_1M 0 #define RATE_1M 0
@ -67,8 +68,6 @@
#define MAX_BSS_NUM 42 #define MAX_BSS_NUM 42
#define MAX_PMKID_CACHE 16
// Pre-configured Authenticaiton Mode (from XP) // Pre-configured Authenticaiton Mode (from XP)
typedef enum tagWMAC_AUTHENTICATION_MODE { typedef enum tagWMAC_AUTHENTICATION_MODE {

View file

@ -1,4 +1,4 @@
/* /*
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved. * All rights reserved.
* *
@ -16,7 +16,6 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: wcmd.c * File: wcmd.c
* *
* Purpose: Handles the management command interface functions * Purpose: Handles the management command interface functions
@ -122,6 +121,7 @@ s_MgrMakeProbeRequest(
IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates
); );
static static
BOOL BOOL
s_bCommandComplete ( s_bCommandComplete (
@ -134,6 +134,7 @@ s_bCommandComplete (
/*--------------------- Export Functions --------------------------*/ /*--------------------- Export Functions --------------------------*/
/* /*
* Description: * Description:
* Stop AdHoc beacon during scan process * Stop AdHoc beacon during scan process
@ -186,7 +187,8 @@ vAdHocBeaconStop(PSDevice pDevice)
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_TCR, TCR_AUTOBCNTX); MACvRegBitsOff(pDevice->PortOffset, MAC_REG_TCR, TCR_AUTOBCNTX);
} }
} } /* vAdHocBeaconStop */
/* /*
* Description: * Description:
@ -224,6 +226,8 @@ vAdHocBeaconRestart(PSDevice pDevice)
/*+ /*+
* *
* Routine Description: * Routine Description:
@ -350,6 +354,7 @@ s_MgrMakeProbeRequest(
VOID VOID
vCommandTimerWait( vCommandTimerWait(
IN HANDLE hDeviceContext, IN HANDLE hDeviceContext,
@ -369,6 +374,7 @@ vCommandTimerWait(
VOID VOID
vCommandTimer ( vCommandTimer (
IN HANDLE hDeviceContext IN HANDLE hDeviceContext

View file

@ -46,6 +46,7 @@
#define AUTHENTICATE_TIMEOUT 1000 //ms #define AUTHENTICATE_TIMEOUT 1000 //ms
#define ASSOCIATE_TIMEOUT 1000 //ms #define ASSOCIATE_TIMEOUT 1000 //ms
// Command code // Command code
typedef enum tagCMD_CODE { typedef enum tagCMD_CODE {
WLAN_CMD_BSSID_SCAN, WLAN_CMD_BSSID_SCAN,
@ -67,11 +68,9 @@ typedef enum tagCMD_CODE {
#define CMD_Q_SIZE 32 #define CMD_Q_SIZE 32
// Command code
typedef enum tagCMD_STATUS { typedef enum tagCMD_STATUS {
CMD_STATUS_SUCCESS, CMD_STATUS_SUCCESS = 0,
CMD_STATUS_FAILURE, CMD_STATUS_FAILURE,
CMD_STATUS_RESOURCES, CMD_STATUS_RESOURCES,
CMD_STATUS_TIMEOUT, CMD_STATUS_TIMEOUT,
@ -106,6 +105,7 @@ typedef enum tagCMD_STATE {
} CMD_STATE, DEF* PCMD_STATE; } CMD_STATE, DEF* PCMD_STATE;
/*--------------------- Export Classes ----------------------------*/ /*--------------------- Export Classes ----------------------------*/
/*--------------------- Export Variables --------------------------*/ /*--------------------- Export Variables --------------------------*/
@ -115,7 +115,6 @@ typedef enum tagCMD_STATE {
/*--------------------- Export Functions --------------------------*/ /*--------------------- Export Functions --------------------------*/
VOID VOID
vResetCommandTimer( vResetCommandTimer(
IN HANDLE hDeviceContext IN HANDLE hDeviceContext
@ -148,4 +147,5 @@ BSSvSecondTxData(
IN HANDLE hDeviceContext IN HANDLE hDeviceContext
); );
#endif #endif
#endif //__WCMD_H__ #endif //__WCMD_H__

View file

@ -16,6 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: wmgr.c * File: wmgr.c
* *
* Purpose: Handles the 802.11 management functions * Purpose: Handles the 802.11 management functions
@ -137,6 +138,7 @@ static BOOL ChannelExceedZoneType(
IN PSDevice pDevice, IN PSDevice pDevice,
IN BYTE byCurrChannel IN BYTE byCurrChannel
); );
// Association/diassociation functions // Association/diassociation functions
static static
PSTxMgmtPacket PSTxMgmtPacket
@ -363,33 +365,10 @@ s_bCipherMatch (
OUT PBYTE pbyCCSGK OUT PBYTE pbyCCSGK
); );
static VOID Encyption_Rebuild( static VOID Encyption_Rebuild(
IN PSDevice pDevice, IN PSDevice pDevice,
IN PKnownBSS pCurr IN PKnownBSS pCurr
); );
/*
static
VOID
s_vProbeChannel(
IN PSDevice pDevice
);
static
VOID
s_vListenChannel(
IN PSDevice pDevice
);
static
PSTxMgmtPacket
s_MgrMakeProbeRequest(
IN PSMgmtObject pMgmt,
IN PBYTE pScanBSSID,
IN PWLAN_IE_SSID pSSID,
IN PWLAN_IE_SUPP_RATES pCurrRates
);
*/
@ -1780,7 +1759,6 @@ s_vMgrRxDisassociation(
wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL); wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL);
} }
#endif #endif
} }
/* else, ignore it */ /* else, ignore it */
@ -1857,13 +1835,13 @@ s_vMgrRxDeauthentication(
pDevice->skb = dev_alloc_skb((int)pDevice->rx_buf_sz); pDevice->skb = dev_alloc_skb((int)pDevice->rx_buf_sz);
}; };
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
// if(pDevice->bWPASuppWextEnabled == TRUE) // if(pDevice->bWPASuppWextEnabled == TRUE)
{ {
union iwreq_data wrqu; union iwreq_data wrqu;
memset(&wrqu, 0, sizeof (wrqu)); memset(&wrqu, 0, sizeof (wrqu));
wrqu.ap_addr.sa_family = ARPHRD_ETHER; wrqu.ap_addr.sa_family = ARPHRD_ETHER;
printk("wireless_send_event--->SIOCGIWAP(disauthen)\n"); PRINT_K("wireless_send_event--->SIOCGIWAP(disauthen)\n");
wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL); wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL);
} }
#endif #endif
@ -3172,22 +3150,22 @@ s_vMgrSynchBSS (
pMgmt->eAuthenMode = WMAC_AUTH_WPAPSK; pMgmt->eAuthenMode = WMAC_AUTH_WPAPSK;
if(pCurr->abyPKType[0] == WPA_TKIP) { if(pCurr->abyPKType[0] == WPA_TKIP) {
pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; //TKIP pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; //TKIP
printk("Encyption_Rebuild--->ssid reset config to [WPAPSK-TKIP]\n"); PRINT_K("Encyption_Rebuild--->ssid reset config to [WPAPSK-TKIP]\n");
} }
else if(pCurr->abyPKType[0] == WPA_AESCCMP) { else if(pCurr->abyPKType[0] == WPA_AESCCMP) {
pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; //AES pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; //AES
printk("Encyption_Rebuild--->ssid reset config to [WPAPSK-AES]\n"); PRINT_K("Encyption_Rebuild--->ssid reset config to [WPAPSK-AES]\n");
} }
} }
else if(pCurr->bWPA2Valid == TRUE) { //WPA2-PSK else if(pCurr->bWPA2Valid == TRUE) { //WPA2-PSK
pMgmt->eAuthenMode = WMAC_AUTH_WPA2PSK; pMgmt->eAuthenMode = WMAC_AUTH_WPA2PSK;
if(pCurr->abyCSSPK[0] == WLAN_11i_CSS_TKIP) { if(pCurr->abyCSSPK[0] == WLAN_11i_CSS_TKIP) {
pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; //TKIP pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; //TKIP
printk("Encyption_Rebuild--->ssid reset config to [WPA2PSK-TKIP]\n"); PRINT_K("Encyption_Rebuild--->ssid reset config to [WPA2PSK-TKIP]\n");
} }
else if(pCurr->abyCSSPK[0] == WLAN_11i_CSS_CCMP) { else if(pCurr->abyCSSPK[0] == WLAN_11i_CSS_CCMP) {
pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; //AES pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; //AES
printk("Encyption_Rebuild--->ssid reset config to [WPA2PSK-AES]\n"); PRINT_K("Encyption_Rebuild--->ssid reset config to [WPA2PSK-AES]\n");
} }
} }
} }
@ -3832,6 +3810,7 @@ s_MgrMakeAssocRequest(
*pbyRSN++=0x01; *pbyRSN++=0x01;
*pbyRSN++=0x00; *pbyRSN++=0x00;
*pbyRSN++=0x00; *pbyRSN++=0x00;
*pbyRSN++=0x50; *pbyRSN++=0x50;
*pbyRSN++=0xf2; *pbyRSN++=0xf2;
if (pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK) { if (pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK) {
@ -3843,12 +3822,15 @@ s_MgrMakeAssocRequest(
else { else {
*pbyRSN++=WPA_NONE; *pbyRSN++=WPA_NONE;
} }
sFrame.pRSNWPA->len +=6; sFrame.pRSNWPA->len +=6;
// RSN Capabilites // RSN Capabilites
*pbyRSN++=0x00; *pbyRSN++=0x00;
*pbyRSN++=0x00; *pbyRSN++=0x00;
sFrame.pRSNWPA->len +=2; sFrame.pRSNWPA->len +=2;
sFrame.len += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN; sFrame.len += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN;
// copy to AssocInfo. for OID_802_11_ASSOCIATION_INFORMATION // copy to AssocInfo. for OID_802_11_ASSOCIATION_INFORMATION
pMgmt->sAssocInfo.AssocInfo.RequestIELength += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN; pMgmt->sAssocInfo.AssocInfo.RequestIELength += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN;
@ -4087,6 +4069,7 @@ s_MgrMakeReAssocRequest(
*pbyRSN++=0x01; *pbyRSN++=0x01;
*pbyRSN++=0x00; *pbyRSN++=0x00;
*pbyRSN++=0x00; *pbyRSN++=0x00;
*pbyRSN++=0x50; *pbyRSN++=0x50;
*pbyRSN++=0xf2; *pbyRSN++=0xf2;
if (pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK) { if (pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK) {
@ -4096,12 +4079,14 @@ s_MgrMakeReAssocRequest(
} else { } else {
*pbyRSN++=WPA_NONE; *pbyRSN++=WPA_NONE;
} }
sFrame.pRSNWPA->len +=6; sFrame.pRSNWPA->len +=6;
// RSN Capabilites // RSN Capabilites
*pbyRSN++=0x00; *pbyRSN++=0x00;
*pbyRSN++=0x00; *pbyRSN++=0x00;
sFrame.pRSNWPA->len +=2; sFrame.pRSNWPA->len +=2;
sFrame.len += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN; sFrame.len += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN;
// copy to AssocInfo. for OID_802_11_ASSOCIATION_INFORMATION // copy to AssocInfo. for OID_802_11_ASSOCIATION_INFORMATION
pMgmt->sAssocInfo.AssocInfo.RequestIELength += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN; pMgmt->sAssocInfo.AssocInfo.RequestIELength += sFrame.pRSNWPA->len + WLAN_IEHDR_LEN;
@ -4677,7 +4662,7 @@ vMgrRxManagePacket(
case WLAN_FSTYPE_BEACON: case WLAN_FSTYPE_BEACON:
// Frame Clase = 0 // Frame Clase = 0
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "rx beacon\n"); //DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "rx beacon\n");
if (pMgmt->eScanState != WMAC_NO_SCANNING) { if (pMgmt->eScanState != WMAC_NO_SCANNING) {
bInScan = TRUE; bInScan = TRUE;
}; };
@ -4953,7 +4938,6 @@ s_bCipherMatch (
return FALSE; return FALSE;
// check cap. of BSS // check cap. of BSS
if ((WLAN_GET_CAP_INFO_PRIVACY(pBSSNode->wCapInfo) != 0) && if ((WLAN_GET_CAP_INFO_PRIVACY(pBSSNode->wCapInfo) != 0) &&
(EncStatus == Ndis802_11Encryption1Enabled)) { (EncStatus == Ndis802_11Encryption1Enabled)) {
// default is WEP only // default is WEP only
@ -4962,8 +4946,8 @@ s_bCipherMatch (
if ((WLAN_GET_CAP_INFO_PRIVACY(pBSSNode->wCapInfo) != 0) && if ((WLAN_GET_CAP_INFO_PRIVACY(pBSSNode->wCapInfo) != 0) &&
(pBSSNode->bWPA2Valid == TRUE) && (pBSSNode->bWPA2Valid == TRUE) &&
//20080123-01,<Add> by Einsn Liu
((EncStatus == Ndis802_11Encryption3Enabled)||(EncStatus == Ndis802_11Encryption2Enabled))) { ((EncStatus == Ndis802_11Encryption3Enabled)||(EncStatus == Ndis802_11Encryption2Enabled))) {
//WPA2 //WPA2
// check Group Key Cipher // check Group Key Cipher
if ((pBSSNode->byCSSGK == WLAN_11i_CSS_WEP40) || if ((pBSSNode->byCSSGK == WLAN_11i_CSS_WEP40) ||
@ -4993,10 +4977,10 @@ s_bCipherMatch (
i = pBSSNode->wCSSPKCount; i = pBSSNode->wCSSPKCount;
} }
} }
} else if ((WLAN_GET_CAP_INFO_PRIVACY(pBSSNode->wCapInfo) != 0) && } else if ((WLAN_GET_CAP_INFO_PRIVACY(pBSSNode->wCapInfo) != 0) &&
(pBSSNode->bWPAValid == TRUE) && (pBSSNode->bWPAValid == TRUE) &&
((EncStatus == Ndis802_11Encryption3Enabled)||(EncStatus == Ndis802_11Encryption2Enabled))) { ((EncStatus == Ndis802_11Encryption3Enabled) || (EncStatus == Ndis802_11Encryption2Enabled))) {
//WPA //WPA
// check Group Key Cipher // check Group Key Cipher
if ((pBSSNode->byGKType == WPA_WEP40) || if ((pBSSNode->byGKType == WPA_WEP40) ||
@ -5029,6 +5013,7 @@ s_bCipherMatch (
// mask our cap. with BSS // mask our cap. with BSS
if (EncStatus == Ndis802_11Encryption1Enabled) { if (EncStatus == Ndis802_11Encryption1Enabled) {
// For supporting Cisco migration mode, don't care pairwise key cipher // For supporting Cisco migration mode, don't care pairwise key cipher
if ((byMulticastCipher == KEY_CTL_WEP) && if ((byMulticastCipher == KEY_CTL_WEP) &&
(byCipherMask == 0)) { (byCipherMask == 0)) {

View file

@ -44,13 +44,12 @@
#if !defined(__BSSDB_H__) #if !defined(__BSSDB_H__)
#include "bssdb.h" #include "bssdb.h"
#endif #endif
#if !defined(__VNTWIFI_H__)
#include "vntwifi.h"
#endif
/*--------------------- Export Definitions -------------------------*/ /*--------------------- Export Definitions -------------------------*/
#define MAX_PMKID_CACHE 16
typedef struct tagsPMKIDInfo { typedef struct tagsPMKIDInfo {
BYTE abyBSSID[6]; BYTE abyBSSID[6];

View file

@ -16,6 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* *
*
* File: wpactl.c * File: wpactl.c
* *
* Purpose: handle wpa supplicant ioctl input/out functions * Purpose: handle wpa supplicant ioctl input/out functions
@ -79,8 +80,6 @@ static int msglevel =MSG_LEVEL_INFO;
/*--------------------- Export Variables --------------------------*/ /*--------------------- Export Variables --------------------------*/
static void wpadev_setup(struct net_device *dev) static void wpadev_setup(struct net_device *dev)
{ {
dev->type = ARPHRD_IEEE80211; dev->type = ARPHRD_IEEE80211;
@ -94,8 +93,6 @@ static void wpadev_setup(struct net_device *dev)
dev->flags = IFF_BROADCAST|IFF_MULTICAST; dev->flags = IFF_BROADCAST|IFF_MULTICAST;
} }
/* /*
* Description: * Description:
* register netdev for wpa supplicant deamon * register netdev for wpa supplicant deamon
@ -122,7 +119,6 @@ static int wpa_init_wpadev(PSDevice pDevice)
wpadev_priv = netdev_priv(pDevice->wpadev); wpadev_priv = netdev_priv(pDevice->wpadev);
*wpadev_priv = *pDevice; *wpadev_priv = *pDevice;
memcpy(pDevice->wpadev->dev_addr, dev->dev_addr, U_ETHER_ADDR_LEN); memcpy(pDevice->wpadev->dev_addr, dev->dev_addr, U_ETHER_ADDR_LEN);
pDevice->wpadev->base_addr = dev->base_addr; pDevice->wpadev->base_addr = dev->base_addr;
pDevice->wpadev->irq = dev->irq; pDevice->wpadev->irq = dev->irq;
@ -164,7 +160,6 @@ static int wpa_init_wpadev(PSDevice pDevice)
static int wpa_release_wpadev(PSDevice pDevice) static int wpa_release_wpadev(PSDevice pDevice)
{ {
if (pDevice->skb) { if (pDevice->skb) {
dev_kfree_skb(pDevice->skb); dev_kfree_skb(pDevice->skb);
pDevice->skb = NULL; pDevice->skb = NULL;
@ -201,8 +196,6 @@ static int wpa_release_wpadev(PSDevice pDevice)
int wpa_set_wpadev(PSDevice pDevice, int val) int wpa_set_wpadev(PSDevice pDevice, int val)
{ {
if (val) if (val)
return wpa_init_wpadev(pDevice); return wpa_init_wpadev(pDevice);
else else
@ -224,9 +217,9 @@ int wpa_set_wpadev(PSDevice pDevice, int val)
* *
*/ */
int wpa_set_keys(PSDevice pDevice, void *ctx, BOOL fcpfkernel) int wpa_set_keys(PSDevice pDevice, void *ctx, BOOL fcpfkernel)
{ {
struct viawget_wpa_param *param=ctx; struct viawget_wpa_param *param=ctx;
PSMgmtObject pMgmt = pDevice->pMgmt; PSMgmtObject pMgmt = pDevice->pMgmt;
DWORD dwKeyIndex = 0; DWORD dwKeyIndex = 0;
BYTE abyKey[MAX_KEY_LEN]; BYTE abyKey[MAX_KEY_LEN];
@ -261,8 +254,8 @@ int wpa_set_keys(PSDevice pDevice, void *ctx, BOOL fcpfkernel)
else { else {
spin_unlock_irq(&pDevice->lock); spin_unlock_irq(&pDevice->lock);
if (param->u.wpa_key.key && if (param->u.wpa_key.key &&
copy_from_user(&abyKey[0], param->u.wpa_key.key, param->u.wpa_key.key_len)){ copy_from_user(&abyKey[0], param->u.wpa_key.key, param->u.wpa_key.key_len)) {
spin_lock_irq(&pDevice->lock); spin_lock_irq(&pDevice->lock);
return -EINVAL; return -EINVAL;
} }
spin_lock_irq(&pDevice->lock); spin_lock_irq(&pDevice->lock);
@ -302,9 +295,8 @@ spin_lock_irq(&pDevice->lock);
else { else {
spin_unlock_irq(&pDevice->lock); spin_unlock_irq(&pDevice->lock);
if (param->u.wpa_key.seq && if (param->u.wpa_key.seq &&
copy_from_user(&abySeq[0], param->u.wpa_key.seq, param->u.wpa_key.seq_len)){ copy_from_user(&abySeq[0], param->u.wpa_key.seq, param->u.wpa_key.seq_len)) {
spin_lock_irq(&pDevice->lock);
spin_lock_irq(&pDevice->lock);
return -EINVAL; return -EINVAL;
} }
spin_lock_irq(&pDevice->lock); spin_lock_irq(&pDevice->lock);
@ -337,6 +329,7 @@ spin_lock_irq(&pDevice->lock);
if (param->u.wpa_key.set_tx) if (param->u.wpa_key.set_tx)
dwKeyIndex |= (1 << 31); dwKeyIndex |= (1 << 31);
if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled) if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled)
byKeyDecMode = KEY_CTL_CCMP; byKeyDecMode = KEY_CTL_CCMP;
else if (pDevice->eEncryptionStatus == Ndis802_11Encryption2Enabled) else if (pDevice->eEncryptionStatus == Ndis802_11Encryption2Enabled)
@ -359,7 +352,6 @@ spin_lock_irq(&pDevice->lock);
byKeyDecMode = KEY_CTL_WEP; byKeyDecMode = KEY_CTL_WEP;
} }
// Check TKIP key length // Check TKIP key length
if ((byKeyDecMode == KEY_CTL_TKIP) && if ((byKeyDecMode == KEY_CTL_TKIP) &&
(param->u.wpa_key.key_len != MAX_KEY_LEN)) { (param->u.wpa_key.key_len != MAX_KEY_LEN)) {

View file

@ -33,6 +33,7 @@
#if !defined(__DEVICE_H__) #if !defined(__DEVICE_H__)
#include "device.h" #include "device.h"
#endif #endif
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
#if !defined(__IOWPA_H__) #if !defined(__IOWPA_H__)
#include "iowpa.h" #include "iowpa.h"