Skip to contentSkip to conversation

: Option headroom, MPS, and FIXME in dccp_sync_mss

PATCH In review Gerrit Renker 1 participant 1 message Oct 12, 2007

lore
Share & tools
lore
#0 lore raw

cover : Option headroom, MPS, and FIXME in dccp_sync_mss

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.