@@ -29,6 +29,8 @@ wifi_radio_obj_t common_hal_wifi_radio_obj;
2929#include <zephyr/kernel.h>
3030#include <zephyr/net/wifi_mgmt.h>
3131
32+ #include <supp_events.h>
33+
3234#define MAC_ADDRESS_LENGTH 6
3335
3436static void schedule_background_on_cp_core (void * arg ) {
@@ -43,6 +45,9 @@ static void schedule_background_on_cp_core(void *arg) {
4345
4446static struct net_mgmt_event_callback wifi_cb ;
4547static struct net_mgmt_event_callback ipv4_cb ;
48+ static struct net_mgmt_event_callback supp_cb ;
49+ static struct net_mgmt_event_callback iface_cb ;
50+ static struct net_mgmt_event_callback l4_cb ;
4651
4752static void _event_handler (struct net_mgmt_event_callback * cb , uint32_t mgmt_event , struct net_if * iface ) {
4853 wifi_radio_obj_t * self = & common_hal_wifi_radio_obj ;
@@ -276,10 +281,25 @@ void common_hal_wifi_init(bool user_initiated) {
276281 NET_EVENT_WIFI_AP_DISABLE_RESULT |
277282 NET_EVENT_WIFI_AP_STA_CONNECTED |
278283 NET_EVENT_WIFI_AP_STA_DISCONNECTED );
284+ net_mgmt_init_event_callback (& iface_cb , _event_handler ,
285+ NET_EVENT_IF_UP |
286+ NET_EVENT_IF_DOWN );
287+ net_mgmt_init_event_callback (& l4_cb , _event_handler ,
288+ NET_EVENT_L4_CONNECTED |
289+ NET_EVENT_L4_DISCONNECTED );
290+ net_mgmt_init_event_callback (& supp_cb , _event_handler ,
291+ NET_EVENT_SUPPLICANT_READY |
292+ NET_EVENT_SUPPLICANT_NOT_READY |
293+ NET_EVENT_SUPPLICANT_IFACE_ADDED |
294+ NET_EVENT_SUPPLICANT_IFACE_REMOVED |
295+ NET_EVENT_SUPPLICANT_IFACE_REMOVING |
296+ NET_EVENT_SUPPLICANT_INT_EVENT );
279297
280298 net_mgmt_init_event_callback (& ipv4_cb , _event_handler , NET_EVENT_IPV4_ADDR_ADD );
281299
282300 net_mgmt_add_event_callback (& wifi_cb );
301+ net_mgmt_add_event_callback (& iface_cb );
302+ net_mgmt_add_event_callback (& supp_cb );
283303 net_mgmt_add_event_callback (& ipv4_cb );
284304
285305 // Set the default hostname capped at NET_HOSTNAME_MAX_LEN characters. We trim off
0 commit comments