/* * Copyright (C) 2015 Martine Lenders * Copyright (C) 2015 Hamburg University of Applied Sciences * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @defgroup net_gnrc_sixlowpan_frag 6LoWPAN Fragmentation * @ingroup net_gnrc_sixlowpan * @brief 6LoWPAN Fragmentation headers and functionality * @see * RFC 4944, section 5.3 * * @{ * * @file * @brief 6LoWPAN Fragmentation definitions * * @author Martine Lenders * @author Peter Kietzmann */ #ifndef NET_GNRC_SIXLOWPAN_FRAG_H #define NET_GNRC_SIXLOWPAN_FRAG_H #include #include "byteorder.h" #include "net/gnrc/pkt.h" #include "net/gnrc/netif/hdr.h" #ifdef MODULE_GNRC_SIXLOWPAN_FRAG_HINT #include "net/gnrc/sixlowpan/frag/hint.h" #endif /* MODULE_GNRC_SIXLOWPAN_FRAG_HINT */ #include "net/gnrc/sixlowpan/frag/fb.h" #include "net/gnrc/sixlowpan/internal.h" #include "net/ieee802154.h" #include "net/sixlowpan.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Sends a packet fragmented * * @pre `ctx != NULL` * @pre gnrc_sixlowpan_frag_fb_t::pkt of @p ctx is equal to @p pkt or * `pkt == NULL`. * * @param[in] pkt A packet. May be NULL. * @param[in] ctx A fragmentation buffer entry. Expected to be of type * @ref gnrc_sixlowpan_frag_fb_t, with * gnrc_sixlowpan_frag_fb_t set to @p pkt. Must not be * NULL. * @param[in] page Current 6Lo dispatch parsing page. */ void gnrc_sixlowpan_frag_send(gnrc_pktsnip_t *pkt, void *ctx, unsigned page); /** * @brief Handles a packet containing a fragment header * * @param[in] pkt The packet to handle * @param[in] ctx Context for the packet. May be NULL. * @param[in] page Current 6Lo dispatch parsing page. */ void gnrc_sixlowpan_frag_recv(gnrc_pktsnip_t *pkt, void *ctx, unsigned page); #ifdef __cplusplus } #endif #endif /* NET_GNRC_SIXLOWPAN_FRAG_H */ /** @} */