问题描述
在项目开发中,基于原厂3.4.14b sdk开发,遇到wan口频繁断开的问题,关键log信息如下
check_server_alive:1603 wan eth1 link is off!
问题分析
从关键函数check_server_alive可以定位到是如下代码检测出现问题:
if (getWanLink(phyIfname) < 0)
{
printf("\n%s:%d wan %s link is off!\n",__FUNCTION__,__LINE__,phyIfname);
return 0;
}
由此可以判断是由于getWanLink函数的判断出现问题,继续查找,找到如下代码:
int getWanLink(char *interface)
{
int ret=-1;
int args[0];
re865xIoctl(interface, RTL8651_IOCTL_GETWANLINKSTATUS, (unsigned int)(args), 0, (unsigned int)&ret) ;
return ret;
}
由此可以判断是由于 re865xIoctl(interface, RTL