diff --git a/man/systemd.network.xml b/man/systemd.network.xml index 02d56480b5..7cf9f2f6ed 100644 --- a/man/systemd.network.xml +++ b/man/systemd.network.xml @@ -1389,21 +1389,22 @@ IPv6Token=prefixstable:2002:da8:1:: InitialCongestionWindow= - The TCP initial congestion window is used during the start of a TCP connection. During the start of a TCP - session, when a client requests a resource, the server's initial congestion window determines how many data bytes - will be sent during the initial burst of data. Takes a size in bytes between 1 and 4294967295 (2^32 - 1). The usual - suffixes K, M, G are supported and are understood to the base of 1024. When unset, the kernel's default will be used. - + The TCP initial congestion window is used during the start of a TCP connection. + During the start of a TCP session, when a client requests a resource, the server's initial + congestion window determines how many packets will be sent during the initial burst of data + without waiting for acknowledgement. Takes a number between 1 and 1023. Note that 100 is + considered an extremely large value for this option. When unset, the kernel's default + (typically 10) will be used. InitialAdvertisedReceiveWindow= - The TCP initial advertised receive window is the amount of receive data (in bytes) that can initially be buffered at one time - on a connection. The sending host can send only that amount of data before waiting for an acknowledgment and window update - from the receiving host. Takes a size in bytes between 1 and 4294967295 (2^32 - 1). The usual suffixes K, M, G are supported - and are understood to the base of 1024. When unset, the kernel's default will be used. - + The TCP initial advertised receive window is the amount of receive data (in bytes) + that can initially be buffered at one time on a connection. The sending host can send only + that amount of data before waiting for an acknowledgment and window update from the + receiving host. Takes a number between 1 and 1023. Note that 100 is considered an extremely + large value for this option. When unset, the kernel's default will be used. diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index b82c4e7f79..2610b24c82 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -1465,7 +1465,7 @@ int config_parse_tcp_window( _cleanup_(route_free_or_set_invalidp) Route *n = NULL; Network *network = userdata; - uint64_t k; + uint32_t k; int r; assert(filename); @@ -1483,13 +1483,13 @@ int config_parse_tcp_window( return 0; } - r = parse_size(rvalue, 1024, &k); + r = safe_atou32(rvalue, &k); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Could not parse TCP %s \"%s\", ignoring assignment: %m", lvalue, rvalue); return 0; } - if (k > UINT32_MAX) { + if (k >= 1024) { log_syntax(unit, LOG_WARNING, filename, line, 0, "Specified TCP %s \"%s\" is too large, ignoring assignment: %m", lvalue, rvalue); return 0;