From f10c6ed4ce34b33efd28b0a106e0ace6e65f37f5 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 22 Nov 2016 01:05:57 +1100 Subject: [PATCH] open_esplibs libnet80211: source code for sdk_ieee80211_deliver_data. (#277) --- open_esplibs/libnet80211/ieee80211_input.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/open_esplibs/libnet80211/ieee80211_input.c b/open_esplibs/libnet80211/ieee80211_input.c index 0880463..be07a51 100644 --- a/open_esplibs/libnet80211/ieee80211_input.c +++ b/open_esplibs/libnet80211/ieee80211_input.c @@ -7,5 +7,25 @@ #if OPEN_LIBNET80211_INPUT // The contents of this file are only built if OPEN_LIBNET80211_INPUT is set to true +#include "esplibs/libpp.h" + +void IRAM sdk_ieee80211_deliver_data(struct sdk_g_ic_netif_info *netif_info, struct esf_buf *esf_buf) { + struct netif *netif = netif_info->netif; + + if (netif->flags & NETIF_FLAG_LINK_UP) { + uint16_t length = esf_buf->length; + struct pbuf *pbuf = pbuf_alloc(PBUF_RAW, length, PBUF_REF); + pbuf->payload = esf_buf->pbuf2->payload; + esf_buf->pbuf1 = pbuf; + pbuf->eb = (void *)esf_buf; + ethernetif_input(netif, pbuf); + return; + } + + if (esf_buf) + sdk_ppRecycleRxPkt(esf_buf); + + return; +} #endif /* OPEN_LIBNET80211_INPUT */