R2S WAN 经常掉线的问题

0

具体内核日志:

[173337.084375] ------------[ cut here ]------------
[173337.084839] NETDEV WATCHDOG: eth1 (r8152): transmit queue 0 timed out
[173337.085499] WARNING: CPU: 2 PID: 0 at net/sched/sch_generic.c:473 dev_watchdog+0x33c/0x348
[173337.086232] Modules linked in: xt_FULLCONENAT pppoe ppp_async pppox ppp_mppe ppp_generic ipt_REJECT xt_time xt_tcpudp xt_state xt_socket xt_quota xt_pkttype xt_owner xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_cgroup xt_addrtype xt_TPROXY xt_TCPMSS xt_REDIRECT xt_MASQUERADE xt_LOG xt_FLOWOFFLOAD xt_CT usbnet ums_usbat ums_sddr55 ums_sddr09 ums_karma ums_jumpshot ums_isd200 ums_freecom ums_datafab ums_cypress ums_alauda ts_fsm ts_bm slhc r8152 nf_tproxy_ipv6 nf_tproxy_ipv4 nf_socket_ipv6 nf_socket_ipv4 nf_reject_ipv4 nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_pptp nf_nat_irc nf_nat_h323 nf_nat_ftp nf_nat_amanda nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_conntrack_tftp nf_conntrack_snmp nf_conntrack_sip nf_conntrack_pptp nf_conntrack_netlink nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp nf_conntrack_broadcast ts_kmp nf_conntrack_amanda macvlan iptable_raw iptable_nat iptable_mangle iptable_filter ip_tables exfat crc_ccitt asn1_decoder cryptodev xt_set
[173337.086410]  ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink ip6table_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip6t_NPT nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 sit tunnel4 ip_tunnel udp_diag tcp_diag raw_diag inet_diag tun vfat fat ntfs3 nls_utf8 nls_cp437 crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha1_generic ecb authenc arc4 uas gpio_button_hotplug
[173337.099484] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 5.4.255 #0
[173337.100022] Hardware name: FriendlyElec NanoPi R2S (DT)
[173337.100494] pstate: 20000005 (nzCv daif -PAN -UAO)
[173337.100931] pc : dev_watchdog+0x33c/0x348
[173337.101299] lr : dev_watchdog+0x33c/0x348
[173337.101662] sp : ffff800010013da0
[173337.101965] x29: ffff800010013da0 x28: ffff00003b61d480
[173337.102445] x27: 0000000000000004 x26: 0000000000000140
[173337.102925] x25: 00000000ffffffff x24: 0000000000000002
[173337.103403] x23: ffff00003b79845c x22: ffff00003b798000
[173337.103883] x21: ffff00003b798480 x20: ffff800010c96000
[173337.104363] x19: 0000000000000000 x18: 0000000000000000
[173337.104842] x17: 0000000000000000 x16: 0000000000000000
[173337.105321] x15: 0000000000000000 x14: ffff800010d2f112
[173337.105800] x13: 0000000000000000 x12: ffff800010d2e000
[173337.106280] x11: ffff800010cad000 x10: 0000000000000010
[173337.106759] x9 : 0000000000000000 x8 : 656d697420302065
[173337.107239] x7 : 756575712074696d x6 : ffff00003ed94720
[173337.107718] x5 : ffff00003ed94720 x4 : 0000000000000004
[173337.108197] x3 : 0000000000000000 x2 : 0000000000000004
[173337.108676] x1 : ffff00003e4d9780 x0 : 0000000000000039
[173337.109155] Call trace:
[173337.109388]  dev_watchdog+0x33c/0x348
[173337.109729]  call_timer_fn.isra.35+0x20/0x78
[173337.110119]  run_timer_softirq+0x37c/0x390
[173337.110494]  __do_softirq+0x124/0x260
[173337.110831]  irq_exit+0xb8/0xc8
[173337.111123]  __handle_domain_irq+0x64/0xb8
[173337.111496]  gic_handle_irq+0x50/0xa8
[173337.111830]  el1_irq+0xb8/0x180
[173337.112121]  cpuidle_enter_state+0x84/0x358
[173337.112501]  cpuidle_enter+0x34/0x48
[173337.112829]  call_cpuidle+0x1c/0x40
[173337.113149]  do_idle+0x1c0/0x218
[173337.113447]  cpu_startup_entry+0x24/0x60
[173337.113807]  secondary_start_kernel+0x17c/0x190
[173337.114216] ---[ end trace 61128861ac30ed8a ]---
[173337.114746] r8152 4-1:1.0 eth1: Tx timeout
[173339.164643] r8152 4-1:1.0 eth1: Tx status -2
[173339.165110] r8152 4-1:1.0 eth1: Tx status -2
[173339.165540] r8152 4-1:1.0 eth1: Tx status -2
[173339.165972] r8152 4-1:1.0 eth1: Tx status -2
[173339.805959] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[173339.838418] r8152 4-1:1.0 eth1: Invalid ether addr 00:00:00:00:00:00
[173339.839004] r8152 4-1:1.0 eth1: Random ether addr ae:b5:88:db:23:32
[173340.238776] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.239796] r8152 4-1:1.0 eth1: carrier on
[173340.286861] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.288047] r8152 4-1:1.0 eth1: carrier on
[173340.366870] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.367927] r8152 4-1:1.0 eth1: carrier on
[173340.414874] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.416000] r8152 4-1:1.0 eth1: carrier on
[173340.478930] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.480063] r8152 4-1:1.0 eth1: carrier on
[173340.526871] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.528046] r8152 4-1:1.0 eth1: carrier on
[173340.574832] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.575933] r8152 4-1:1.0 eth1: carrier on
[173340.622913] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.624128] r8152 4-1:1.0 eth1: carrier on
[173340.670832] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.672046] r8152 4-1:1.0 eth1: carrier on
[173340.750869] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.752504] r8152 4-1:1.0 eth1: carrier on
[173340.830916] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.832065] r8152 4-1:1.0 eth1: carrier on
[173340.943375] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173340.944659] r8152 4-1:1.0 eth1: carrier on
[173341.054882] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173341.056172] r8152 4-1:1.0 eth1: carrier on
[173341.102928] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173341.104355] r8152 4-1:1.0 eth1: carrier on
[173341.166899] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173341.168050] r8152 4-1:1.0 eth1: carrier on
[173341.214786] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[173341.216803] r8152 4-1:1.0 eth1: carrier on
[173341.376032] pppoe-wan: renamed from ppp0

查看friendlywrt的仓库时,发现了个不同于上游的配置文件

target/linux/rockchip-rk3328/base-files/etc/hotplug.d/iface/12-disable-rk3328-eth-offloading

#!/bin/sh

. /lib/functions.sh
. /lib/functions/network.sh

[ -n "$INTERFACE" ] || exit 3
[ "$INTERFACE" == "wan" ] || exit 4
[ "$ACTION" == "ifup" ] || exit 1

BOARD=$(cat /tmp/sysinfo/board_name | cut -d , -f2)
logger -t disable-offloading "board = $BOARD"

case $BOARD in
"nanopi-r2"|"nanopi-r2s"|"nanopi-neo3")
    logger -t disable-offloading "continue..."
    ;;
*)
    exit 2
esac

logger -t disable-offloading "rk3328 board detected"

ETHTOOL=/usr/sbin/ethtool
[ -f $ETHTOOL ] || exit 5

[ -d /sys/devices/platform/ff540000.ethernet/net/eth0 ] || exit 6
$ETHTOOL -K eth0 rx off tx off

logger -t disable-offloading "disabed rk3328 ethernet tcp/udp offloading tx/rx"
exit 0

貌似也是粗暴的关闭eth0的rx tx offloading关闭了,eth0在 friendlywrt上我记得没有交换wan lan口,所以关闭的应该是wan口的offloading