Receive and Transmit Description

IPv4 Header

Length should be set to zero

Identification Field should be set as appropriate for first packet of send (if not already)

Header Checksum should be zeroed out unless some adjustment is needed by the driver

IPv6 Header

Length should be set to zero

TCP Header

Sequence Number should be set as appropriate for first packet of send (if not already)

PSH, and FIN flags should be set as appropriate for last packet of send

TCP Checksum should be set to the partial pseudo-header checksum as follows:

IP Source Address

IP Destination Address

Zero

 

 

Zero

Next Header

 

 

 

 

 

 

Zero

a

 

Layer 4

Zero

a

 

 

Protocola

 

a.82544GC/EI only

Figure 3-7. TCP Partial Pseudo-Header Checksum

UDP Header

— Checksum should be set as in TCP header, above

The Ethernet controller’s DMA function fetches the ethernet, IP, and TCP/UDP prototype header information from the initial descriptor(s) and save them on-chip for individual packet header gen- eration. The following sections describe the updating process performed by the hardware for each frame sent using the TCP Segmentation capability.

3.5.6TCP Segmentation Use of Multiple Data Descriptors

TCP Segmentation enables a packet to be segmented to describe more than one data descriptor. A large packet contained in a single virtual-address buffer is better described as a series of data descriptors, each referencing a single physical address page.

The only requirement for this use is if multiple data descriptors for TCP segmentation follows this guideline:

If multiple data descriptors are used to describe the IP/TCP/UDP header section, each descriptor must describe one or more complete headers; descriptors referencing only parts of headers are not supported.

Software Developer’s Manual

59

Page 73
Image 73
Intel PCI-X manual TCP Segmentation Use of Multiple Data Descriptors, TCP Partial Pseudo-Header Checksum