📄 rtmp_info.c
字号:
else
{
// each mode has different restart method
if (pAdapter->PortCfg.RadarDetect.RDMode == RD_SILENCE_MODE)
{
ApStop(pAdapter, FALSE);
ApStartUp(pAdapter, FALSE);
}
else if (pAdapter->PortCfg.RadarDetect.RDMode == RD_SWITCHING_MODE)
{
}
else if (pAdapter->PortCfg.RadarDetect.RDMode == RD_NORMAL_MODE)
{
ApStop(pAdapter, FALSE);
ApStartUp(pAdapter, FALSE);
AsicEnableBssSync(pAdapter);
}
}
DBGPRINT(RT_DEBUG_TRACE, "I/F(ra%d) Set_SSID_Proc::(Len=%d,Ssid=%s)\n", pAdapter->IoctlIF,
pAdapter->PortCfg.MBSSID[pAdapter->IoctlIF].SsidLen, pAdapter->PortCfg.MBSSID[pAdapter->IoctlIF].Ssid);
}
else
success = FALSE;
return success;
}
/*
==========================================================================
Description:
Set Wireless Mode
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_WirelessMode_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
ULONG WirelessMode;
INT i, success = TRUE;
WirelessMode = simple_strtol(arg, 0, 10);
if(WirelessMode == PHY_11A)
pAd->PortCfg.PhyMode = PHY_11A;
else if(WirelessMode == PHY_11B)
pAd->PortCfg.PhyMode = PHY_11B;
else if(WirelessMode == PHY_11BG_MIXED)
pAd->PortCfg.PhyMode = PHY_11BG_MIXED;
else if(WirelessMode == PHY_11G)
pAd->PortCfg.PhyMode = PHY_11G;
else
success = FALSE;
BuildChannelList(pAd);
for(i=0; i<pAd->PortCfg.BssidNum;i++)
{
RTMPSetPhyMode(pAd, pAd->PortCfg.PhyMode, i);
RTMPBuildDesireRate(pAd, i, pAd->PortCfg.MBSSID[i].DesiredRatesIndex);
}
// it is needed to set SSID to take effect
DBGPRINT(RT_DEBUG_TRACE, "Set_WirelessMode_Proc::(=%d)\n", pAd->PortCfg.PhyMode);
return success;
}
/*
==========================================================================
Description:
Set TxRate
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_TxRate_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
NdisZeroMemory(pAd->PortCfg.MBSSID[pAd->IoctlIF].DesiredRates, MAX_LEN_OF_SUPPORTED_RATES);
pAd->PortCfg.MBSSID[pAd->IoctlIF].DesiredRatesIndex = simple_strtol(arg, 0, 10);
RTMPBuildDesireRate(pAd, pAd->IoctlIF, pAd->PortCfg.MBSSID[pAd->IoctlIF].DesiredRatesIndex);
MlmeUpdateTxRates(pAd);
return TRUE;
}
/*
==========================================================================
Description:
Set BasicRate
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_BasicRate_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
pAd->PortCfg.BasicRateBitMap = (ULONG) simple_strtol(arg, 0, 10);
if (pAd->PortCfg.BasicRateBitMap > 4095) // (2 ^ MAX_LEN_OF_SUPPORTED_RATES) -1
return FALSE;
MlmeUpdateTxRates(pAd);
DBGPRINT(RT_DEBUG_TRACE, "Set_BasicRate_Proc::(BasicRateBitMap=0x%08x)\n", pAd->PortCfg.BasicRateBitMap);
return TRUE;
}
/*
==========================================================================
Description:
Set Channel
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Channel_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
UCHAR channel;
channel = (UCHAR) simple_strtol(arg, 0, 10);
pAd->PortCfg.Channel = channel;
if (pAd->PortCfg.RadarDetect.IEEE80211H == FALSE)
{
ApStop(pAd, TRUE);
ApStartUp(pAd, TRUE);
}
else
{
if (pAd->PortCfg.RadarDetect.RDMode == RD_SILENCE_MODE)
{
ApStop(pAd, TRUE);
ApStartUp(pAd, TRUE);
}
else
{
pAd->PortCfg.RadarDetect.RDMode = RD_SWITCHING_MODE;
pAd->PortCfg.RadarDetect.CSCount = 0;
}
}
DBGPRINT(RT_DEBUG_TRACE, "Set_Channel_Proc::(Channel=%d)\n", pAd->PortCfg.Channel);
return TRUE;
}
/*
==========================================================================
Description:
Set Beacon Period
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_BeaconPeriod_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
USHORT BeaconPeriod;
INT success = FALSE;
BeaconPeriod = (USHORT) simple_strtol(arg, 0, 10);
if((BeaconPeriod >= 20) && (BeaconPeriod < 1024))
{
pAd->PortCfg.BeaconPeriod = BeaconPeriod;
success = TRUE;
}
else
success = FALSE;
DBGPRINT(RT_DEBUG_TRACE, "Set_BeaconPeriod_Proc::(BeaconPeriod=%d)\n", pAd->PortCfg.BeaconPeriod);
return success;
}
/*
==========================================================================
Description:
Set Dtim Period
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_DtimPeriod_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
USHORT DtimPeriod;
INT success = FALSE;
DtimPeriod = (USHORT) simple_strtol(arg, 0, 10);
if((DtimPeriod >= 1) && (DtimPeriod <= 255))
{
pAd->Mlme.DtimPeriod = DtimPeriod;
success = TRUE;
}
else
success = FALSE;
DBGPRINT(RT_DEBUG_TRACE, "Set_DtimPeriod_Proc::(DtimPeriod=%d)\n", pAd->Mlme.DtimPeriod);
return success;
}
/*
==========================================================================
Description:
Set Tx power
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_TxPower_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
ULONG TxPower;
INT success = FALSE;
TxPower = (ULONG) simple_strtol(arg, 0, 10);
if (TxPower <= 100)
{
pAd->PortCfg.TxPowerPercentage = TxPower;
success = TRUE;
}
else
success = FALSE;
DBGPRINT(RT_DEBUG_TRACE, "Set_TxPower_Proc::(TxPowerPercentage=%d)\n", pAd->PortCfg.TxPowerPercentage);
return success;
}
#ifdef DBG
/*
==========================================================================
Description:
For Debug information
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_Debug_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
DBGPRINT(RT_DEBUG_TRACE, "==> Set_Debug_Proc *******************\n");
if(simple_strtol(arg, 0, 10) <= RT_DEBUG_LOUD)
RTDebugLevel = simple_strtol(arg, 0, 10);
DBGPRINT(RT_DEBUG_TRACE, "<== Set_Debug_Proc(RTDebugLevel = %d)\n", RTDebugLevel);
return TRUE;
}
#endif
/*
==========================================================================
Description:
Disable/enable OLBC detection manually
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_OLBCDetection_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
switch (simple_strtol(arg, 0, 10))
{
case 0: //enable OLBC detect
pAd->PortCfg.DisableOLBCDetect = 0;
break;
case 1: //disable OLBC detect
pAd->PortCfg.DisableOLBCDetect = 1;
break;
default: //Invalid argument
return FALSE;
}
return TRUE;
}
/*
==========================================================================
Description:
Set 11B/11G Protection
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_BGProtection_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
switch (simple_strtol(arg, 0, 10))
{
case 0: //AUTO
pAd->PortCfg.UseBGProtection = 0;
break;
case 1: //Always On
pAd->PortCfg.UseBGProtection = 1;
break;
case 2: //Always OFF
pAd->PortCfg.UseBGProtection = 2;
break;
default: //Invalid argument
return FALSE;
}
ApUpdateCapabilityAndErpIe(pAd);
DBGPRINT(RT_DEBUG_TRACE, "Set_BGProtection_Proc::(BGProtection=%d)\n", pAd->PortCfg.UseBGProtection);
return TRUE;
}
/*
==========================================================================
Description:
Set TxAntenna
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_TxAntenna_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PUCHAR arg)
{
DBGPRINT(RT_DEBUG_TRACE, "Set_TxAntenna_Proc\n");
return TRUE;
}
/*
==========================================================================
Description:
Set RxAntenna
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_RxAntenna_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PUCHAR arg)
{
DBGPRINT(RT_DEBUG_TRACE, "Set_RxAntenna_Proc\n");
return TRUE;
}
/*
==========================================================================
Description:
Set TxPreamble
Return:
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
INT Set_TxPreamble_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)
{
switch (simple_strtol(arg, 0, 10))
{
case Rt802_11PreambleLong:
pAd->PortCfg.TxPreamble = Rt802_11PreambleLong;
break;
case Rt802_11PreambleShort:
pAd->PortCfg.TxPreamble = Rt802_11PreambleShort;
break;
default: //Invalid argument
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -