diff --git a/src/core/pbuf.c b/src/core/pbuf.c index edb1c952..9f35ec6a 100644 --- a/src/core/pbuf.c +++ b/src/core/pbuf.c @@ -117,6 +117,7 @@ void eth_rx_irq() #include "lwip/memp.h" #include "lwip/pbuf.h" #include "lwip/sys.h" +#include "lwip/netif.h" #if LWIP_TCP && TCP_QUEUE_OOSEQ #include "lwip/priv/tcp_priv.h" #endif @@ -290,6 +291,7 @@ pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type) } p->type = type; p->next = NULL; + p->if_idx = NETIF_NO_INDEX; /* make the payload pointer point 'offset' bytes into pbuf data memory */ p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset))); diff --git a/src/include/lwip/pbuf.h b/src/include/lwip/pbuf.h index 7490e605..a0004bf8 100644 --- a/src/include/lwip/pbuf.h +++ b/src/include/lwip/pbuf.h @@ -170,6 +170,9 @@ struct pbuf { * the stack itself, or pbuf->next pointers from a chain. */ LWIP_PBUF_REF_T ref; + + /** For incoming packets, this contains the input netif's index */ + u8_t if_idx; };