Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gnrc_sixlowpan_frag_sfr: provide CongURE support #16156

Merged
merged 3 commits into from
Oct 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
benpicco marked this conversation as resolved.
Show resolved Hide resolved
## @}
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