diff --git a/sys/auto_init/netif/auto_init_netdev_tap.c b/sys/auto_init/netif/auto_init_netdev_tap.c index 8e2ccd20593613322dd6955e8693037e7980ab4f..7e8314f0a5f992a32e926792a114199647f97b51 100644 --- a/sys/auto_init/netif/auto_init_netdev_tap.c +++ b/sys/auto_init/netif/auto_init_netdev_tap.c @@ -22,14 +22,24 @@ #include "log.h" #include "debug.h" #include "netdev_tap_params.h" +#ifdef MODULE_GNRC_NETIF2 +#include "net/gnrc/netif2/ethernet.h" +#else #include "net/gnrc/netdev/eth.h" +#endif #define TAP_MAC_STACKSIZE (THREAD_STACKSIZE_DEFAULT + DEBUG_EXTRA_STACKSIZE) +#ifdef MODULE_GNRC_NETIF2 +#define TAP_MAC_PRIO (GNRC_NETIF2_PRIO) +#else #define TAP_MAC_PRIO (THREAD_PRIORITY_MAIN - 3) +#endif static netdev_tap_t netdev_tap[NETDEV_TAP_MAX]; static char _netdev_eth_stack[NETDEV_TAP_MAX][TAP_MAC_STACKSIZE + DEBUG_EXTRA_STACKSIZE]; +#ifndef MODULE_GNRC_NETIF2 static gnrc_netdev_t _gnrc_netdev_tap[NETDEV_TAP_MAX]; +#endif void auto_init_netdev_tap(void) { @@ -40,11 +50,21 @@ void auto_init_netdev_tap(void) i, *(p->tap_name)); netdev_tap_setup(&netdev_tap[i], p); +#ifdef MODULE_GNRC_NETIF2 + if (!gnrc_netif2_ethernet_create(_netdev_eth_stack[i], + TAP_MAC_STACKSIZE, + TAP_MAC_PRIO, "gnrc_netdev_tap", + &netdev_tap[i].netdev)) { + LOG_ERROR("[auto_init_netif] error initializing TAP %s\n", + *(p->tap_name)); + } +#else gnrc_netdev_eth_init(&_gnrc_netdev_tap[i], (netdev_t*)&netdev_tap[i]); gnrc_netdev_init(_netdev_eth_stack[i], TAP_MAC_STACKSIZE, TAP_MAC_PRIO, "gnrc_netdev_tap", &_gnrc_netdev_tap[i]); +#endif } }