Skip to content

Commit

Permalink
Merge pull request #16156 from miri64/gnrc_sixlowpan_frag_sfr/feat/co…
Browse files Browse the repository at this point in the history
…ngure

gnrc_sixlowpan_frag_sfr: provide CongURE support
  • Loading branch information
miri64 authored Oct 27, 2022
2 parents 578d328 + bc24f9a commit 9ae66be
Show file tree
Hide file tree
Showing 17 changed files with 2,073 additions and 99 deletions.
6 changes: 6 additions & 0 deletions makefiles/pseudomodules.inc.mk
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,12 @@ PSEUDOMODULES += gnrc_sixlowpan_frag_sfr_ecn_if_in
PSEUDOMODULES += gnrc_sixlowpan_frag_sfr_ecn_if_out
PSEUDOMODULES += gnrc_sixlowpan_frag_sfr_ecn_fqueue
PSEUDOMODULES += gnrc_sixlowpan_frag_sfr_stats
##
## @addtogroup net_gnrc_sixlowpan_frag_sfr_congure
## @{
##
PSEUDOMODULES += gnrc_sixlowpan_frag_sfr_congure
## @}
PSEUDOMODULES += gnrc_sixlowpan_iphc_nhc
PSEUDOMODULES += gnrc_sixlowpan_nd_border_router
PSEUDOMODULES += gnrc_sixlowpan_router_default
Expand Down
17 changes: 17 additions & 0 deletions sys/include/net/gnrc/sixlowpan/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,13 @@ extern "C" {
* size will vary between @ref CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE and @ref
* CONFIG_GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE.
*/
#ifdef CONFIG_GNRC_SIXLOWPAN_SFR_USE_ECN
#if IS_USED(MODULE_GNRC_SIXLOWPAN_FRAG_SFR_CONGURE)
#define CONFIG_GNRC_SIXLOWPAN_SFR_USE_ECN 1U
#else
#define CONFIG_GNRC_SIXLOWPAN_SFR_USE_ECN 0U
#endif
#endif

/**
* @brief Default minimum value of window size that the sender can use
Expand Down Expand Up @@ -377,6 +383,17 @@ extern "C" {
#ifndef CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN 2U
#endif

/**
* @brief Deactivate automatic handling of ARQ timer
*
* This requires an external source (e.g. a test application) to call
* @ref gnrc_sixlowpan_frag_sfr_arq_timeout() for
* @ref net_gnrc_sixlowpan_frag_sfr to still work properly.
*/
#ifndef CONFIG_GNRC_SIXLOWPAN_SFR_MOCK_ARQ_TIMER
#define CONFIG_GNRC_SIXLOWPAN_SFR_MOCK_ARQ_TIMER 0U
#endif
/** @} */

/**
Expand Down
5 changes: 4 additions & 1 deletion sys/include/net/gnrc/sixlowpan/frag/sfr.h
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,11 @@ void gnrc_sixlowpan_frag_sfr_arq_timeout(gnrc_sixlowpan_frag_fb_t *fbuf);

/**
* @brief Handles inter frame gap
*
* @param[in] fbuf The fragmentation buffer representing the datagram for which
* the next frame should uphold the inter frame gap
*/
void gnrc_sixlowpan_frag_sfr_inter_frame_gap(void);
void gnrc_sixlowpan_frag_sfr_inter_frame_gap(gnrc_sixlowpan_frag_fb_t *fbuf);

#if IS_USED(MODULE_GNRC_SIXLOWPAN_FRAG_SFR_STATS)
/**
Expand Down
Loading

0 comments on commit 9ae66be

Please sign in to comment.