English
Language : 

82598EB Datasheet, PDF (245/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - Transmit Functionality
A context refers to a set of device registers loaded or accessed as a group to provide a particular
function. The 82598 supports 256 contexts register sets on-chip. 256 contexts are spread so each eight
contexts are related to a separate transmit queue.The transmit queues can contain transmit data
descriptors, much like the receive queue, and also transmit context descriptors.
A transmit context descriptor differs from a data descriptor as it does not point to packet data. Instead,
this descriptor provides the ability to write to the on-chip contexts that support the transmit checksum
offloading and the segmentation features of the 82598.
The 82598 supports one type of transmit context. The extended context is written with a Transmit
context descriptor DTYP=2 and this context is always used for transmit data descriptor DTYP=3.
The IDX field contains an index to one of eight on-chip per queue contexts. Software must track what
context is stored in each IDX location.
Contexts can be initialized with a transmit context descriptor and then used for a series of related
transmit data descriptors. The context, for example, defines the checksum and offload capabilities for a
given TCP/IP flow. All the packets of this type can be sent using the same context.
Each context controls calculation and insertion of up to two checksums. This portion of the context is
referred to as the checksum context. In addition to a checksum context, the segmentation context adds
information specific to the segmentation capability. This additional information includes the total size of
the MAC header (TDESC.HDRLENMACHDR), the amount of payload data that should be included in each
packet (TDESC.MSS), L4 header length (TDESC.L4LEN), IP header length (TDESC.IPLEN), and
information about what type of protocol (TCP, IP, etc.) is used. Other than TCP, IP (TDESC.TUCMD),
most information is specific to the segmentation capability and is therefore ignored for context
descriptors that do not have the TSE.
Because there is dedicated resources on-chip for contexts, they remain constant until they are modified
by another context descriptor. This means that a context can be used for multiple packets (or multiple
segmentation blocks) unless a new context is loaded prior to each new packet. Depending on the
environment, it might be completely unnecessary to load a new context for each packet. For example,
if most traffic generated from a given node is standard TCP frames, this context could be set up once
and used for many frames. Only when some other frame type is required would a new context need to
be loaded by software using a different index or overwriting an existing context.
This same logic can also be applied to the segmentation context, though the environment is a more
restrictive one. In this scenario, the host is commonly asked to send messages of the same type, TCP/
IP for instance, and these messages also have the same maximum segment size (MSS). In this
instance, the same segmentation context could be used for multiple TCP messages that require
hardware segmentation.
3.5.3.3 Transmit Descriptors
The 82598 supports legacy descriptors and advanced descriptors.
Legacy descriptors are intended to support legacy drivers, in order to enable fast power up of platform,
and to facilitate debug.
The legacy descriptors are recognized as such based on the DEXT bit.
In addition, the 82598 supports two types of advanced transmit descriptors:
1. Advanced transmit context descriptor, DTYP = 0010b
2. Advanced transmit data descriptor, DTYP = 0011b
Note: DTYP = 0000b and 0001b are reserved values.
245