Massive packet loss on wifi after upgrading to 23.05.04 via IB

I just upgraded my Zyxel Keenetic Onmi II to the latest stable 23.05.04 and now I'm seeing massive packet loss via wifi even while pinging router itself:
--- 192.168.2.1 ping statistics --- 74 packets transmitted, 12 received, 83.7838% packet loss, time 74117ms rtt min/avg/max/mdev = 96.021/113.148/168.005/17.872 ms

Points to consider:

  1. wired works like a charm
  2. only my laptop (HP 2560p, Deb12, wireless card Intel Advanced-N 6205) is affected - all smartphones in family and wife's laptop work just great
  3. right yesterday my laptop worked fine with this router when it was on ancient Gargoyle 10.1, no changes to system done since then, and it keeps to work with other AP's (2.4 and 5GHz) as usual

I'm lost with no ideas what is going on, guys(
Please help.

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall
1 Like

Release 23.05.5 has just been announced, I would upgrade and test it, before spending more time on this issue.

1 Like

Already tried 23.05.5, same no luck(

1 Like
root@OpenWrt:~# ubus call system board
{
        "kernel": "5.15.162",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7620N ver:2 eco:6",
        "model": "ZyXEL Keenetic Omni II",
        "board_name": "zyxel,keenetic-omni-ii",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.4",
                "revision": "r24012-d8dd03c46f",
                "target": "ramips/mt7620",
                "description": "OpenWrt 23.05.4 r24012-d8dd03c46f"
        }
}



root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd44:0fa5:ee01::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0.1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'eth0.2'
        option macaddr 'e4:18:6b:01:8a:e5'

config interface 'wan'
        option device 'usb0'
        option proto 'dhcp'
        option type 'bridge'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 6t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '0 6t'


root@OpenWrt:~# cat /etc/config/wireless
config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10180000.wmac'
        option channel '7'
        option band '2g'
        option htmode 'HT40'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan wan'
        option mode 'ap'
        option ssid 'Earth'
        option encryption 'psk2+tkip+ccmp'
        option key 'secretpass'


root@OpenWrt:~# cat /etc/config/dhcp
config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'
        option sequential_ip '1'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'




root@OpenWrt:~# cat /etc/config/firewall
config defaults
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'


After upgrades (I tried reset settings to default as well) I didn't touch anything but wan (I get inet from USB rndis dongle) and WiFi AP name and security.
Via wired interface everything works just fine - that's how I'm writing this reply now from same affected laptop. Other clients, as I wrote above, work with AP with no issues.

Try the following:

Please set a country code, ht40 is not always supported, try ht20

option network should be only lan
option encryption use psk2+ccmp do not use tkip that is insecure and deprecated

That's because of terrible lack of ideas what's wrong with that damned wifi(

Changed all suggested options - still no fun.
Do you know if OpenWrt has changed something significant since versions 16-17 in terms of WiFi support?
Because just recently worked ancient Gargoyle 10.1 was built on top of same age OpenWrt, I'd like to understand if such huge downgrade could be an option..

Delete the last line (bridge) as it does not belong here.

Restart and test again. If that doesn’t fix the issue, show us the first two octets of the following (in bold aaa.bbb.ccc,ddd)

ifstatus wan | grep address

I swear I didn't add this option myself, it was there by default.
Nevertheless, deleting it brings no good - same 80+% packet loss on wifi even to router itself, not to mention inet(

"ipv4-address": [
                        "address": "192.168.99.174",

My rndis dongle works in .99 subnet - offering DHCP and gateway on .99.1

I wonder how wan settings could be connected to particular laptop wifi issue - as same laptop via wire and all other devices via wifi have no problems accessing internet?

I believe you. This is a bug.

Too bad it didn't fix the issue, but glad that it's now removed.

Ok... this is fine. I wanted to check to make sure we didn't have a subnet overlap.

Typically it wouldn't have anything to do with it, but those were two things that we needed to address.

Does the problem happen with any other wifi devices? Does that laptop work properly with other wifi connections?

No, as said, other devices (bunch of smarts and wife's laptop) work as usual, with no issues.
My laptop works with other AP's (both 2.4 Trendnet and 5GHz Xiaomi - all on OpenWrt too) like a charm as well.
Another weird thing I noticed: connection to this "new" OpenWrt router takes much - like 3-4 times - longer, never happened when it was on old Gargoyle.
The only point I can imagine - something important has changed in OpenWrt wifi driver (since that very old but working version on which Gargoyle was based) for this particular router that drives it somehow incompatible with particular laptop's wifi card...

I just spotted the problem. Kind of embarrassing that I didn’t see it before:

The network line must only contain a single network. Remove wan. Restart and test again.

wan already deleted as per @egc's suggestion - brought no improvements(
It was just my fuss - tried around even stupid things in vanity

Let’s take a look at the latest configs.

Here they are. Just installed the latest and greatest 23.05.5, didn't even touch wan settings (as connection to the router itself is quite enough to test issue) - same 80+% lost packets on wifi.


root@OpenWrt:/etc/config# cat /etc/config/network
config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd1b:f76d:c13d::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0.1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'eth0.2'
        option macaddr 'e4:18:6b:01:8a:e5'

config interface 'wan'
        option device 'eth0.2'
        option proto 'dhcp'

config interface 'wan6'
        option device 'eth0.2'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 6t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '0 6t'



root@OpenWrt:/etc/config# cat /etc/config/wireless
config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10180000.wmac'
        option channel '7'
        option band '2g'
        option htmode 'HT20'
        option txpower '5'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'Earth'
        option encryption 'psk2'
        option key 'supersecreto'



root@OpenWrt:/etc/config# cat /etc/config/dhcp
config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'




root@OpenWrt:/etc/config# cat /etc/config/firewall
config defaults
        option syn_flood        1
        option input            REJECT
        option output           ACCEPT
        option forward          REJECT
# Uncomment this line to disable ipv6 rules
#       option disable_ipv6     1

config zone
        option name             lan
        list   network          'lan'
        option input            ACCEPT
        option output           ACCEPT
        option forward          ACCEPT

config zone
        option name             wan
        list   network          'wan'
        list   network          'wan6'
        option input            REJECT
        option output           ACCEPT
        option forward          REJECT
        option masq             1
        option mtu_fix          1

config forwarding
        option src              lan
        option dest             wan

# We need to accept udp packets on port 68,
# see https://dev.openwrt.org/ticket/4108
config rule
        option name             Allow-DHCP-Renew
        option src              wan
        option proto            udp
        option dest_port        68
        option target           ACCEPT
        option family           ipv4

# Allow IPv4 ping
config rule
        option name             Allow-Ping
        option src              wan
        option proto            icmp
        option icmp_type        echo-request
        option family           ipv4
        option target           ACCEPT

config rule
        option name             Allow-IGMP
        option src              wan
        option proto            igmp
        option family           ipv4
        option target           ACCEPT

# Allow DHCPv6 replies
# see https://github.com/openwrt/openwrt/issues/5066
config rule
        option name             Allow-DHCPv6
        option src              wan
        option proto            udp
        option dest_port        546
        option family           ipv6
        option target           ACCEPT

config rule
        option name             Allow-MLD
        option src              wan
        option proto            icmp
        option src_ip           fe80::/10
        list icmp_type          '130/0'
        list icmp_type          '131/0'
        list icmp_type          '132/0'
        list icmp_type          '143/0'
        option family           ipv6
        option target           ACCEPT

# Allow essential incoming IPv6 ICMP traffic
config rule
        option name             Allow-ICMPv6-Input
        option src              wan
        option proto    icmp
        list icmp_type          echo-request
        list icmp_type          echo-reply
        list icmp_type          destination-unreachable
        list icmp_type          packet-too-big
        list icmp_type          time-exceeded
        list icmp_type          bad-header
        list icmp_type          unknown-header-type
        list icmp_type          router-solicitation
        list icmp_type          neighbour-solicitation
        list icmp_type          router-advertisement
        list icmp_type          neighbour-advertisement
        option limit            1000/sec
        option family           ipv6
        option target           ACCEPT

# Allow essential forwarded IPv6 ICMP traffic
config rule
        option name             Allow-ICMPv6-Forward
        option src              wan
        option dest             *
        option proto            icmp
        list icmp_type          echo-request
        list icmp_type          echo-reply
        list icmp_type          destination-unreachable
        list icmp_type          packet-too-big
        list icmp_type          time-exceeded
        list icmp_type          bad-header
        list icmp_type          unknown-header-type
        option limit            1000/sec
        option family           ipv6
        option target           ACCEPT

config rule
        option name             Allow-IPSec-ESP
        option src              wan
        option dest             lan
        option proto            esp
        option target           ACCEPT

config rule
        option name             Allow-ISAKMP
        option src              wan
        option dest             lan
        option dest_port        500
        option proto            udp
        option target           ACCEPT


### EXAMPLE CONFIG SECTIONS
# do not allow a specific ip to access wan
#config rule
#       option src              lan
#       option src_ip   192.168.45.2
#       option dest             wan
#       option proto    tcp
#       option target   REJECT

# block a specific mac on wan
#config rule
#       option dest             wan
#       option src_mac  00:11:22:33:44:66
#       option target   REJECT

# block incoming ICMP traffic on a zone
#config rule
#       option src              lan
#       option proto    ICMP
#       option target   DROP

# port redirect port coming in on wan to lan
#config redirect
#       option src                      wan
#       option src_dport        80
#       option dest                     lan
#       option dest_ip          192.168.16.235
#       option dest_port        80
#       option proto            tcp

# port redirect of remapped ssh port (22001) on wan
#config redirect
#       option src              wan
#       option src_dport        22001
#       option dest             lan
#       option dest_port        22
#       option proto            tcp

### FULL CONFIG SECTIONS
#config rule
#       option src              lan
#       option src_ip   192.168.45.2
#       option src_mac  00:11:22:33:44:55
#       option src_port 80
#       option dest             wan
#       option dest_ip  194.25.2.129
#       option dest_port        120
#       option proto    tcp
#       option target   REJECT

#config redirect
#       option src              lan
#       option src_ip   192.168.45.2
#       option src_mac  00:11:22:33:44:55
#       option src_port         1024
#       option src_dport        80
#       option dest_ip  194.25.2.129
#       option dest_port        120
#       option proto    tcp


Set your country code, and then use a standard channel: 1, 6, or 11. See if that helps.

Nope, it doesn't help - already tried, no changes.
But it seems that I've found what does - switching mode from 'N' to legacy, like this:
OpenWrt_2024-09-28 10-38-14

The issue completely gone, fast connection (as it should be) and zero packet loss!
Thank you for your support.

Probably I can live without HT40, but are there any other drawbacks in rejecting 'N' mode?

option txpower '5'

isn't the transmission power way too low now?

Intel Advanced-N 6205

On my old laptop (has some intel mpci-e wifi) I end up with random high ping spikes. I know that I need to disable BG scanning to fix the ping spikes. Can't find the link on how to do it.
Maybe this reddit post can help: https://www.reddit.com/r/GeForceNOW/comments/i6go7s/must_do_periodic_lag_spikes_fix_for_intel_wifi/

In place of switching the AP in legacy mode maybe you should check in the Intel 6205 settings (in device manager) and see if there is any option that will disable wireless n only for the adapter.

Gargoyle 10.1

not really familiar with Gargoyle (tried it 1 time in the past on an old router, was nowhere near my needs), but maybe for whatever reason u need b rates to actually have this intel wifi card working properly:

option legacy_rates '1'
option cell_density '0'

L.E. #1: Based on this link https://www.gargoyle-router.com/wiki/doku.php?id=changelog Gargoyle 10 is based on OpenWRT Chaos Calmer

I think, I could be wrong, that Chaos Calmer didn't had legacy_rates implemented.

L.E. #2: As it was already said in the other post:

  • channel 7 is unusual channel, normaly u see 1,6,11 or 1,5,9,13. If there is no other ap in 2,4 ghz band shouldn't really be a problem atm, but maybe other ap will show up near u in the future...
  • maybe you should set the country code also, by the look of it now it's not set and it auto picks 00 that is the most restrictive : (2402 - 2472 @ 40), (20) (only channels 1-11 available, max HT40, max 20 dBm tx power)

It's for testing purposes only, router is in like 50cm from laptop now.

It's Debian based laptop, but thank you - it's good to know about such a weird behavior of Intel cards, probably there is solution for Linux too

I'll give a try, won't be surprised - taking into account those scans above, tnx

It's Debian based laptop, but thank you - it's good to know about such a weird behavior of Intel cards, probably there is solution for Linux too

Have a look here https://wiki.archlinux.org/title/Network_configuration/Wireless#Intel for intel wifi and linux.

The 6205 is using iwlwifi so give it a go with what is wrote at 7.4.2 also.
I would try to disable N as last option on the intel wifi, basicaly after everything else failed.