Merge pull request #13244 from miri64/gnrc_ipv6_ext/enh/rbuf-do-not-override
gnrc_ipv6_ext_frag: add configuration option to keep oldest entry
This commit is contained in:
commit
02c16479cf
@ -88,6 +88,19 @@ extern "C" {
|
||||
#define CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_TIMEOUT_US (10U * US_PER_SEC)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Do not override oldest datagram when reassembly buffer is full
|
||||
*
|
||||
* @note Only applicable with [gnrc_ipv6_ext_frag](@ref net_gnrc_ipv6_ext_frag) module
|
||||
*
|
||||
* When not set, it will cause the reassembly buffer to override the oldest
|
||||
* entry when a fragment for a new datagram is received. When set to 1, no entry
|
||||
* will be overwritten (they will still timeout normally)
|
||||
*/
|
||||
#ifdef DOXYGEN
|
||||
#define CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_DO_NOT_OVERRIDE
|
||||
#endif
|
||||
|
||||
/** @} **/
|
||||
|
||||
/**
|
||||
|
||||
@ -40,4 +40,11 @@ config GNRC_IPV6_EXT_FRAG_RBUF_TIMEOUT_US
|
||||
help
|
||||
This value is expressed in microseconds.
|
||||
|
||||
config GNRC_IPV6_EXT_FRAG_RBUF_DO_NOT_OVERRIDE
|
||||
bool "Do not override oldest datagram when reassembly buffer is full"
|
||||
help
|
||||
When not set, it will cause the reassembly buffer to override the oldest
|
||||
entry when a fragment for a new datagram is received. When set to 1, no
|
||||
entry will be overwritten (they will still timeout normally)
|
||||
|
||||
endif # KCONFIG_MODULE_GNRC_IPV6_EXT_FRAG
|
||||
|
||||
@ -557,7 +557,8 @@ gnrc_ipv6_ext_frag_rbuf_t *gnrc_ipv6_ext_frag_rbuf_get(ipv6_hdr_t *ipv6,
|
||||
oldest = tmp;
|
||||
}
|
||||
}
|
||||
if (res == NULL) {
|
||||
if ((res == NULL) &&
|
||||
!IS_ACTIVE(CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_DO_NOT_OVERRIDE)) {
|
||||
assert(oldest != NULL); /* reassembly buffer is full, so there needs
|
||||
* to be an oldest entry */
|
||||
DEBUG("ipv6_ext_frag: dropping oldest entry\n");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user