diff --git a/pkg/lwip/Makefile.dep b/pkg/lwip/Makefile.dep index 4e2d4ad80d..f38075ffc9 100644 --- a/pkg/lwip/Makefile.dep +++ b/pkg/lwip/Makefile.dep @@ -85,6 +85,14 @@ ifneq (,$(filter lwip_contrib,$(USEMODULE))) USEMODULE += xtimer endif +ifneq (,$(filter lwip_netif,$(USEMODULE))) + USEMODULE += netif +endif + ifneq (,$(filter lwip_dhcp_auto,$(USEMODULE))) USEMODULE += lwip_dhcp endif + +ifneq (,$(filter netif,$(USEMODULE))) + USEMODULE += fmt +endif diff --git a/pkg/lwip/contrib/_netif.c b/pkg/lwip/contrib/_netif.c new file mode 100644 index 0000000000..069693f22c --- /dev/null +++ b/pkg/lwip/contrib/_netif.c @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 ML!PA Consulting GmbH + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @{ + * + * Implements @ref net_netif for @ref net_lwip + * + * @file + * @author Benjamin Valentin + */ + +#include "fmt.h" +#include "lwip/netif.h" +#include "net/netif.h" + +int netif_get_name(netif_t *iface, char *name) +{ + struct netif *netif = (struct netif *)iface; + + int res = 2; + name[0] = netif->name[0]; + name[1] = netif->name[1]; + res += fmt_u16_dec(&name[res], netif->num); + name[res] = '\0'; + return res; +} + +/** @} */ diff --git a/sys/shell/commands/sc_lwip_netif.c b/sys/shell/commands/sc_lwip_netif.c index 14c864821a..ee2d572b32 100644 --- a/sys/shell/commands/sc_lwip_netif.c +++ b/sys/shell/commands/sc_lwip_netif.c @@ -43,9 +43,10 @@ static void _netif_list_ipv6(struct netif *netif, int addr_index) { static void _netif_list(struct netif *netif) { int i; + char name[8]; struct netdev *dev = netif->state; - printf("Iface %c%c%u ", netif->name[0], netif->name[1], netif->num); - printf("HWaddr: "); + netif_get_name((netif_t *)netif, name); + printf("Iface %s HWaddr: ", name); for (i = 0; i < netif->hwaddr_len; i++) { printf("%02x", netif->hwaddr[i]); if ((i+1) < netif->hwaddr_len) {