MT7621 - 21.02/Master feedback firmware image test - IPV6 offload and disabled Flow Control

A bit of good news, the ipv6 HW offload routing patch is close to getting approved!

4 Likes

Only approvals of commiters is accepted for counting. You have only 1. But add noice for not sleep this thread xD

Is very important this pull request in general.

1 Like

Maybe I'm not understanding this 100%.
Wasn't that speed already achievable by activating the hardware flow offload ?
Using speedtest.net i can achieve the connection limit on both my PCs lan connections(920mb down 420 up) and 525 down using my Pixel6 or Macbook Pro and all this while using the pppoe wan which is also taxing the CPU.

I am just curious if there is anything more to be gained by applying the patches as I would gladly flash the new firmware for extra speed and validation if needed .

@db260179 Do I need to change something in ".config" for the additional packages to work?

If you have a flat network, you wont notice any speed difference. My network i have the AP routed, this is where the shortcut-fe comes in to help on routing speed.

I do encourage to learn on building openwrt from source if you have the capable pc - i've made it simple to use docker as my repo has scripts to build it for you.

Use 'make menuconfig' and select in the Luci section, applications part and enable luci-app-turboacc to enable it.

Thank you for the reply.
I will build them as my pc is reasonably powered(3700x with 32gb ram).
As I do have a flat network I don't think i will be of much help in testing the patches, however I will try some rules just for fun.

Regards

1 Like

@db260179

Which options should I enable?

Include Flow Offload
Include Shortcut-FE for ECM
Include Shortcut-FE
Include BBR CCA
Include DNS Forwarder
Include DNS Proxy

For just hw offload part just

Include Flow Offload
Include Shortcut-FE
Include BBR CCA

Dns ones if you want to cache or forward dns lookups

1 Like

@db260179

Should I use both?

And what about packet steering?
Should I enable it?

Just try it out, as it stands will be fine.

Do some iperf tests to see if it helps for you?

@db260179
Why did you remove fast-classifier part from shortcut-fe pkg?

Hi, it conflicts with the shortcut-fe driver, so didnt see a need for it.

2 Likes

Thank you! Worked with ZBT-WG3526

Good work, would appreciate if you could do a merge request of your changes - very simple just setup a gitlab account and create a repo clone of mine, then do a merge request.

Just so that owners of these devices can benefit from this driver.

Thanks

This fixed my problem. Since I see new developments on the issue should i do something new or just leave it as is for now? @db260179

Np, no more needed. Just need to push this disable flow control fix upstream.

Will take a while.

1 Like

I'm confused. On upstream on master is working on back side and enable flow control on ports and on cpu port.

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=704c8426fb9d8de7ac8f41dd61e44092d7527620

Upstream before this patch had flow control and pause frames forced by default on the gmii but not the cpu port (6). This patch just adds the missing cpu port pause frame feature.

Anyone who had regular netdev timeout issues could test the latest snapshot images, but im skeptical this will solve anything.

So for now, in my repo im still disabling flow control by default.

1 Like

decided to try openwrt on my er-x a few days ago. using OpenWrt SNAPSHOT r18974-8144f9c665
for 3 days without issue, then decided to enable hardware offload. captured 2 crashes the first day of using the offloads and have since disabled hardware offload (leaving software enabled).

root@OpenWrt:/# [13721.737601] CPU 3 Unable to handle kernel paging request at virtual address 00000108, epc == 828bb760, ra == 828bb774
[13721.737616] CPU 1 Unable to handle kernel paging request at virtual address 00000108, epc == 828bb760, ra == 828bb774
[13721.737642] Oops[#1]:
[13721.784392] CPU: 1 PID: 10719 Comm: kworker/u8:46 Not tainted 5.10.100 #0
[13721.797927] Workqueue: nf_ft_offload_del nf_flow_rule_route_ipv6 [nf_flow_table]
[13721.812644] $ 0   : 00000000 00000001 00000100 824d8000
[13721.823050] $ 4   : 8086ac0c 824d8000 82b7a300 82b7a300
[13721.833458] $ 8   : 83725fe0 00105877 00000001 00000c7a
[13721.843865] $12   : 81015b80 00000400 00000000 00000000
[13721.854270] $16   : 000000f8 00000001 83516edc 00000000
[13721.864678] $20   : 83516ee4 00000001 807f0000 00000001
[13721.875086] $24   : 00000000 80317e24
[13721.885491] $28   : 83724000 83725d38 807f0000 828bb774
[13721.895897] Hi    : 00000266
[13721.901612] Lo    : 66666700
[13721.907340] epc   : 828bb760 nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[13721.922572] ra    : 828bb774 nf_flow_offload_ipv6_hook+0x850/0x1774 [nf_flow_table]
[13721.937795] Status: 1100fc03 KERNEL EXL IE
[13721.946123] Cause : 40800008 (ExcCode 02)
[13721.954083] BadVA : 00000108
[13721.959801] PrId  : 0001992f (MIPS 1004Kc)
[13721.967938] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet wireguard pppox ppp_generic nft_                                     reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_of                                     fload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack libchacha20poly1305 libblake2s slhc                                      poly1305_mips nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c libblake2s_generic crc_ccitt chacha                                     _mips ip6_udp_tunnel udp_tunnel leds_gpio gpio_button_hotplug crc32c_generic
[13722.086751] Process kworker/u8:46 (pid: 10719, threadinfo=0ab55938, task=bf5f0d6a, tls=00000000)
[13722.104223] Stack : 00000000 807f0000 8350b800 808a8b40 00000000 00000003 00000000 83725d98
[13722.120868]         00000001 834cb354 00000000 00000000 00000000 00000000 00000000 00000000
[13722.137512]         00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[13722.154156]         00000000 0000000c 808a8b40 80010dc4 809b2574 00000000 81015b80 00000000
[13722.170801]         81024b80 61278487 809b2574 83517a18 00000001 83517a00 8160ed00 00000000
[13722.187450]         ...
[13722.192320] Call Trace:
[13722.197189] [<828bb760>] nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[13722.211734]
[13722.214689] Code: 12420039  2450fff8  00008825 <8e020010> 8e060018  27a50010  0040f809  24040002  04400002
[13722.234133]
[13722.237098] Oops[#2]:
[13722.237387] ---[ end trace d67437482ce649a0 ]---
[13722.241624] CPU: 3 PID: 14290 Comm: kworker/u8:36 Tainted: G      D           5.10.100 #0
[13722.250811] Kernel panic - not syncing: Fatal exception
.137[2123.72227.7247477]4 4R7e]b Roeobtoinogt iinng  i3n  s3ec osnedcso.nd.s
l.e
  nf_flow_rule_route_ipv6 [nf_flow_table]
[13722.299392] $ 0   : 00000000 00000001 00000100 00000002
[13722.309807] $ 4   : 824d8008 00000001 ffffffe0 00000020
[13722.320222] $ 8   : 00000000 00000c00 00245d17 ffffffff
[13722.330637] $12   : 00000a91 81015b80 824d8000 000001e6
[13722.341052] $16   : 000000f8 00000001 83516edc 00000000
[13722.351468] $20   : 83516ee4 00000001 807f0000 00000001
[13722.361883] $24   : 00000000 80010f48
[13722.372297] $28   : 82bb0000 82bb1d38 807f0000 828bb774
[13722.382712] Hi    : 00028f11
[13722.388431] Lo    : 909efed2
[13722.394163] epc   : 828bb760 nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[13722.409400] ra    : 828bb774 nf_flow_offload_ipv6_hook+0x850/0x1774 [nf_flow_table]
[13722.424622] Status: 1100fc03 KERNEL EXL IE
[13722.432956] Cause : 40800008 (ExcCode 02)
[13722.440919] BadVA : 00000108
[13722.446637] PrId  : 0001992f (MIPS 1004Kc)
[13722.454774] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet wireguard pppox ppp_generic nft_                                     reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_of                                     fload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack libchacha20poly1305 libblake2s slhc                                      poly1305_mips nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c libblake2s_generic crc_ccitt chacha                                     _mips ip6_udp_tunnel udp_tunnel leds_gpio gpio_button_hotplug crc32c_generic
[13722.573710] Process kworker/u8:36 (pid: 14290, threadinfo=b5bd702a, task=31a78c98, tls=00000000)
[13722.591180] Stack : 00000000 807f0000 82511000 808a8b40 00000000 00000003 00000000 82bb1d98
[13722.607843]         00000001 834cb754 00000000 00000000 00000000 00000000 00000000 00000000
[13722.624503]         00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[13722.641162]         00000009 82bc6a20 00000009 0078b000 807ec418 816197e0 82bc6a20 82bc69c0
[13722.657825]         81033b40 61278487 00000000 83517818 00000001 83517800 8160ed00 00000000
[13722.674487]         ...
[13722.679355] Call Trace:
[13722.684220] [<828bb760>] nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[13722.698763]
[13722.701713] Code: 12420039  2450fff8  00008825 <8e020010> 8e060018  27a50010  0040f809  24040002  04400002
[13722.721155]

##########################

root@OpenWrt:/# [18671.749103] CPU 1 Unable to handle kernel paging request at virtual address 00000108, epc == 828fb760, ra == 828fb774
[18671.749112] CPU 0 Unable to handle kernel paging request at virtual address 00000108, epc == 828fb760, ra == 828fb774
[18671.749140] Oops[#1]:
[18671.795844] CPU: 0 PID: 25791 Comm: kworker/u8:67 Not tainted 5.10.100 #0
[18671.809370] Workqueue: nf_ft_offload_del nf_flow_rule_route_ipv6 [nf_flow_table]
[18671.824085] $ 0   : 00000000 00000001 00000100 816105e0
[18671.834500] $ 4   : 8086ac0c 816105e0 834fbe80 834fbe80
[18671.844915] $ 8   : 8352dfe0 0010b552 00000001 000010fb
[18671.855330] $12   : 81006b80 00000400 00000000 00000000
[18671.865745] $16   : 000000f8 00000001 82403edc 00000000
[18671.876161] $20   : 82403ee4 00000001 807f0000 00000001
[18671.886575] $24   : 00000000 80317e24
[18671.896989] $28   : 8352c000 8352dd38 807f0000 828fb774
[18671.907404] Hi    : 000004cc
[18671.913121] Lo    : ccccce00
[18671.918851] epc   : 828fb760 nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[18671.934086] ra    : 828fb774 nf_flow_offload_ipv6_hook+0x850/0x1774 [nf_flow_table]
[18671.949309] Status: 11008403 KERNEL EXL IE
[18671.957643] Cause : 40800008 (ExcCode 02)
[18671.965607] BadVA : 00000108
[18671.971325] PrId  : 0001992f (MIPS 1004Kc)
[18671.979461] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet wireguard pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack libchacha20poly1305 libblake2s slhc poly1305_mips nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c libblake2s_generic crc_ccitt chacha_mips ip6_udp_tunnel udp_tunnel leds_gpio gpio_button_hotplug crc32c_generic
[18672.098402] Process kworker/u8:67 (pid: 25791, threadinfo=eb1adae2, task=e962e981, tls=00000000)
[18672.115872] Stack : 00000000 00000000 00000000 00000000 00000000 00000003 00000000 8352dd98
[18672.132533]         00000001 8258fb54 00000000 00000000 00000000 00000000 00000000 00000000
[18672.149193]         00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[18672.165854]         0076d000 80010dc4 00000009 0076d000 807ec410 8006571c 81006b80 807f0000
[18672.182519]         809b2574 8bcc3437 81015b40 825f0818 00000001 825f0800 816b1d00 00000000
[18672.199181]         ...
[18672.204050] Call Trace:
[18672.208916] [<828fb760>] nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[18672.223469]
[18672.226421] Code: 12420039  2450fff8  00008825 <8e020010> 8e060018  27a50010  0040f809  24040002  04400002
[18672.245865]
[18672.248819] Oops[#2]:
[18672.249760] ---[ end trace 78ba0fbcad7e9bb6 ]---
[18672.253464] CPU: 1 PID: 17172 Comm: kworker/u8:12 Tainted: G      D           5.10.100 #0
[18672.253637] Workqueue: nf_ft_offload_del nf_flow_rule_route_ipv6 [nf_flow_table]
[1[1868726.2778291.2789122] ]
nel panic -
            not syncing: Fatal exception
[1[81866772.230.7039907099]]  RRebeoobootinting in 3 seconds..
[18672.318173]  00000000 00000001 00000100 00000002
[18672.327375] $ 4   : 816105e8 00000001 00000000 00027850
[18672.337791] $ 8   : 00000000 000f4240 00000000 000000c5
[18672.348204] $12   : 81006b80 00000000 00000000 00000000
[18672.358618] $16   : 000000f8 00000001 82403edc 00000000
[18672.369033] $20   : 82403ee4 00000001 807f0000 00000000
[18672.379449] $24   : 00000000 80010f48
[18672.389864] $28   : 8354e000 8354fd38 807f0000 828fb774
[18672.400279] Hi    : 0005d765
[18672.405996] Lo    : 4d8ea878
[18672.411731] epc   : 828fb760 nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[18672.426966] ra    : 828fb774 nf_flow_offload_ipv6_hook+0x850/0x1774 [nf_flow_table]
[18672.442189] Status: 1100fc03 KERNEL EXL IE
[18672.450522] Cause : 40800008 (ExcCode 02)
[18672.458486] BadVA : 00000108
[18672.464203] PrId  : 0001992f (MIPS 1004Kc)
[18672.472340] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet wireguard pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack libchacha20poly1305 libblake2s slhc poly1305_mips nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c libblake2s_generic crc_ccitt chacha_mips ip6_udp_tunnel udp_tunnel leds_gpio gpio_button_hotplug crc32c_generic
[18672.591277] Process kworker/u8:12 (pid: 17172, threadinfo=f70444de, task=864123f4, tls=00000000)
[18672.608748] Stack : 00000000 807f0000 00000000 00000001 00000000 00000003 00000000 8354fd98
[18672.625409]         00000001 83543304 00000000 00000000 00000000 00000000 00000000 00000000
[18672.642070]         00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[18672.658730]         00000049 817975e0 00000049 0076d000 807ec410 834c46e0 817975e0 81797580
[18672.675392]         81015b40 8bcc3437 00000000 825f0a98 00000001 825f0a80 816b1d00 00000000
[18672.692053]         ...
[18672.696922] Call Trace:
[18672.701788] [<828fb760>] nf_flow_offload_ipv6_hook+0x83c/0x1774 [nf_flow_table]
[18672.716339]
[18672.719291] Code: 12420039  2450fff8  00008825 <8e020010> 8e060018  27a50010  0040f809  24040002  04400002
[18672.738734]
This text will be hidden