From 67ed9defbe35879a74a00f5082597dfafddf45a6 Mon Sep 17 00:00:00 2001 From: Jose Alamos Date: Thu, 19 Dec 2019 19:23:15 +0100 Subject: [PATCH] gnrc_netif_xxx_create: use external netif allocation --- cpu/esp32/esp-eth/esp_eth_gnrc.c | 4 +- cpu/esp_common/esp-now/esp_now_gnrc.c | 9 +- cpu/esp_common/esp-now/esp_now_gnrc.h | 8 +- cpu/esp_common/esp-wifi/esp_wifi_gnrc.c | 12 +- cpu/nrf5x_common/radio/nrfmin/nrfmin_gnrc.c | 3 +- drivers/cc1xxx_common/gnrc_netif_cc1xxx.c | 7 +- drivers/include/cc1xxx_common.h | 9 +- drivers/xbee/gnrc_xbee.c | 7 +- drivers/xbee/include/gnrc_netif_xbee.h | 20 +- pkg/nimble/netif/nimble_netif.c | 3 +- .../src/gnrc_nordic_ble_6lowpan.c | 3 +- sys/include/net/gnrc/gomach/gomach.h | 10 +- sys/include/net/gnrc/lwmac/lwmac.h | 10 +- sys/include/net/gnrc/netif.h | 14 +- sys/include/net/gnrc/netif/ethernet.h | 12 +- sys/include/net/gnrc/netif/ieee802154.h | 10 +- sys/include/net/gnrc/netif/lorawan_base.h | 9 +- sys/include/net/gnrc/netif/raw.h | 9 +- sys/net/gnrc/link_layer/gomach/gomach.c | 7 +- sys/net/gnrc/link_layer/lwmac/lwmac.c | 7 +- .../gnrc/netif/ethernet/gnrc_netif_ethernet.c | 7 +- sys/net/gnrc/netif/gnrc_netif.c | 14 +- sys/net/gnrc/netif/gnrc_netif_raw.c | 7 +- .../netif/ieee802154/gnrc_netif_ieee802154.c | 7 +- .../netif/init_devs/auto_init_at86rf215.c | 33 +- .../netif/init_devs/auto_init_at86rf2xx.c | 7 +- .../gnrc/netif/init_devs/auto_init_cc110x.c | 3 +- .../gnrc/netif/init_devs/auto_init_cc2420.c | 3 +- .../netif/init_devs/auto_init_cc2538_rf.c | 3 +- .../gnrc/netif/init_devs/auto_init_cdcecm.c | 3 +- sys/net/gnrc/netif/init_devs/auto_init_dose.c | 3 +- .../gnrc/netif/init_devs/auto_init_enc28j60.c | 4 +- .../netif/init_devs/auto_init_encx24j600.c | 3 +- .../gnrc/netif/init_devs/auto_init_ethos.c | 4 +- .../gnrc/netif/init_devs/auto_init_kw2xrf.c | 4 +- .../gnrc/netif/init_devs/auto_init_kw41zrf.c | 15 +- .../gnrc/netif/init_devs/auto_init_mrf24j40.c | 4 +- .../netif/init_devs/auto_init_netdev_tap.c | 4 +- .../netif/init_devs/auto_init_nrf802154.c | 3 +- .../gnrc/netif/init_devs/auto_init_slipdev.c | 4 +- .../netif/init_devs/auto_init_socket_zep.c | 3 +- .../netif/init_devs/auto_init_stm32_eth.c | 3 +- .../gnrc/netif/init_devs/auto_init_sx127x.c | 5 +- .../gnrc/netif/init_devs/auto_init_w5100.c | 4 +- sys/net/gnrc/netif/init_devs/auto_init_xbee.c | 4 +- .../gnrc/netif/lorawan/gnrc_netif_lorawan.c | 7 +- tests/gnrc_ipv6_ext_frag/main.c | 11 +- tests/gnrc_ipv6_fwd_w_sub/mockup_netif.c | 6 +- tests/gnrc_ipv6_nib/mockup_netif.c | 6 +- tests/gnrc_ipv6_nib_6ln/mockup_netif.c | 6 +- tests/gnrc_ndp/main.c | 6 +- tests/gnrc_netif/main.c | 1095 ++++++++--------- tests/gnrc_sixlowpan/main.c | 9 +- tests/gnrc_sixlowpan_iphc_w_vrb/main.c | 8 +- tests/netdev_test/main.c | 7 +- 55 files changed, 770 insertions(+), 718 deletions(-) diff --git a/cpu/esp32/esp-eth/esp_eth_gnrc.c b/cpu/esp32/esp-eth/esp_eth_gnrc.c index 9b800986be..72347a8b1d 100644 --- a/cpu/esp32/esp-eth/esp_eth_gnrc.c +++ b/cpu/esp32/esp-eth/esp_eth_gnrc.c @@ -22,6 +22,8 @@ #include "esp_eth_netdev.h" #include "net/gnrc/netif/ethernet.h" +static gnrc_netif_t _netif; + /** the only ESP32 Ethernet MAC (EMAC) device */ extern esp_eth_netdev_t _esp_eth_dev; @@ -34,7 +36,7 @@ extern void esp_eth_setup(esp_eth_netdev_t* dev); void auto_init_esp_eth(void) { esp_eth_setup(&_esp_eth_dev); - gnrc_netif_ethernet_create(_esp_eth_stack, ESP_ETH_STACKSIZE, ESP_ETH_PRIO, + gnrc_netif_ethernet_create(&_netif, _esp_eth_stack, ESP_ETH_STACKSIZE, ESP_ETH_PRIO, "netif-esp-eth", (netdev_t *)&_esp_eth_dev); } diff --git a/cpu/esp_common/esp-now/esp_now_gnrc.c b/cpu/esp_common/esp-now/esp_now_gnrc.c index 2cb45447cc..25f274ca42 100644 --- a/cpu/esp_common/esp-now/esp_now_gnrc.c +++ b/cpu/esp_common/esp-now/esp_now_gnrc.c @@ -195,14 +195,15 @@ static const gnrc_netif_ops_t _esp_now_ops = { .set = gnrc_netif_set_from_netdev, }; -gnrc_netif_t *gnrc_netif_esp_now_create(char *stack, int stacksize, char priority, - char *name, netdev_t *dev) +int gnrc_netif_esp_now_create(gnrc_netif_t *netif, char *stack, int stacksize, char priority, + char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, &_esp_now_ops); + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &_esp_now_ops); } /* device thread stack */ static char _esp_now_stack[ESP_NOW_STACKSIZE]; +static gnrc_netif_t _netif; void auto_init_esp_now(void) { @@ -212,7 +213,7 @@ void auto_init_esp_now(void) if (!esp_now_dev) { LOG_ERROR("[auto_init_netif] error initializing esp_now\n"); } else { - gnrc_netif_esp_now_create(_esp_now_stack, sizeof(_esp_now_stack), + gnrc_netif_esp_now_create(&_netif, _esp_now_stack, sizeof(_esp_now_stack), ESP_NOW_PRIO, "netif-esp-now", &esp_now_dev->netdev); diff --git a/cpu/esp_common/esp-now/esp_now_gnrc.h b/cpu/esp_common/esp-now/esp_now_gnrc.h index 9d451d5cc1..fab28de7fd 100644 --- a/cpu/esp_common/esp-now/esp_now_gnrc.h +++ b/cpu/esp_common/esp-now/esp_now_gnrc.h @@ -27,14 +27,18 @@ extern "C" { /** * @brief Creates the ESP-NOW network interface * @see gnrc_netif_create + * @param [in] netif The interface. May not be `NULL`. * @param [in] stack The stack for the network interface's thread. * @param [in] stacksize Size of stack. * @param [in] priority Priority for the network interface's thread. * @param [in] name Name for the network interface. May be NULL. * @param [in] dev Device for the interface. + * + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_esp_now_create(char *stack, int stacksize, char priority, - char *name, netdev_t *dev); +int gnrc_netif_esp_now_create(gnrc_netif_t *netif, char *stack, int stacksize, char priority, + char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/cpu/esp_common/esp-wifi/esp_wifi_gnrc.c b/cpu/esp_common/esp-wifi/esp_wifi_gnrc.c index 56e1fcf947..09d8d897c1 100644 --- a/cpu/esp_common/esp-wifi/esp_wifi_gnrc.c +++ b/cpu/esp_common/esp-wifi/esp_wifi_gnrc.c @@ -24,6 +24,8 @@ #include "esp_wifi_params.h" #include "esp_wifi_netdev.h" +static gnrc_netif_t _netif; + /** the only ESP WiFi device */ extern esp_wifi_netdev_t _esp_wifi_dev; @@ -36,14 +38,14 @@ extern void esp_wifi_setup (esp_wifi_netdev_t* dev); void auto_init_esp_wifi (void) { esp_wifi_setup(&_esp_wifi_dev); - gnrc_netif_ethernet_create(_esp_wifi_stack, ESP_WIFI_STACKSIZE, + gnrc_netif_ethernet_create(&_netif, _esp_wifi_stack, ESP_WIFI_STACKSIZE, #ifdef MODULE_ESP_NOW - ESP_WIFI_PRIO - 1, + ESP_WIFI_PRIO - 1, #else - ESP_WIFI_PRIO, + ESP_WIFI_PRIO, #endif - "netif-esp-wifi", - (netdev_t *)&_esp_wifi_dev); + "netif-esp-wifi", + (netdev_t *)&_esp_wifi_dev); } #else /* defined(MODULE_ESP_WIFI) && defined(MODULE_GNRC_NETIF_ETHERNET) */ diff --git a/cpu/nrf5x_common/radio/nrfmin/nrfmin_gnrc.c b/cpu/nrf5x_common/radio/nrfmin/nrfmin_gnrc.c index dedff9abf8..6071dae512 100644 --- a/cpu/nrf5x_common/radio/nrfmin/nrfmin_gnrc.c +++ b/cpu/nrf5x_common/radio/nrfmin/nrfmin_gnrc.c @@ -49,6 +49,7 @@ * @brief Allocate the stack for the GNRC netdev thread to run in */ static char stack[NRFMIN_GNRC_STACKSIZE]; +static gnrc_netif_t _netif; static int hdr_netif_to_nrfmin(nrfmin_hdr_t *nrfmin, gnrc_pktsnip_t *pkt) { @@ -184,6 +185,6 @@ void gnrc_nrfmin_init(void) { /* setup the NRFMIN driver */ nrfmin_setup(); - gnrc_netif_create(stack, sizeof(stack), NRFMIN_GNRC_THREAD_PRIO, "nrfmin", + gnrc_netif_create(&_netif, stack, sizeof(stack), NRFMIN_GNRC_THREAD_PRIO, "nrfmin", (netdev_t *)&nrfmin_dev, &gnrc_nrfmin_ops); } diff --git a/drivers/cc1xxx_common/gnrc_netif_cc1xxx.c b/drivers/cc1xxx_common/gnrc_netif_cc1xxx.c index 25bcba2d24..12127ee2fd 100644 --- a/drivers/cc1xxx_common/gnrc_netif_cc1xxx.c +++ b/drivers/cc1xxx_common/gnrc_netif_cc1xxx.c @@ -166,10 +166,9 @@ static const gnrc_netif_ops_t cc1xxx_netif_ops = { .set = gnrc_netif_set_from_netdev, }; -gnrc_netif_t *gnrc_netif_cc1xxx_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_cc1xxx_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &cc1xxx_netif_ops); } diff --git a/drivers/include/cc1xxx_common.h b/drivers/include/cc1xxx_common.h index f93bee855d..238444bf39 100644 --- a/drivers/include/cc1xxx_common.h +++ b/drivers/include/cc1xxx_common.h @@ -115,6 +115,7 @@ typedef struct netdev_radio_rx_info cc1xxx_rx_info_t; /** * @brief Creates a CC110x/CC1200 network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the network interface's thread. @@ -123,11 +124,11 @@ typedef struct netdev_radio_rx_info cc1xxx_rx_info_t; * * @see @ref gnrc_netif_create() * - * @return The network interface on success. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_cc1xxx_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev); +int gnrc_netif_cc1xxx_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/drivers/xbee/gnrc_xbee.c b/drivers/xbee/gnrc_xbee.c index 20476dc6fd..5a9573a83d 100644 --- a/drivers/xbee/gnrc_xbee.c +++ b/drivers/xbee/gnrc_xbee.c @@ -167,10 +167,9 @@ static const gnrc_netif_ops_t _xbee_ops = { .set = gnrc_netif_set_from_netdev, }; -gnrc_netif_t *gnrc_netif_xbee_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_xbee_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &_xbee_ops); } diff --git a/drivers/xbee/include/gnrc_netif_xbee.h b/drivers/xbee/include/gnrc_netif_xbee.h index f34baeef48..b881c9889c 100644 --- a/drivers/xbee/include/gnrc_netif_xbee.h +++ b/drivers/xbee/include/gnrc_netif_xbee.h @@ -24,9 +24,23 @@ extern "C" { #endif -gnrc_netif_t *gnrc_netif_xbee_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev); +/** + * @brief Creates an Xbee network interface + * + * @param[in] netif The interface. May not be `NULL`. + * @param[in] stack The stack for the network interface's thread. + * @param[in] stacksize Size of @p stack. + * @param[in] priority Priority for the network interface's thread. + * @param[in] name Name for the network interface. May be NULL. + * @param[in] dev Device for the interface. + * + * @see @ref gnrc_netif_create() + * + * @return 0 on success + * @return negative number on error + */ +int gnrc_netif_xbee_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/pkg/nimble/netif/nimble_netif.c b/pkg/nimble/netif/nimble_netif.c index 0a69520640..bf35a6b62d 100644 --- a/pkg/nimble/netif/nimble_netif.c +++ b/pkg/nimble/netif/nimble_netif.c @@ -518,6 +518,7 @@ static int _on_gap_slave_evt(struct ble_gap_event *event, void *arg) return 0; } +static gnrc_netif_t _netif; void nimble_netif_init(void) { int res; @@ -537,7 +538,7 @@ void nimble_netif_init(void) assert(res == 0); (void)res; - gnrc_netif_create(_stack, sizeof(_stack), GNRC_NETIF_PRIO, + gnrc_netif_create(&_netif, _stack, sizeof(_stack), GNRC_NETIF_PRIO, "nimble_netif", &_nimble_netdev_dummy, &_nimble_netif_ops); } diff --git a/pkg/nordic_softdevice_ble/src/gnrc_nordic_ble_6lowpan.c b/pkg/nordic_softdevice_ble/src/gnrc_nordic_ble_6lowpan.c index 4c56d1c186..40cf5ffa92 100644 --- a/pkg/nordic_softdevice_ble/src/gnrc_nordic_ble_6lowpan.c +++ b/pkg/nordic_softdevice_ble/src/gnrc_nordic_ble_6lowpan.c @@ -70,6 +70,7 @@ static char _stack[(THREAD_STACKSIZE_DEFAULT + DEBUG_EXTRA_STACKSIZE)]; static gnrc_netif_t *_ble_netif = NULL; +static gnrc_netif_t _netif; static uint8_t _sendbuf[BLE_SIXLOWPAN_MTU]; @@ -281,6 +282,6 @@ static netdev_t _ble_dummy_dev = { void gnrc_nordic_ble_6lowpan_init(void) { - gnrc_netif_create(_stack, sizeof(_stack), BLE_PRIO, + gnrc_netif_create(&_netif, _stack, sizeof(_stack), BLE_PRIO, "ble", &_ble_dummy_dev, &_ble_ops); } diff --git a/sys/include/net/gnrc/gomach/gomach.h b/sys/include/net/gnrc/gomach/gomach.h index 1f7d7fb307..de0b37ce4f 100644 --- a/sys/include/net/gnrc/gomach/gomach.h +++ b/sys/include/net/gnrc/gomach/gomach.h @@ -354,6 +354,7 @@ extern "C" { /** * @brief Creates an IEEE 802.15.4 GoMacH network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the GoMacH network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the GoMacH network interface's thread. @@ -362,12 +363,11 @@ extern "C" { * * @see @ref gnrc_netif_create() * - * @return The network interface on success. - * @return NULL, on error. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_gomach_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev); +int gnrc_netif_gomach_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/sys/include/net/gnrc/lwmac/lwmac.h b/sys/include/net/gnrc/lwmac/lwmac.h index cd5d078c50..3b3026501b 100644 --- a/sys/include/net/gnrc/lwmac/lwmac.h +++ b/sys/include/net/gnrc/lwmac/lwmac.h @@ -300,6 +300,7 @@ extern "C" { /** * @brief Creates an IEEE 802.15.4 LWMAC network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the LWMAC network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the LWMAC network interface's thread. @@ -308,12 +309,11 @@ extern "C" { * * @see @ref gnrc_netif_create() * - * @return The network interface on success. - * @return NULL, on error. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_lwmac_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev); +int gnrc_netif_lwmac_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } #endif diff --git a/sys/include/net/gnrc/netif.h b/sys/include/net/gnrc/netif.h index 1c34b10288..7a0f47fd98 100644 --- a/sys/include/net/gnrc/netif.h +++ b/sys/include/net/gnrc/netif.h @@ -246,6 +246,7 @@ void gnrc_netif_init_devs(void); /** * @brief Creates a network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the network interface's thread. @@ -256,15 +257,12 @@ void gnrc_netif_init_devs(void); * @note If @ref DEVELHELP is defined netif_params_t::name is used as the * name of the network interface's thread. * - * @attention Fails and crashes (assertion error with @ref DEVELHELP or - * segmentation fault without) if `GNRC_NETIF_NUMOF` is lower than - * the number of calls to this function. - * - * @return The network interface on success. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_create(char *stack, int stacksize, char priority, - const char *name, netdev_t *dev, - const gnrc_netif_ops_t *ops); +int gnrc_netif_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, const char *name, netdev_t *dev, + const gnrc_netif_ops_t *ops); /** * @brief Get number of network interfaces actually allocated diff --git a/sys/include/net/gnrc/netif/ethernet.h b/sys/include/net/gnrc/netif/ethernet.h index 3f2dd5ac14..49eb400b1d 100644 --- a/sys/include/net/gnrc/netif/ethernet.h +++ b/sys/include/net/gnrc/netif/ethernet.h @@ -27,6 +27,7 @@ extern "C" { /** * @brief Creates an Ethernet network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the network interface's thread. @@ -35,14 +36,11 @@ extern "C" { * * @see @ref gnrc_netif_create() * - * @attention Fails and crashes (assertion error with @ref DEVELHELP or - * segmentation fault without) if `GNRC_NETIF_NUMOF` is lower than - * the number of calls to this function. - * - * @return The network interface on success. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_ethernet_create(char *stack, int stacksize, char priority, - char *name, netdev_t *dev); +int gnrc_netif_ethernet_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/sys/include/net/gnrc/netif/ieee802154.h b/sys/include/net/gnrc/netif/ieee802154.h index 96000e5769..c9e8c34d9b 100644 --- a/sys/include/net/gnrc/netif/ieee802154.h +++ b/sys/include/net/gnrc/netif/ieee802154.h @@ -27,6 +27,7 @@ extern "C" { /** * @brief Creates an IEEE 802.15.4 network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the network interface's thread. @@ -35,12 +36,11 @@ extern "C" { * * @see @ref gnrc_netif_create() * - * @return The network interface on success. - * @return NULL, on error. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_ieee802154_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev); +int gnrc_netif_ieee802154_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/sys/include/net/gnrc/netif/lorawan_base.h b/sys/include/net/gnrc/netif/lorawan_base.h index 4e0abaf173..2fb48b5abf 100644 --- a/sys/include/net/gnrc/netif/lorawan_base.h +++ b/sys/include/net/gnrc/netif/lorawan_base.h @@ -27,6 +27,7 @@ extern "C" { /** * @brief Creates a raw network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the network interface's thread. @@ -35,11 +36,11 @@ extern "C" { * * @see @ref gnrc_netif_create() * - * @return The network interface on success. - * @return NULL, on error. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_lorawan_create(char *stack, int stacksize, char priority, - char *name, netdev_t *dev); +int gnrc_netif_lorawan_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/sys/include/net/gnrc/netif/raw.h b/sys/include/net/gnrc/netif/raw.h index 808798fe74..761d11fb70 100644 --- a/sys/include/net/gnrc/netif/raw.h +++ b/sys/include/net/gnrc/netif/raw.h @@ -28,6 +28,7 @@ extern "C" { /** * @brief Creates a raw network interface * + * @param[in] netif The interface. May not be `NULL`. * @param[in] stack The stack for the network interface's thread. * @param[in] stacksize Size of @p stack. * @param[in] priority Priority for the network interface's thread. @@ -36,11 +37,11 @@ extern "C" { * * @see @ref gnrc_netif_create() * - * @return The network interface on success. - * @return NULL, on error. + * @return 0 on success + * @return negative number on error */ -gnrc_netif_t *gnrc_netif_raw_create(char *stack, int stacksize, char priority, - char *name, netdev_t *dev); +int gnrc_netif_raw_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev); #ifdef __cplusplus } diff --git a/sys/net/gnrc/link_layer/gomach/gomach.c b/sys/net/gnrc/link_layer/gomach/gomach.c index 8eedc17e72..2deeb93b2d 100644 --- a/sys/net/gnrc/link_layer/gomach/gomach.c +++ b/sys/net/gnrc/link_layer/gomach/gomach.c @@ -70,11 +70,10 @@ static const gnrc_netif_ops_t gomach_ops = { .msg_handler = _gomach_msg_handler, }; -gnrc_netif_t *gnrc_netif_gomach_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_gomach_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &gomach_ops); } diff --git a/sys/net/gnrc/link_layer/lwmac/lwmac.c b/sys/net/gnrc/link_layer/lwmac/lwmac.c index d982a26678..2c08f49217 100644 --- a/sys/net/gnrc/link_layer/lwmac/lwmac.c +++ b/sys/net/gnrc/link_layer/lwmac/lwmac.c @@ -76,11 +76,10 @@ static const gnrc_netif_ops_t lwmac_ops = { .msg_handler = _lwmac_msg_handler, }; -gnrc_netif_t *gnrc_netif_lwmac_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_lwmac_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &lwmac_ops); } diff --git a/sys/net/gnrc/netif/ethernet/gnrc_netif_ethernet.c b/sys/net/gnrc/netif/ethernet/gnrc_netif_ethernet.c index d5ba0ec6a7..1a1336ad81 100644 --- a/sys/net/gnrc/netif/ethernet/gnrc_netif_ethernet.c +++ b/sys/net/gnrc/netif/ethernet/gnrc_netif_ethernet.c @@ -49,11 +49,10 @@ static const gnrc_netif_ops_t ethernet_ops = { .set = _set, }; -gnrc_netif_t *gnrc_netif_ethernet_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_ethernet_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, ðernet_ops); } diff --git a/sys/net/gnrc/netif/gnrc_netif.c b/sys/net/gnrc/netif/gnrc_netif.c index cc8196b11e..186edc45ed 100644 --- a/sys/net/gnrc/netif/gnrc_netif.c +++ b/sys/net/gnrc/netif/gnrc_netif.c @@ -46,7 +46,7 @@ static void _configure_netdev(netdev_t *dev); static void *_gnrc_netif_thread(void *args); static void _event_cb(netdev_t *dev, netdev_event_t event); -gnrc_netif_t *gnrc_netif_create(char *stack, int stacksize, char priority, +int gnrc_netif_create(gnrc_netif_t *netif, char *stack, int stacksize, char priority, const char *name, netdev_t *netdev, const gnrc_netif_ops_t *ops) { @@ -71,7 +71,7 @@ gnrc_netif_t *gnrc_netif_create(char *stack, int stacksize, char priority, _gnrc_netif_thread, (void *)netif, name); (void)res; assert(res > 0); - return netif; + return 0; } bool gnrc_netif_dev_is_6lo(const gnrc_netif_t *netif) @@ -107,15 +107,7 @@ unsigned gnrc_netif_numof(void) gnrc_netif_t *gnrc_netif_iter(const gnrc_netif_t *prev) { - assert((prev == NULL) || (prev >= _netifs)); - for (const gnrc_netif_t *netif = (prev == NULL) ? _netifs : (prev + 1); - netif < (_netifs + GNRC_NETIF_NUMOF); netif++) { - if (netif->ops != NULL) { - /* we don't care about external modification */ - return (gnrc_netif_t *)netif; - } - } - return NULL; + return (gnrc_netif_t*) netif_iter((netif_t*) prev); } int gnrc_netif_get_from_netdev(gnrc_netif_t *netif, gnrc_netapi_opt_t *opt) diff --git a/sys/net/gnrc/netif/gnrc_netif_raw.c b/sys/net/gnrc/netif/gnrc_netif_raw.c index 84ae3eb678..8d28000f19 100644 --- a/sys/net/gnrc/netif/gnrc_netif_raw.c +++ b/sys/net/gnrc/netif/gnrc_netif_raw.c @@ -35,11 +35,10 @@ static const gnrc_netif_ops_t raw_ops = { .set = gnrc_netif_set_from_netdev, }; -gnrc_netif_t *gnrc_netif_raw_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_raw_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &raw_ops); } diff --git a/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c b/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c index ad15ec080a..5e2879619a 100644 --- a/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c +++ b/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c @@ -39,11 +39,10 @@ static const gnrc_netif_ops_t ieee802154_ops = { .set = gnrc_netif_set_from_netdev, }; -gnrc_netif_t *gnrc_netif_ieee802154_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_ieee802154_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &ieee802154_ops); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_at86rf215.c b/sys/net/gnrc/netif/init_devs/auto_init_at86rf215.c index 17b733b517..ea606e46d5 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_at86rf215.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_at86rf215.c @@ -57,28 +57,31 @@ #define AT86RF215_NUM ARRAY_SIZE(at86rf215_params) static at86rf215_t at86rf215_devs[AT86RF215_NUM * USED_BANDS]; +static gnrc_netif_t _netif[AT86RF215_NUM * USED_BANDS]; static char _at86rf215_stacks[AT86RF215_NUM * USED_BANDS][AT86RF215_MAC_STACKSIZE]; -static inline void _setup_netif(void* netdev, void* stack, int prio) { - if (netdev == NULL) { +static inline void _setup_netif(gnrc_netif_t *netif, void* netdev, void* stack, + int prio) +{ + if (netif == NULL || netdev == NULL) { return; } #if defined(MODULE_GNRC_GOMACH) - gnrc_netif_gomach_create(stack, + gnrc_netif_gomach_create(netif, stack, AT86RF215_MAC_STACKSIZE, prio, "at86rf215-gomach", netdev); #elif defined(MODULE_GNRC_LWMAC) - gnrc_netif_lwmac_create(stack, - AT86RF215_MAC_STACKSIZE, - prio, "at86rf215-lwmac", - netdev); + gnrc_netif_lwmac_create(netif, stack, + AT86RF215_MAC_STACKSIZE, + prio, "at86rf215-lwmac", + netdev); #else - gnrc_netif_ieee802154_create(stack, - AT86RF215_MAC_STACKSIZE, - prio, "at86rf215", - netdev); + gnrc_netif_ieee802154_create(netif, stack, + AT86RF215_MAC_STACKSIZE, + prio, "at86rf215", + netdev); #endif } @@ -92,26 +95,30 @@ void auto_init_at86rf215(void) at86rf215_t *dev_24 = NULL; void *stack_09 = NULL; void *stack_24 = NULL; + gnrc_netif_t *netif_09 = NULL; + gnrc_netif_t *netif_24 = NULL; if (IS_USED(MODULE_AT86RF215_SUBGHZ)) { dev_09 = &at86rf215_devs[i]; stack_09 = &_at86rf215_stacks[i]; + netif_09 = &_netif[i]; ++i; } if (IS_USED(MODULE_AT86RF215_24GHZ)) { dev_24 = &at86rf215_devs[i]; stack_24 = &_at86rf215_stacks[i]; + netif_24 = &_netif[i]; ++i; } at86rf215_setup(dev_09, dev_24, &at86rf215_params[j++]); /* setup sub-GHz interface */ - _setup_netif(dev_09, stack_09, AT86RF215_MAC_PRIO_SUBGHZ); + _setup_netif(netif_09, dev_09, stack_09, AT86RF215_MAC_PRIO_SUBGHZ); /* setup 2.4-GHz interface */ - _setup_netif(dev_24, stack_24, AT86RF215_MAC_PRIO); + _setup_netif(netif_24, dev_24, stack_24, AT86RF215_MAC_PRIO); } } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_at86rf2xx.c b/sys/net/gnrc/netif/init_devs/auto_init_at86rf2xx.c index 88b0767290..f5dc4094b5 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_at86rf2xx.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_at86rf2xx.c @@ -45,6 +45,7 @@ #define AT86RF2XX_NUM ARRAY_SIZE(at86rf2xx_params) static at86rf2xx_t at86rf2xx_devs[AT86RF2XX_NUM]; +static gnrc_netif_t _netif[AT86RF2XX_NUM]; static char _at86rf2xx_stacks[AT86RF2XX_NUM][AT86RF2XX_MAC_STACKSIZE]; void auto_init_at86rf2xx(void) @@ -54,17 +55,17 @@ void auto_init_at86rf2xx(void) at86rf2xx_setup(&at86rf2xx_devs[i], &at86rf2xx_params[i]); #if defined(MODULE_GNRC_GOMACH) - gnrc_netif_gomach_create(_at86rf2xx_stacks[i], + gnrc_netif_gomach_create(&_netif[i], _at86rf2xx_stacks[i], AT86RF2XX_MAC_STACKSIZE, AT86RF2XX_MAC_PRIO, "at86rf2xx-gomach", (netdev_t *)&at86rf2xx_devs[i]); #elif defined(MODULE_GNRC_LWMAC) - gnrc_netif_lwmac_create(_at86rf2xx_stacks[i], + gnrc_netif_lwmac_create(&_netif[i], _at86rf2xx_stacks[i], AT86RF2XX_MAC_STACKSIZE, AT86RF2XX_MAC_PRIO, "at86rf2xx-lwmac", (netdev_t *)&at86rf2xx_devs[i]); #else - gnrc_netif_ieee802154_create(_at86rf2xx_stacks[i], + gnrc_netif_ieee802154_create(&_netif[i], _at86rf2xx_stacks[i], AT86RF2XX_MAC_STACKSIZE, AT86RF2XX_MAC_PRIO, "at86rf2xx", (netdev_t *)&at86rf2xx_devs[i]); diff --git a/sys/net/gnrc/netif/init_devs/auto_init_cc110x.c b/sys/net/gnrc/netif/init_devs/auto_init_cc110x.c index 7d7da8f90f..1caddc7d0b 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_cc110x.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_cc110x.c @@ -63,6 +63,7 @@ * @brief Statically allocate memory for device descriptors */ cc110x_t _cc110x_devs[CC110X_NUM]; +static gnrc_netif_t _netif[CC110X_NUM]; /** * @brief Statically allocate memory for the MAC layer thread(s) */ @@ -74,7 +75,7 @@ void auto_init_cc110x(void) LOG_DEBUG("[auto_init_netif] initializing cc110x #%u\n", i); cc110x_setup(&_cc110x_devs[i], &cc110x_params[i]); - gnrc_netif_cc1xxx_create(stacks[i], CC110X_MAC_STACKSIZE, CC110X_MAC_PRIO, + gnrc_netif_cc1xxx_create(&_netif[i], stacks[i], CC110X_MAC_STACKSIZE, CC110X_MAC_PRIO, "cc110x", (netdev_t *)&_cc110x_devs[i]); } } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_cc2420.c b/sys/net/gnrc/netif/init_devs/auto_init_cc2420.c index a53287a0a5..8834897fee 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_cc2420.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_cc2420.c @@ -50,6 +50,7 @@ */ static cc2420_t cc2420_devs[CC2420_NUMOF]; static char _cc2420_stacks[CC2420_NUMOF][CC2420_MAC_STACKSIZE]; +static gnrc_netif_t _netif[CC2420_NUMOF]; /** @} */ void auto_init_cc2420(void) @@ -58,7 +59,7 @@ void auto_init_cc2420(void) LOG_DEBUG("[auto_init_netif] initializing cc2420 #%u\n", i); cc2420_setup(&cc2420_devs[i], &cc2420_params[i]); - gnrc_netif_ieee802154_create(_cc2420_stacks[i], CC2420_MAC_STACKSIZE, + gnrc_netif_ieee802154_create(&_netif[i], _cc2420_stacks[i], CC2420_MAC_STACKSIZE, CC2420_MAC_PRIO, "cc2420", (netdev_t *)&cc2420_devs[i]); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_cc2538_rf.c b/sys/net/gnrc/netif/init_devs/auto_init_cc2538_rf.c index 62b2b0b11e..c3b0d04bf0 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_cc2538_rf.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_cc2538_rf.c @@ -35,13 +35,14 @@ static cc2538_rf_t cc2538_rf_dev; static char _cc2538_rf_stack[CC2538_MAC_STACKSIZE]; +static gnrc_netif_t _netif; void auto_init_cc2538_rf(void) { LOG_DEBUG("[auto_init_netif] initializing cc2538 radio\n"); cc2538_setup(&cc2538_rf_dev); - gnrc_netif_ieee802154_create(_cc2538_rf_stack, + gnrc_netif_ieee802154_create(&_netif, _cc2538_rf_stack, CC2538_MAC_STACKSIZE, CC2538_MAC_PRIO, "cc2538_rf", (netdev_t *)&cc2538_rf_dev); diff --git a/sys/net/gnrc/netif/init_devs/auto_init_cdcecm.c b/sys/net/gnrc/netif/init_devs/auto_init_cdcecm.c index 617e85b2a4..5d7e25d2b8 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_cdcecm.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_cdcecm.c @@ -43,6 +43,7 @@ extern usbus_cdcecm_device_t cdcecm; * @brief Stacks for the MAC layer threads */ static char _netdev_eth_stack[CDCECM_MAC_STACKSIZE]; +static gnrc_netif_t _netif; extern void cdcecm_netdev_setup(usbus_cdcecm_device_t *cdcecm); void auto_init_netdev_cdcecm(void) @@ -51,7 +52,7 @@ void auto_init_netdev_cdcecm(void) cdcecm_netdev_setup(&cdcecm); /* initialize netdev<->gnrc adapter state */ - gnrc_netif_ethernet_create(_netdev_eth_stack, CDCECM_MAC_STACKSIZE, + gnrc_netif_ethernet_create(&_netif, _netdev_eth_stack, CDCECM_MAC_STACKSIZE, CDCECM_MAC_PRIO, "cdcecm", &cdcecm.netdev); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_dose.c b/sys/net/gnrc/netif/init_devs/auto_init_dose.c index f6b61c3b4d..5b71d15eb1 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_dose.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_dose.c @@ -38,6 +38,7 @@ static char _netdev_eth_stack[DOSE_NUM][DOSE_MAC_STACKSIZE]; static dose_t dose[DOSE_NUM]; +static gnrc_netif_t _netif[DOSE_NUM]; void auto_init_dose(void) { @@ -46,7 +47,7 @@ void auto_init_dose(void) LOG_DEBUG("[auto_init_netif] initializing dose #%d.\n", i); dose_setup(&dose[i], &dose_params[i]); - gnrc_netif_ethernet_create(_netdev_eth_stack[i], DOSE_MAC_STACKSIZE, + gnrc_netif_ethernet_create(&_netif[i], _netdev_eth_stack[i], DOSE_MAC_STACKSIZE, DOSE_MAC_PRIO, "dose", (netdev_t *)&dose[i]); } } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_enc28j60.c b/sys/net/gnrc/netif/init_devs/auto_init_enc28j60.c index 878984697e..bdd434a317 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_enc28j60.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_enc28j60.c @@ -48,6 +48,8 @@ static enc28j60_t dev[ENC28J60_NUM]; /** @} */ +static gnrc_netif_t _netif[ENC28J60_NUM]; + /** * @brief Stacks for the MAC layer threads */ @@ -61,7 +63,7 @@ void auto_init_enc28j60(void) /* setup netdev device */ enc28j60_setup(&dev[i], &enc28j60_params[i]); - gnrc_netif_ethernet_create(stack[i], ENC28J60_MAC_STACKSIZE, + gnrc_netif_ethernet_create(&_netif[i], stack[i], ENC28J60_MAC_STACKSIZE, ENC28J60_MAC_PRIO, "enc28j60", (netdev_t *)&dev[i]); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_encx24j600.c b/sys/net/gnrc/netif/init_devs/auto_init_encx24j600.c index 860f2bbcf7..c8640330e4 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_encx24j600.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_encx24j600.c @@ -25,6 +25,7 @@ #include "net/gnrc/netif/ethernet.h" static encx24j600_t encx24j600; +static gnrc_netif_t _netif; /** * @brief Define stack parameters for the MAC layer thread @@ -52,7 +53,7 @@ void auto_init_encx24j600(void) encx24j600_setup(&encx24j600, &p); /* initialize netdev<->gnrc adapter state */ - gnrc_netif_ethernet_create(_netdev_eth_stack, ENCX24J600_MAC_STACKSIZE, + gnrc_netif_ethernet_create(&_netif, _netdev_eth_stack, ENCX24J600_MAC_STACKSIZE, ENCX24J600_MAC_PRIO, "encx24j600", (netdev_t *)&encx24j600); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_ethos.c b/sys/net/gnrc/netif/init_devs/auto_init_ethos.c index 7cdeaac8a3..8fd33040a9 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_ethos.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_ethos.c @@ -30,6 +30,8 @@ */ ethos_t ethos; +static gnrc_netif_t _netif; + /** * @brief Define stack parameters for the MAC layer thread * @{ @@ -59,7 +61,7 @@ void auto_init_ethos(void) ethos_setup(ðos, &p); /* initialize netdev<->gnrc adapter state */ - gnrc_netif_ethernet_create(_netdev_eth_stack, ETHOS_MAC_STACKSIZE, + gnrc_netif_ethernet_create(&_netif, _netdev_eth_stack, ETHOS_MAC_STACKSIZE, ETHOS_MAC_PRIO, "ethos", (netdev_t *)ðos); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_kw2xrf.c b/sys/net/gnrc/netif/init_devs/auto_init_kw2xrf.c index 83c79296b4..f181cbb117 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_kw2xrf.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_kw2xrf.c @@ -44,6 +44,8 @@ static kw2xrf_t kw2xrf_devs[KW2XRF_NUM]; static char _kw2xrf_stacks[KW2XRF_NUM][KW2XRF_MAC_STACKSIZE]; +static gnrc_netif_t _netif[KW2XRF_NUM]; + void auto_init_kw2xrf(void) { for (unsigned i = 0; i < KW2XRF_NUM; i++) { @@ -51,7 +53,7 @@ void auto_init_kw2xrf(void) LOG_DEBUG("[auto_init_netif] initializing kw2xrf #%u\n", i); kw2xrf_setup(&kw2xrf_devs[i], (kw2xrf_params_t*) p); - gnrc_netif_ieee802154_create(_kw2xrf_stacks[i], KW2XRF_MAC_STACKSIZE, + gnrc_netif_ieee802154_create(&_netif[i], _kw2xrf_stacks[i], KW2XRF_MAC_STACKSIZE, KW2XRF_MAC_PRIO, "kw2xrf", (netdev_t *)&kw2xrf_devs[i]); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_kw41zrf.c b/sys/net/gnrc/netif/init_devs/auto_init_kw41zrf.c index f17246b2bd..6f80e44408 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_kw41zrf.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_kw41zrf.c @@ -52,6 +52,7 @@ static kw41zrf_t kw41zrf_devs[KW41ZRF_NUMOF]; static char _kw41zrf_stacks[KW41ZRF_NUMOF][KW41ZRF_NETIF_STACKSIZE]; +static gnrc_netif_t _netif[KW41ZRF_NUMOF]; void auto_init_kw41zrf(void) { @@ -60,15 +61,15 @@ void auto_init_kw41zrf(void) kw41zrf_setup(&kw41zrf_devs[i]); #if defined(MODULE_GNRC_GOMACH) - gnrc_netif_gomach_create(_kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, - KW41ZRF_NETIF_PRIO, "kw41zrf-gomach", - (netdev_t *)&kw41zrf_devs[i]); + gnrc_netif_gomach_create(&_netif[i], _kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, + KW41ZRF_NETIF_PRIO, "kw41zrf-gomach", + (netdev_t *)&kw41zrf_devs[i]); #elif defined(MODULE_GNRC_LWMAC) - gnrc_netif_lwmac_create(_kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, - KW41ZRF_NETIF_PRIO, "kw41zrf-lwmac", - (netdev_t *)&kw41zrf_devs[i]); + gnrc_netif_lwmac_create(&_netif[i], _kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, + KW41ZRF_NETIF_PRIO, "kw41zrf-lwmac", + (netdev_t *)&kw41zrf_devs[i]); #else - gnrc_netif_ieee802154_create(_kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, + gnrc_netif_ieee802154_create(&_netif[i], _kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, KW41ZRF_NETIF_PRIO, "kw41zrf", (netdev_t *)&kw41zrf_devs[i]); #endif diff --git a/sys/net/gnrc/netif/init_devs/auto_init_mrf24j40.c b/sys/net/gnrc/netif/init_devs/auto_init_mrf24j40.c index 1bd5176d84..b72a9caf8a 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_mrf24j40.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_mrf24j40.c @@ -41,13 +41,15 @@ static mrf24j40_t mrf24j40_devs[MRF24J40_NUM]; static char _mrf24j40_stacks[MRF24J40_NUM][MRF24J40_MAC_STACKSIZE]; +static gnrc_netif_t _netif[MRF24J40_NUM]; + void auto_init_mrf24j40(void) { for (unsigned i = 0; i < MRF24J40_NUM; i++) { LOG_DEBUG("[auto_init_netif] initializing mrf24j40 #%u\n", i); mrf24j40_setup(&mrf24j40_devs[i], &mrf24j40_params[i]); - gnrc_netif_ieee802154_create(_mrf24j40_stacks[i], + gnrc_netif_ieee802154_create(&_netif[i], _mrf24j40_stacks[i], MRF24J40_MAC_STACKSIZE, MRF24J40_MAC_PRIO, "mrf24j40", (netdev_t *)&mrf24j40_devs[i]); diff --git a/sys/net/gnrc/netif/init_devs/auto_init_netdev_tap.c b/sys/net/gnrc/netif/init_devs/auto_init_netdev_tap.c index 05c4ba86e2..eb683b7723 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_netdev_tap.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_netdev_tap.c @@ -30,6 +30,8 @@ static netdev_tap_t netdev_tap[NETDEV_TAP_MAX]; static char _netdev_eth_stack[NETDEV_TAP_MAX][TAP_MAC_STACKSIZE]; +static gnrc_netif_t _netif[NETDEV_TAP_MAX]; + void auto_init_netdev_tap(void) { for (unsigned i = 0; i < NETDEV_TAP_MAX; i++) { @@ -39,7 +41,7 @@ void auto_init_netdev_tap(void) i, *(p->tap_name)); netdev_tap_setup(&netdev_tap[i], p); - gnrc_netif_ethernet_create(_netdev_eth_stack[i], TAP_MAC_STACKSIZE, + gnrc_netif_ethernet_create(&_netif[i], _netdev_eth_stack[i], TAP_MAC_STACKSIZE, TAP_MAC_PRIO, "gnrc_netdev_tap", &netdev_tap[i].netdev); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_nrf802154.c b/sys/net/gnrc/netif/init_devs/auto_init_nrf802154.c index 2733c2206c..11cdf5623c 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_nrf802154.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_nrf802154.c @@ -38,12 +38,13 @@ /** @} */ static char _stack[NRF802154_MAC_STACKSIZE]; +static gnrc_netif_t _netif; void auto_init_nrf802154(void) { LOG_DEBUG("[auto_init_netif] initializing nrf802154\n"); - gnrc_netif_ieee802154_create(_stack, + gnrc_netif_ieee802154_create(&_netif, _stack, NRF802154_MAC_STACKSIZE, NRF802154_MAC_PRIO, "nrf802154", (netdev_t *)&nrf802154_dev); diff --git a/sys/net/gnrc/netif/init_devs/auto_init_slipdev.c b/sys/net/gnrc/netif/init_devs/auto_init_slipdev.c index 0e019d6be0..ef398355ba 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_slipdev.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_slipdev.c @@ -41,6 +41,8 @@ static slipdev_t slipdevs[SLIPDEV_NUM]; static char _slipdev_stacks[SLIPDEV_NUM][SLIPDEV_STACKSIZE]; +static gnrc_netif_t _netif[SLIPDEV_NUM]; + void auto_init_slipdev(void) { for (unsigned i = 0; i < SLIPDEV_NUM; i++) { @@ -49,7 +51,7 @@ void auto_init_slipdev(void) LOG_DEBUG("[auto_init_netif] initializing slip #%u\n", i); slipdev_setup(&slipdevs[i], p); - gnrc_netif_raw_create(_slipdev_stacks[i], SLIPDEV_STACKSIZE, + gnrc_netif_raw_create(&_netif[i], _slipdev_stacks[i], SLIPDEV_STACKSIZE, SLIPDEV_PRIO, "slipdev", (netdev_t *)&slipdevs[i]); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_socket_zep.c b/sys/net/gnrc/netif/init_devs/auto_init_socket_zep.c index e086b9e3d9..a28f8570ec 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_socket_zep.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_socket_zep.c @@ -40,6 +40,7 @@ */ static char _socket_zep_stacks[SOCKET_ZEP_MAX][SOCKET_ZEP_MAC_STACKSIZE]; static socket_zep_t _socket_zeps[SOCKET_ZEP_MAX]; +static gnrc_netif_t _netif[SOCKET_ZEP_MAX]; void auto_init_socket_zep(void) { @@ -47,7 +48,7 @@ void auto_init_socket_zep(void) LOG_DEBUG("[auto_init_netif: initializing socket ZEP device #%u\n", i); /* setup netdev device */ socket_zep_setup(&_socket_zeps[i], &socket_zep_params[i]); - gnrc_netif_ieee802154_create(_socket_zep_stacks[i], + gnrc_netif_ieee802154_create(&_netif[i], _socket_zep_stacks[i], SOCKET_ZEP_MAC_STACKSIZE, SOCKET_ZEP_MAC_PRIO, "socket_zep", (netdev_t *)&_socket_zeps[i]); diff --git a/sys/net/gnrc/netif/init_devs/auto_init_stm32_eth.c b/sys/net/gnrc/netif/init_devs/auto_init_stm32_eth.c index 90096922f2..e58b5d7507 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_stm32_eth.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_stm32_eth.c @@ -14,13 +14,14 @@ static netdev_t stm32eth; static char stack[THREAD_STACKSIZE_DEFAULT]; +static gnrc_netif_t _netif; void auto_init_stm32_eth(void) { /* setup netdev device */ stm32_eth_netdev_setup(&stm32eth); /* initialize netdev <-> gnrc adapter state */ - gnrc_netif_ethernet_create(stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "stm32_eth", + gnrc_netif_ethernet_create(&_netif, stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "stm32_eth", &stm32eth); } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_sx127x.c b/sys/net/gnrc/netif/init_devs/auto_init_sx127x.c index 46536e8481..36c349f72d 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_sx127x.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_sx127x.c @@ -49,6 +49,7 @@ */ static sx127x_t sx127x_devs[SX127X_NUMOF]; static char sx127x_stacks[SX127X_NUMOF][SX127X_STACKSIZE]; +static gnrc_netif_t _netif[SX127X_NUMOF]; void auto_init_sx127x(void) { @@ -64,10 +65,10 @@ void auto_init_sx127x(void) /* Currently only one lora device is supported */ assert(SX127X_NUMOF == 1); - gnrc_netif_lorawan_create(sx127x_stacks[i], SX127X_STACKSIZE, SX127X_PRIO, + gnrc_netif_lorawan_create(&_netif[i], sx127x_stacks[i], SX127X_STACKSIZE, SX127X_PRIO, "sx127x", (netdev_t *)&sx127x_devs[i]); #else - gnrc_netif_raw_create(sx127x_stacks[i], SX127X_STACKSIZE, SX127X_PRIO, + gnrc_netif_raw_create(&_netif[i], sx127x_stacks[i], SX127X_STACKSIZE, SX127X_PRIO, "sx127x", (netdev_t *)&sx127x_devs[i]); #endif } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_w5100.c b/sys/net/gnrc/netif/init_devs/auto_init_w5100.c index 0fdcdd2b51..32718cfead 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_w5100.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_w5100.c @@ -44,6 +44,8 @@ static w5100_t dev[W5100_NUM]; /** @} */ +static gnrc_netif_t _netif[W5100_NUM]; + /** * @brief Stacks for the MAC layer threads */ @@ -58,7 +60,7 @@ void auto_init_w5100(void) /* setup netdev device */ w5100_setup(&dev[i], &w5100_params[i]); /* initialize netdev <-> gnrc adapter state */ - gnrc_netif_ethernet_create(stack[i], MAC_STACKSIZE, MAC_PRIO, "w5100", + gnrc_netif_ethernet_create(&_netif[i], stack[i], MAC_STACKSIZE, MAC_PRIO, "w5100", (netdev_t *)&dev[i]); } } diff --git a/sys/net/gnrc/netif/init_devs/auto_init_xbee.c b/sys/net/gnrc/netif/init_devs/auto_init_xbee.c index fc52a9c1b3..046c35185a 100644 --- a/sys/net/gnrc/netif/init_devs/auto_init_xbee.c +++ b/sys/net/gnrc/netif/init_devs/auto_init_xbee.c @@ -46,13 +46,15 @@ static xbee_t xbee_devs[XBEE_NUM]; static char stacks[XBEE_NUM][XBEE_MAC_STACKSIZE]; +static gnrc_netif_t _netif[XBEE_NUM]; + void auto_init_xbee(void) { for (unsigned i = 0; i < XBEE_NUM; i++) { LOG_DEBUG("[auto_init_netif] initializing xbee #%u\n", i); xbee_setup(&xbee_devs[i], &xbee_params[i]); - gnrc_netif_xbee_create(stacks[i], XBEE_MAC_STACKSIZE, XBEE_MAC_PRIO, + gnrc_netif_xbee_create(&_netif[i], stacks[i], XBEE_MAC_STACKSIZE, XBEE_MAC_PRIO, "xbee", (netdev_t *)&xbee_devs[i]); } } diff --git a/sys/net/gnrc/netif/lorawan/gnrc_netif_lorawan.c b/sys/net/gnrc/netif/lorawan/gnrc_netif_lorawan.c index 2b40771f6e..cb1446ae09 100644 --- a/sys/net/gnrc/netif/lorawan/gnrc_netif_lorawan.c +++ b/sys/net/gnrc/netif/lorawan/gnrc_netif_lorawan.c @@ -180,11 +180,10 @@ static void _init(gnrc_netif_t *netif) gnrc_lorawan_init(&netif->lorawan.mac, netif->lorawan.nwkskey, netif->lorawan.appskey); } -gnrc_netif_t *gnrc_netif_lorawan_create(char *stack, int stacksize, - char priority, char *name, - netdev_t *dev) +int gnrc_netif_lorawan_create(gnrc_netif_t *netif, char *stack, int stacksize, + char priority, char *name, netdev_t *dev) { - return gnrc_netif_create(stack, stacksize, priority, name, dev, + return gnrc_netif_create(netif, stack, stacksize, priority, name, dev, &lorawan_ops); } diff --git a/tests/gnrc_ipv6_ext_frag/main.c b/tests/gnrc_ipv6_ext_frag/main.c index 2ab6502efd..5942474212 100644 --- a/tests/gnrc_ipv6_ext_frag/main.c +++ b/tests/gnrc_ipv6_ext_frag/main.c @@ -82,6 +82,7 @@ static int shell_test_cmd(int argc, char **argv); static netdev_test_t mock_netdev; static gnrc_netif_t *eth_netif, *mock_netif; +static gnrc_netif_t _netif; static ipv6_addr_t *local_addr; static char mock_netif_stack[THREAD_STACKSIZE_DEFAULT]; static char line_buf[SHELL_DEFAULT_BUFSIZE]; @@ -686,10 +687,12 @@ int main(void) netdev_test_set_get_cb(&mock_netdev, NETOPT_MAX_PDU_SIZE, mock_get_max_packet_size); netdev_test_set_send_cb(&mock_netdev, mock_send); - mock_netif = gnrc_netif_raw_create(mock_netif_stack, - sizeof(mock_netif_stack), - GNRC_NETIF_PRIO, "mock_netif", - (netdev_t *)&mock_netdev); + int res = gnrc_netif_raw_create(&_netif, mock_netif_stack, + sizeof(mock_netif_stack), + GNRC_NETIF_PRIO, "mock_netif", + (netdev_t *)&mock_netdev); + mock_netif = &_netif; + assert(res == 0); shell_run(shell_commands, line_buf, SHELL_DEFAULT_BUFSIZE); return 0; } diff --git a/tests/gnrc_ipv6_fwd_w_sub/mockup_netif.c b/tests/gnrc_ipv6_fwd_w_sub/mockup_netif.c index 5ba4f594d8..eab283e25b 100644 --- a/tests/gnrc_ipv6_fwd_w_sub/mockup_netif.c +++ b/tests/gnrc_ipv6_fwd_w_sub/mockup_netif.c @@ -23,6 +23,7 @@ #include "thread.h" gnrc_netif_t *_mock_netif = NULL; +static gnrc_netif_t _netif; static netdev_test_t _mock_netdev; static char _mock_netif_stack[THREAD_STACKSIZE_MAIN]; @@ -62,11 +63,12 @@ void _tests_init(void) _get_max_packet_size); netdev_test_set_get_cb(&_mock_netdev, NETOPT_ADDRESS, _get_address); - _mock_netif = gnrc_netif_ethernet_create( + int res = gnrc_netif_ethernet_create(&_netif, _mock_netif_stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "mockup_eth", &_mock_netdev.netdev ); - expect(_mock_netif != NULL); + _mock_netif = &_netif; + expect(res == 0); gnrc_ipv6_nib_init(); gnrc_netif_acquire(_mock_netif); gnrc_ipv6_nib_init_iface(_mock_netif); diff --git a/tests/gnrc_ipv6_nib/mockup_netif.c b/tests/gnrc_ipv6_nib/mockup_netif.c index 84065d4897..bdfd9dcb24 100644 --- a/tests/gnrc_ipv6_nib/mockup_netif.c +++ b/tests/gnrc_ipv6_nib/mockup_netif.c @@ -28,6 +28,7 @@ #define _MSG_QUEUE_SIZE (2) gnrc_netif_t *_mock_netif = NULL; +static gnrc_netif_t _netif; static netdev_test_t _mock_netdev; static char _mock_netif_stack[THREAD_STACKSIZE_DEFAULT]; @@ -79,11 +80,12 @@ void _tests_init(void) _get_max_packet_size); netdev_test_set_get_cb(&_mock_netdev, NETOPT_ADDRESS, _get_address); - _mock_netif = gnrc_netif_ethernet_create( + int res = gnrc_netif_ethernet_create(&_netif, _mock_netif_stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "mockup_eth", &_mock_netdev.netdev ); - expect(_mock_netif != NULL); + _mock_netif = &_netif; + expect(res == 0); /* we do not want to test for SLAAC here so just assure the configured * address is valid */ expect(!ipv6_addr_is_unspecified(&_mock_netif->ipv6.addrs[0])); diff --git a/tests/gnrc_ipv6_nib_6ln/mockup_netif.c b/tests/gnrc_ipv6_nib_6ln/mockup_netif.c index a2bf02f670..e461b74fcc 100644 --- a/tests/gnrc_ipv6_nib_6ln/mockup_netif.c +++ b/tests/gnrc_ipv6_nib_6ln/mockup_netif.c @@ -28,6 +28,7 @@ #define _MSG_QUEUE_SIZE (2) gnrc_netif_t *_mock_netif = NULL; +static gnrc_netif_t _netif; static netdev_test_t _mock_netdev; static char _mock_netif_stack[THREAD_STACKSIZE_DEFAULT]; @@ -100,11 +101,12 @@ void _tests_init(void) _get_address_long); netdev_test_set_get_cb(&_mock_netdev, NETOPT_PROTO, _get_proto); - _mock_netif = gnrc_netif_ieee802154_create( + int res = gnrc_netif_ieee802154_create(&_netif, _mock_netif_stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "mockup_wpan", &_mock_netdev.netdev.netdev ); - expect(_mock_netif != NULL); + _mock_netif = &_netif; + expect(res == 0); gnrc_netreg_entry_init_pid(&dumper, GNRC_NETREG_DEMUX_CTX_ALL, sched_active_pid); gnrc_netreg_register(GNRC_NETTYPE_NDP, &dumper); diff --git a/tests/gnrc_ndp/main.c b/tests/gnrc_ndp/main.c index ce1f9360c9..4940e5e709 100644 --- a/tests/gnrc_ndp/main.c +++ b/tests/gnrc_ndp/main.c @@ -67,6 +67,7 @@ static const ipv6_addr_t test_pfx = { { 0x47, 0x25, 0xd9, 0x3b, 0x7f, 0xcc, 0x15 static const uint8_t test_src_l2[] = { 0xe7, 0x43, 0xb7, 0x74, 0xd7, 0xa9, 0x30, 0x74 }; static gnrc_netif_t *test_netif = NULL; +static gnrc_netif_t _netif; static void init_pkt_handler(void); static inline size_t ceil8(size_t size); @@ -1283,10 +1284,11 @@ static void init_pkt_handler(void) netdev_test_set_get_cb(&dev, NETOPT_MAX_PDU_SIZE, _netdev_test_max_pdu_size); netdev_test_set_get_cb(&dev, NETOPT_DEVICE_TYPE, _netdev_test_device_type); - test_netif = gnrc_netif_create(test_netif_stack, sizeof(test_netif_stack), + int res = gnrc_netif_create(&_netif, test_netif_stack, sizeof(test_netif_stack), GNRC_NETIF_PRIO, "test-netif", &dev.netdev.netdev, &_test_netif_ops); - TEST_ASSERT_MESSAGE(test_netif != NULL, + test_netif = &_netif; + TEST_ASSERT_MESSAGE(res == 0, "Unable to start test interface"); memcpy(&test_netif->ipv6.addrs[0], &test_src, sizeof(test_netif->ipv6.addrs[0])); diff --git a/tests/gnrc_netif/main.c b/tests/gnrc_netif/main.c index 6d4ee62359..13f6cdffe3 100644 --- a/tests/gnrc_netif/main.c +++ b/tests/gnrc_netif/main.c @@ -42,9 +42,9 @@ #define ETHERNET_STACKSIZE (THREAD_STACKSIZE_MAIN) #define IEEE802154_STACKSIZE (THREAD_STACKSIZE_MAIN) -static gnrc_netif_t *ethernet_netif = NULL; -static gnrc_netif_t *ieee802154_netif = NULL; -static gnrc_netif_t *netifs[DEFAULT_DEVS_NUMOF]; +static gnrc_netif_t ethernet_netif; +static gnrc_netif_t ieee802154_netif; +static gnrc_netif_t netifs[DEFAULT_DEVS_NUMOF]; static char ethernet_netif_stack[ETHERNET_STACKSIZE]; static char ieee802154_netif_stack[ETHERNET_STACKSIZE]; static char netifs_stack[DEFAULT_DEVS_NUMOF][THREAD_STACKSIZE_DEFAULT]; @@ -76,30 +76,27 @@ static void _set_up(void) { msg_t msg; - if (ethernet_netif != NULL) { - memset(ethernet_netif->ipv6.addrs_flags, 0, - sizeof(ethernet_netif->ipv6.addrs_flags)); - memset(ethernet_netif->ipv6.addrs, 0, - sizeof(ethernet_netif->ipv6.addrs)); - memset(ethernet_netif->ipv6.groups, 0, - sizeof(ethernet_netif->ipv6.groups)); - } - if (ieee802154_netif != NULL) { - memset(ieee802154_netif->ipv6.addrs_flags, 0, - sizeof(ieee802154_netif->ipv6.addrs_flags)); - memset(ieee802154_netif->ipv6.addrs, 0, - sizeof(ieee802154_netif->ipv6.addrs)); - memset(ieee802154_netif->ipv6.groups, 0, - sizeof(ieee802154_netif->ipv6.groups)); - } + memset(ethernet_netif.ipv6.addrs_flags, 0, + sizeof(ethernet_netif.ipv6.addrs_flags)); + memset(ethernet_netif.ipv6.addrs, 0, + sizeof(ethernet_netif.ipv6.addrs)); + memset(ethernet_netif.ipv6.groups, 0, + sizeof(ethernet_netif.ipv6.groups)); + + memset(ieee802154_netif.ipv6.addrs_flags, 0, + sizeof(ieee802154_netif.ipv6.addrs_flags)); + memset(ieee802154_netif.ipv6.addrs, 0, + sizeof(ieee802154_netif.ipv6.addrs)); + memset(ieee802154_netif.ipv6.groups, 0, + sizeof(ieee802154_netif.ipv6.groups)); + for (unsigned i = 0; i < DEFAULT_DEVS_NUMOF; i++) { - if (netifs[i] != NULL) { - memset(netifs[i]->ipv6.addrs_flags, 0, - sizeof(netifs[i]->ipv6.addrs_flags)); - memset(netifs[i]->ipv6.addrs, 0, sizeof(netifs[i]->ipv6.addrs)); - memset(netifs[i]->ipv6.groups, 0, sizeof(netifs[i]->ipv6.groups)); - } + memset(netifs[i].ipv6.addrs_flags, 0, + sizeof(netifs[i].ipv6.addrs_flags)); + memset(netifs[i].ipv6.addrs, 0, sizeof(netifs[i].ipv6.addrs)); + memset(netifs[i].ipv6.groups, 0, sizeof(netifs[i].ipv6.groups)); } + /* empty message queue */ while (msg_try_receive(&msg) > 0) {} } @@ -117,57 +114,57 @@ static void test_creation(void) TEST_ASSERT_EQUAL_INT(0, gnrc_netif_numof()); TEST_ASSERT_NULL(gnrc_netif_iter(ptr)); - TEST_ASSERT_NOT_NULL((ethernet_netif = gnrc_netif_ethernet_create( + TEST_ASSERT_EQUAL_INT((gnrc_netif_ethernet_create(ðernet_netif, ethernet_netif_stack, ETHERNET_STACKSIZE, GNRC_NETIF_PRIO, "eth", ethernet_dev - ))); + )), 0); TEST_ASSERT_EQUAL_INT(1, gnrc_netif_numof()); TEST_ASSERT_NOT_NULL((ptr = gnrc_netif_iter(ptr))); TEST_ASSERT_NULL((ptr = gnrc_netif_iter(ptr))); - TEST_ASSERT_NOT_NULL(ethernet_netif->ops); - TEST_ASSERT_NOT_NULL(ethernet_netif->dev); - TEST_ASSERT_EQUAL_INT(ETHERNET_DATA_LEN, ethernet_netif->ipv6.mtu); - TEST_ASSERT_EQUAL_INT(CONFIG_GNRC_NETIF_DEFAULT_HL, ethernet_netif->cur_hl); - TEST_ASSERT_EQUAL_INT(NETDEV_TYPE_ETHERNET, ethernet_netif->device_type); - TEST_ASSERT(ethernet_netif->pid > KERNEL_PID_UNDEF); + TEST_ASSERT_NOT_NULL(ethernet_netif.ops); + TEST_ASSERT_NOT_NULL(ethernet_netif.dev); + TEST_ASSERT_EQUAL_INT(ETHERNET_DATA_LEN, ethernet_netif.ipv6.mtu); + TEST_ASSERT_EQUAL_INT(CONFIG_GNRC_NETIF_DEFAULT_HL, ethernet_netif.cur_hl); + TEST_ASSERT_EQUAL_INT(NETDEV_TYPE_ETHERNET, ethernet_netif.device_type); + TEST_ASSERT(ethernet_netif.pid > KERNEL_PID_UNDEF); #ifdef DEVELHELP - TEST_ASSERT_EQUAL_STRING("eth", sched_threads[ethernet_netif->pid]->name); + TEST_ASSERT_EQUAL_STRING("eth", sched_threads[ethernet_netif.pid]->name); #endif - TEST_ASSERT(thread_has_msg_queue(sched_threads[ethernet_netif->pid])); + TEST_ASSERT(thread_has_msg_queue(sched_threads[ethernet_netif.pid])); - TEST_ASSERT_NOT_NULL((ieee802154_netif = gnrc_netif_ieee802154_create( + TEST_ASSERT_EQUAL_INT((gnrc_netif_ieee802154_create(&ieee802154_netif, ieee802154_netif_stack, IEEE802154_STACKSIZE, GNRC_NETIF_PRIO, "wpan", ieee802154_dev - ))); + )), 0); TEST_ASSERT_EQUAL_INT(2, gnrc_netif_numof()); TEST_ASSERT_NOT_NULL((ptr = gnrc_netif_iter(ptr))); TEST_ASSERT_NOT_NULL((ptr = gnrc_netif_iter(ptr))); TEST_ASSERT_NULL((ptr = gnrc_netif_iter(ptr))); - TEST_ASSERT_NOT_NULL(ieee802154_netif->ops); - TEST_ASSERT_NOT_NULL(ieee802154_netif->dev); - TEST_ASSERT_EQUAL_INT(IPV6_MIN_MTU, ieee802154_netif->ipv6.mtu); + TEST_ASSERT_NOT_NULL(ieee802154_netif.ops); + TEST_ASSERT_NOT_NULL(ieee802154_netif.dev); + TEST_ASSERT_EQUAL_INT(IPV6_MIN_MTU, ieee802154_netif.ipv6.mtu); TEST_ASSERT_EQUAL_INT(TEST_IEEE802154_MAX_FRAG_SIZE, - ieee802154_netif->sixlo.max_frag_size); - TEST_ASSERT_EQUAL_INT(CONFIG_GNRC_NETIF_DEFAULT_HL, ieee802154_netif->cur_hl); + ieee802154_netif.sixlo.max_frag_size); + TEST_ASSERT_EQUAL_INT(CONFIG_GNRC_NETIF_DEFAULT_HL, ieee802154_netif.cur_hl); TEST_ASSERT_EQUAL_INT(NETDEV_TYPE_IEEE802154, - ieee802154_netif->device_type); - TEST_ASSERT(ieee802154_netif->pid > KERNEL_PID_UNDEF); + ieee802154_netif.device_type); + TEST_ASSERT(ieee802154_netif.pid > KERNEL_PID_UNDEF); #ifdef DEVELHELP - TEST_ASSERT_EQUAL_STRING("wpan", sched_threads[ieee802154_netif->pid]->name); + TEST_ASSERT_EQUAL_STRING("wpan", sched_threads[ieee802154_netif.pid]->name); #endif - TEST_ASSERT(thread_has_msg_queue(sched_threads[ieee802154_netif->pid])); + TEST_ASSERT(thread_has_msg_queue(sched_threads[ieee802154_netif.pid])); for (unsigned i = 0; i < DEFAULT_DEVS_NUMOF; i++) { - TEST_ASSERT_NOT_NULL((netifs[i] = gnrc_netif_create( + TEST_ASSERT_EQUAL_INT((gnrc_netif_create(&netifs[i], netifs_stack[i], THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "netif", devs[i], &default_ops - ))); - TEST_ASSERT_NOT_NULL(netifs[i]->ops); - TEST_ASSERT_NOT_NULL(netifs[i]->dev); - TEST_ASSERT_EQUAL_INT(CONFIG_GNRC_NETIF_DEFAULT_HL, netifs[i]->cur_hl); - TEST_ASSERT_EQUAL_INT(NETDEV_TYPE_TEST, netifs[i]->device_type); - TEST_ASSERT(netifs[i]->pid > KERNEL_PID_UNDEF); - TEST_ASSERT(thread_has_msg_queue(sched_threads[netifs[i]->pid])); + )), 0); + TEST_ASSERT_NOT_NULL(netifs[i].ops); + TEST_ASSERT_NOT_NULL(netifs[i].dev); + TEST_ASSERT_EQUAL_INT(CONFIG_GNRC_NETIF_DEFAULT_HL, netifs[i].cur_hl); + TEST_ASSERT_EQUAL_INT(NETDEV_TYPE_TEST, netifs[i].device_type); + TEST_ASSERT(netifs[i].pid > KERNEL_PID_UNDEF); + TEST_ASSERT(thread_has_msg_queue(sched_threads[netifs[i].pid])); TEST_ASSERT_EQUAL_INT(i + SPECIAL_DEVS + 1, gnrc_netif_numof()); for (unsigned j = 0; j < (i + SPECIAL_DEVS + 1); j++) { TEST_ASSERT_NOT_NULL((ptr = gnrc_netif_iter(ptr))); @@ -179,10 +176,10 @@ static void test_creation(void) static void test_get_by_pid(void) { - TEST_ASSERT(ethernet_netif == gnrc_netif_get_by_pid(ethernet_netif->pid)); - TEST_ASSERT(ieee802154_netif == gnrc_netif_get_by_pid(ieee802154_netif->pid)); + TEST_ASSERT(ðernet_netif == gnrc_netif_get_by_pid(ethernet_netif.pid)); + TEST_ASSERT(&ieee802154_netif == gnrc_netif_get_by_pid(ieee802154_netif.pid)); for (kernel_pid_t i = 0; i < DEFAULT_DEVS_NUMOF; i++) { - TEST_ASSERT(netifs[i] == gnrc_netif_get_by_pid(netifs[i]->pid)); + TEST_ASSERT(&netifs[i] == gnrc_netif_get_by_pid(netifs[i].pid)); } } @@ -242,11 +239,11 @@ static void test_ipv6_addr_add__ENOMEM(void) for (unsigned i = 0; i < CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF; i++, addr.u16[3].u16++) { - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); } TEST_ASSERT_EQUAL_INT(-ENOMEM, - gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); } @@ -255,15 +252,15 @@ static void test_ipv6_addr_add__success(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_LL }; int idx; - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); /* check duplicate addition */ TEST_ASSERT_EQUAL_INT(idx, - gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); TEST_ASSERT_EQUAL_INT(GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID, - netifs[0]->ipv6.addrs_flags[idx]); - TEST_ASSERT(ipv6_addr_equal(&addr, &netifs[0]->ipv6.addrs[idx])); + netifs[0].ipv6.addrs_flags[idx]); + TEST_ASSERT(ipv6_addr_equal(&addr, &netifs[0].ipv6.addrs[idx])); } static void test_ipv6_addr_add__readd_with_free_entry(void) @@ -273,13 +270,13 @@ static void test_ipv6_addr_add__readd_with_free_entry(void) static const ipv6_addr_t addr2 = { .u8 = NETIF0_IPV6_G }; int idx; - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr1, 64U, + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr1, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr2, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr2, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); - gnrc_netif_ipv6_addr_remove_internal(netifs[0], &addr1); + gnrc_netif_ipv6_addr_remove_internal(&netifs[0], &addr1); TEST_ASSERT_EQUAL_INT(idx, - gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr2, 64U, + gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr2, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); } @@ -289,11 +286,11 @@ static void test_ipv6_addr_remove__not_allocated(void) static const ipv6_addr_t addr2 = { .u8 = NETIF0_IPV6_G }; test_ipv6_addr_add__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(netifs[0], &addr1)); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr2, 64U, + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(&netifs[0], &addr1)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr2, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); - gnrc_netif_ipv6_addr_remove_internal(netifs[0], &addr2); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(netifs[0], &addr1)); + gnrc_netif_ipv6_addr_remove_internal(&netifs[0], &addr2); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(&netifs[0], &addr1)); } static void test_ipv6_addr_remove__success(void) @@ -301,20 +298,20 @@ static void test_ipv6_addr_remove__success(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_LL }; test_ipv6_addr_add__success(); - gnrc_netif_ipv6_addr_remove_internal(netifs[0], &addr); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(netifs[0], &addr)); + gnrc_netif_ipv6_addr_remove_internal(&netifs[0], &addr); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(&netifs[0], &addr)); } static void test_ipv6_addr_idx__empty(void) { static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_LL }; - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(netifs[0], &addr)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(&netifs[0], &addr)); } static void test_ipv6_addr_idx__unspecified_addr(void) { - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(netifs[0], + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(&netifs[0], &ipv6_addr_unspecified)); } @@ -323,7 +320,7 @@ static void test_ipv6_addr_idx__wrong_netif(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_LL }; test_ipv6_addr_add__success(); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(netifs[1], &addr)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(&netifs[1], &addr)); } static void test_ipv6_addr_idx__wrong_addr(void) @@ -331,7 +328,7 @@ static void test_ipv6_addr_idx__wrong_addr(void) static const ipv6_addr_t addr2 = { .u8 = NETIF0_IPV6_G }; test_ipv6_addr_add__success(); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(netifs[0], &addr2)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_idx(&netifs[0], &addr2)); } static void test_ipv6_addr_idx__success(void) @@ -339,19 +336,19 @@ static void test_ipv6_addr_idx__success(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_LL }; test_ipv6_addr_add__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(netifs[0], &addr)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(&netifs[0], &addr)); } static void test_ipv6_addr_match__empty(void) { static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_G }; - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(netifs[0], &addr)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(&netifs[0], &addr)); } static void test_ipv6_addr_match__unspecified_addr(void) { - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(netifs[0], + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(&netifs[0], &ipv6_addr_unspecified)); } @@ -360,7 +357,7 @@ static void test_ipv6_addr_match__wrong_netif(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_G }; test_ipv6_addr_add__success(); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(netifs[1], &addr)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(&netifs[1], &addr)); } static void test_ipv6_addr_match__wrong_addr(void) @@ -368,7 +365,7 @@ static void test_ipv6_addr_match__wrong_addr(void) static const ipv6_addr_t addr2 = { .u8 = NETIF0_IPV6_G }; test_ipv6_addr_add__success(); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(netifs[0], &addr2)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_addr_match(&netifs[0], &addr2)); } static void test_ipv6_addr_match__success18(void) @@ -378,10 +375,10 @@ static void test_ipv6_addr_match__success18(void) static const ipv6_addr_t pfx = { .u8 = GLOBAL_PFX18 }; int idx; - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); - TEST_ASSERT_EQUAL_INT(idx, gnrc_netif_ipv6_addr_match(netifs[0], &pfx)); - TEST_ASSERT_EQUAL_INT(18, ipv6_addr_match_prefix(&netifs[0]->ipv6.addrs[idx], + TEST_ASSERT_EQUAL_INT(idx, gnrc_netif_ipv6_addr_match(&netifs[0], &pfx)); + TEST_ASSERT_EQUAL_INT(18, ipv6_addr_match_prefix(&netifs[0].ipv6.addrs[idx], &pfx)); } @@ -392,10 +389,10 @@ static void test_ipv6_addr_match__success23(void) static const ipv6_addr_t pfx = { .u8 = GLOBAL_PFX23 }; int idx; - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); - TEST_ASSERT_EQUAL_INT(idx, gnrc_netif_ipv6_addr_match(netifs[0], &pfx)); - TEST_ASSERT_EQUAL_INT(23, ipv6_addr_match_prefix(&netifs[0]->ipv6.addrs[idx], + TEST_ASSERT_EQUAL_INT(idx, gnrc_netif_ipv6_addr_match(&netifs[0], &pfx)); + TEST_ASSERT_EQUAL_INT(23, ipv6_addr_match_prefix(&netifs[0].ipv6.addrs[idx], &pfx)); } @@ -406,10 +403,10 @@ static void test_ipv6_addr_match__success64(void) static const ipv6_addr_t pfx = { .u8 = GLOBAL_PFX64 }; int idx; - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); - TEST_ASSERT_EQUAL_INT(idx, gnrc_netif_ipv6_addr_match(netifs[0], &pfx)); - TEST_ASSERT_EQUAL_INT(64, ipv6_addr_match_prefix(&netifs[0]->ipv6.addrs[idx], + TEST_ASSERT_EQUAL_INT(idx, gnrc_netif_ipv6_addr_match(&netifs[0], &pfx)); + TEST_ASSERT_EQUAL_INT(64, ipv6_addr_match_prefix(&netifs[0].ipv6.addrs[idx], &pfx)); } @@ -422,9 +419,9 @@ static void test_ipv6_addr_best_src__multicast_input(void) /* adds a link-local address */ test_ipv6_addr_add__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr1, 64U, + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr1, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); - TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(netifs[0], + TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(&netifs[0], &addr2, false))); TEST_ASSERT(!ipv6_addr_equal(&addr2, out)); @@ -433,7 +430,7 @@ static void test_ipv6_addr_best_src__multicast_input(void) static void test_ipv6_addr_best_src__unspecified_addr(void) { - TEST_ASSERT_NULL(gnrc_netif_ipv6_addr_best_src(netifs[0], + TEST_ASSERT_NULL(gnrc_netif_ipv6_addr_best_src(&netifs[0], &ipv6_addr_unspecified, false)); } @@ -444,7 +441,7 @@ static void test_ipv6_addr_best_src__other_subnet(void) ipv6_addr_t *out = NULL; test_ipv6_addr_add__success(); - TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(netifs[0], + TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(&netifs[0], &mc_addr, false))); TEST_ASSERT(!ipv6_addr_equal(&mc_addr, out)); @@ -462,13 +459,13 @@ static void test_ipv6_addr_best_src__ula_src_dst(void) int idx; test_ipv6_addr_add__success(); - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &ula_src, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &ula_src, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); TEST_ASSERT_EQUAL_INT(GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID, - netifs[0]->ipv6.addrs_flags[idx]); - TEST_ASSERT(ipv6_addr_equal(&ula_src, &netifs[0]->ipv6.addrs[idx])); + netifs[0].ipv6.addrs_flags[idx]); + TEST_ASSERT(ipv6_addr_equal(&ula_src, &netifs[0].ipv6.addrs[idx])); - TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(netifs[0], + TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(&netifs[0], &ula_dst, false))); TEST_ASSERT(ipv6_addr_equal(&ula_src, out)); @@ -484,13 +481,13 @@ static void test_ipv6_addr_best_src__global_src_ula_dst(void) int idx; test_ipv6_addr_add__success(); /* adds link-local address */ - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &src, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &src, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID))); TEST_ASSERT_EQUAL_INT(GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID, - netifs[0]->ipv6.addrs_flags[idx]); - TEST_ASSERT(ipv6_addr_equal(&src, &netifs[0]->ipv6.addrs[idx])); + netifs[0].ipv6.addrs_flags[idx]); + TEST_ASSERT(ipv6_addr_equal(&src, &netifs[0].ipv6.addrs[idx])); - TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(netifs[0], + TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(&netifs[0], &ula_dst, false))); TEST_ASSERT(ipv6_addr_equal(&src, out)); @@ -511,17 +508,17 @@ static void test_ipv6_addr_best_src__deprecated_addr(void) test_ipv6_addr_add__success(); /* adds EUI-64 based link-local address */ /* ensure that current addresses have smaller matches */ for (unsigned i = 0; i < CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF; i++) { - ipv6_addr_t *addr = &netifs[0]->ipv6.addrs[i]; + ipv6_addr_t *addr = &netifs[0].ipv6.addrs[i]; TEST_ASSERT(exp_match > ipv6_addr_match_prefix(addr, &dst)); } /* add another link-local address but deprecated */ - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(netifs[0], &src, 64U, + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_addr_add_internal(&netifs[0], &src, 64U, GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_DEPRECATED))); TEST_ASSERT_EQUAL_INT(GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_DEPRECATED, - netifs[0]->ipv6.addrs_flags[idx]); - TEST_ASSERT(ipv6_addr_equal(&src, &netifs[0]->ipv6.addrs[idx])); + netifs[0].ipv6.addrs_flags[idx]); + TEST_ASSERT(ipv6_addr_equal(&src, &netifs[0].ipv6.addrs[idx])); - TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(netifs[0], + TEST_ASSERT_NOT_NULL((out = gnrc_netif_ipv6_addr_best_src(&netifs[0], &dst, false))); /* should be not `src` as it is deprecated */ @@ -545,8 +542,7 @@ static void test_get_by_ipv6_addr__success(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_LL }; test_ipv6_addr_add__success(); - TEST_ASSERT_NOT_NULL(netifs[0]); - TEST_ASSERT(netifs[0] == gnrc_netif_get_by_ipv6_addr(&addr)); + TEST_ASSERT(&netifs[0] == gnrc_netif_get_by_ipv6_addr(&addr)); } static void test_get_by_prefix__empty(void) @@ -566,10 +562,9 @@ static void test_get_by_prefix__success18(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_G }; static const ipv6_addr_t pfx = { .u8 = GLOBAL_PFX18 }; - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, - GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); - TEST_ASSERT_NOT_NULL(netifs[0]); - TEST_ASSERT(netifs[0] == gnrc_netif_get_by_prefix(&pfx)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, + GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); + TEST_ASSERT(&netifs[0] == gnrc_netif_get_by_prefix(&pfx)); test_ipv6_addr_match__success18(); } @@ -578,10 +573,9 @@ static void test_get_by_prefix__success23(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_G }; static const ipv6_addr_t pfx = { .u8 = GLOBAL_PFX23 }; - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, - GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); - TEST_ASSERT_NOT_NULL(netifs[0]); - TEST_ASSERT(netifs[0] == gnrc_netif_get_by_prefix(&pfx)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, + GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); + TEST_ASSERT(&netifs[0] == gnrc_netif_get_by_prefix(&pfx)); test_ipv6_addr_match__success23(); } @@ -590,10 +584,9 @@ static void test_get_by_prefix__success64(void) static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_G }; static const ipv6_addr_t pfx = { .u8 = GLOBAL_PFX64 }; - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(netifs[0], &addr, 64U, - GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); - TEST_ASSERT_NOT_NULL(netifs[0]); - TEST_ASSERT(netifs[0] == gnrc_netif_get_by_prefix(&pfx)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_add_internal(&netifs[0], &addr, 64U, + GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID)); + TEST_ASSERT(&netifs[0] == gnrc_netif_get_by_prefix(&pfx)); test_ipv6_addr_match__success64(); } @@ -602,25 +595,25 @@ static void test_ipv6_group_join__ENOMEM(void) ipv6_addr_t addr = IPV6_ADDR_ALL_NODES_LINK_LOCAL; for (unsigned i = 0; i < GNRC_NETIF_IPV6_GROUPS_NUMOF; - i++, addr.u16[7].u16++) { - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_join_internal(netifs[0], &addr)); + i++, addr.u16[7].u16++) { + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_join_internal(&netifs[0], &addr)); } TEST_ASSERT_EQUAL_INT(-ENOMEM, - gnrc_netif_ipv6_group_join_internal(netifs[0], &addr)); + gnrc_netif_ipv6_group_join_internal(&netifs[0], &addr)); } static void test_ipv6_group_join__success(void) { int idx; - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_group_join_internal(netifs[0], - &ipv6_addr_all_nodes_link_local))); + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_group_join_internal(&netifs[0], + &ipv6_addr_all_nodes_link_local))); /* check duplicate addition */ TEST_ASSERT_EQUAL_INT(idx, - gnrc_netif_ipv6_group_join_internal(netifs[0], - &ipv6_addr_all_nodes_link_local)); + gnrc_netif_ipv6_group_join_internal(&netifs[0], + &ipv6_addr_all_nodes_link_local)); TEST_ASSERT(ipv6_addr_equal(&ipv6_addr_all_nodes_link_local, - &netifs[0]->ipv6.groups[idx])); + &netifs[0].ipv6.groups[idx])); } static void test_ipv6_group_join__readd_with_free_entry(void) @@ -628,74 +621,74 @@ static void test_ipv6_group_join__readd_with_free_entry(void) /* Tests for possible duplicates (see #2965) */ int idx; - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_join_internal(netifs[0], - &ipv6_addr_all_nodes_link_local)); - TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_group_join_internal(netifs[0], - &ipv6_addr_all_routers_link_local))); - gnrc_netif_ipv6_group_leave_internal(netifs[0], &ipv6_addr_all_nodes_link_local); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_join_internal(&netifs[0], + &ipv6_addr_all_nodes_link_local)); + TEST_ASSERT(0 <= (idx = gnrc_netif_ipv6_group_join_internal(&netifs[0], + &ipv6_addr_all_routers_link_local))); + gnrc_netif_ipv6_group_leave_internal(&netifs[0], &ipv6_addr_all_nodes_link_local); TEST_ASSERT_EQUAL_INT(idx, - gnrc_netif_ipv6_group_join_internal(netifs[0], - &ipv6_addr_all_routers_link_local)); + gnrc_netif_ipv6_group_join_internal(&netifs[0], + &ipv6_addr_all_routers_link_local)); } static void test_ipv6_group_leave__not_allocated(void) { test_ipv6_group_join__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(netifs[0], - &ipv6_addr_all_nodes_link_local)); - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_join_internal(netifs[0], - &ipv6_addr_all_routers_link_local)); - gnrc_netif_ipv6_group_leave_internal(netifs[0], &ipv6_addr_all_routers_link_local); - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(netifs[0], - &ipv6_addr_all_nodes_link_local)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(&netifs[0], + &ipv6_addr_all_nodes_link_local)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_join_internal(&netifs[0], + &ipv6_addr_all_routers_link_local)); + gnrc_netif_ipv6_group_leave_internal(&netifs[0], &ipv6_addr_all_routers_link_local); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(&netifs[0], + &ipv6_addr_all_nodes_link_local)); } static void test_ipv6_group_leave__success(void) { test_ipv6_group_join__success(); - gnrc_netif_ipv6_group_leave_internal(netifs[0], &ipv6_addr_all_nodes_link_local); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(netifs[0], - &ipv6_addr_all_nodes_link_local)); + gnrc_netif_ipv6_group_leave_internal(&netifs[0], &ipv6_addr_all_nodes_link_local); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(&netifs[0], + &ipv6_addr_all_nodes_link_local)); } static void test_ipv6_group_idx__empty(void) { - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(netifs[0], - &ipv6_addr_all_nodes_link_local)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(&netifs[0], + &ipv6_addr_all_nodes_link_local)); } static void test_ipv6_group_idx__unspecified_addr(void) { - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(netifs[0], - &ipv6_addr_unspecified)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(&netifs[0], + &ipv6_addr_unspecified)); } static void test_ipv6_group_idx__unicast_addr(void) { static const ipv6_addr_t addr = { .u8 = NETIF0_IPV6_G }; - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(netifs[0], - &addr)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(&netifs[0], + &addr)); } static void test_ipv6_group_idx__wrong_netif(void) { test_ipv6_group_join__success(); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(netifs[1], - &ipv6_addr_all_nodes_link_local)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(&netifs[1], + &ipv6_addr_all_nodes_link_local)); } static void test_ipv6_group_idx__wrong_addr(void) { test_ipv6_group_join__success(); - TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(netifs[0], - &ipv6_addr_all_routers_link_local)); + TEST_ASSERT_EQUAL_INT(-1, gnrc_netif_ipv6_group_idx(&netifs[0], + &ipv6_addr_all_routers_link_local)); } static void test_ipv6_group_idx__success(void) { test_ipv6_group_join__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(netifs[0], &ipv6_addr_all_nodes_link_local)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(&netifs[0], &ipv6_addr_all_nodes_link_local)); } static void test_ipv6_get_iid(void) @@ -703,35 +696,35 @@ static void test_ipv6_get_iid(void) static const ipv6_addr_t ethernet_ipv6_ll = { .u8 = ETHERNET_IPV6_LL }; static const ipv6_addr_t ieee802154_ipv6_ll_long = { .u8 = IEEE802154_IPV6_LL }; static const uint8_t ieee802154_eui64_short[] = { 0, 0, 0, 0xff, - 0xfe, 0, LA7, LA8 }; + 0xfe, 0, LA7, LA8 }; eui64_t res; uint16_t ieee802154_l2addr_len = 2U; TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), - gnrc_netif_ipv6_get_iid(ethernet_netif, &res)); + gnrc_netif_ipv6_get_iid(ðernet_netif, &res)); TEST_ASSERT_EQUAL_INT(0, memcmp(&res, ðernet_ipv6_ll.u64[1], - sizeof(res))); + sizeof(res))); TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), - gnrc_netif_ipv6_get_iid(ieee802154_netif, &res)); + gnrc_netif_ipv6_get_iid(&ieee802154_netif, &res)); TEST_ASSERT_EQUAL_INT(0, memcmp(&res, &ieee802154_ipv6_ll_long.u64[1], - sizeof(res))); + sizeof(res))); TEST_ASSERT_EQUAL_INT(sizeof(ieee802154_l2addr_len), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_SRC_LEN, 0, - &ieee802154_l2addr_len, - sizeof(ieee802154_l2addr_len))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_SRC_LEN, 0, + &ieee802154_l2addr_len, + sizeof(ieee802154_l2addr_len))); TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), - gnrc_netif_ipv6_get_iid(ieee802154_netif, &res)); + gnrc_netif_ipv6_get_iid(&ieee802154_netif, &res)); TEST_ASSERT_EQUAL_INT(0, memcmp(&res, &ieee802154_eui64_short, sizeof(res))); /* reset to source length 8 */ ieee802154_l2addr_len = 8U; TEST_ASSERT_EQUAL_INT(sizeof(ieee802154_l2addr_len), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_SRC_LEN, 0, - &ieee802154_l2addr_len, - sizeof(ieee802154_l2addr_len))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_SRC_LEN, 0, + &ieee802154_l2addr_len, + sizeof(ieee802154_l2addr_len))); for (unsigned i = 0; i < DEFAULT_DEVS_NUMOF; i++) { - TEST_ASSERT_EQUAL_INT(-ENOTSUP, gnrc_netif_ipv6_get_iid(netifs[i], &res)); + TEST_ASSERT_EQUAL_INT(-ENOTSUP, gnrc_netif_ipv6_get_iid(&netifs[i], &res)); } } @@ -740,9 +733,9 @@ static void test_netapi_get__HOP_LIMIT(void) uint8_t value; TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_get(netifs[0]->pid, NETOPT_HOP_LIMIT, - 0, &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(netifs[0]->cur_hl, value); + gnrc_netapi_get(netifs[0].pid, NETOPT_HOP_LIMIT, + 0, &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(netifs[0].cur_hl, value); } static void test_netapi_get__IPV6_ADDR(void) @@ -751,10 +744,10 @@ static void test_netapi_get__IPV6_ADDR(void) ipv6_addr_t value[CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF]; test_ipv6_addr_add__success(); - TEST_ASSERT_EQUAL_INT(sizeof(ipv6_addr_t), gnrc_netapi_get(netifs[0]->pid, - NETOPT_IPV6_ADDR, - 0, &value, - sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(ipv6_addr_t), gnrc_netapi_get(netifs[0].pid, + NETOPT_IPV6_ADDR, + 0, &value, + sizeof(value))); TEST_ASSERT(ipv6_addr_equal(&exp, &value[0])); } @@ -763,12 +756,12 @@ static void test_netapi_get__IPV6_ADDR_FLAGS(void) uint8_t value[CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF]; test_ipv6_addr_add__success(); - TEST_ASSERT_EQUAL_INT(sizeof(uint8_t), gnrc_netapi_get(netifs[0]->pid, - NETOPT_IPV6_ADDR_FLAGS, - 0, &value, - sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint8_t), gnrc_netapi_get(netifs[0].pid, + NETOPT_IPV6_ADDR_FLAGS, + 0, &value, + sizeof(value))); TEST_ASSERT_EQUAL_INT(GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID, - value[0]); + value[0]); } static void test_netapi_get__IPV6_GROUP(void) @@ -776,10 +769,10 @@ static void test_netapi_get__IPV6_GROUP(void) ipv6_addr_t value[GNRC_NETIF_IPV6_GROUPS_NUMOF]; test_ipv6_group_join__success(); - TEST_ASSERT_EQUAL_INT(sizeof(ipv6_addr_t), gnrc_netapi_get(netifs[0]->pid, - NETOPT_IPV6_GROUP, - 0, &value, - sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(ipv6_addr_t), gnrc_netapi_get(netifs[0].pid, + NETOPT_IPV6_GROUP, + 0, &value, + sizeof(value))); TEST_ASSERT(ipv6_addr_equal(&ipv6_addr_all_nodes_link_local, &value[0])); } @@ -788,76 +781,76 @@ static void test_netapi_get__IPV6_IID(void) static const ipv6_addr_t ethernet_ipv6_ll = { .u8 = ETHERNET_IPV6_LL }; static const ipv6_addr_t ieee802154_ipv6_ll_long = { .u8 = IEEE802154_IPV6_LL }; static const uint8_t ieee802154_eui64_short[] = { 0, 0, 0, 0xff, - 0xfe, 0, LA7, LA8 }; + 0xfe, 0, LA7, LA8 }; eui64_t value; uint16_t ieee802154_l2addr_len = 2U; - TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), gnrc_netapi_get(ethernet_netif->pid, - NETOPT_IPV6_IID, - 0, &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), gnrc_netapi_get(ethernet_netif.pid, + NETOPT_IPV6_IID, + 0, &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(&value, ðernet_ipv6_ll.u64[1], - sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_IPV6_IID, - 0, &value, sizeof(value))); + sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_IPV6_IID, + 0, &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(&value, &ieee802154_ipv6_ll_long.u64[1], - sizeof(value))); + sizeof(value))); TEST_ASSERT_EQUAL_INT(sizeof(ieee802154_l2addr_len), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_SRC_LEN, 0, - &ieee802154_l2addr_len, - sizeof(ieee802154_l2addr_len))); - TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_IPV6_IID, - 0, &value, - sizeof(value))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_SRC_LEN, 0, + &ieee802154_l2addr_len, + sizeof(ieee802154_l2addr_len))); + TEST_ASSERT_EQUAL_INT(sizeof(eui64_t), gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_IPV6_IID, + 0, &value, + sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(&value, &ieee802154_eui64_short, - sizeof(value))); + sizeof(value))); /* reset to source length 8 */ ieee802154_l2addr_len = 8U; TEST_ASSERT_EQUAL_INT(sizeof(ieee802154_l2addr_len), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_SRC_LEN, 0, - &ieee802154_l2addr_len, - sizeof(ieee802154_l2addr_len))); - TEST_ASSERT_EQUAL_INT(-ENOTSUP, gnrc_netapi_get(netifs[0]->pid, - NETOPT_IPV6_IID, - 0, &value, sizeof(value))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_SRC_LEN, 0, + &ieee802154_l2addr_len, + sizeof(ieee802154_l2addr_len))); + TEST_ASSERT_EQUAL_INT(-ENOTSUP, gnrc_netapi_get(netifs[0].pid, + NETOPT_IPV6_IID, + 0, &value, sizeof(value))); } static void test_netapi_get__MAX_PACKET_SIZE(void) { uint16_t value; - TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ethernet_netif->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_IPV6, - &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ethernet_netif.pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_IPV6, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(ETHERNET_DATA_LEN, value); - TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ethernet_netif->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_NETIF, - &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ethernet_netif.pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_NETIF, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(ETHERNET_DATA_LEN, value); - TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_IPV6, - &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_IPV6, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(IPV6_MIN_MTU, value); - TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_NETIF, - &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_NETIF, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(TEST_IEEE802154_MAX_FRAG_SIZE, value); - TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(netifs[0]->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_IPV6, - &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(netifs[0].pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_IPV6, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(IPV6_MIN_MTU, value); - TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(netifs[0]->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_NETIF, - &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), gnrc_netapi_get(netifs[0].pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_NETIF, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(IPV6_MIN_MTU, value); } @@ -866,19 +859,19 @@ static void test_netapi_get__6LO_IPHC(void) netopt_enable_t value; TEST_ASSERT_EQUAL_INT(sizeof(netopt_enable_t), - gnrc_netapi_get(ethernet_netif->pid, - NETOPT_6LO_IPHC, 0, - &value, sizeof(value))); + gnrc_netapi_get(ethernet_netif.pid, + NETOPT_6LO_IPHC, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(NETOPT_DISABLE, value); TEST_ASSERT_EQUAL_INT(sizeof(netopt_enable_t), - gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_6LO_IPHC, 0, - &value, sizeof(value))); + gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_6LO_IPHC, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(NETOPT_ENABLE, value); TEST_ASSERT_EQUAL_INT(sizeof(netopt_enable_t), - gnrc_netapi_get(netifs[0]->pid, - NETOPT_6LO_IPHC, 0, - &value, sizeof(value))); + gnrc_netapi_get(netifs[0].pid, + NETOPT_6LO_IPHC, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(NETOPT_DISABLE, value); } @@ -889,16 +882,16 @@ static void test_netapi_get__ADDRESS(void) uint8_t value[GNRC_NETIF_L2ADDR_MAXLEN]; TEST_ASSERT_EQUAL_INT(sizeof(exp_ethernet), - gnrc_netapi_get(ethernet_netif->pid, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); + gnrc_netapi_get(ethernet_netif.pid, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(exp_ethernet, value, sizeof(exp_ethernet))); TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154), - gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); + gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(exp_ieee802154, value, - sizeof(exp_ieee802154))); + sizeof(exp_ieee802154))); } static void test_netapi_get__ADDRESS_LONG(void) @@ -907,19 +900,19 @@ static void test_netapi_get__ADDRESS_LONG(void) uint8_t value[GNRC_NETIF_L2ADDR_MAXLEN]; TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_get(ethernet_netif->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); + gnrc_netapi_get(ethernet_netif.pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154), - gnrc_netapi_get(ieee802154_netif->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); + gnrc_netapi_get(ieee802154_netif.pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(exp_ieee802154, value, - sizeof(exp_ieee802154))); + sizeof(exp_ieee802154))); TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_get(netifs[0]->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); + gnrc_netapi_get(netifs[0].pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); } static void test_netapi_set__HOP_LIMIT(void) @@ -927,24 +920,24 @@ static void test_netapi_set__HOP_LIMIT(void) uint8_t value = 89; TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_HOP_LIMIT, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(value, netifs[0]->cur_hl); + gnrc_netapi_set(netifs[0].pid, + NETOPT_HOP_LIMIT, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(value, netifs[0].cur_hl); } static void test_netapi_set__IPV6_ADDR(void) { ipv6_addr_t value = { .u8 = NETIF0_IPV6_LL }; static const uint16_t context = (64U << 8) | - (GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID); + (GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID); - TEST_ASSERT(0 > gnrc_netif_ipv6_addr_idx(netifs[0], &value)); + TEST_ASSERT(0 > gnrc_netif_ipv6_addr_idx(&netifs[0], &value)); TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_IPV6_ADDR, context, - &value, sizeof(value))); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(netifs[0], &value)); + gnrc_netapi_set(netifs[0].pid, + NETOPT_IPV6_ADDR, context, + &value, sizeof(value))); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(&netifs[0], &value)); } static void test_netapi_set__IPV6_ADDR_REMOVE(void) @@ -952,24 +945,24 @@ static void test_netapi_set__IPV6_ADDR_REMOVE(void) ipv6_addr_t value = { .u8 = NETIF0_IPV6_LL }; test_ipv6_addr_add__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(netifs[0], &value)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_addr_idx(&netifs[0], &value)); TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_IPV6_ADDR_REMOVE, 0, - &value, sizeof(value))); - TEST_ASSERT(0 > gnrc_netif_ipv6_addr_idx(netifs[0], &value)); + gnrc_netapi_set(netifs[0].pid, + NETOPT_IPV6_ADDR_REMOVE, 0, + &value, sizeof(value))); + TEST_ASSERT(0 > gnrc_netif_ipv6_addr_idx(&netifs[0], &value)); } static void test_netapi_set__IPV6_GROUP(void) { ipv6_addr_t value = IPV6_ADDR_ALL_NODES_LINK_LOCAL; - TEST_ASSERT(0 > gnrc_netif_ipv6_group_idx(netifs[0], &value)); + TEST_ASSERT(0 > gnrc_netif_ipv6_group_idx(&netifs[0], &value)); TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_IPV6_GROUP, 0, - &value, sizeof(value))); - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(netifs[0], &value)); + gnrc_netapi_set(netifs[0].pid, + NETOPT_IPV6_GROUP, 0, + &value, sizeof(value))); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(&netifs[0], &value)); } static void test_netapi_set__IPV6_GROUP_LEAVE(void) @@ -977,12 +970,12 @@ static void test_netapi_set__IPV6_GROUP_LEAVE(void) ipv6_addr_t value = IPV6_ADDR_ALL_NODES_LINK_LOCAL; test_ipv6_group_join__success(); - TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(netifs[0], &value)); + TEST_ASSERT(0 <= gnrc_netif_ipv6_group_idx(&netifs[0], &value)); TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_IPV6_GROUP_LEAVE, 0, - &value, sizeof(value))); - TEST_ASSERT(0 > gnrc_netif_ipv6_group_idx(netifs[0], &value)); + gnrc_netapi_set(netifs[0].pid, + NETOPT_IPV6_GROUP_LEAVE, 0, + &value, sizeof(value))); + TEST_ASSERT(0 > gnrc_netif_ipv6_group_idx(&netifs[0], &value)); } static void test_netapi_set__MAX_PACKET_SIZE(void) @@ -990,15 +983,15 @@ static void test_netapi_set__MAX_PACKET_SIZE(void) uint16_t value = 57194; TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_MAX_PDU_SIZE, - GNRC_NETTYPE_IPV6, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(value, netifs[0]->ipv6.mtu); + gnrc_netapi_set(netifs[0].pid, + NETOPT_MAX_PDU_SIZE, + GNRC_NETTYPE_IPV6, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(value, netifs[0].ipv6.mtu); TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_set(netifs[0]->pid, - NETOPT_MAX_PDU_SIZE, 0, - &value, sizeof(value))); + gnrc_netapi_set(netifs[0].pid, + NETOPT_MAX_PDU_SIZE, 0, + &value, sizeof(value))); } static void test_netapi_set__6LO_IPHC(void) @@ -1006,10 +999,10 @@ static void test_netapi_set__6LO_IPHC(void) netopt_enable_t value = NETOPT_ENABLE; TEST_ASSERT_EQUAL_INT(sizeof(value), - gnrc_netapi_set(netifs[0]->pid, - NETOPT_6LO_IPHC, 0, - &value, sizeof(value))); - TEST_ASSERT(netifs[0]->flags & GNRC_NETIF_FLAGS_6LO_HC); + gnrc_netapi_set(netifs[0].pid, + NETOPT_6LO_IPHC, 0, + &value, sizeof(value))); + TEST_ASSERT(netifs[0].flags & GNRC_NETIF_FLAGS_6LO_HC); } static void test_netapi_set__ADDRESS(void) @@ -1020,67 +1013,67 @@ static void test_netapi_set__ADDRESS(void) uint8_t value[] = { LA1 + 1, LA2 + 2, LA3 + 3, LA4 + 4, LA5 + 5, LA6 + 6 }; TEST_ASSERT_EQUAL_INT(sizeof(exp_ethernet), - gnrc_netapi_set(ethernet_netif->pid, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif->l2addr, - ETHERNET_ADDR_LEN)); + gnrc_netapi_set(ethernet_netif.pid, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif.l2addr, + ETHERNET_ADDR_LEN)); TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_ADDRESS, 0, - &value, sizeof(uint16_t))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_ADDRESS, 0, + &value, sizeof(uint16_t))); /* we did not change NETOPT_SRC_LEN, so this field shouldn't change */ - TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154_long), ieee802154_netif->l2addr_len); + TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154_long), ieee802154_netif.l2addr_len); TEST_ASSERT_EQUAL_INT(0, memcmp(exp_ieee802154_long, - ieee802154_netif->l2addr, - sizeof(exp_ieee802154_long))); + ieee802154_netif.l2addr, + sizeof(exp_ieee802154_long))); /* return addresses to previous state for further testing */ memcpy(value, exp_ethernet, sizeof(exp_ethernet)); TEST_ASSERT_EQUAL_INT(sizeof(exp_ethernet), - gnrc_netapi_set(ethernet_netif->pid, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif->l2addr, - sizeof(value))); + gnrc_netapi_set(ethernet_netif.pid, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif.l2addr, + sizeof(value))); memcpy(value, exp_ieee802154, sizeof(exp_ieee802154)); TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_ADDRESS, 0, - &value, sizeof(uint16_t))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_ADDRESS, 0, + &value, sizeof(uint16_t))); } static void test_netapi_set__ADDRESS_LONG(void) { static const uint8_t exp_ieee802154[] = IEEE802154_LONG_SRC; uint8_t value[] = { LA1 + 1, LA2 + 2, LA3 + 3, LA4 + 4, LA5 + 5, LA6 + 6, - LA7 + 1, LA8 + 2 }; + LA7 + 1, LA8 + 2 }; TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_set(ethernet_netif->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); + gnrc_netapi_set(ethernet_netif.pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(value), ieee802154_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(value, ieee802154_netif->l2addr, - sizeof(value))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(value), ieee802154_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(value, ieee802154_netif.l2addr, + sizeof(value))); TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_set(netifs[0]->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); + gnrc_netapi_set(netifs[0].pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); /* return addresses to previous state for further testing */ memcpy(value, exp_ieee802154, sizeof(exp_ieee802154)); TEST_ASSERT_EQUAL_INT(sizeof(exp_ieee802154), - gnrc_netapi_set(ieee802154_netif->pid, - NETOPT_ADDRESS_LONG, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(value), ieee802154_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(value, ieee802154_netif->l2addr, - sizeof(value))); + gnrc_netapi_set(ieee802154_netif.pid, + NETOPT_ADDRESS_LONG, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(value), ieee802154_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(value, ieee802154_netif.l2addr, + sizeof(value))); } static void test_netapi_set__SRC_LEN(void) @@ -1090,25 +1083,25 @@ static void test_netapi_set__SRC_LEN(void) uint16_t value = 2U; TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_set(ethernet_netif->pid, NETOPT_SRC_LEN, - 0, &value, sizeof(value))); + gnrc_netapi_set(ethernet_netif.pid, NETOPT_SRC_LEN, + 0, &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(value, ieee802154_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(exp_l2addr, ieee802154_netif->l2addr, - sizeof(exp_l2addr))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(value, ieee802154_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(exp_l2addr, ieee802154_netif.l2addr, + sizeof(exp_l2addr))); TEST_ASSERT_EQUAL_INT(-ENOTSUP, - gnrc_netapi_set(netifs[0]->pid, NETOPT_SRC_LEN, 0, - &value, sizeof(value))); + gnrc_netapi_set(netifs[0].pid, NETOPT_SRC_LEN, 0, + &value, sizeof(value))); /* return addresses to previous state for further testing */ value = 8U; TEST_ASSERT_EQUAL_INT(sizeof(uint16_t), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(value, ieee802154_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(orig_ieee802154, ieee802154_netif->l2addr, - sizeof(orig_ieee802154))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(value, ieee802154_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(orig_ieee802154, ieee802154_netif.l2addr, + sizeof(orig_ieee802154))); } static void test_netif_iter(void) @@ -1156,9 +1149,9 @@ static void test_netif_get_opt(void) uint8_t value[GNRC_NETIF_L2ADDR_MAXLEN]; TEST_ASSERT_EQUAL_INT(sizeof(exp_ethernet), - netif_get_opt((netif_t *)ethernet_netif, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); + netif_get_opt((netif_t *)ðernet_netif, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); TEST_ASSERT_EQUAL_INT(0, memcmp(exp_ethernet, value, sizeof(exp_ethernet))); } @@ -1169,99 +1162,99 @@ static void test_netif_set_opt(void) uint8_t value[] = { LA1 + 1, LA2 + 2, LA3 + 3, LA4 + 4, LA5 + 5, LA6 + 6 }; TEST_ASSERT_EQUAL_INT(sizeof(exp_ethernet), - netif_set_opt((netif_t *)ethernet_netif, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif->l2addr, - ETHERNET_ADDR_LEN)); + netif_set_opt((netif_t *)ðernet_netif, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif.l2addr, + ETHERNET_ADDR_LEN)); /* return addresses to previous state for further testing */ memcpy(value, exp_ethernet, sizeof(exp_ethernet)); TEST_ASSERT_EQUAL_INT(sizeof(exp_ethernet), - netif_set_opt((netif_t *)ethernet_netif, - NETOPT_ADDRESS, 0, - &value, sizeof(value))); - TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif->l2addr_len); - TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif->l2addr, - sizeof(value))); + netif_set_opt((netif_t *)ðernet_netif, + NETOPT_ADDRESS, 0, + &value, sizeof(value))); + TEST_ASSERT_EQUAL_INT(sizeof(value), ethernet_netif.l2addr_len); + TEST_ASSERT_EQUAL_INT(0, memcmp(value, ethernet_netif.l2addr, + sizeof(value))); } static void test_netapi_send__raw_unicast_ethernet_packet(void) { uint8_t dst[] = { LA1, LA2, LA3, LA4, LA5, LA6 + 1 }; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "ABCDEFG", - sizeof("ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(pkt); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst, sizeof(dst)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ethernet_netif, pkt); + gnrc_netif_send(ðernet_netif, pkt); } static void test_netapi_send__raw_broadcast_ethernet_packet(void) { gnrc_netif_hdr_t *hdr; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "ABCDEFG", - sizeof("ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(pkt); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, NULL, 0); TEST_ASSERT_NOT_NULL(netif); hdr = netif->data; hdr->flags |= GNRC_NETIF_HDR_FLAGS_BROADCAST; LL_PREPEND(pkt, netif); - gnrc_netif_send(ethernet_netif, pkt); + gnrc_netif_send(ðernet_netif, pkt); } static void test_netapi_send__raw_unicast_ieee802154_long_long_packet(void) { uint8_t dst[] = { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8 + 1 }; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(pkt); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst, sizeof(dst)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); } static void test_netapi_send__raw_unicast_ieee802154_long_short_packet(void) { uint8_t dst[] = { LA7, LA8 + 1 }; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(pkt); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst, sizeof(dst)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); } static void test_netapi_send__raw_unicast_ieee802154_short_long_packet1(void) { uint8_t dst[] = { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8 + 1 }; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); uint16_t src_len = 2U; TEST_ASSERT_NOT_NULL(pkt); TEST_ASSERT_EQUAL_INT(sizeof(src_len), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &src_len, sizeof(src_len))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &src_len, sizeof(src_len))); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst, sizeof(dst)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); /* reset src_len */ src_len = 8U; TEST_ASSERT_EQUAL_INT(sizeof(src_len), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &src_len, sizeof(src_len))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &src_len, sizeof(src_len))); } static void test_netapi_send__raw_unicast_ieee802154_short_long_packet2(void) @@ -1269,77 +1262,77 @@ static void test_netapi_send__raw_unicast_ieee802154_short_long_packet2(void) uint8_t src[] = { LA7, LA8 }; uint8_t dst[] = { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8 + 1 }; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(pkt); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(src, sizeof(src), - dst, sizeof(dst)); + dst, sizeof(dst)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); } static void test_netapi_send__raw_unicast_ieee802154_short_short_packet(void) { uint8_t dst[] = { LA7, LA8 + 1 }; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); uint16_t src_len = 2U; TEST_ASSERT_NOT_NULL(pkt); TEST_ASSERT_EQUAL_INT(sizeof(src_len), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &src_len, sizeof(src_len))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &src_len, sizeof(src_len))); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst, sizeof(dst)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); /* reset src_len */ src_len = 8U; TEST_ASSERT_EQUAL_INT(sizeof(src_len), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &src_len, sizeof(src_len))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &src_len, sizeof(src_len))); } static void test_netapi_send__raw_broadcast_ieee802154_long_packet(void) { gnrc_netif_hdr_t *hdr; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(pkt); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, NULL, 0); TEST_ASSERT_NOT_NULL(netif); hdr = netif->data; hdr->flags |= GNRC_NETIF_HDR_FLAGS_BROADCAST; LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); } static void test_netapi_send__raw_broadcast_ieee802154_short_packet(void) { gnrc_netif_hdr_t *hdr; gnrc_pktsnip_t *pkt = gnrc_pktbuf_add(NULL, "123ABCDEFG", - sizeof("123ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("123ABCDEFG"), + GNRC_NETTYPE_UNDEF); uint16_t src_len = 2U; TEST_ASSERT_NOT_NULL(pkt); TEST_ASSERT_EQUAL_INT(sizeof(src_len), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &src_len, sizeof(src_len))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &src_len, sizeof(src_len))); gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, NULL, 0); TEST_ASSERT_NOT_NULL(netif); hdr = netif->data; hdr->flags |= GNRC_NETIF_HDR_FLAGS_BROADCAST; LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); /* reset src_len */ src_len = 8U; TEST_ASSERT_EQUAL_INT(sizeof(src_len), - gnrc_netapi_set(ieee802154_netif->pid, NETOPT_SRC_LEN, - 0, &src_len, sizeof(src_len))); + gnrc_netapi_set(ieee802154_netif.pid, NETOPT_SRC_LEN, + 0, &src_len, sizeof(src_len))); } static void test_netapi_send__ipv6_unicast_ethernet_packet(void) @@ -1347,13 +1340,13 @@ static void test_netapi_send__ipv6_unicast_ethernet_packet(void) ipv6_hdr_t *ipv6_hdr; uint8_t dst_netif[] = { LA1, LA2, LA3, LA4, LA5, LA6 + 1 }; static const ipv6_addr_t dst_ipv6 = { .u8 = { LP1, LP2, LP3, LP4, - LP5, LP6, LP7, LP8, - LA1 ^ 0x2, LA2, LA3, 0xff, - 0xfe, LA4, LA5, LA6 + 1} }; + LP5, LP6, LP7, LP8, + LA1 ^ 0x2, LA2, LA3, 0xff, + 0xfe, LA4, LA5, LA6 + 1} }; static const ipv6_addr_t src_ipv6 = { .u8 = ETHERNET_IPV6_LL }; gnrc_pktsnip_t *payload = gnrc_pktbuf_add(NULL, "ABCDEFG", - sizeof("ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(payload); /* we don't send through gnrc_ipv6 (because we are lazy and don't want * to update the neighbor cache ;-)) so we need to set the IPv6 source @@ -1363,12 +1356,12 @@ static void test_netapi_send__ipv6_unicast_ethernet_packet(void) ipv6_hdr = pkt->data; ipv6_hdr->len = byteorder_htons(sizeof("ABCDEFG")); ipv6_hdr->nh = PROTNUM_IPV6_NONXT; - ipv6_hdr->hl = ethernet_netif->cur_hl; + ipv6_hdr->hl = ethernet_netif.cur_hl; gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst_netif, - sizeof(dst_netif)); + sizeof(dst_netif)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ethernet_netif, pkt); + gnrc_netif_send(ðernet_netif, pkt); } static void test_netapi_send__ipv6_multicast_ethernet_packet(void) @@ -1377,25 +1370,25 @@ static void test_netapi_send__ipv6_multicast_ethernet_packet(void) gnrc_netif_hdr_t *netif_hdr; static const ipv6_addr_t src_ipv6 = { .u8 = ETHERNET_IPV6_LL }; gnrc_pktsnip_t *payload = gnrc_pktbuf_add(NULL, "ABCDEFG", - sizeof("ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(payload); /* we don't send through gnrc_ipv6 (because we are lazy and don't want * to update the neighbor cache ;-)) so we need to set the IPv6 source * address */ gnrc_pktsnip_t *pkt = gnrc_ipv6_hdr_build(payload, &src_ipv6, - &ipv6_addr_all_nodes_link_local); + &ipv6_addr_all_nodes_link_local); TEST_ASSERT_NOT_NULL(pkt); ipv6_hdr = pkt->data; ipv6_hdr->len = byteorder_htons(sizeof("ABCDEFG")); ipv6_hdr->nh = PROTNUM_IPV6_NONXT; - ipv6_hdr->hl = ethernet_netif->cur_hl; + ipv6_hdr->hl = ethernet_netif.cur_hl; gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, NULL, 0); TEST_ASSERT_NOT_NULL(netif); netif_hdr = netif->data; netif_hdr->flags |= GNRC_NETIF_HDR_FLAGS_MULTICAST; LL_PREPEND(pkt, netif); - gnrc_netif_send(ethernet_netif, pkt); + gnrc_netif_send(ðernet_netif, pkt); } static void test_netapi_send__ipv6_unicast_ieee802154_packet(void) @@ -1403,13 +1396,13 @@ static void test_netapi_send__ipv6_unicast_ieee802154_packet(void) ipv6_hdr_t *ipv6_hdr; uint8_t dst_netif[] = { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8 + 1 }; static const ipv6_addr_t dst_ipv6 = { .u8 = { LP1, LP2, LP3, LP4, - LP5, LP6, LP7, LP8, - LA1 ^ 0x2, LA2, LA3, 0xff, - 0xfe, LA4, LA5, LA6 + 1} }; + LP5, LP6, LP7, LP8, + LA1 ^ 0x2, LA2, LA3, 0xff, + 0xfe, LA4, LA5, LA6 + 1} }; static const ipv6_addr_t src_ipv6 = { .u8 = IEEE802154_IPV6_LL }; gnrc_pktsnip_t *payload = gnrc_pktbuf_add(NULL, "ABCDEFG", - sizeof("ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(payload); /* we don't send through gnrc_ipv6 (because we are lazy and don't want * to update the neighbor cache ;-)) so we need to set the IPv6 source @@ -1419,12 +1412,12 @@ static void test_netapi_send__ipv6_unicast_ieee802154_packet(void) ipv6_hdr = pkt->data; ipv6_hdr->len = byteorder_htons(sizeof("ABCDEFG")); ipv6_hdr->nh = PROTNUM_IPV6_NONXT; - ipv6_hdr->hl = ieee802154_netif->cur_hl; + ipv6_hdr->hl = ieee802154_netif.cur_hl; gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, dst_netif, - sizeof(dst_netif)); + sizeof(dst_netif)); TEST_ASSERT_NOT_NULL(netif); LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); } static void test_netapi_send__ipv6_multicast_ieee802154_packet(void) @@ -1433,170 +1426,170 @@ static void test_netapi_send__ipv6_multicast_ieee802154_packet(void) gnrc_netif_hdr_t *netif_hdr; static const ipv6_addr_t src_ipv6 = { .u8 = IEEE802154_IPV6_LL }; gnrc_pktsnip_t *payload = gnrc_pktbuf_add(NULL, "ABCDEFG", - sizeof("ABCDEFG"), - GNRC_NETTYPE_UNDEF); + sizeof("ABCDEFG"), + GNRC_NETTYPE_UNDEF); TEST_ASSERT_NOT_NULL(payload); /* we don't send through gnrc_ipv6 (because we are lazy and don't want * to update the neighbor cache ;-)) so we need to set the IPv6 source * address */ gnrc_pktsnip_t *pkt = gnrc_ipv6_hdr_build(payload, &src_ipv6, - &ipv6_addr_all_nodes_link_local); + &ipv6_addr_all_nodes_link_local); TEST_ASSERT_NOT_NULL(pkt); ipv6_hdr = pkt->data; ipv6_hdr->len = byteorder_htons(sizeof("ABCDEFG")); ipv6_hdr->nh = PROTNUM_IPV6_NONXT; - ipv6_hdr->hl = ieee802154_netif->cur_hl; + ipv6_hdr->hl = ieee802154_netif.cur_hl; gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(NULL, 0, NULL, 0); TEST_ASSERT_NOT_NULL(netif); netif_hdr = netif->data; netif_hdr->flags |= GNRC_NETIF_HDR_FLAGS_MULTICAST; LL_PREPEND(pkt, netif); - gnrc_netif_send(ieee802154_netif, pkt); + gnrc_netif_send(&ieee802154_netif, pkt); } static void test_netapi_recv__empty_ethernet_payload(void) { static const uint8_t data[] = { LA1, LA2, LA3, LA6, LA7, LA8, - LA1, LA2, LA3, LA6, LA7, LA8 + 1, - 0xff, 0xff }; + LA1, LA2, LA3, LA6, LA7, LA8 + 1, + 0xff, 0xff }; puts("pktdump dumping Ethernet packet with empty payload"); - _test_trigger_recv(ethernet_netif, data, sizeof(data)); + _test_trigger_recv(ðernet_netif, data, sizeof(data)); } static void test_netapi_recv__empty_ieee802154_payload(void) { static const uint8_t data[] = { 0x41, 0xdc, /* FCF */ - 0x03, /* Sequence number */ - 0x00, 0x00, /* Destination PAN */ - LA8, LA7, LA6, LA5, LA4, LA3, LA2, LA1, - LA8 + 1, LA7, LA6, LA5, LA4, LA3, LA2, - LA1 }; + 0x03, /* Sequence number */ + 0x00, 0x00, /* Destination PAN */ + LA8, LA7, LA6, LA5, LA4, LA3, LA2, LA1, + LA8 + 1, LA7, LA6, LA5, LA4, LA3, LA2, + LA1 }; puts("pktdump dumping IEEE 802.15.4 packet with empty payload"); - _test_trigger_recv(ieee802154_netif, data, sizeof(data)); + _test_trigger_recv(&ieee802154_netif, data, sizeof(data)); } static void test_netapi_recv__raw_ethernet_payload(void) { static const uint8_t data[] = { LA1, LA2, LA3, LA6, LA7, LA8, - LA1, LA2, LA3, LA6, LA7, LA8 + 1, - 0xff, 0xff, 0x12, 0x34, 0x45, 0x56 }; + LA1, LA2, LA3, LA6, LA7, LA8 + 1, + 0xff, 0xff, 0x12, 0x34, 0x45, 0x56 }; puts("pktdump dumping Ethernet packet with payload 12 34 45 56"); - _test_trigger_recv(ethernet_netif, data, sizeof(data)); + _test_trigger_recv(ðernet_netif, data, sizeof(data)); } static void test_netapi_recv__raw_ieee802154_payload(void) { static const uint8_t data[] = { 0x41, 0xdc, /* FCF */ - 0x03, /* Sequence number */ - 0x00, 0x00, /* Destination PAN */ - LA8, LA7, LA6, LA5, LA4, LA3, LA2, LA1, - LA8 + 1, LA7, LA6, LA5, LA4, LA3, LA2, - LA1, 0x12, 0x34, 0x45, 0x56 }; + 0x03, /* Sequence number */ + 0x00, 0x00, /* Destination PAN */ + LA8, LA7, LA6, LA5, LA4, LA3, LA2, LA1, + LA8 + 1, LA7, LA6, LA5, LA4, LA3, LA2, + LA1, 0x12, 0x34, 0x45, 0x56 }; puts("pktdump dumping IEEE 802.15.4 packet with payload 12 34 45 56"); - _test_trigger_recv(ieee802154_netif, data, sizeof(data)); + _test_trigger_recv(&ieee802154_netif, data, sizeof(data)); } static void test_netapi_recv__ipv6_ethernet_payload(void) { static const uint8_t data[] = { LA1, LA2, LA3, LA6, LA7, LA8, - LA1, LA2, LA3, LA6, LA7, LA8 + 1, - 0x86, 0xdd, /* Ethertype: IPv6 */ - 0x60, 0, 0, 0, /* Version + TC + FL */ - 0, 1, /* payload length 1 */ - 59, /* next header: no next header */ - 64, /* hop limit */ - /* IPv6 source */ - LP1, LP2, LP3, LP4, LP5, LP6, LP7, LP8, - LA1 ^ 1, LA2, LA3, 0xff, 0xfe, LA6, LA7, LA8, - /* IPv6 destination */ - LP1, LP2, LP3, LP4, LP5, LP6, LP7, LP8, - LA1 ^ 1, LA2, LA3, 0xff, 0xfe, LA6, LA7, LA8 + 1, - 0x01 /* payload */ - }; + LA1, LA2, LA3, LA6, LA7, LA8 + 1, + 0x86, 0xdd, /* Ethertype: IPv6 */ + 0x60, 0, 0, 0, /* Version + TC + FL */ + 0, 1, /* payload length 1 */ + 59, /* next header: no next header */ + 64, /* hop limit */ + /* IPv6 source */ + LP1, LP2, LP3, LP4, LP5, LP6, LP7, LP8, + LA1 ^ 1, LA2, LA3, 0xff, 0xfe, LA6, LA7, LA8, + /* IPv6 destination */ + LP1, LP2, LP3, LP4, LP5, LP6, LP7, LP8, + LA1 ^ 1, LA2, LA3, 0xff, 0xfe, LA6, LA7, LA8 + 1, + 0x01 /* payload */ + }; puts("pktdump dumping IPv6 over Ethernet packet with payload 01"); - _test_trigger_recv(ethernet_netif, data, sizeof(data)); + _test_trigger_recv(ðernet_netif, data, sizeof(data)); } static Test *embunit_tests_gnrc_netif(void) { EMB_UNIT_TESTFIXTURES(fixtures) { new_TestFixture(test_creation), - new_TestFixture(test_get_by_pid), - new_TestFixture(test_addr_to_str), - new_TestFixture(test_addr_from_str), - new_TestFixture(test_ipv6_addr_add__ENOMEM), - new_TestFixture(test_ipv6_addr_add__success), - new_TestFixture(test_ipv6_addr_add__readd_with_free_entry), - new_TestFixture(test_ipv6_addr_remove__not_allocated), - new_TestFixture(test_ipv6_addr_remove__success), - new_TestFixture(test_ipv6_addr_idx__empty), - new_TestFixture(test_ipv6_addr_idx__unspecified_addr), - new_TestFixture(test_ipv6_addr_idx__wrong_netif), - new_TestFixture(test_ipv6_addr_idx__wrong_addr), - new_TestFixture(test_ipv6_addr_idx__success), - new_TestFixture(test_ipv6_addr_match__empty), - new_TestFixture(test_ipv6_addr_match__unspecified_addr), - new_TestFixture(test_ipv6_addr_match__wrong_netif), - new_TestFixture(test_ipv6_addr_match__wrong_addr), - new_TestFixture(test_ipv6_addr_match__success18), - new_TestFixture(test_ipv6_addr_match__success23), - new_TestFixture(test_ipv6_addr_match__success64), - new_TestFixture(test_ipv6_addr_best_src__multicast_input), - new_TestFixture(test_ipv6_addr_best_src__unspecified_addr), - new_TestFixture(test_ipv6_addr_best_src__other_subnet), - new_TestFixture(test_ipv6_addr_best_src__ula_src_dst), - new_TestFixture(test_ipv6_addr_best_src__global_src_ula_dst), - new_TestFixture(test_ipv6_addr_best_src__deprecated_addr), - new_TestFixture(test_get_by_ipv6_addr__empty), - new_TestFixture(test_get_by_ipv6_addr__unspecified_addr), - new_TestFixture(test_get_by_ipv6_addr__success), - new_TestFixture(test_get_by_prefix__empty), - new_TestFixture(test_get_by_prefix__unspecified_addr), - new_TestFixture(test_get_by_prefix__success18), - new_TestFixture(test_get_by_prefix__success23), - new_TestFixture(test_get_by_prefix__success64), - new_TestFixture(test_ipv6_group_join__ENOMEM), - new_TestFixture(test_ipv6_group_join__success), - new_TestFixture(test_ipv6_group_join__readd_with_free_entry), - new_TestFixture(test_ipv6_group_leave__not_allocated), - new_TestFixture(test_ipv6_group_leave__success), - new_TestFixture(test_ipv6_group_idx__empty), - new_TestFixture(test_ipv6_group_idx__unspecified_addr), - new_TestFixture(test_ipv6_group_idx__unicast_addr), - new_TestFixture(test_ipv6_group_idx__wrong_netif), - new_TestFixture(test_ipv6_group_idx__wrong_addr), - new_TestFixture(test_ipv6_group_idx__success), - new_TestFixture(test_ipv6_get_iid), - new_TestFixture(test_netapi_get__HOP_LIMIT), - new_TestFixture(test_netapi_get__IPV6_ADDR), - new_TestFixture(test_netapi_get__IPV6_ADDR_FLAGS), - new_TestFixture(test_netapi_get__IPV6_GROUP), - new_TestFixture(test_netapi_get__IPV6_IID), - new_TestFixture(test_netapi_get__MAX_PACKET_SIZE), - new_TestFixture(test_netapi_get__6LO_IPHC), - new_TestFixture(test_netapi_get__ADDRESS), - new_TestFixture(test_netapi_get__ADDRESS_LONG), - new_TestFixture(test_netapi_set__HOP_LIMIT), - new_TestFixture(test_netapi_set__IPV6_ADDR), - new_TestFixture(test_netapi_set__IPV6_ADDR_REMOVE), - new_TestFixture(test_netapi_set__IPV6_GROUP), - new_TestFixture(test_netapi_set__IPV6_GROUP_LEAVE), - new_TestFixture(test_netapi_set__MAX_PACKET_SIZE), - new_TestFixture(test_netapi_set__6LO_IPHC), - new_TestFixture(test_netapi_set__ADDRESS), - new_TestFixture(test_netapi_set__ADDRESS_LONG), - new_TestFixture(test_netapi_set__SRC_LEN), - new_TestFixture(test_netif_iter), - new_TestFixture(test_netif_get_name), - new_TestFixture(test_netif_get_by_name), - new_TestFixture(test_netif_get_opt), - new_TestFixture(test_netif_set_opt), - /* only add tests not involving output here */ + new_TestFixture(test_get_by_pid), + new_TestFixture(test_addr_to_str), + new_TestFixture(test_addr_from_str), + new_TestFixture(test_ipv6_addr_add__ENOMEM), + new_TestFixture(test_ipv6_addr_add__success), + new_TestFixture(test_ipv6_addr_add__readd_with_free_entry), + new_TestFixture(test_ipv6_addr_remove__not_allocated), + new_TestFixture(test_ipv6_addr_remove__success), + new_TestFixture(test_ipv6_addr_idx__empty), + new_TestFixture(test_ipv6_addr_idx__unspecified_addr), + new_TestFixture(test_ipv6_addr_idx__wrong_netif), + new_TestFixture(test_ipv6_addr_idx__wrong_addr), + new_TestFixture(test_ipv6_addr_idx__success), + new_TestFixture(test_ipv6_addr_match__empty), + new_TestFixture(test_ipv6_addr_match__unspecified_addr), + new_TestFixture(test_ipv6_addr_match__wrong_netif), + new_TestFixture(test_ipv6_addr_match__wrong_addr), + new_TestFixture(test_ipv6_addr_match__success18), + new_TestFixture(test_ipv6_addr_match__success23), + new_TestFixture(test_ipv6_addr_match__success64), + new_TestFixture(test_ipv6_addr_best_src__multicast_input), + new_TestFixture(test_ipv6_addr_best_src__unspecified_addr), + new_TestFixture(test_ipv6_addr_best_src__other_subnet), + new_TestFixture(test_ipv6_addr_best_src__ula_src_dst), + new_TestFixture(test_ipv6_addr_best_src__global_src_ula_dst), + new_TestFixture(test_ipv6_addr_best_src__deprecated_addr), + new_TestFixture(test_get_by_ipv6_addr__empty), + new_TestFixture(test_get_by_ipv6_addr__unspecified_addr), + new_TestFixture(test_get_by_ipv6_addr__success), + new_TestFixture(test_get_by_prefix__empty), + new_TestFixture(test_get_by_prefix__unspecified_addr), + new_TestFixture(test_get_by_prefix__success18), + new_TestFixture(test_get_by_prefix__success23), + new_TestFixture(test_get_by_prefix__success64), + new_TestFixture(test_ipv6_group_join__ENOMEM), + new_TestFixture(test_ipv6_group_join__success), + new_TestFixture(test_ipv6_group_join__readd_with_free_entry), + new_TestFixture(test_ipv6_group_leave__not_allocated), + new_TestFixture(test_ipv6_group_leave__success), + new_TestFixture(test_ipv6_group_idx__empty), + new_TestFixture(test_ipv6_group_idx__unspecified_addr), + new_TestFixture(test_ipv6_group_idx__unicast_addr), + new_TestFixture(test_ipv6_group_idx__wrong_netif), + new_TestFixture(test_ipv6_group_idx__wrong_addr), + new_TestFixture(test_ipv6_group_idx__success), + new_TestFixture(test_ipv6_get_iid), + new_TestFixture(test_netapi_get__HOP_LIMIT), + new_TestFixture(test_netapi_get__IPV6_ADDR), + new_TestFixture(test_netapi_get__IPV6_ADDR_FLAGS), + new_TestFixture(test_netapi_get__IPV6_GROUP), + new_TestFixture(test_netapi_get__IPV6_IID), + new_TestFixture(test_netapi_get__MAX_PACKET_SIZE), + new_TestFixture(test_netapi_get__6LO_IPHC), + new_TestFixture(test_netapi_get__ADDRESS), + new_TestFixture(test_netapi_get__ADDRESS_LONG), + new_TestFixture(test_netapi_set__HOP_LIMIT), + new_TestFixture(test_netapi_set__IPV6_ADDR), + new_TestFixture(test_netapi_set__IPV6_ADDR_REMOVE), + new_TestFixture(test_netapi_set__IPV6_GROUP), + new_TestFixture(test_netapi_set__IPV6_GROUP_LEAVE), + new_TestFixture(test_netapi_set__MAX_PACKET_SIZE), + new_TestFixture(test_netapi_set__6LO_IPHC), + new_TestFixture(test_netapi_set__ADDRESS), + new_TestFixture(test_netapi_set__ADDRESS_LONG), + new_TestFixture(test_netapi_set__SRC_LEN), + new_TestFixture(test_netif_iter), + new_TestFixture(test_netif_get_name), + new_TestFixture(test_netif_get_by_name), + new_TestFixture(test_netif_get_opt), + new_TestFixture(test_netif_set_opt), + /* only add tests not involving output here */ }; EMB_UNIT_TESTCALLER(tests, _set_up, NULL, fixtures); @@ -1607,21 +1600,21 @@ int main(void) { _tests_init(); netdev_test_set_get_cb((netdev_test_t *)ethernet_dev, NETOPT_ADDRESS, - _get_netdev_address); + _get_netdev_address); netdev_test_set_set_cb((netdev_test_t *)ethernet_dev, NETOPT_ADDRESS, - _set_netdev_address); + _set_netdev_address); netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS, - _get_netdev_address); + _get_netdev_address); netdev_test_set_set_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS, - _set_netdev_address); + _set_netdev_address); netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS_LONG, - _get_netdev_address_long); + _get_netdev_address_long); netdev_test_set_set_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS_LONG, - _set_netdev_address_long); + _set_netdev_address_long); netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_SRC_LEN, - _get_netdev_src_len); + _get_netdev_src_len); netdev_test_set_set_cb((netdev_test_t *)ieee802154_dev, NETOPT_SRC_LEN, - _set_netdev_src_len); + _set_netdev_src_len); TESTS_START(); TESTS_RUN(embunit_tests_gnrc_netif()); TESTS_END(); @@ -1683,7 +1676,7 @@ static int _get_netdev_address(netdev_t *dev, void *value, size_t max_len) } static int _set_netdev_address(netdev_t *dev, const void *value, - size_t value_len) + size_t value_len) { if (dev == ethernet_dev) { expect(value_len <= sizeof(ethernet_l2addr)); @@ -1711,7 +1704,7 @@ static int _get_netdev_address_long(netdev_t *dev, void *value, size_t max_len) } static int _set_netdev_address_long(netdev_t *dev, const void *value, - size_t value_len) + size_t value_len) { if (dev == ieee802154_dev) { expect(value_len <= sizeof(ieee802154_l2addr_long)); @@ -1734,7 +1727,7 @@ static int _get_netdev_src_len(netdev_t *dev, void *value, size_t max_len) } static int _set_netdev_src_len(netdev_t *dev, const void *value, - size_t value_len) + size_t value_len) { (void)value_len; diff --git a/tests/gnrc_sixlowpan/main.c b/tests/gnrc_sixlowpan/main.c index ddcc105dd9..e7cc971e08 100644 --- a/tests/gnrc_sixlowpan/main.c +++ b/tests/gnrc_sixlowpan/main.c @@ -46,6 +46,7 @@ 0x02, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x02 \ } +static gnrc_netif_t _netif; static char _netif_stack[THREAD_STACKSIZE_DEFAULT]; static netdev_test_t _ieee802154_dev; static const uint8_t _ieee802154_local_eui64[] = IEEE802154_LOCAL_EUI64; @@ -97,8 +98,6 @@ static int _get_netdev_addr_long(netdev_t *netdev, void *value, size_t max_len) static void _init_interface(void) { - gnrc_netif_t *netif; - netdev_test_setup(&_ieee802154_dev, NULL); netdev_test_set_get_cb(&_ieee802154_dev, NETOPT_DEVICE_TYPE, _get_netdev_device_type); @@ -110,7 +109,7 @@ static void _init_interface(void) _get_netdev_src_len); netdev_test_set_get_cb(&_ieee802154_dev, NETOPT_ADDRESS_LONG, _get_netdev_addr_long); - netif = gnrc_netif_ieee802154_create( + gnrc_netif_ieee802154_create(&_netif, _netif_stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, "dummy_netif", (netdev_t *)&_ieee802154_dev); ipv6_addr_t addr = IPV6_ADDR_UNSPECIFIED; @@ -121,10 +120,10 @@ static void _init_interface(void) addr.u8[15] = 0x01; xtimer_usleep(500); /* wait for thread to start */ - if (gnrc_netapi_set(netif->pid, NETOPT_IPV6_ADDR, 64U << 8U, &addr, + if (gnrc_netapi_set(_netif.pid, NETOPT_IPV6_ADDR, 64U << 8U, &addr, sizeof(addr)) < 0) { printf("error: unable to add IPv6 address fd01::1/64 to interface %u\n", - netif->pid); + _netif.pid); } } diff --git a/tests/gnrc_sixlowpan_iphc_w_vrb/main.c b/tests/gnrc_sixlowpan_iphc_w_vrb/main.c index 9c70bafe80..42cf35899e 100644 --- a/tests/gnrc_sixlowpan_iphc_w_vrb/main.c +++ b/tests/gnrc_sixlowpan_iphc_w_vrb/main.c @@ -101,6 +101,7 @@ const ipv6_addr_t _test_tgt_ipv6 = { .u8 = TEST_TGT_IPV6 }; static char _mock_netif_stack[THREAD_STACKSIZE_DEFAULT]; static netdev_test_t _mock_dev; +static gnrc_netif_t _netif; static gnrc_netif_t *_mock_netif; void _set_up(void) @@ -308,9 +309,10 @@ static void _init_mock_netif(void) _get_netdev_src_len); netdev_test_set_get_cb(&_mock_dev, NETOPT_ADDRESS_LONG, _get_netdev_addr_long); - _mock_netif = gnrc_netif_ieee802154_create( - _mock_netif_stack, THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, - "mock_netif", (netdev_t *)&_mock_dev); + gnrc_netif_ieee802154_create(&_netif, _mock_netif_stack, + THREAD_STACKSIZE_DEFAULT, GNRC_NETIF_PRIO, + "mock_netif", (netdev_t *)&_mock_dev); + _mock_netif = &_netif; thread_yield_higher(); } diff --git a/tests/netdev_test/main.c b/tests/netdev_test/main.c index 19928c3b13..96aa5392b3 100644 --- a/tests/netdev_test/main.c +++ b/tests/netdev_test/main.c @@ -52,6 +52,8 @@ static uint8_t _dev_addr[] = { 0x6c, 0x5d, 0xff, 0x73, 0x84, 0x6f }; static const uint8_t _test_dst[] = { 0xf5, 0x19, 0x9a, 0x1d, 0xd8, 0x8f }; static const uint8_t _test_src[] = { 0x41, 0x9b, 0x9f, 0x56, 0x36, 0x46 }; +static gnrc_netif_t _netif; + static char _mac_stack[_MAC_STACKSIZE]; static netdev_test_t _dev; static msg_t _main_msg_queue[_MAIN_MSG_QUEUE_SIZE]; @@ -258,8 +260,9 @@ int main(void) netdev_test_set_send_cb(&_dev, _dev_send); netdev_test_set_get_cb(&_dev, NETOPT_ADDRESS, _dev_get_addr); netdev_test_set_set_cb(&_dev, NETOPT_ADDRESS, _dev_set_addr); - _mac_pid = gnrc_netif_ethernet_create(_mac_stack, _MAC_STACKSIZE, _MAC_PRIO, - "netdev_test", (netdev_t *)&_dev)->pid; + gnrc_netif_ethernet_create(&_netif, _mac_stack, _MAC_STACKSIZE, _MAC_PRIO, + "netdev_test", (netdev_t *)&_dev); + _mac_pid = _netif.pid; /* test execution */ EXECUTE(test_get_addr);