3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-10-05 19:08:52 +02:00

netdev: Don't assume disconnect on beacon loss

The kernel doesn't reset the netdev's state to disconnected when it
sends us a beacon loss event so we can't either unless we automatically
send a disconnect command to the kernel.

It seems the handling of beacon loss depends on the driver.  For example
in mac80211 only after N beacon loss events (default 7) a probe request is
sent to the AP and a deauthenticate packet is sent if no probe reply is
receiver within T (default 500ms).
This commit is contained in:
Andrew Zaborowski 2017-08-14 14:31:16 +02:00 committed by Denis Kenzior
parent d67f8acd57
commit 5c4313bcc2
3 changed files with 0 additions and 10 deletions

View File

@ -557,12 +557,6 @@ static void device_disassociated(struct device *device)
static void device_lost_beacon(struct device *device)
{
l_debug("%d", device->index);
if (device->connect_pending)
dbus_pending_reply(&device->connect_pending,
dbus_error_failed(device->connect_pending));
device_disassociated(device);
}
static void device_disconnect_by_ap(struct device *device)

View File

@ -442,8 +442,6 @@ static void netdev_lost_beacon(struct netdev *netdev)
if (netdev->event_filter)
netdev->event_filter(netdev, NETDEV_EVENT_LOST_BEACON,
netdev->user_data);
netdev_connect_free(netdev);
}
/* -70 dBm is a popular choice for low signal threshold for roaming */

View File

@ -372,8 +372,6 @@ static void wsc_netdev_event(struct netdev *netdev, enum netdev_event event,
break;
case NETDEV_EVENT_LOST_BEACON:
l_debug("Lost beacon");
wsc_connect_cb(device_get_netdev(wsc->device),
NETDEV_RESULT_HANDSHAKE_FAILED, wsc);
break;
case NETDEV_EVENT_DISCONNECT_BY_AP:
l_debug("Disconnect by AP");