Commit 4c96e893 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Greg Kroah-Hartman

Staging: rt28x0: remove private WEXT handlers

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 725fef14
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4237,17 +4237,9 @@ INT RT_CfgSetWPAPSKKey(
//
// Prototypes of function definition in cmm_info.c
//
NDIS_STATUS RTMPWPARemoveKeyProc(
IN PRTMP_ADAPTER pAd,
IN PVOID pBuf);
VOID RTMPWPARemoveAllKeys(
IN PRTMP_ADAPTER pAd);
BOOLEAN RTMPCheckStrPrintAble(
IN CHAR *pInPutStr,
IN UCHAR strLen);
VOID RTMPSetPhyMode(
IN PRTMP_ADAPTER pAd,
IN ULONG phymode);
......@@ -4683,183 +4675,9 @@ int rtinet_aton(
unsigned int *addr);
////////// common ioctl functions //////////
INT Set_DriverVersion_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_CountryRegion_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_CountryRegionABand_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_WirelessMode_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_Channel_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_ShortSlot_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_TxPower_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_BGProtection_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_TxPreamble_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_RTSThreshold_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_FragThreshold_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_TxBurst_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
#ifdef AGGREGATION_SUPPORT
INT Set_PktAggregate_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
#endif // AGGREGATION_SUPPORT //
INT Set_IEEE80211H_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
#ifdef DBG
INT Set_Debug_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
#endif
INT Show_DescInfo_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_ResetStatCounter_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_BASetup_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_BADecline_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_BAOriTearDown_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_BARecTearDown_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtBw_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtMcs_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtGi_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtOpMode_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtStbc_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtHtc_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtExtcha_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtMpduDensity_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtBaWinSize_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtRdg_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtLinkAdapt_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtAmsdu_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtAutoBa_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtProtect_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtMimoPs_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_ForceShortGI_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_ForceGF_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT SetCommonHT(
IN PRTMP_ADAPTER pAd);
INT Set_SendPSMPAction_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtMIMOPSmode_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtTxBASize_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_HtDisallowTKIP_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT WpaCheckEapCode(
IN PRTMP_ADAPTER pAd,
IN PUCHAR pFrame,
......@@ -5103,15 +4921,6 @@ INT Set_FixedTxMode_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_LongRetryLimit_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_ShortRetryLimit_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
BOOLEAN RT28XXChipsetCheck(
IN void *_dev_p);
......@@ -5661,19 +5470,6 @@ void RtmpTimerQInit(
IN RTMP_ADAPTER *pAd);
#endif // RTMP_TIMER_TASK_SUPPORT //
///////////////////////////////////////
INT RTMPShowCfgValue(
IN PRTMP_ADAPTER pAd,
IN PSTRING pName,
IN PSTRING pBuf);
PSTRING RTMPGetRalinkAuthModeStr(
IN NDIS_802_11_AUTHENTICATION_MODE authMode);
PSTRING RTMPGetRalinkEncryModeStr(
IN USHORT encryMode);
//////////////////////////////////////
VOID AsicStaBbpTuning(
IN PRTMP_ADAPTER pAd);
......
......@@ -61,42 +61,6 @@ typedef struct PACKED _RT_VERSION_INFO{
UINT DriverBuildDay;
} RT_VERSION_INFO, *PRT_VERSION_INFO;
struct iw_priv_args privtab[] = {
{ RTPRIV_IOCTL_SET,
IW_PRIV_TYPE_CHAR | 1024, 0,
"set"},
{ RTPRIV_IOCTL_SHOW, IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
""},
/* --- sub-ioctls definitions --- */
{ SHOW_CONN_STATUS,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "connStatus" },
{ SHOW_DRVIER_VERION,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "driverVer" },
{ SHOW_BA_INFO,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "bainfo" },
{ SHOW_DESC_INFO,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "descinfo" },
{ RAIO_OFF,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_off" },
{ RAIO_ON,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_on" },
{ SHOW_CFG_VALUE,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "show" },
{ SHOW_ADHOC_ENTRY_INFO,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "adhocEntry" },
/* --- sub-ioctls relations --- */
{ RTPRIV_IOCTL_STATISTICS,
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
"stat"},
{ RTPRIV_IOCTL_GSITESURVEY,
0, IW_PRIV_TYPE_CHAR | 1024,
"get_site_survey"},
};
static __s32 ralinkrate[] =
{2, 4, 11, 22, // CCK
12, 18, 24, 36, 48, 72, 96, 108, // OFDM
......@@ -113,190 +77,10 @@ INT Set_SSID_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
#ifdef WMM_SUPPORT
INT Set_WmmCapable_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
#endif
INT Set_NetworkType_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_AuthMode_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_EncrypType_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_DefaultKeyID_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_Key1_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_Key2_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_Key3_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_Key4_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_WPAPSK_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_PSMode_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
#ifdef RT3090
INT Set_PCIePSLevel_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PUCHAR arg);
#endif // RT3090 //
INT Set_Wpa_Support(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
NDIS_STATUS RTMPWPANoneAddKeyProc(
IN PRTMP_ADAPTER pAd,
IN PVOID pBuf);
INT Set_FragTest_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_TGnWifiTest_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_LongRetryLimit_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Set_ShortRetryLimit_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
INT Show_Adhoc_MacTable_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING extra);
INT Set_BeaconLostTime_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_AutoRoaming_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_SiteSurvey_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_ForceTxBurst_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
static struct {
PSTRING name;
INT (*set_proc)(PRTMP_ADAPTER pAdapter, PSTRING arg);
} *PRTMP_PRIVATE_SET_PROC, RTMP_PRIVATE_SUPPORT_PROC[] = {
{"DriverVersion", Set_DriverVersion_Proc},
{"CountryRegion", Set_CountryRegion_Proc},
{"CountryRegionABand", Set_CountryRegionABand_Proc},
{"SSID", Set_SSID_Proc},
{"WirelessMode", Set_WirelessMode_Proc},
{"TxBurst", Set_TxBurst_Proc},
{"TxPreamble", Set_TxPreamble_Proc},
{"TxPower", Set_TxPower_Proc},
{"Channel", Set_Channel_Proc},
{"BGProtection", Set_BGProtection_Proc},
{"RTSThreshold", Set_RTSThreshold_Proc},
{"FragThreshold", Set_FragThreshold_Proc},
{"HtBw", Set_HtBw_Proc},
{"HtMcs", Set_HtMcs_Proc},
{"HtGi", Set_HtGi_Proc},
{"HtOpMode", Set_HtOpMode_Proc},
{"HtExtcha", Set_HtExtcha_Proc},
{"HtMpduDensity", Set_HtMpduDensity_Proc},
{"HtBaWinSize", Set_HtBaWinSize_Proc},
{"HtRdg", Set_HtRdg_Proc},
{"HtAmsdu", Set_HtAmsdu_Proc},
{"HtAutoBa", Set_HtAutoBa_Proc},
{"HtBaDecline", Set_BADecline_Proc},
{"HtProtect", Set_HtProtect_Proc},
{"HtMimoPs", Set_HtMimoPs_Proc},
{"HtDisallowTKIP", Set_HtDisallowTKIP_Proc},
#ifdef AGGREGATION_SUPPORT
{"PktAggregate", Set_PktAggregate_Proc},
#endif // AGGREGATION_SUPPORT //
#ifdef WMM_SUPPORT
{"WmmCapable", Set_WmmCapable_Proc},
#endif
{"IEEE80211H", Set_IEEE80211H_Proc},
{"NetworkType", Set_NetworkType_Proc},
{"AuthMode", Set_AuthMode_Proc},
{"EncrypType", Set_EncrypType_Proc},
{"DefaultKeyID", Set_DefaultKeyID_Proc},
{"Key1", Set_Key1_Proc},
{"Key2", Set_Key2_Proc},
{"Key3", Set_Key3_Proc},
{"Key4", Set_Key4_Proc},
{"WPAPSK", Set_WPAPSK_Proc},
{"ResetCounter", Set_ResetStatCounter_Proc},
{"PSMode", Set_PSMode_Proc},
#ifdef DBG
{"Debug", Set_Debug_Proc},
#endif // DBG //
{"WpaSupport", Set_Wpa_Support},
{"FixedTxMode", Set_FixedTxMode_Proc},
{"TGnWifiTest", Set_TGnWifiTest_Proc},
{"ForceGF", Set_ForceGF_Proc},
{"LongRetry", Set_LongRetryLimit_Proc},
{"ShortRetry", Set_ShortRetryLimit_Proc},
//2008/09/11:KH add to support efuse<--
#ifdef RT30xx
#ifdef RTMP_EFUSE_SUPPORT
{"efuseFreeNumber", set_eFuseGetFreeBlockCount_Proc},
{"efuseDump", set_eFusedump_Proc},
{"efuseLoadFromBin", set_eFuseLoadFromBin_Proc},
{"efuseBufferModeWriteBack", set_eFuseBufferModeWriteBack_Proc},
#endif // RTMP_EFUSE_SUPPORT //
#endif // RT30xx //
//2008/09/11:KH add to support efuse-->
{"BeaconLostTime", Set_BeaconLostTime_Proc},
{"AutoRoaming", Set_AutoRoaming_Proc},
{"SiteSurvey", Set_SiteSurvey_Proc},
{"ForceTxBurst", Set_ForceTxBurst_Proc},
{NULL,}
};
VOID RTMPAddKey(
IN PRTMP_ADAPTER pAd,
IN PNDIS_802_11_KEY pKey)
......@@ -1656,117 +1440,6 @@ rt_ioctl_giwencode(struct net_device *dev,
}
static int
rt_ioctl_setparam(struct net_device *dev, struct iw_request_info *info,
void *w, char *extra)
{
PRTMP_ADAPTER pAdapter;
POS_COOKIE pObj;
PSTRING this_char = extra;
PSTRING value;
int Status=0;
GET_PAD_FROM_NET_DEV(pAdapter, dev);
pObj = (POS_COOKIE) pAdapter->OS_Cookie;
{
pObj->ioctl_if_type = INT_MAIN;
pObj->ioctl_if = MAIN_MBSSID;
}
//check if the interface is down
if(!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE))
{
DBGPRINT(RT_DEBUG_TRACE, ("INFO::Network is down!\n"));
return -ENETDOWN;
}
if (!*this_char)
return -EINVAL;
if ((value = rtstrchr(this_char, '=')) != NULL)
*value++ = 0;
if (!value && (strcmp(this_char, "SiteSurvey") != 0))
return -EINVAL;
else
goto SET_PROC;
// reject setting nothing besides ANY ssid(ssidLen=0)
if (!*value && (strcmp(this_char, "SSID") != 0))
return -EINVAL;
SET_PROC:
for (PRTMP_PRIVATE_SET_PROC = RTMP_PRIVATE_SUPPORT_PROC; PRTMP_PRIVATE_SET_PROC->name; PRTMP_PRIVATE_SET_PROC++)
{
if (strcmp(this_char, PRTMP_PRIVATE_SET_PROC->name) == 0)
{
if(!PRTMP_PRIVATE_SET_PROC->set_proc(pAdapter, value))
{ //FALSE:Set private failed then return Invalid argument
Status = -EINVAL;
}
break; //Exit for loop.
}
}
if(PRTMP_PRIVATE_SET_PROC->name == NULL)
{ //Not found argument
Status = -EINVAL;
DBGPRINT(RT_DEBUG_TRACE, ("===>rt_ioctl_setparam:: (iwpriv) Not Support Set Command [%s=%s]\n", this_char, value));
}
return Status;
}
static int
rt_private_get_statistics(struct net_device *dev, struct iw_request_info *info,
struct iw_point *wrq, char *extra)
{
INT Status = 0;
PRTMP_ADAPTER pAd = NULL;
GET_PAD_FROM_NET_DEV(pAd, dev);
if (extra == NULL)
{
wrq->length = 0;
return -EIO;
}
memset(extra, 0x00, IW_PRIV_SIZE_MASK);
sprintf(extra, "\n\n");
{
sprintf(extra+strlen(extra), "Tx success = %ld\n", (ULONG)pAd->WlanCounters.TransmittedFragmentCount.QuadPart);
sprintf(extra+strlen(extra), "Tx success without retry = %ld\n", (ULONG)pAd->WlanCounters.TransmittedFragmentCount.QuadPart - (ULONG)pAd->WlanCounters.RetryCount.QuadPart);
}
sprintf(extra+strlen(extra), "Tx success after retry = %ld\n", (ULONG)pAd->WlanCounters.RetryCount.QuadPart);
sprintf(extra+strlen(extra), "Tx fail to Rcv ACK after retry = %ld\n", (ULONG)pAd->WlanCounters.FailedCount.QuadPart);
sprintf(extra+strlen(extra), "RTS Success Rcv CTS = %ld\n", (ULONG)pAd->WlanCounters.RTSSuccessCount.QuadPart);
sprintf(extra+strlen(extra), "RTS Fail Rcv CTS = %ld\n", (ULONG)pAd->WlanCounters.RTSFailureCount.QuadPart);
sprintf(extra+strlen(extra), "Rx success = %ld\n", (ULONG)pAd->WlanCounters.ReceivedFragmentCount.QuadPart);
sprintf(extra+strlen(extra), "Rx with CRC = %ld\n", (ULONG)pAd->WlanCounters.FCSErrorCount.QuadPart);
sprintf(extra+strlen(extra), "Rx drop due to out of resource = %ld\n", (ULONG)pAd->Counters8023.RxNoBuffer);
sprintf(extra+strlen(extra), "Rx duplicate frame = %ld\n", (ULONG)pAd->WlanCounters.FrameDuplicateCount.QuadPart);
sprintf(extra+strlen(extra), "False CCA (one second) = %ld\n", (ULONG)pAd->RalinkCounters.OneSecFalseCCACnt);
{
sprintf(extra+strlen(extra), "RSSI-A = %ld\n", (LONG)(pAd->StaCfg.RssiSample.LastRssi0 - pAd->BbpRssiToDbmDelta));
sprintf(extra+strlen(extra), "RSSI-B (if available) = %ld\n", (LONG)(pAd->StaCfg.RssiSample.LastRssi1 - pAd->BbpRssiToDbmDelta));
sprintf(extra+strlen(extra), "RSSI-C (if available) = %ld\n\n", (LONG)(pAd->StaCfg.RssiSample.LastRssi2 - pAd->BbpRssiToDbmDelta));
}
sprintf(extra+strlen(extra), "WpaSupplicantUP = %d\n\n", pAd->StaCfg.WpaSupplicantUP);
wrq->length = strlen(extra) + 1; // 1: size of '\0'
DBGPRINT(RT_DEBUG_TRACE, ("<== rt_private_get_statistics, wrq->length = %d\n", wrq->length));
return Status;
}
void getBaInfo(
IN PRTMP_ADAPTER pAd,
IN PSTRING pOutBuf)
......@@ -1814,143 +1487,6 @@ void getBaInfo(
return;
}
static int
rt_private_show(struct net_device *dev, struct iw_request_info *info,
struct iw_point *wrq, PSTRING extra)
{
INT Status = 0;
PRTMP_ADAPTER pAd;
POS_COOKIE pObj;
u32 subcmd = wrq->flags;
GET_PAD_FROM_NET_DEV(pAd, dev);
pObj = (POS_COOKIE) pAd->OS_Cookie;
if (extra == NULL)
{
wrq->length = 0;
return -EIO;
}
memset(extra, 0x00, IW_PRIV_SIZE_MASK);
{
pObj->ioctl_if_type = INT_MAIN;
pObj->ioctl_if = MAIN_MBSSID;
}
switch(subcmd)
{
case SHOW_CONN_STATUS:
if (MONITOR_ON(pAd))
{
if (pAd->CommonCfg.PhyMode >= PHY_11ABGN_MIXED &&
pAd->CommonCfg.RegTransmitSetting.field.BW)
sprintf(extra, "Monitor Mode(CentralChannel %d)\n", pAd->CommonCfg.CentralChannel);
else
sprintf(extra, "Monitor Mode(Channel %d)\n", pAd->CommonCfg.Channel);
}
else
{
if (pAd->IndicateMediaState == NdisMediaStateConnected)
{
if (INFRA_ON(pAd))
{
sprintf(extra, "Connected(AP: %s[%02X:%02X:%02X:%02X:%02X:%02X])\n",
pAd->CommonCfg.Ssid,
pAd->CommonCfg.Bssid[0],
pAd->CommonCfg.Bssid[1],
pAd->CommonCfg.Bssid[2],
pAd->CommonCfg.Bssid[3],
pAd->CommonCfg.Bssid[4],
pAd->CommonCfg.Bssid[5]);
DBGPRINT(RT_DEBUG_TRACE ,("Ssid=%s ,Ssidlen = %d\n",pAd->CommonCfg.Ssid, pAd->CommonCfg.SsidLen));
}
else if (ADHOC_ON(pAd))
sprintf(extra, "Connected\n");
}
else
{
sprintf(extra, "Disconnected\n");
DBGPRINT(RT_DEBUG_TRACE ,("ConnStatus is not connected\n"));
}
}
wrq->length = strlen(extra) + 1; // 1: size of '\0'
break;
case SHOW_DRVIER_VERION:
sprintf(extra, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
wrq->length = strlen(extra) + 1; // 1: size of '\0'
break;
case SHOW_BA_INFO:
getBaInfo(pAd, extra);
wrq->length = strlen(extra) + 1; // 1: size of '\0'
break;
case SHOW_DESC_INFO:
{
Show_DescInfo_Proc(pAd, NULL);
wrq->length = 0; // 1: size of '\0'
}
break;
case RAIO_OFF:
if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS))
{
if (pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE)
{
RTMP_MLME_RESET_STATE_MACHINE(pAd);
DBGPRINT(RT_DEBUG_TRACE, ("!!! MLME busy, reset MLME state machine !!!\n"));
}
}
pAd->StaCfg.bSwRadio = FALSE;
if (pAd->StaCfg.bRadio != (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio))
{
pAd->StaCfg.bRadio = (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio);
if (pAd->StaCfg.bRadio == FALSE)
{
MlmeRadioOff(pAd);
// Update extra information
pAd->ExtraInfo = SW_RADIO_OFF;
}
}
sprintf(extra, "Radio Off\n");
wrq->length = strlen(extra) + 1; // 1: size of '\0'
break;
case RAIO_ON:
pAd->StaCfg.bSwRadio = TRUE;
//if (pAd->StaCfg.bRadio != (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio))
{
pAd->StaCfg.bRadio = (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio);
if (pAd->StaCfg.bRadio == TRUE)
{
MlmeRadioOn(pAd);
// Update extra information
pAd->ExtraInfo = EXTRA_INFO_CLEAR;
}
}
sprintf(extra, "Radio On\n");
wrq->length = strlen(extra) + 1; // 1: size of '\0'
break;
case SHOW_CFG_VALUE:
{
Status = RTMPShowCfgValue(pAd, (PSTRING) wrq->pointer, extra);
if (Status == 0)
wrq->length = strlen(extra) + 1; // 1: size of '\0'
}
break;
case SHOW_ADHOC_ENTRY_INFO:
Show_Adhoc_MacTable_Proc(pAd, extra);
wrq->length = strlen(extra) + 1; // 1: size of '\0'
break;
default:
DBGPRINT(RT_DEBUG_TRACE, ("%s - unknow subcmd = %d\n", __func__, subcmd));
break;
}
return Status;
}
int rt_ioctl_siwmlme(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu,
......@@ -2774,43 +2310,10 @@ static const iw_handler rt_handler[] =
(iw_handler) rt_ioctl_siwpmksa, /* SIOCSIWPMKSA */
};
static const iw_handler rt_priv_handlers[] = {
(iw_handler) NULL, /* + 0x00 */
(iw_handler) NULL, /* + 0x01 */
(iw_handler) rt_ioctl_setparam, /* + 0x02 */
(iw_handler) NULL, /* + 0x03 */
(iw_handler) NULL, /* + 0x04 */
(iw_handler) NULL, /* + 0x05 */
(iw_handler) NULL, /* + 0x06 */
(iw_handler) NULL, /* + 0x07 */
(iw_handler) NULL, /* + 0x08 */
(iw_handler) rt_private_get_statistics, /* + 0x09 */
(iw_handler) NULL, /* + 0x0A */
(iw_handler) NULL, /* + 0x0B */
(iw_handler) NULL, /* + 0x0C */
(iw_handler) NULL, /* + 0x0D */
(iw_handler) NULL, /* + 0x0E */
(iw_handler) NULL, /* + 0x0F */
(iw_handler) NULL, /* + 0x10 */
(iw_handler) rt_private_show, /* + 0x11 */
(iw_handler) NULL, /* + 0x12 */
(iw_handler) NULL, /* + 0x13 */
(iw_handler) NULL, /* + 0x14 */
(iw_handler) NULL, /* + 0x15 */
(iw_handler) NULL, /* + 0x16 */
(iw_handler) NULL, /* + 0x17 */
(iw_handler) NULL, /* + 0x18 */
};
const struct iw_handler_def rt28xx_iw_handler_def =
{
#define N(a) (sizeof (a) / sizeof (a[0]))
.standard = (iw_handler *) rt_handler,
.num_standard = sizeof(rt_handler) / sizeof(iw_handler),
.private = (iw_handler *) rt_priv_handlers,
.num_private = N(rt_priv_handlers),
.private_args = (struct iw_priv_args *) privtab,
.num_private_args = N(privtab),
#if IW_HANDLER_VERSION >= 7
.get_wireless_stats = rt28xx_get_wireless_stats,
#endif
......@@ -2980,17 +2483,8 @@ INT rt28xx_sta_ioctl(
case RT_PRIV_IOCTL_EXT:
case RTPRIV_IOCTL_SET:
case RTPRIV_IOCTL_GSITESURVEY:
Status = -EOPNOTSUPP;
break;
case SIOCGIWPRIV:
if (wrq->u.data.pointer)
{
if ( access_ok(VERIFY_WRITE, wrq->u.data.pointer, sizeof(privtab)) != TRUE)
break;
wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
if (copy_to_user(wrq->u.data.pointer, privtab, sizeof(privtab)))
Status = -EFAULT;
}
Status = -EOPNOTSUPP;
break;
case SIOCETHTOOL:
break;
......@@ -3087,41 +2581,6 @@ INT Set_SSID_Proc(
return success;
}
#ifdef WMM_SUPPORT
/*
==========================================================================
Description:
Set WmmCapable Enable or Disable
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_WmmCapable_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
BOOLEAN bWmmCapable;
bWmmCapable = simple_strtol(arg, 0, 10);
if ((bWmmCapable == 1)
#ifdef RTMP_MAC_USB
&& (pAd->NumberOfPipes >= 5)
#endif // RTMP_MAC_USB //
)
pAd->CommonCfg.bWmmCapable = TRUE;
else if (bWmmCapable == 0)
pAd->CommonCfg.bWmmCapable = FALSE;
else
return FALSE; //Invalid argument
DBGPRINT(RT_DEBUG_TRACE, ("Set_WmmCapable_Proc::(bWmmCapable=%d)\n",
pAd->CommonCfg.bWmmCapable));
return TRUE;
}
#endif // WMM_SUPPORT //
/*
==========================================================================
Description:
......@@ -3306,765 +2765,3 @@ INT Set_NetworkType_Proc(
return TRUE;
}
/*
==========================================================================
Description:
Set Authentication mode
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_AuthMode_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
if ((strcmp(arg, "WEPAUTO") == 0) || (strcmp(arg, "wepauto") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeAutoSwitch;
else if ((strcmp(arg, "OPEN") == 0) || (strcmp(arg, "open") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeOpen;
else if ((strcmp(arg, "SHARED") == 0) || (strcmp(arg, "shared") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeShared;
else if ((strcmp(arg, "WPAPSK") == 0) || (strcmp(arg, "wpapsk") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPAPSK;
else if ((strcmp(arg, "WPANONE") == 0) || (strcmp(arg, "wpanone") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPANone;
else if ((strcmp(arg, "WPA2PSK") == 0) || (strcmp(arg, "wpa2psk") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPA2PSK;
else if ((strcmp(arg, "WPA") == 0) || (strcmp(arg, "wpa") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPA;
else if ((strcmp(arg, "WPA2") == 0) || (strcmp(arg, "wpa2") == 0))
pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPA2;
else
return FALSE;
pAdapter->StaCfg.PortSecured = WPA_802_1X_PORT_NOT_SECURED;
DBGPRINT(RT_DEBUG_TRACE, ("Set_AuthMode_Proc::(AuthMode=%d)\n", pAdapter->StaCfg.AuthMode));
return TRUE;
}
/*
==========================================================================
Description:
Set Encryption Type
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_EncrypType_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
if ((strcmp(arg, "NONE") == 0) || (strcmp(arg, "none") == 0))
{
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
return TRUE; // do nothing
pAdapter->StaCfg.WepStatus = Ndis802_11WEPDisabled;
pAdapter->StaCfg.PairCipher = Ndis802_11WEPDisabled;
pAdapter->StaCfg.GroupCipher = Ndis802_11WEPDisabled;
}
else if ((strcmp(arg, "WEP") == 0) || (strcmp(arg, "wep") == 0))
{
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
return TRUE; // do nothing
pAdapter->StaCfg.WepStatus = Ndis802_11WEPEnabled;
pAdapter->StaCfg.PairCipher = Ndis802_11WEPEnabled;
pAdapter->StaCfg.GroupCipher = Ndis802_11WEPEnabled;
}
else if ((strcmp(arg, "TKIP") == 0) || (strcmp(arg, "tkip") == 0))
{
if (pAdapter->StaCfg.AuthMode < Ndis802_11AuthModeWPA)
return TRUE; // do nothing
pAdapter->StaCfg.WepStatus = Ndis802_11Encryption2Enabled;
pAdapter->StaCfg.PairCipher = Ndis802_11Encryption2Enabled;
pAdapter->StaCfg.GroupCipher = Ndis802_11Encryption2Enabled;
}
else if ((strcmp(arg, "AES") == 0) || (strcmp(arg, "aes") == 0))
{
if (pAdapter->StaCfg.AuthMode < Ndis802_11AuthModeWPA)
return TRUE; // do nothing
pAdapter->StaCfg.WepStatus = Ndis802_11Encryption3Enabled;
pAdapter->StaCfg.PairCipher = Ndis802_11Encryption3Enabled;
pAdapter->StaCfg.GroupCipher = Ndis802_11Encryption3Enabled;
}
else
return FALSE;
pAdapter->StaCfg.OrigWepStatus = pAdapter->StaCfg.WepStatus;
DBGPRINT(RT_DEBUG_TRACE, ("Set_EncrypType_Proc::(EncrypType=%d)\n", pAdapter->StaCfg.WepStatus));
return TRUE;
}
/*
==========================================================================
Description:
Set Default Key ID
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_DefaultKeyID_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
ULONG KeyIdx;
KeyIdx = simple_strtol(arg, 0, 10);
if((KeyIdx >= 1 ) && (KeyIdx <= 4))
pAdapter->StaCfg.DefaultKeyId = (UCHAR) (KeyIdx - 1 );
else
return FALSE; //Invalid argument
DBGPRINT(RT_DEBUG_TRACE, ("Set_DefaultKeyID_Proc::(DefaultKeyID=%d)\n", pAdapter->StaCfg.DefaultKeyId));
return TRUE;
}
/*
==========================================================================
Description:
Set WEP KEY1
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Key1_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
int KeyLen;
int i;
UCHAR CipherAlg=CIPHER_WEP64;
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
return TRUE; // do nothing
KeyLen = strlen(arg);
switch (KeyLen)
{
case 5: //wep 40 Ascii type
pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][0].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii"));
break;
case 10: //wep 40 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][0].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex"));
break;
case 13: //wep 104 Ascii type
pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][0].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii"));
break;
case 26: //wep 104 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][0].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex"));
break;
default: //Invalid argument
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::Invalid argument (=%s)\n", arg));
return FALSE;
}
pAdapter->SharedKey[BSS0][0].CipherAlg = CipherAlg;
// Set keys (into ASIC)
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
; // not support
else // Old WEP stuff
{
AsicAddSharedKeyEntry(pAdapter,
0,
0,
pAdapter->SharedKey[BSS0][0].CipherAlg,
pAdapter->SharedKey[BSS0][0].Key,
NULL,
NULL);
}
return TRUE;
}
/*
==========================================================================
Description:
Set WEP KEY2
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Key2_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
int KeyLen;
int i;
UCHAR CipherAlg=CIPHER_WEP64;
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
return TRUE; // do nothing
KeyLen = strlen(arg);
switch (KeyLen)
{
case 5: //wep 40 Ascii type
pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][1].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Ascii"));
break;
case 10: //wep 40 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][1].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Hex"));
break;
case 13: //wep 104 Ascii type
pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][1].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Ascii"));
break;
case 26: //wep 104 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][1].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Hex"));
break;
default: //Invalid argument
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::Invalid argument (=%s)\n", arg));
return FALSE;
}
pAdapter->SharedKey[BSS0][1].CipherAlg = CipherAlg;
// Set keys (into ASIC)
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
; // not support
else // Old WEP stuff
{
AsicAddSharedKeyEntry(pAdapter,
0,
1,
pAdapter->SharedKey[BSS0][1].CipherAlg,
pAdapter->SharedKey[BSS0][1].Key,
NULL,
NULL);
}
return TRUE;
}
/*
==========================================================================
Description:
Set WEP KEY3
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Key3_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
int KeyLen;
int i;
UCHAR CipherAlg=CIPHER_WEP64;
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
return TRUE; // do nothing
KeyLen = strlen(arg);
switch (KeyLen)
{
case 5: //wep 40 Ascii type
pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][2].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Ascii)\n", arg));
break;
case 10: //wep 40 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][2].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Hex)\n", arg));
break;
case 13: //wep 104 Ascii type
pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][2].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Ascii)\n", arg));
break;
case 26: //wep 104 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][2].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Hex)\n", arg));
break;
default: //Invalid argument
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::Invalid argument (=%s)\n", arg));
return FALSE;
}
pAdapter->SharedKey[BSS0][2].CipherAlg = CipherAlg;
// Set keys (into ASIC)
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
; // not support
else // Old WEP stuff
{
AsicAddSharedKeyEntry(pAdapter,
0,
2,
pAdapter->SharedKey[BSS0][2].CipherAlg,
pAdapter->SharedKey[BSS0][2].Key,
NULL,
NULL);
}
return TRUE;
}
/*
==========================================================================
Description:
Set WEP KEY4
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Key4_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
int KeyLen;
int i;
UCHAR CipherAlg=CIPHER_WEP64;
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
return TRUE; // do nothing
KeyLen = strlen(arg);
switch (KeyLen)
{
case 5: //wep 40 Ascii type
pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][3].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Ascii"));
break;
case 10: //wep 40 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][3].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP64;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Hex"));
break;
case 13: //wep 104 Ascii type
pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen;
memcpy(pAdapter->SharedKey[BSS0][3].Key, arg, KeyLen);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Ascii"));
break;
case 26: //wep 104 Hex type
for(i=0; i < KeyLen; i++)
{
if( !isxdigit(*(arg+i)) )
return FALSE; //Not Hex value;
}
pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen / 2 ;
AtoH(arg, pAdapter->SharedKey[BSS0][3].Key, KeyLen / 2);
CipherAlg = CIPHER_WEP128;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Hex"));
break;
default: //Invalid argument
DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::Invalid argument (=%s)\n", arg));
return FALSE;
}
pAdapter->SharedKey[BSS0][3].CipherAlg = CipherAlg;
// Set keys (into ASIC)
if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
; // not support
else // Old WEP stuff
{
AsicAddSharedKeyEntry(pAdapter,
0,
3,
pAdapter->SharedKey[BSS0][3].CipherAlg,
pAdapter->SharedKey[BSS0][3].Key,
NULL,
NULL);
}
return TRUE;
}
/*
==========================================================================
Description:
Set WPA PSK key
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_WPAPSK_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
int status;
if ((pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPAPSK) &&
(pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPA2PSK) &&
(pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPANone)
)
return TRUE; // do nothing
DBGPRINT(RT_DEBUG_TRACE, ("Set_WPAPSK_Proc::(WPAPSK=%s)\n", arg));
status = RT_CfgSetWPAPSKKey(pAd, arg, pAd->MlmeAux.Ssid, pAd->MlmeAux.SsidLen, pAd->StaCfg.PMK);
if (status == FALSE)
{
DBGPRINT(RT_DEBUG_TRACE, ("Set_WPAPSK_Proc(): Set key failed!\n"));
return FALSE;
}
NdisZeroMemory(pAd->StaCfg.WpaPassPhrase, 64);
NdisMoveMemory(pAd->StaCfg.WpaPassPhrase, arg, strlen(arg));
pAd->StaCfg.WpaPassPhraseLen = (UINT)strlen(arg);
if(pAd->StaCfg.BssType == BSS_ADHOC &&
pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPANone)
{
pAd->StaCfg.WpaState = SS_NOTUSE;
}
else
{
// Start STA supplicant state machine
pAd->StaCfg.WpaState = SS_START;
}
return TRUE;
}
/*
==========================================================================
Description:
Set Power Saving mode
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_PSMode_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg)
{
if (pAdapter->StaCfg.BssType == BSS_INFRA)
{
if ((strcmp(arg, "Max_PSP") == 0) ||
(strcmp(arg, "max_psp") == 0) ||
(strcmp(arg, "MAX_PSP") == 0))
{
// do NOT turn on PSM bit here, wait until MlmeCheckPsmChange()
// to exclude certain situations.
if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeMAX_PSP;
pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeMAX_PSP;
OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
pAdapter->StaCfg.DefaultListenCount = 5;
}
else if ((strcmp(arg, "Fast_PSP") == 0) ||
(strcmp(arg, "fast_psp") == 0) ||
(strcmp(arg, "FAST_PSP") == 0))
{
// do NOT turn on PSM bit here, wait until MlmeCheckPsmChange()
// to exclude certain situations.
OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeFast_PSP;
pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeFast_PSP;
pAdapter->StaCfg.DefaultListenCount = 3;
}
else if ((strcmp(arg, "Legacy_PSP") == 0) ||
(strcmp(arg, "legacy_psp") == 0) ||
(strcmp(arg, "LEGACY_PSP") == 0))
{
// do NOT turn on PSM bit here, wait until MlmeCheckPsmChange()
// to exclude certain situations.
OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeLegacy_PSP;
pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeLegacy_PSP;
pAdapter->StaCfg.DefaultListenCount = 3;
}
else
{
//Default Ndis802_11PowerModeCAM
// clear PSM bit immediately
RTMP_SET_PSM_BIT(pAdapter, PWR_ACTIVE);
OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeCAM;
pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeCAM;
}
DBGPRINT(RT_DEBUG_TRACE, ("Set_PSMode_Proc::(PSMode=%ld)\n", pAdapter->StaCfg.WindowsPowerMode));
}
else
return FALSE;
return TRUE;
}
/*
==========================================================================
Description:
Set WpaSupport flag.
Value:
0: Driver ignore wpa_supplicant.
1: wpa_supplicant initiates scanning and AP selection.
2: driver takes care of scanning, AP selection, and IEEE 802.11 association parameters.
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Wpa_Support(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
if ( simple_strtol(arg, 0, 10) == 0)
pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_DISABLE;
else if ( simple_strtol(arg, 0, 10) == 1)
pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_ENABLE;
else if ( simple_strtol(arg, 0, 10) == 2)
pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_ENABLE_WITH_WEB_UI;
else
pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_DISABLE;
DBGPRINT(RT_DEBUG_TRACE, ("Set_Wpa_Support::(WpaSupplicantUP=%d)\n", pAd->StaCfg.WpaSupplicantUP));
return TRUE;
}
INT Set_TGnWifiTest_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
if (simple_strtol(arg, 0, 10) == 0)
pAd->StaCfg.bTGnWifiTest = FALSE;
else
pAd->StaCfg.bTGnWifiTest = TRUE;
DBGPRINT(RT_DEBUG_TRACE, ("IF Set_TGnWifiTest_Proc::(bTGnWifiTest=%d)\n", pAd->StaCfg.bTGnWifiTest));
return TRUE;
}
INT Show_Adhoc_MacTable_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING extra)
{
INT i;
sprintf(extra, "\n");
sprintf(extra + strlen(extra), "HT Operating Mode : %d\n", pAd->CommonCfg.AddHTInfo.AddHtInfo2.OperaionMode);
sprintf(extra + strlen(extra), "\n%-19s%-4s%-4s%-7s%-7s%-7s%-10s%-6s%-6s%-6s%-6s\n",
"MAC", "AID", "BSS", "RSSI0", "RSSI1", "RSSI2", "PhMd", "BW", "MCS", "SGI", "STBC");
for (i=1; i<MAX_LEN_OF_MAC_TABLE; i++)
{
PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i];
if (strlen(extra) > (IW_PRIV_SIZE_MASK - 30))
break;
if ((pEntry->ValidAsCLI || pEntry->ValidAsApCli) && (pEntry->Sst == SST_ASSOC))
{
sprintf(extra + strlen(extra), "%02X:%02X:%02X:%02X:%02X:%02X ",
pEntry->Addr[0], pEntry->Addr[1], pEntry->Addr[2],
pEntry->Addr[3], pEntry->Addr[4], pEntry->Addr[5]);
sprintf(extra + strlen(extra), "%-4d", (int)pEntry->Aid);
sprintf(extra + strlen(extra), "%-4d", (int)pEntry->apidx);
sprintf(extra + strlen(extra), "%-7d", pEntry->RssiSample.AvgRssi0);
sprintf(extra + strlen(extra), "%-7d", pEntry->RssiSample.AvgRssi1);
sprintf(extra + strlen(extra), "%-7d", pEntry->RssiSample.AvgRssi2);
sprintf(extra + strlen(extra), "%-10s", GetPhyMode(pEntry->HTPhyMode.field.MODE));
sprintf(extra + strlen(extra), "%-6s", GetBW(pEntry->HTPhyMode.field.BW));
sprintf(extra + strlen(extra), "%-6d", pEntry->HTPhyMode.field.MCS);
sprintf(extra + strlen(extra), "%-6d", pEntry->HTPhyMode.field.ShortGI);
sprintf(extra + strlen(extra), "%-6d", pEntry->HTPhyMode.field.STBC);
sprintf(extra + strlen(extra), "%-10d, %d, %d%%\n", pEntry->DebugFIFOCount, pEntry->DebugTxCount,
(pEntry->DebugTxCount) ? ((pEntry->DebugTxCount-pEntry->DebugFIFOCount)*100/pEntry->DebugTxCount) : 0);
sprintf(extra, "%s\n", extra);
}
}
return TRUE;
}
INT Set_BeaconLostTime_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
ULONG ltmp = (ULONG)simple_strtol(arg, 0, 10);
if ((ltmp != 0) && (ltmp <= 60))
pAd->StaCfg.BeaconLostTime = (ltmp * OS_HZ);
DBGPRINT(RT_DEBUG_TRACE, ("IF Set_BeaconLostTime_Proc::(BeaconLostTime=%ld)\n", pAd->StaCfg.BeaconLostTime));
return TRUE;
}
INT Set_AutoRoaming_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
if (simple_strtol(arg, 0, 10) == 0)
pAd->StaCfg.bAutoRoaming = FALSE;
else
pAd->StaCfg.bAutoRoaming = TRUE;
DBGPRINT(RT_DEBUG_TRACE, ("IF Set_AutoRoaming_Proc::(bAutoRoaming=%d)\n", pAd->StaCfg.bAutoRoaming));
return TRUE;
}
/*
==========================================================================
Description:
Issue a site survey command to driver
Arguments:
pAdapter Pointer to our adapter
wrq Pointer to the ioctl argument
Return Value:
None
Note:
Usage:
1.) iwpriv ra0 set site_survey
==========================================================================
*/
INT Set_SiteSurvey_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
NDIS_802_11_SSID Ssid;
//check if the interface is down
if (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_INTERRUPT_IN_USE))
{
DBGPRINT(RT_DEBUG_TRACE, ("INFO::Network is down!\n"));
return -ENETDOWN;
}
if (MONITOR_ON(pAd))
{
DBGPRINT(RT_DEBUG_TRACE, ("!!! Driver is in Monitor Mode now !!!\n"));
return -EINVAL;
}
RTMPZeroMemory(&Ssid, sizeof(NDIS_802_11_SSID));
Ssid.SsidLength = 0;
if ((arg != NULL) &&
(strlen(arg) <= MAX_LEN_OF_SSID))
{
RTMPMoveMemory(Ssid.Ssid, arg, strlen(arg));
Ssid.SsidLength = strlen(arg);
}
pAd->StaCfg.bScanReqIsFromWebUI = TRUE;
if (pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE)
{
RTMP_MLME_RESET_STATE_MACHINE(pAd);
DBGPRINT(RT_DEBUG_TRACE, ("!!! MLME busy, reset MLME state machine !!!\n"));
}
// tell CNTL state machine to call NdisMSetInformationComplete() after completing
// this request, because this request is initiated by NDIS.
pAd->MlmeAux.CurrReqIsFromNdis = FALSE;
// Reset allowed scan retries
pAd->StaCfg.ScanCnt = 0;
NdisGetSystemUpTime(&pAd->StaCfg.LastScanTime);
MlmeEnqueue(pAd,
MLME_CNTL_STATE_MACHINE,
OID_802_11_BSSID_LIST_SCAN,
Ssid.SsidLength,
Ssid.Ssid);
RTMP_MLME_HANDLER(pAd);
DBGPRINT(RT_DEBUG_TRACE, ("Set_SiteSurvey_Proc\n"));
return TRUE;
}
INT Set_ForceTxBurst_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
{
if (simple_strtol(arg, 0, 10) == 0)
pAd->StaCfg.bForceTxBurst = FALSE;
else
pAd->StaCfg.bForceTxBurst = TRUE;
DBGPRINT(RT_DEBUG_TRACE, ("IF Set_ForceTxBurst_Proc::(bForceTxBurst=%d)\n", pAd->StaCfg.bForceTxBurst));
return TRUE;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment