* [PATCH v3 1/3] station: transition to disconnected on station_free @ 2021-04-27 23:34 James Prestwood 2021-04-27 23:34 ` [PATCH v3 2/3] netdev: only call connect_ok in station/p2p_client mode James Prestwood 2021-04-27 23:34 ` [PATCH v3 3/3] ap: set link/operstate on AP start/stop James Prestwood 0 siblings, 2 replies; 4+ messages in thread From: James Prestwood @ 2021-04-27 23:34 UTC (permalink / raw) To: iwd [-- Attachment #1: Type: text/plain, Size: 671 bytes --] This allows station to gracefully clean up things like the diagnostic interface which is directly tied to stations CONNECTED/DISCONNECTED states. --- src/station.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/station.c b/src/station.c index 9c2b4e64..325175e9 100644 --- a/src/station.c +++ b/src/station.c @@ -3486,6 +3486,8 @@ static void station_free(struct station *station) if (station->connected_bss) netdev_disconnect(station->netdev, NULL, NULL); + station_enter_state(station, STATION_STATE_DISCONNECTED); + if (station->netconfig) { netconfig_destroy(station->netconfig); station->netconfig = NULL; -- 2.26.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/3] netdev: only call connect_ok in station/p2p_client mode 2021-04-27 23:34 [PATCH v3 1/3] station: transition to disconnected on station_free James Prestwood @ 2021-04-27 23:34 ` James Prestwood 2021-04-28 16:36 ` Denis Kenzior 2021-04-27 23:34 ` [PATCH v3 3/3] ap: set link/operstate on AP start/stop James Prestwood 1 sibling, 1 reply; 4+ messages in thread From: James Prestwood @ 2021-04-27 23:34 UTC (permalink / raw) To: iwd [-- Attachment #1: Type: text/plain, Size: 737 bytes --] netdev_connect_ok is only for station/p2p_client modes but AP also ends up on the same code path. Check the iftype before calling netdev_connect_ok. --- src/netdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/netdev.c b/src/netdev.c index 252ae78a..e9fa241f 100644 --- a/src/netdev.c +++ b/src/netdev.c @@ -1337,7 +1337,9 @@ static void try_handshake_complete(struct netdev_handshake_state *nhs) nhs->complete = true; handshake_event(&nhs->super, HANDSHAKE_EVENT_COMPLETE); - netdev_connect_ok(nhs->netdev); + if (nhs->netdev->type == NL80211_IFTYPE_STATION || + nhs->netdev->type == NL80211_IFTYPE_P2P_CLIENT) + netdev_connect_ok(nhs->netdev); } } -- 2.26.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/3] netdev: only call connect_ok in station/p2p_client mode 2021-04-27 23:34 ` [PATCH v3 2/3] netdev: only call connect_ok in station/p2p_client mode James Prestwood @ 2021-04-28 16:36 ` Denis Kenzior 0 siblings, 0 replies; 4+ messages in thread From: Denis Kenzior @ 2021-04-28 16:36 UTC (permalink / raw) To: iwd [-- Attachment #1: Type: text/plain, Size: 357 bytes --] Hi James, On 4/27/21 6:34 PM, James Prestwood wrote: > netdev_connect_ok is only for station/p2p_client modes but AP > also ends up on the same code path. Check the iftype before > calling netdev_connect_ok. > --- > src/netdev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > Patch 2 & 3 applied, thanks. Regards, -Denis ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 3/3] ap: set link/operstate on AP start/stop 2021-04-27 23:34 [PATCH v3 1/3] station: transition to disconnected on station_free James Prestwood 2021-04-27 23:34 ` [PATCH v3 2/3] netdev: only call connect_ok in station/p2p_client mode James Prestwood @ 2021-04-27 23:34 ` James Prestwood 1 sibling, 0 replies; 4+ messages in thread From: James Prestwood @ 2021-04-27 23:34 UTC (permalink / raw) To: iwd [-- Attachment #1: Type: text/plain, Size: 1369 bytes --] Prior to this netdev_connect_ok set setting this which really only applies to station mode. In addition this happens for each new station that connects to the AP. Instead set the operstate / link mode when AP starts and stops. --- src/ap.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ap.c b/src/ap.c index 46821c04..89a05b8c 100644 --- a/src/ap.c +++ b/src/ap.c @@ -28,6 +28,7 @@ #include <linux/if_ether.h> #include <netinet/in.h> #include <arpa/inet.h> +#include <linux/if.h> #include <ell/ell.h> @@ -3090,6 +3091,11 @@ static void ap_if_event_func(enum ap_event_type type, const void *event_data, l_dbus_property_changed(dbus_get_bus(), netdev_get_path(ap_if->netdev), IWD_AP_INTERFACE, "Name"); + + l_rtnl_set_linkmode_and_operstate(rtnl, + netdev_get_ifindex(ap_if->netdev), + IF_LINK_MODE_DEFAULT, IF_OPER_UP, + NULL, NULL, NULL); break; case AP_EVENT_STOPPING: @@ -3104,6 +3110,11 @@ static void ap_if_event_func(enum ap_event_type type, const void *event_data, netdev_get_path(ap_if->netdev), IWD_AP_INTERFACE, "Name"); + l_rtnl_set_linkmode_and_operstate(rtnl, + netdev_get_ifindex(ap_if->netdev), + IF_LINK_MODE_DORMANT, IF_OPER_DOWN, + NULL, NULL, NULL); + if (!ap_if->pending) ap_if->ap = NULL; -- 2.26.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-04-28 16:36 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-04-27 23:34 [PATCH v3 1/3] station: transition to disconnected on station_free James Prestwood 2021-04-27 23:34 ` [PATCH v3 2/3] netdev: only call connect_ok in station/p2p_client mode James Prestwood 2021-04-28 16:36 ` Denis Kenzior 2021-04-27 23:34 ` [PATCH v3 3/3] ap: set link/operstate on AP start/stop James Prestwood
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox