Re: Linux TCP state machine is broken?

From: John Heffner
Date: Wed Nov 26 2003 - 13:41:50 EST


On Wed, 26 Nov 2003, Yogesh Swami wrote:

> I think the reason the sender is always in TCP_CA_CWR
> and not in TCP_CA_Open is because in the function
> "tcp_transmit_skb" (tcp_out.c:190), after sending the
> packet to IP-layer, the sender call tcp_enter_cwr() if
> the IP layer did not return any non congestion error.
> I have put the code fragement at the end of the
> e-mail.
>
> I am not clear why a successfuly transmission should
> cause the sender to enter CWR (the only other places
> when tcp_enter_cwr is called are when there is a ICMP
> source quench or when there is ECE bit set for ECN).
>
> If someone could explain this to me, that would be
> great.

It reaches this point if there *is* congestion explicitly reported by the
interface. It will be in CWR a lot of the time if your local interface is
the bottleneck.

-John

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/