> why not just call tcp_init_cwnd_reduction()?

I deferred considering the ECN implications of doing so. The code to
start PRR was based on tcp_enter_cwr()/tcp_init_cwnd_reduction(), save
that both of these functions ensure a call to tcp_ecn_queue_cwr().

The upcoming patch set instead exports tcp_enter_cwr() and calls it,
which sets CWR on ECN-capable connections.

Consider CDG at the sender-side. The RFC 3168 Errata says that a
receiver should:
"First, reset ECE because of CWR
Second, set ECE because of CE"

Thus, in "good networks", setting CWR on a CDG backoff should not
affect ECN signalling – we still get ECE from the receiver.

It is conceivable that fringe scenarios of ECN in the forward path and
losses in the ACK path creates a situation where CDG's backoff could
inhibit some ECN signals from the receiver. That is, setting CWR will
inhibit the signalling reliability of standard ECN in TCP. But we are
arguably still in good faith since we have reduced the congestion
window by some beta.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to