测试在MT7620A上跑openwrt;router模式下,手机连接MT7620A板子就是失败。
经过分析发现:
在ralink的wifi driver中WPA成对密钥的四次握手,以及组密钥协商信令过程,
如果AP未及时收到client回复的信令,可能会主动踢掉client,或者很快重发WPA成对密钥的第一个信令;
如果使用iwpriv ra0 set Debug=3 输出更多log信息的话,会看到client反复不停连接AP,log中有很多如下的信息
WPARetryExec---> ReTryCounter
因此确实因为某些原因处理速度慢的话,可以考虑修改AP这边的以下代码。 不过也可能是其他原因造成的wifi driver处理速度太慢,需要进一步深究。
VOID WPARetryExec(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3)
{
MAC_TABLE_ENTRY *pEntry = (MAC_TABLE_ENTRY *)FunctionContext;
if ((pEntry) && IS_ENTRY_CLIENT(pEntry))
{
PRTMP_ADAPTER pAd = (PRTMP_ADAPTER)pEntry->pAd;
pEntry->ReTryCounter++;
DBGPRINT(RT_DEBUG_TRACE, ("WPARetryExec--->