diff --git a/sys/include/net/gnrc/netif.h b/sys/include/net/gnrc/netif.h index 456b43c915..a4511afeee 100644 --- a/sys/include/net/gnrc/netif.h +++ b/sys/include/net/gnrc/netif.h @@ -434,6 +434,15 @@ static inline int gnrc_netif_ipv6_group_leave(const gnrc_netif_t *netif, sizeof(ipv6_addr_t)); } +/** + * @brief Default operation for gnrc_netif_ops_t::init() + * + * @note Can also be used to be called *before* a custom operation. + * + * @param[in] netif The network interface. + */ +void gnrc_netif_default_init(gnrc_netif_t *netif); + /** * @brief Default operation for gnrc_netif_ops_t::get() * diff --git a/sys/net/gnrc/netif/gnrc_netif.c b/sys/net/gnrc/netif/gnrc_netif.c index ccf2828068..617a5cbecf 100644 --- a/sys/net/gnrc/netif/gnrc_netif.c +++ b/sys/net/gnrc/netif/gnrc_netif.c @@ -1196,7 +1196,7 @@ static void _init_from_device(gnrc_netif_t *netif) _update_l2addr_from_dev(netif); } -static void _init(gnrc_netif_t *netif) +void gnrc_netif_default_init(gnrc_netif_t *netif) { _init_from_device(netif); #ifdef MODULE_GNRC_IPV6_NIB @@ -1361,7 +1361,7 @@ static void *_gnrc_netif_thread(void *args) _test_options(netif); #endif netif->cur_hl = GNRC_NETIF_DEFAULT_HL; - _init(netif); + gnrc_netif_default_init(netif); if (netif->ops->init) { netif->ops->init(netif); }