A small self-contained patch set which centers around determining sufficient option headroom when calculating the maximum packet size. Patch #1: Adds documentation for the fields in struct ccid_operations. Patch #2: More informative registration of CCIDs. Patch #3: Introduces the CCMPS field for CCIDs. This is currently only used by CCID4. The ccmps value needs to include network/transport header lengths (since dccp_sync_mss subtracts these). For CCID4 this would supposedly look like (RFC 3714/4828): struct ccid_operations ccid4 = { .ccid_mps = 1500, /* ... */ }; If the field is omitted or set to 0, no CCMPS is imposed. Patch #4: Is the core of this patch set and estimates the minimally required option headroom for Data/DataAck packets. It addresses a FIXME in dccp_sync_mss. I have long thought about this and come to the conclusion that a simple solution - optimising for data transfer - is better. The complexities of variable-length options (Ack Vector, Data Dropped, initial feature-negotiation) need to use a different path - e.g. using a separate Ack (cf. next patch). Rationale and background is documented on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/misc_notes/estimating_option_sizes_for_MPS.txt Patch #5: Reorders statements to estimate the maximum room left for Ack Vectors and adds a Fixme + warning message for dealing with insufficient remaining space when piggybacking on DataAck. - To unsubscribe from this list: send the line "unsubscribe dccp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html