English
Language : 

EP80579 Datasheet, PDF (1379/1916 Pages) Intel Corporation – Intel® EP80579 Integrated Processor Product Line
Intel® EP80579 Integrated Processor
This feature is desirable, because a software driver usually has no knowledge of when it
is going to be asked to send another frame, and for performance reasons, it is best to
generate only one transmit interrupt after a burst of packets have been sent.
Refer to “Transmit Descriptor Formats” on page 1365 for specific details.
37.5.6.10 Transmit Checksum Off loading
The previous section on TCP Segmentation off load describes the IP/TCP/UDP
checksum off loading mechanism used in conjunction with TCP Segmentation. The
same underlying mechanism can also be applied as a standalone feature. The main
difference in normal packet mode (non-TCP Segmentation) is that only the checksum
fields in the IP/TCP/UDP headers need to be updated.
Before taking advantage of the GbE enhanced checksum off load capability, a checksum
context must be initialized. For the normal transmit checksum off load feature this is
performed by providing the device with a TCP/IP Context Descriptor with TSE=0.
Setting TSE=0 indicates that the normal checksum context is being set, as opposed to
the segmentation context. For additional details on contexts, refer to “Overview of GbE
hardware “Contexts”” on page 1369.
Note:
Enabling the checksum off loading capability without first initializing the appropriate
checksum context will lead to unpredictable results.
Once the checksum context has been set, that context will be used for all normal
packet transmissions until a new context is loaded. Also, since checksum insertion is
controlled a per packet basis, there is no need to clear/reset the context.
The GbE is capable of performing two transmit checksum calculations. Typically these
would be used for TCP/IP and UDP/IP packet types; however, the mechanism is general
enough to support other checksums as well. Each checksum operates independently
and provides identical functionality. Only the IP checksum case is discussed below.
Three fields in the TCP/IP Context Descriptor set the context of the IPv4 checksum off
loading feature: IPCSS, IPCSO, and IPCSE.
IPCSS specifies the byte offset from the start of the data fetched from host memory to
the first byte to be included in the checksum. Setting this value to “0” means the first
byte of the data would be included in the checksum. Note that the maximum value for
this field is 255. This is adequate for typical applications.
Note:
The CSS value needs to be less than the total DMA length for a packet. If this is not the
case, the results will be unpredictable.
The IPCSO field specifies where the resulting checksum should be placed. Again, this is
limited to the first 256 bytes of the packet and must be less than or equal to the total
length of a given packet. If this is not the case, the checksum will not be inserted.
IPCSE specifies where the checksum should stop. A 16-bit value supports checksum off
loading of packets as large as 64KB. Setting the IPCSE field to all zeros means End-of-
Packet. In this way, the length of the packet does not need to be calculated.
As mentioned in “Overview of GbE hardware “Contexts”” on page 1369, it is not
necessary to set a new context for each new packet. In many cases, the same
checksum context can be used for a majority of the packet stream. In this case, some
performance can be gained by only changing the context on an as needed basis or
electing to use the off load feature only for a particular traffic type, thereby avoiding all
context descriptors except for the initial one.
August 2009
Order Number: 320066-003US
Intel® EP80579 Integrated Processor Product Line Datasheet
1379