环境说明
RTL8198D设备通过usb net接到上级设备,在路由内部自动生成一个usb0接口,用于设备上网。
问题描述
为了提供设备吞吐量,开启RTL98D FC加速,导致通过usb0上网出现异常,无法建立连接,但是ping可以正常,抓包usb0发现tcp无法建立连接
解决方案
这是由于usb0它不支持接口的硬件校验和功能 ,硬件校验和卸载不支持内部头更新,所以我们不能打开它。
修改方法如下,在rtk_fc_helper_ps.c文件中修改int rtk_set_hw_csum(char *dev_name)函数,增加strncmp(dev_name, "usb0", 4)条件,不对usb0做硬件检验功能。
将
int rtk_set_hw_csum(char *dev_name)
{
// It does not support hw checksum feature for wlan and pptp/l2tp interface
// for RTK use application: PPP9~12 are used for PPTP/L2TP, hw checksum offload didn't support inner header update so we must NOT turn on it.
if(strncmp(dev_name, "wlan", 4) && strncmp(dev_name, "ppp9", 4) && strncmp(dev_name, "ppp10", 5) && strncmp(dev_name, "ppp11", 5) && strncmp(dev_name, &