diff --git a/sys/net/gnrc/Kconfig b/sys/net/gnrc/Kconfig index 738ea5ecc3..776607ac57 100644 --- a/sys/net/gnrc/Kconfig +++ b/sys/net/gnrc/Kconfig @@ -13,5 +13,6 @@ rsource "netif/Kconfig" rsource "network_layer/ipv6/Kconfig" rsource "network_layer/sixlowpan/Kconfig" rsource "routing/rpl/Kconfig" +rsource "transport_layer/tcp/Kconfig" endmenu # GNRC Network Stack diff --git a/sys/net/gnrc/transport_layer/tcp/Kconfig b/sys/net/gnrc/transport_layer/tcp/Kconfig new file mode 100644 index 0000000000..7d2c822934 --- /dev/null +++ b/sys/net/gnrc/transport_layer/tcp/Kconfig @@ -0,0 +1,115 @@ +# Copyright (c) 2020 Freie Universitaet Berlin +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# +menuconfig KCONFIG_MODULE_GNRC_TCP + bool "Configure GNRC_TCP" + depends on MODULE_GNRC_TCP + help + Configure the GNRC_TCP using Kconfig. + +if KCONFIG_MODULE_GNRC_TCP + +config GNRC_TCP_CONNECTION_TIMEOUT_DURATION + int "Timeout duration for user calls in microseconds" + default 120000000 + help + Timeout duration for user calls. Default value is 120000000 microseconds + (2 minutes). + +config GNRC_TCP_MSL + int "Maximum segment lifetime (MSL) in microseconds" + default 30000000 + help + Maximum segment lifetime (MSL) in microseconds. Default value is 30 + seconds. + +config GNRC_TCP_MSS + int "Maximum Segment Size (MSS)" + default 1220 if MODULE_GNRC_IPV6 + default 576 + +config GNRC_TCP_MSS_MULTIPLICATOR + int "Number of MSS sized packets stored in receive buffer" + default 1 + help + Configure MSS Multiplicator i.e. number of MSS sized packets stored in + receive buffer. + +config GNRC_TCP_DEFAULT_WINDOW_EN + bool "Enable configuration of TCP window size" + help + Enable configuration of TCP window size. If not enabled, TCP window size + will default to the product of Maximum Segment Size and the number of + MSS sized packets i.e. CONFIG_GNRC_TCP_MSS * + CONFIG_GNRC_TCP_MSS_MULTIPLICATOR. + +config GNRC_TCP_DEFAULT_WINDOW + int "TCP receive window size" + default 1220 if MODULE_GNRC_IPV6 + default 576 + depends on GNRC_TCP_DEFAULT_WINDOW_EN + help + Configure TCP receive window size. This value determines the maximum + amount of bytes that can be received from the peer at a given moment. + +config GNRC_TCP_RCV_BUFFERS + int "Number of preallocated receive buffers" + default 1 + +config GNRC_TCP_RTO_LOWER_BOUND + int "Lower bound for RTO in microseconds" + default 1000000 + help + Lower bound value for retransmission timeout (RTO) in microseconds. + Default value is 1000000 microseconds (1 second). Retransmission + timeout determines how long TCP waits for acknowledgment (ACK) of + transmitted segment. Refer to RFC 6298 for more information. + +config GNRC_TCP_RTO_UPPER_BOUND + int "Upper bound for RTO in microseconds" + default 60000000 + help + Upper bound value for retransmission timeout (RTO) in microseconds. + Default value is 60000000 microseconds (60 seconds). Refer to RFC 6298 + for more information. + +config GNRC_TCP_RTO_GRANULARITY + int "Clock granularity for RTO in microseconds" + default 10000 + help + Clock granularity for retransmission timeout (RTO) for TCP in + microseconds. Default value is 10000 microseconds (10 milliseconds). + Refer to RFC 6298 for more information. + +config GNRC_TCP_RTO_A_DIV + int "Alpha value divisor for RTO calculation" + default 8 + help + Alpha value divisor to calculate retransmission timeout (RTO). The + default value for divisor is 8 which would result in an alpha value of + 1/8. + +config GNRC_TCP_RTO_B_DIV + int "Beta value divisor for RTO calculation" + default 4 + help + Beta value divisor to calculate retransmission timeout (RTO). The + default value for divisor is 4 which would result in a beta value of + 1/4. + +config GNRC_TCP_RTO_K + int "K value for RTO calculation" + default 4 + +config GNRC_TCP_PROBE_LOWER_BOUND + int "Lower bound for the duration between probes in microseconds" + default 1000000 + +config GNRC_TCP_PROBE_UPPER_BOUND + int "Lower bound for the duration between probes in microseconds" + default 60000000 + +endif # KCONFIG_MODULE_GNRC_TCP