[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>

+9 -1
+9 -1
net/ipv4/tcp_input.c
··· 755 } 756 } 757 758 - /* Numbers are taken from RFC2414. */ 759 __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst) 760 { 761 __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
··· 755 } 756 } 757 758 + /* Numbers are taken from RFC3390. 759 + * 760 + * John Heffner states: 761 + * 762 + * The RFC specifies a window of no more than 4380 bytes 763 + * unless 2*MSS > 4380. Reading the pseudocode in the RFC 764 + * is a bit misleading because they use a clamp at 4380 bytes 765 + * rather than use a multiplier in the relevant range. 766 + */ 767 __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst) 768 { 769 __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);