21.02.0-rc3 losing IPv6 packets when flow_offloading=1

I'm running 21.02.0-rc3 on a EdgeRouter X SFP (mt7621), and have just tracked down an issue where I see packet loss with IPv6 and flow_offloading=1

I have native IPv6 from my ISP, which appears to work fine from the device itself, but the issue seems to affect downstream LAN hosts.

The hosts can ping, etc IPv6 hosts just fine, but it seems like packets might be getting dropped occasionally. It's most noticeable with IPv6 heavy sites like Google and Facebook. You'll go to scroll through your feed and images/comments won't load, or click a Google search result link which will just time out.

It's been very hard to get a test case together to replicate the issue, but the closest I've found is:

$ while [ 1 ]; do curl -k -s -o /dev/null -L -I -w "%{http_code} '%{time_total}'\n" -H 'Host: www.6connect.com' https://[2607:fae0:a000::9]; sleep 1; done
200 '1.257156'
200 '1.260726'
200 '9.139702' <-- outlier
200 '1.360175'
200 '1.286219'
200 '1.356289'

In the test case above, one request returned the 200 response after 9 seconds. It's not exactly what I see in the browser, but if I disable flow offloading, these outliers don't happen and I don't see any issues with IPv6 sites.

This device supports HW flow offloading, but whether it's on or off doesn't seem to make a difference. Also with IPv4, there's no issues at all whether HW/SW flow offloading is on or off.

I haven't tried using 19.07 yet, so I don't know if it's related to the DSA change at all.

I just found this bug https://bugs.openwrt.org/index.php?do=details&task_id=3373 which seems to be it.

1 Like