Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FS#3891 - D-Link DIR-878 as AP, clients connected but no network after a few hours #8892

Open
openwrt-bot opened this issue Jun 20, 2021 · 0 comments
Labels
flyspray release/21.02

Comments

@openwrt-bot
Copy link

openwrt-bot commented Jun 20, 2021

Larhzu:

I have D-Link DIR-878 A1 running OpenWRT 21.02.0-rc3 (also rc2 and rc1) with a simple "dumb AP" config (included at the bottom of this message). All ethernet ports and wireless are bridged together and DHCP and firewall disabled. Router with a DHCP server (72-hour leases) and radvd for IPv6 (ULA only) is connected to DIR-878's WAN port.

Two Android 9 devices connected to the 802.11n 2.4 GHz AP will lose network connection (an x on the wifi icon) after a few hours (3-12 hours is typical, always less than 24 hours). One of the devices will fix itself after an hour or two. The other device will stick with the broken connection as long as it stays in the AP range or is manually reconnected. The AP won't disassociate the devices so they must be correctly replying to the inactivity polls.

I haven't been able to figure out anything in the OpenWRT log that could be interesting. There seems to be no way to determine from the log when a device has lost the network connection. For example, other devices connecting or disconnecting don't seem to be a reason or at least it's not very obvious.

When one of the devices loses network connection (while staying connected to the AP) the other devices continue to work normally with good performance. Both Android 9 devices may be without network connection at the same time but the connection loss doesn't happen at the same moment on both devices (it may be hours apart).

When a device is in the problem state, trying to ping it from a computer connected via ethernet will obviously not work. "iw dev wlan0 station get THE_MAC_ADDRESS" on DIR-878 shows no change in "tx packets" or "rx packets" when pinging is attempted. I suspect that the device doesn't see broadcasted ARP requests and thus cannot attempt to reply to them. So no unicast echo-request packets will be sent from the computer.

If I manually add an ARP entry for the Android 9 device on the computer and try to ping again, then both tx and rx counters grow. tx growth matches the number of echo-requests sent. rx grows about twice the rate of tx. However, no echo-replies will be seen.

Trying to connect from the Android 9 devices to a computer on my LAN using a web browser and IPv4 address shows no IPv4 or ARP packets on the target computer or on the OpenWRT device.

A third device, Android 8.1, has a milder problem. It disconnects and reconnects immediately a few times a day. Sometimes it happens just a few minutes apart, sometimes several hours. It might be an unrelated problem or it might be the same problem as above except that the device notices the problem very quickly and reconnects immediately. In practice this is most visible when using a Chromecast as the controls to the Chromecast get lost for a minute when the Android 8.1 device reconnects. This behavior occurs also on 5 GHz (VHT80). (I haven't tried the Android 9 devices on 5 GHz.)

There are a few other devices connected to the AP but I haven't noticed problems or heard users complaining so I suspect that those don't have this kind of issues.

All three problem devices work without any issues on 2.4 GHz if the AP is set to 802.11g using "uci set wireless.radio0.htmode=NOHT". The three devices used to work fine with a different 2.4 GHz 802.11n AP but that AP broke.

Things that don't help:

  • Omitting disassoc_low_ack, ieee80211w, wpa_disable_eapol_key_retries, tdls_prohibit, or dtim_period.
  • uci set wireless.default_radio0.dtim_period=1
  • uci set 'network.@device[0].multicast_to_unicast=0'

My "dumb AP" configuration information follows.

# # Disabled services: # /etc/init.d/dnsmasq disable /etc/init.d/firewall disable /etc/init.d/odhcpd disable /etc/init.d/uhttpd disable

/etc/config/system

config system
option ttylogin '0'
option log_size '64'
option urandom_seed '0'
option compat_version '1.1'
option hostname 'wlan-dlink'
option timezone 'EET-2EEST,M3.5.0/3,M10.5.0/4'
option log_buffer_size '256'

config timeserver 'ntp'
option enabled '1'
option enable_server '0'
option server 'fdxx:xxxx:xxxx::x'

config led 'led_wan'
option name 'wan'
option sysfs 'green:net'
option trigger 'netdev'
option mode 'link tx rx'
option dev 'wan'

/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 packet_steering '1'

config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'wan'

config interface 'lan'
option device 'br-lan'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '192.168.0.xxx'
option ip6addr 'fdxx:xxxx:xxxx::xxx/64'

config route
option interface 'lan'
option target '192.168.0.0'
option netmask '255.255.224.0'
option gateway '192.168.0.x'

config route6
option interface 'lan'
option target 'fdxx:xxxx:xxxx::/48'
option gateway 'fdxx:xxxx:xxxx::x'

/etc/config/wireless

config wifi-device 'radio0'
option type 'mac80211'
option hwmode '11g'
option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
option country 'FI'
option txpower '20'
option channel '11'
option htmode 'HT20'
option log_level '0'

config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'my_ssid'
option encryption 'psk2'
option key 'password123'
option disassoc_low_ack '0'
option ieee80211w '1'
option wpa_disable_eapol_key_retries '1'
option tdls_prohibit '1'
option dtim_period '3'

config wifi-device 'radio1'
option type 'mac80211'
option channel '36'
option hwmode '11a'
option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
option htmode 'VHT80'
option country 'FI'

config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'my_ssid_5GHz'
option encryption 'psk2'
option key 'password123'
option disassoc_low_ack '0'
option ieee80211w '1'
option wpa_disable_eapol_key_retries '1'
option tdls_prohibit '1'
option dtim_period '3'

@aparcar aparcar added the release/21.02 label Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flyspray release/21.02
Projects
None yet
Development

No branches or pull requests

2 participants