iPad WIFI - Jitter & latency problems

Hi,

I need help trying to iron out flaws in our WIFI..

Lately I have been getting bad latency spikes on our WIFI 5GHZ specifically on our iPad PRO. The iPad drops out in the middle of playing online games or gets random stutters. Gaming on our other devices is impeccable.

The iPad PRO didn't have these issues before as far as I know. Distance to the AP doesn't seem to matter when it spikes.

The connection is fiber 100/100. On the computer connected to the Dumb AP with a cable. I consistently get A+ with low latency on Waveform.

On our 5GHZ WIFI Waveform gives a A+ rating on Android devices, but only sometimes on the iPad PRO.

I have tried different settings for the SQM-QoS, for packet steering and Flow offloading.

Fujitsu S920 settings: (ROUTER)
SQM QoS installed, ingress/egress = 90/90, running Cake, piece of cake.qos, Overhead 44.
Packet Steering is enabled
Flow offloading is disabled

Archer C7 v2 (DUMB AP):
Packet Steering is enabled
Flow offloading is disabled
ath10k-smallbuffers

The Archer c7 v2 has an QCA9880 and support TXQS/ATF/AQL.

Is there something I can try to remedy these issues with the iPads bad jitter and latency?

Best regards.

You have to disable apple wifi location service.

1 Like

Thank you for the suggestion. I have now disabled the setting. I will test the iPad to see if the issues have been resolved.

Sadly it doesn't seem do have improved at all.

If other devices perform well under same conditions the problem is the client device. Sometimes windows plays bad tricks, when linux on same hardware gets ideal wifi and vice versa.

What do you mean? The iPad has bad WIFI regardless if the PC is on or off.

However, something must have changed. I remember setting up Openwrt and QoS and the WiFi a few years ago and then even the iPad received the best rating possible on DSL-Reports.

These are not the same.

There are some things iOS does not play nice with.

1 Like

Here is the requested information from the AP.

**ubus call system board**
{
        "kernel": "6.6.73",
        "hostname": "LEDE",
        "system": "Qualcomm Atheros QCA9558 ver 1 rev 0",
        "model": "TP-Link Archer C7 v2",
        "board_name": "tplink,archer-c7-v2",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0-rc7",
                "revision": "r28417-daef29c75d",
                "target": "ath79/generic",
                "description": "OpenWrt 24.10.0-rc7 r28417-daef29c75d",
                "builddate": "1738018409"
**cat /etc/config/network**

config interface 'loopback'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
        option device 'lo'

config globals 'globals'
        option ula_prefix '****:****:****::/**'
        option packet_steering '1'

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

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

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 4 5'
        option vid '1'
**cat /etc/config/wireless**

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option htmode 'VHT80'
        option path 'pci0000:00/0000:00:00.0'
        option cell_density '0'
        option channel 'auto'
        option disabled '0'
        option country 'SE'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11g'
        option htmode 'HT20'
        option path 'platform/ahb/18100000.wmac'
        option cell_density '0'
        option channel 'auto'
        option disabled '0'

config wifi-iface 'wifinet0'
        option device 'radio1'
        option ssid 'Internet 2GHZ'
        option encryption 'psk2'
        option key '**********'
        option mode 'ap'
        option network 'lan'

config wifi-iface 'wifinet1'
        option device 'radio0'
        option ssid 'Internet 5GHZ'
        option encryption 'psk2'
        option key '**********'
        option mode 'ap'
        option network 'lan'

config wifi-iface 'wifinet1'
        option device 'radio0'
**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 authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option localservice '1'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option ignore '1'

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

config host
        option name 'iPad-PRO'
        list mac '********'        option mode 'ap'
        option network 'lan'
**cat /etc/config/firewall**

config defaults
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'

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'

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 src_ip 'fc00::/6'
        option dest_ip 'fc00::/6'
        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'

config include
        option path '/etc/firewall.user'

The outputs are unremarkable.
usually iOS has issues with roaming or mixed mode encryption.

Those are two different things.
If it is being dropped and reconnecting its in the system log.

Would you look for it?

1 Like

Set both bands with same name security network

3 Likes

I can disable the 2.4GHZ WiFi and run some tests while only the 5GHZ WiFi is active.

Thank you, I will check the logs! Will it say dropped or reconnecting in the logs or should I be on the lookout for something else?

Command timeout, missed ack, ethtool -s

1 Like

Set up an AP on only one band so you can tell if it is band-specific. If it's only on 5 GHz you could try the non-ct ath10k driver and firmware.

1 Like

Thank you! This might actually have solved the issue with the iPad, but I will need to keep testing it.

So now instead of just the iPad having issues, all my 5 GHz devices will jump to the 2.4 GHz WiFi and have jitter and bad latency, as QoS doesn't seem to be working on the 2.4 GHz WiFi.

The solution is to block all 5 GHz devices from using the 2.4 GHz WiFi I guess? That's the Apple way.

You can do 2 more things:

  1. When the problem occurs, go to your router and check syslog. Is your device deauthenticated? Is there any mention of its MAC address? Remember that Apple devices can have a random or random+rotating MAC address, so check in your Wifi network settings what's the current MAC.
  2. Use a Macbook Console.app to see logs from the iPad. You might notice some airportd entries – these are Wifi logs. Perhaps something of interest will be there.

If this happens during gaming, could it be that your iPad is overheating and throtlling?

1 Like

If you can; some, reasonably recent, Apple devices only have 2.4Ghz.
This can cause issues with older Apple products that don't have 5GHz but you want whole house communication.
e.g. watches.
When you walk out of Bluetooth range, the watch will switch to the network to communicate with the phone. I've had update issues (they take longer over Bluetooth) when the watch was on 2.4GHz and the phone was on 5GHz.

I made this worse because my 2.4GHz is dialed down, Tx power is only what I need to get to the outside wall. (2.4 travels too far; I prefer a Dark Forest footprint).
Eventually I replaced the watch.

Among all the other advice, I'd ensure Apple devices you have linked (e.g. watches and tablets that get your iMessages and can take calls from your iPhone) are on the same network.

1 Like