-
Notifications
You must be signed in to change notification settings - Fork 2k
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/tcp : Expose configurations to Kconfig #14126
Conversation
2c8a0ae
to
8269a26
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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