34#ifndef NET_GNRC_SIXLOWPAN_FRAG_SFR_H
35#define NET_GNRC_SIXLOWPAN_FRAG_SFR_H
54#define GNRC_SIXLOWPAN_FRAG_SFR_ARQ_TIMEOUT_MSG (0x0227)
59#define GNRC_SIXLOWPAN_FRAG_SFR_INTER_FRAG_GAP_MSG (0x0228)
97 if (
IS_USED(MODULE_GNRC_SIXLOWPAN_FRAG_SFR) &&
98 gnrc_netif_is_6lo(netif)) {
99#if IS_USED(MODULE_GNRC_NETIF_6LO)
123#if IS_USED(MODULE_GNRC_NETIF_6LO)
124 return IS_USED(MODULE_GNRC_SIXLOWPAN_FRAG_SFR) &&
125 gnrc_netif_is_6lo(netif) &&
193#if IS_USED(MODULE_GNRC_SIXLOWPAN_FRAG_SFR_STATS)
#define GNRC_NETIF_6LO_LOCAL_FLAGS_SFR
Selective Fragment Recovery enabled.
POSIX.1-2008 compliant version of the assert macro.
#define assert(cond)
abort the program if assertion is false
bitfields operations on bitfields of arbitrary length
Fragmentation buffer definitions.
Definition for GNRC's network interfaces.
#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_FRAG_SIZE
Default value for fragment size that the sender should use to start with (OptFragmentSize)
#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_FRAG_SIZE
Default minimum value for fragment size (MinFragmentSize)
int gnrc_sixlowpan_frag_sfr_forward(gnrc_pktsnip_t *pkt, sixlowpan_sfr_rfrag_t *rfrag, gnrc_sixlowpan_frag_vrb_t *vrbe, unsigned page)
Forward a fragment via selective fragment recovery.
void gnrc_sixlowpan_frag_sfr_arq_timeout(gnrc_sixlowpan_frag_fb_t *fbuf)
Handles an Acknowledgment request timeout.
void gnrc_sixlowpan_frag_sfr_recv(gnrc_pktsnip_t *pkt, void *ctx, unsigned page)
Handles a packet containing a selective fragment recovery header.
void gnrc_sixlowpan_frag_sfr_send(gnrc_pktsnip_t *pkt, void *ctx, unsigned page)
Sends a packet via selective fragment recovery.
void gnrc_sixlowpan_frag_sfr_init(void)
Initialize selective fragment recovery.
static bool gnrc_sixlowpan_frag_sfr_netif(gnrc_netif_t *netif)
Checks if a network interface is configured for selective fragment recovery.
void gnrc_sixlowpan_frag_sfr_inter_frame_gap(gnrc_sixlowpan_frag_fb_t *fbuf)
Handles inter frame gap.
static void gnrc_sixlowpan_frag_sfr_init_iface(gnrc_netif_t *netif)
Initialize a network interface for selective fragment recovery.
#define IS_USED(module)
Checks whether a module is being used or not.
General definitions for network packets and their helper functions.
6LoWPAN selective fragment recovery type definitions for GNRC
6LoWPAN selective fragment recovery dispatch type and helper function definitions.
uint16_t max_frag_size
Maximum fragment size for 6Lo fragmentation.
uint8_t local_flags
6LoWPAN capability flags beyond the ones advertised in 6LoWPAN Capability Indication Option (6CIO)
Representation of a network interface.
gnrc_netif_6lo_t sixlo
6Lo component
Type to represent parts (either headers or payload) of a packet, called snips.
6LoWPAN fragmentation buffer entry.
Stats on selective fragment recovery.
uint32_t usual
non-abort fragments sent
uint32_t full
full RFRAGs ACKs sent
uint32_t forwarded
forwarded fragments
uint32_t by_timeout
fragments resent due to an ARQ timeout
uint32_t datagram_resends
datagrams resent
uint32_t by_nack
fragments resent due to a 0 in ACK's bitmap
uint32_t partly
partly ACKing RFRAGs sent
uint32_t aborts
abort pseudo-fragments sent
Representation of the virtual reassembly buffer entry.
Recoverable fragment header.
Configuration macros for 6LoWPAN.
Virtual reassembly buffer definitions.