首页 > 代码库 > mt7620 wireless驱动特性意外发现

mt7620 wireless驱动特性意外发现

前言

今天又客户反映无线参数SSID编程了HT_AP0, 同事通过后台给他修改后反映给我,我想不对啊,难道是无线驱动crash了?那应该不能玩才对啊。。。


追查线索

我们的路由器会定期汇报数据SSID,谁知道,服务器并没有保存到数据库中。这点我非常非常的生气,之前的规格,说得清清楚楚,为什么做事不到位!好了,既然发现了这个问题就修改下本地的服务器,这一改不要紧,把一台路由器的SSID改不见了。


刨根问底

路由器的SSID不见了,这个可是大问题,我们找到了那台路由器,发现其SSID编程了HT_AP0,为什么是这个?难道是驱动里问题,去驱动源码搜索这个变量,没有发现,然后我搜索HT_AP。

在ap.c中

VOID APStartUp(
	IN PRTMP_ADAPTER pAd) 
{
	.....

		if ((pMbss->SsidLen <= 0) || (pMbss->SsidLen > MAX_LEN_OF_SSID))
		{
			NdisMoveMemory(pMbss->Ssid, "HT_AP", 5);
			pMbss->Ssid[5] = '0'+apidx;
			pMbss->SsidLen = 6;			
		}

	.....} 



原来是SSID的值为空,驱动会自动赋值这个变量,就铸就了这个问题。

嗯,抓包看到了问题所在,是服务器的乱码中带有我需要的字样,但是并没有值,而我的代码也没有判断值是否为空就直接通过uci修改了SSID,导致了驱动自动设置默认的SSID.

这是问题的真正原因。


总结

出现问题后,保留现场,我之前犯了一个错误就是wireless灯不亮,我恢复出厂设置后就好了。没有找到问题的真正原因。还有要相信系统,不要以为是什么大不了的问题,要动手去查找问题的真正原因, 把问题夯实了,不然你还是会出现问题的。