Updating the IP Headers for Coalesced Segments

When finalizing a single coalescing unit (SCU), a receive segment coalescing (RSC)-capable miniport driver updates the fields in the IP headers as described in the following tables.

Updating IPv4 header fields for coalesced segments

Field Description

Version

The value of this field must be the same for all coalesced segments.

Header Length

The length of a basic IPv4 header without any IP options.

Differentiated Services

The value of this field must be the same for all coalesced segments.

ECN bits

See Exception 8 in Exception Conditions that Terminate Coalescing. Datagrams should be coalesced if they all have the same values for the ECN bits.

Total Length

The value of this field must be recomputed every time a new segment with non-zero TCP payload length is coalesced into an existing SCU. See Exception Conditions that Terminate Coalescing for special cases that arise from the value in this field.

Identification

Must be set to the IP ID of the first coalesced segment.

Flags

  • Datagrams may be coalesced as long as they have the same value for the DF (Don’t Fragment) bit: either all set or all clear.

  • Segments with the MF (More Fragments) bit set must not be coalesced.

Fragment Offset

Not applicable. Fragmented IP datagrams are not coalesced.

Time To Live

Must be set to the minimum time to live (TTL) value of the coalesced segments.

Protocol

Always set to 6, for TCP.

Header Checksum

The value of this field must be recomputed by the miniport driver.

Source Address

The value of this field must be the same for all coalesced segments.

Destination Address

The value of this field must be the same for all coalesced segments.

Updating IPv6 header fields for coalesced segments

Field Description

Version

The value of this field must be the same for all coalesced segments.

Traffic Class

The value of this field must be the same for all coalesced segments.

Flow Label

The value of this field must be the same for all coalesced segments.

Payload Length

The value of this field must be recomputed whenever a new segment with nonzero TCP payload length is coalesced into an existing segment.

Next Header

Always set to 6, for TCP.

Hop Limit

Must be set to the minimum Hop Limit value of the coalesced segments.

Source Address

The value of this field must be the same for all coalesced segments.

Destination Address

The value of this field must be the same for all coalesced segments.