diff --git a/cpu/esp32/esp-wifi/esp_wifi_netdev.c b/cpu/esp32/esp-wifi/esp_wifi_netdev.c
index 218e0d0a721a3194a09911ff47abc6b67c35d680..f3b461f82ec37933af22239bb30dff3578b552df 100644
--- a/cpu/esp32/esp-wifi/esp_wifi_netdev.c
+++ b/cpu/esp32/esp-wifi/esp_wifi_netdev.c
@@ -298,7 +298,7 @@ static int _esp_wifi_recv(netdev_t *netdev, void *buf, size_t len, void *info)
 
     mutex_lock(&dev->dev_lock);
 
-    uint8_t size = dev->rx_len;
+    uint16_t size = dev->rx_len;
 
     if (!buf && !len) {
         /* return the size without dropping received data */
diff --git a/cpu/esp32/esp-wifi/esp_wifi_netdev.h b/cpu/esp32/esp-wifi/esp_wifi_netdev.h
index d478423a1623ecffa8731cc805fc4f828a70fb1f..a0900c54dd00597be26e282b70706bb3839b0b4c 100644
--- a/cpu/esp32/esp-wifi/esp_wifi_netdev.h
+++ b/cpu/esp32/esp-wifi/esp_wifi_netdev.h
@@ -37,10 +37,10 @@ typedef struct
 {
     netdev_t netdev;                   /**< netdev parent struct */
 
-    uint8_t rx_len;                    /**< number of bytes received */
+    uint16_t rx_len;                   /**< number of bytes received */
     uint8_t rx_buf[ETHERNET_DATA_LEN]; /**< receive buffer */
 
-    uint8_t tx_len;                    /**< number of bytes in transmit buffer */
+    uint16_t tx_len;                   /**< number of bytes in transmit buffer */
     uint8_t tx_buf[ETHERNET_DATA_LEN]; /**< transmit buffer */
 
     uint32_t event;                    /**< received event */