From eac066a1e5b4f080c0f4a387828258cb79e1efeb Mon Sep 17 00:00:00 2001 From: Martine Lenders Date: Fri, 15 Feb 2019 14:46:43 +0100 Subject: [PATCH] gnrc_netif_ieee802154: propagate pend. frame flag to stack This way we can re-use the flag e.g. for forwarding --- sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c b/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c index 44bccbe17d..258237c58d 100644 --- a/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c +++ b/sys/net/gnrc/netif/ieee802154/gnrc_netif_ieee802154.c @@ -48,6 +48,7 @@ gnrc_netif_t *gnrc_netif_ieee802154_create(char *stack, int stacksize, static gnrc_pktsnip_t *_make_netif_hdr(uint8_t *mhr) { + gnrc_netif_hdr_t *hdr; gnrc_pktsnip_t *snip; uint8_t src[IEEE802154_LONG_ADDRESS_LEN], dst[IEEE802154_LONG_ADDRESS_LEN]; int src_len, dst_len; @@ -65,11 +66,15 @@ static gnrc_pktsnip_t *_make_netif_hdr(uint8_t *mhr) DEBUG("_make_netif_hdr: no space left in packet buffer\n"); return NULL; } + hdr = snip->data; /* set broadcast flag for broadcast destination */ if ((dst_len == 2) && (dst[0] == 0xff) && (dst[1] == 0xff)) { - gnrc_netif_hdr_t *hdr = snip->data; hdr->flags |= GNRC_NETIF_HDR_FLAGS_BROADCAST; } + /* set flags for pending frames */ + if (mhr[0] & IEEE802154_FCF_FRAME_PEND) { + hdr->flags |= GNRC_NETIF_HDR_FLAGS_MORE_DATA; + } return snip; }