[TCP]: Describe tcp_init_cwnd() thoroughly in a comment.
People often get tripped up by this function and think that it does not implemented the prescribed algorithms from RFC2414 and RFC3390, even though it does. So add a comment to head off such misunderstandings in the future. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -755,7 +755,15 @@ void tcp_update_metrics(struct sock *sk)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Numbers are taken from RFC2414. */
|
/* Numbers are taken from RFC3390.
|
||||||
|
*
|
||||||
|
* John Heffner states:
|
||||||
|
*
|
||||||
|
* The RFC specifies a window of no more than 4380 bytes
|
||||||
|
* unless 2*MSS > 4380. Reading the pseudocode in the RFC
|
||||||
|
* is a bit misleading because they use a clamp at 4380 bytes
|
||||||
|
* rather than use a multiplier in the relevant range.
|
||||||
|
*/
|
||||||
__u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
|
__u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
|
||||||
{
|
{
|
||||||
__u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
|
__u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
|
||||||
|
Reference in New Issue
Block a user