[riot-notifications] [RIOT-OS/RIOT] gnrc_tcp: experimental feature "dynamic msl" (#16764)

Simon Brummer notifications at github.com
Sat Aug 21 10:44:39 CEST 2021


### Contribution description
This PR adds an experimental feature to gnrc_tcp called "dynamic MSL".
It calculates the otherwise static MSL value based on the last calculated re-transmission timeout value times
a configurable constant factor. This leads to a much shorter MSL causing gnrc_tcp_close to return faster if the TCP teardown sequence causes GNRC_TCP to wait in state TIME-WAIT.

Although this feature is a deviation from the TCP Standard, it should not cause any Issues. If a packet is received after the shorter TIME-WAIT timer times out, a reset packet is sent in return. 

### Testing procedure
This PR is not really testable in a deterministic way. It depends on heavily on the scheduling of the
test runner and the packet transmission order between host system and riot node.
I enabled this feature in the gnrc_tcp test suite located under tests/gnrc_tcp.
If you run the test suite tests multiple times and no test takes longer than a minute, chances are good that its working. 

### Issues/PRs references
#16494 contains a long explanation regarding MSL length and the core mechanism this PR allows to tweak. 
You can view, comment on, or merge this pull request online at:

  https://github.com/RIOT-OS/RIOT/pull/16764

-- Commit Summary --

  * gnrc_tcp: experimental feature "dynamic msl"

-- File Changes --

    M sys/include/net/gnrc/tcp/config.h (20)
    M sys/net/gnrc/transport_layer/tcp/Kconfig (19)
    M sys/net/gnrc/transport_layer/tcp/gnrc_tcp_fsm.c (16)
    M tests/gnrc_tcp/Makefile (21)

-- Patch Links --

https://github.com/RIOT-OS/RIOT/pull/16764.patch
https://github.com/RIOT-OS/RIOT/pull/16764.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/16764
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210821/01ff605f/attachment.htm>


More information about the notifications mailing list