#include <zephyr/net/net_mgmt.h>
#include <zephyr/net/net_event.h>
#include <zephyr/net/net_if.h>
/* Структура для хранения параметров обратного вызова */
static struct net_mgmt_event_callback mgmt_cb;
void handler(struct net_mgmt_event_callback *cb,
uint32_t mgmt_event,
struct net_if *iface)
{
if (mgmt_event == NET_EVENT_IF_UP) {
printk("Ethernet Link UP\n");
} else if (mgmt_event == NET_EVENT_IF_DOWN) {
printk("Ethernet Link DOWN\n");
}
}
int main(void)
{
/* Инициализация структуры callback для событий интерфейса (Layer 2) */
net_mgmt_init_event_callback(&mgmt_cb, handler,
NET_EVENT_IF_UP | NET_EVENT_IF_DOWN);
/* Регистрация обработчика в системе net_mgmt */
net_mgmt_add_event_callback(&mgmt_cb);
return 0;
}