http://darkircop.org/acme-ccid2-20051206.diff

it's a diff from today's:
git/acme/net-2.6.16.git

To use it, you need to compile support for ack vectors and:
setsockopt DCCP_SOCKOPT_CCID_RX and DCCP_SOCKOPT_CCID_TX to 2.


CCID2 status:

* Standard TCP congestion control:
  - AIMD of cwnd, slow start etc.

* RTO timeouts:
  - Maintains RTT estimate and calculates RTO from that.
  - Doesn't support timestamp option.

* Ack ratios [reverse path congestion control]:
  - Supported by "infrastructure"
  - Missing feature negotiation, so no ack ratio change.

* ECN:
  - Correctly adjusts cwnd when packets are reported ECN marked.
  - Doesn't deal with ECN nonces.
  - No ECN support for reverse path congestion [receiving ECN marked ACK].

* No support for determining that flows go silent [ack an ack stuff].


I need to make the code solid and linux friendly.  Then I will split the patch
so hopefully arnaldo will agree to commit it.  It currently includes, and will
be split to:

* connect() race condition:
  Connect, send and disconnect real fast.  I don't remember details but,
  The socket will be transiting from SS_CONNECTING to SS_CONNECTED.  However,
  connect will return -1 because DCCP will have moved to CLOSE by the time
  connect() checks status.

* disconnect doesn't cleanup state:
  server sends close req.  Client doesn't reply with close "fast enough".
  Server will never destroy socket.  I still gotta think about this more though.

* support for ack vector records

* support for switching ccids

* support for ccid2


Any feedback is appreciated.  Specifically, if this code looks "promising" [i.e.
eventually commitable], it would be nice if someone can indicate the major
problems with it. [coding style, way of doing things, bugs, etc]

I'll now work on making the code more solid and splitting the patches.
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to