@@ -65,37 +65,6 @@ config IP_DCCP_CCID3_MEASURE_S_AS_MAX
---help---
An experimental method based on tracking the maximum packet size.
endchoice
-
-config IP_DCCP_CCID3_RTO
- int "Use higher bound for nofeedback timer"
- default 100
- depends on IP_DCCP_CCID3
- ---help---
- Use higher lower bound for nofeedback timer expiration.
-
- The TFRC nofeedback timer normally expires after the maximum of 4
- RTTs and twice the current send interval (RFC 5348, 4.3). On LANs
- with a small RTT this can mean a high processing load and reduced
- performance, since then the nofeedback timer is triggered very
- frequently.
-
- This option enables to set a higher lower bound for the nofeedback
- value. Values in units of milliseconds can be set here.
-
- A value of 0 disables this feature by enforcing the value specified
- in RFC 5348. The following values have been suggested as bounds for
- experimental use:
- * 16-20ms to match the typical multimedia inter-frame interval
- * 100ms as a reasonable compromise [default]
- * 1000ms corresponds to the lower TCP RTO bound (RFC 2988, 2.4)
-
- The default of 100ms is a compromise between a large value for
- efficient DCCP implementations, and a small value to avoid disrupting
- the network in times of congestion.
-
- The purpose of the nofeedback timer is to slow DCCP down when there
- is serious network congestion: experimenting with larger values should
- therefore not be performed on WANs.
endif # IP_DCCP_CCID3
config IP_DCCP_CCID4
@@ -114,8 +83,7 @@ config IP_DCCP_CCID4
sending rate, possibly with Explicit Congestion Notification (ECN),
while minimizing abrupt rate changes.
- CCID-4 is based an (expired) Internet-Draft which can be found at:
- http://tools.ietf.org/html/draft-ietf-dccp-ccid4
+ CCID-4 is specified in RFC 5622.
If in doubt, say N.
@@ -150,13 +118,6 @@ config IP_DCCP_CCID4_MEASURE_S_AS_MAX
---help---
An experimental method based on tracking the maximum packet size.
endchoice
-
-config IP_DCCP_CCID4_RTO
- int "Use higher bound for nofeedback timer"
- default 100
- ---help---
- This item does for CCID-3 as DCCP_CCID3_RTO does for CCID-3, please
- see the help text there.
endif # IP_DCCP_CCID4
config IP_DCCP_TFRC_LIB
@@ -445,12 +445,12 @@ done_computing_x:
/*
* Update timeout interval for the nofeedback timer.
- * We use a configuration option to increase the lower bound.
- * This can help avoid triggering the nofeedback timer too
- * often ('spinning') on LANs with small RTTs.
+ * We use the current (per-route) value of the TCP RTO as lower bound
+ * to slow down rate-halving on networks with small RTTs (loopback,
+ * running DCCP in a virtual machine, Gbit ethernet, etc).
*/
- hc->tx_t_rto = max_t(u32, 4 * hc->tx_rtt, (CONFIG_IP_DCCP_CCID4_RTO *
- (USEC_PER_SEC / 1000)));
+ hc->tx_t_rto = max_t(u32, 4 * hc->tx_rtt,
+ USEC_PER_SEC/HZ * tcp_rto_min(sk));
/*
* Schedule no feedback timer to expire in
* max(t_RTO, 2 * s/X) = max(t_RTO, 2 * t_ipi)