Intel Intel Gigabit Ethernet Controllers Video Game Controller User Manual


 
Receive and Transmit Description
Software Developer’s Manual 55
Link status change (LSC) - Set when the link status changes. When using the internal PHY,
link status changes are determined and indicated by the PHY via a change in its LINK
indication.
When using an external TBI device (82544GC/EI only), the device might indicate a link
status change using its LOS (loss of sync) indication. In this TBI mode, if HW Auto-
Negotiation is enabled, the MAC can also detect and signal a link status change if the
Configuration Base Page register is received (0b), or if either the LRST or ANE bits are
changed by software.
Transmit Descriptor Ring Low Threshold Hit (TXD_LOW) (not applicable to the 82544GC/
EI) - Set when the total number of transmit descriptors available (as measured by the
difference between the Tx descriptor ring Head and Tail pointer) hits the low threshold
specified in the TXDCTL.LWTHRESH field.
3.4.3.1 Delayed Transmit Interrupts
This mechanism allows software the flexibility of delaying transmit interrupts until no more
descriptors are added to a transmit chain for a certain amount of time, rather than when the Ethernet
controller’s head pointer catches the tail pointer. This occurs if the Ethernet controller is processing
packets slightly faster than the software, a likely scenario for gigabit operations.
A software driver usually has no knowledge of when it is going to be asked to send another frame.
For performance reasons, it is best to generate only one transmit interrupt after a burst of packets
have been sent.
Refer to Section 3.3.3.1 for specific details.
3.5 TCP Segmentation
Hardware TCP Segmentation is one of the off-loading options of most modern TCP/IP stacks. This
is often referred to as “Large Send” offloading. This feature enables the TCP/IP stack to pass to the
Ethernet controller software driver a message to be transmitted that is bigger than the Maximum
Transmission Unit (MTU) of the medium. It is then the responsibility of the software driver and
hardware to carve the TCP message into MTU size frames that have appropriate layer 2 (Ethernet),
3 (IP), and 4 (TCP) headers. These headers must include sequence number, checksum fields,
options and flag values as required. Note that some of these values (such as the checksum values)
are unique for each packet of the TCP message, and other fields such as the source IP address is
constant for all packets associated with the TCP message.
The offloading of these processes from the software driver to the Ethernet controller saves
significant CPU cycles. The software driver shares the additional tasks to support these options
with the Ethernet controller.
Although the Ethernet controller’s TCP segmentation offload implementation was specifically
designed to take advantage of new “TCP Segmentation offload” features, the hardware
implementation was made generic enough so that it could also be used to “segment” traffic from
other protocols. For instance this feature could be used any time it is desirable for hardware to
segment a large block of data for transmission into multiple packets that contain the same generic
header.