Feature Negotiation Notes

Feature negotiation turned out to be more involved than it may seem at first glance. To better separate the various aspects, the presentation has been broken down into different sections.

Background information
This presents the basics from RFC 4340, gives information about the precise location and types of features, and distills the relevant processing rules into two flowcharts.

Feature negotation dependencies
Argues why feature negotiation and protocol state machine are not independent from each other and why it is dangerous for the implementation to assume such an independence.

Feature negotiation during connection setup
Presents a detailed analysis of how feature negotiation can be integrated into connection setup.

Implementation notes
Notes on the actual implementation of DCCP feature negotiation in Linux, the result of the above work.

Why clients need to retransmit Confirms
Although RFC says that it is is not necessary to retransmit Confirms, doing this increases robustness.