gnrc/tcp : Expose configurations to Kconfig#14126
gnrc/tcp : Expose configurations to Kconfig#14126leandrolanzieri merged 17 commits intoRIOT-OS:masterfrom
Conversation
2c8a0ae to
8269a26
Compare
brummer-simon
left a comment
There was a problem hiding this comment.
The changes did not break any existing tests (tested on "native" and "nucleo-f401re") and the custom configurations are propagated into the binary. From a technical point of view it works good, however there are some descriptions value descriptions that are a bit misleading.
If you fix those the PR is fine by me.
brummer-simon
left a comment
There was a problem hiding this comment.
I have some small change requests aside from that good work.
Thank you for the comments. I have updated the file. Introduced a new symbol to make sure that the default configuration remains intact. Directly configuring the |
brummer-simon
left a comment
There was a problem hiding this comment.
I have tested this PR on "native" and on "nucleo-f401re". The test suite works as expected an all configured values are present in the resulting binary. From my point of view, this PR can be merged, although I don't have the rights to do that.
@akshaim - Thanks for adding the Kconfig support.
Thanks @brummer-simon for the review. @leandrolanzieri Should I squash now ? |
Yes please |
Add compile time parameters to doxygen group 'net_gnrc_conf'
Expose configurations to Kconfig
Set CONFIG_GNRC_TCP_MSL and CONFIG_GNRC_TCP_CONNECTION_TIMEOUT_DURATION if not set via Kconfig
Done. I have reordered the commit history, to make better sense of, but github displays commits by order of author date. |
leandrolanzieri
left a comment
There was a problem hiding this comment.
Changes look good and @brummer-simon confirmed that this works properly. ACK.
|
Thanks @leandrolanzieri |
Contribution description
This PR exposes compile configurations in GNRC: TCP to Kconfig.
Testing procedure
The build works fine.
The test file can be found here
Compiled binaries (BOARD=samr21-xpro) were uploaded to FIT IoT Test bed.
Default State:
Firmware Output
~~}!main(): This is RIOT! (Version: 2020.07-devel-737-g0b75d-Kconfig_tcp_tests)
~~}!CONFIG_GNRC_TCP_CONNECTION_TIMEOUT_DURATION=3000000
~~}!CONFIG_GNRC_TCP_MSL=1000000
~~}!CONFIG_GNRC_TCP_MSS_MULTIPLICATOR=(1U)
~~}!CONFIG_GNRC_TCP_RCV_BUFFERS=(1U)
~~}!CONFIG_GNRC_TCP_RTO_LOWER_BOUND=(1U * (1000000LU))
~~}!CONFIG_GNRC_TCP_RTO_UPPER_BOUND=(60U * (1000000LU))
~~}!CONFIG_GNRC_TCP_RTO_GRANULARITY=(10U * (1000LU))
~~}!CONFIG_GNRC_TCP_RTO_A_DIV=(8U)
~~}!CONFIG_GNRC_TCP_RTO_B_DIV=(4U)
~~}!CONFIG_GNRC_TCP_RTO_K=(4U)
~~}!CONFIG_GNRC_TCP_PROBE_LOWER_BOUND=(1U * (1000000LU))
~~}!CONFIG_GNRC_TCP_PROBE_UPPER_BOUND=(60U * (1000000LU))
~~}!RIOT GNRC_TCP test application
Usage with menuconfig [default values]
Firmware Output
!main(): This is RIOT! (Version: 2020.07-devel-737-g82bda-Kconfig_tcp_tests)
~~}!CONFIG_GNRC_TCP_CONNECTION_TIMEOUT_DURATION=120000000
~~}!CONFIG_GNRC_TCP_MSL=30000000
~~}!CONFIG_GNRC_TCP_MSS_MULTIPLICATOR=1
~~}!CONFIG_GNRC_TCP_RCV_BUFFERS=1
~~}!CONFIG_GNRC_TCP_RTO_LOWER_BOUND=1000000
~~}!CONFIG_GNRC_TCP_RTO_UPPER_BOUND=60000000
~~}!CONFIG_GNRC_TCP_RTO_GRANULARITY=10000
~~}!CONFIG_GNRC_TCP_RTO_A_DIV=8
~~}!CONFIG_GNRC_TCP_RTO_B_DIV=4
~~}!CONFIG_GNRC_TCP_RTO_K=4
~~}!CONFIG_GNRC_TCP_PROBE_LOWER_BOUND=1000000
~~}!CONFIG_GNRC_TCP_PROBE_UPPER_BOUND=60000000
~~}!RIOT GNRC_TCP test application
Usage with menuconfig
Firmware Output
!main(): This is RIOT! (Version: 2020.07-devel-737-g82bda-Kconfig_tcp_tests)
~~}!CONFIG_GNRC_TCP_CONNECTION_TIMEOUT_DURATION=110000000
~~}!CONFIG_GNRC_TCP_MSL=32000000
~~}!CONFIG_GNRC_TCP_MSS_MULTIPLICATOR=2
~~}!CONFIG_GNRC_TCP_RCV_BUFFERS=2
~~}!CONFIG_GNRC_TCP_RTO_LOWER_BOUND=1200000
~~}!CONFIG_GNRC_TCP_RTO_UPPER_BOUND=62000000
~~}!CONFIG_GNRC_TCP_RTO_GRANULARITY=20000
~~}!CONFIG_GNRC_TCP_RTO_A_DIV=4
~~}!CONFIG_GNRC_TCP_RTO_B_DIV=2
~~}!CONFIG_GNRC_TCP_RTO_K=2
~~}!CONFIG_GNRC_TCP_PROBE_LOWER_BOUND=1200000
~~}!CONFIG_GNRC_TCP_PROBE_UPPER_BOUND=50000000
~~}!RIOT GNRC_TCP test application
MACROS were successfully configured.
Issues/PRs references
#12888