From 0a7734cf648ec7b64b91fe9478e31c917aedb0a9 Mon Sep 17 00:00:00 2001 From: Dirk Ziegelmeier Date: Thu, 23 Feb 2017 16:36:40 +0100 Subject: [PATCH] Preparation for task #14369: Define ways to work with a netif having multiple ports Let ethernet_input() fill in pbuf's if_idx (if not already set by driver or an L2 bridge) --- src/netif/ethernet.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/netif/ethernet.c b/src/netif/ethernet.c index 4596b32c..7270cfd8 100644 --- a/src/netif/ethernet.c +++ b/src/netif/ethernet.c @@ -94,6 +94,10 @@ ethernet_input(struct pbuf *p, struct netif *netif) goto free_and_return; } + if (p->if_idx == NETIF_NO_INDEX) { + p->if_idx = netif_get_index(netif); + } + /* points to packet payload, which starts with an Ethernet header */ ethhdr = (struct eth_hdr *)p->payload; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE,