Intel 82545GM/EM Network Card User Manual


 
Receive and Transmit Description
Software Developer’s Manual 21
layers. The packet checksum is always reported in the first descriptor (even in the case of multi-
descriptor packets).
Upon receipt of a packet for Ethernet controllers, hardware stores the packet data into the indicated
buffer and writes the length, Packet Checksum, status, errors, and status fields. Length covers the
data written to a receive buffer including CRC bytes (if any). Software must read multiple
descriptors to determine the complete length for packets that span multiple receive buffers.
For standard 802.3 packets (non-VLAN) the Packet Checksum is by default computed over the
entire packet from the first byte of the DA through the last byte of the CRC, including the Ethernet
and IP headers. Software may modify the starting offset for the packet checksum calculation by
means of the Receive Control Register. This register is described in Section 13.4.22. To verify the
TCP checksum using the Packet Checksum, software must adjust the Packet Checksum value to
back out the bytes that are not part of the true TCP Checksum.
3.2.3.1 Receive Descriptor Status Field
Status information indicates whether the descriptor has been used and whether the referenced
buffer is the last one for the packet. Refer to Table 3-2 for the layout of the status field. Error status
information is shown in Table 3-3.
For multi-descriptor packets, packet status is provided in the final descriptor of the packet (EOP
set). If EOP is not set for a descriptor, only the Address, Length, and DD bits are valid.
Table 3-2. Receive Status (RDESC.STATUS) Layout
7 6 5 4 3 2 1 0
PIF IPCS TCPCS RSV VP IXSM EOP DD
Receive
Descriptor Status
Bits
Description
PIF (bit 7)
Passed in-exact filter
Hardware supplies the PIF field to expedite software processing of packets.
Software must examine any packet with PIF set to determine whether to accept
the packet. If PIF is clear, then the packet is known to be for this station, so
software need not look at the packet contents. Packets passing only the
Multicast Vector has PIF set.
IPCS (bit 6)
IP Checksum Calculated on Packet
When Ignore Checksum Indication is deasserted (IXSM = 0b), IPCS bit indicates
whether the hardware performed the IP checksum on the received packet.
0b = Do not perform IP checksum
1b = Perform IP checksum
Pass/Fail information regarding the checksum is indicated in the error bit (IPE) of
the descriptor receive errors (RDESC.ERRORS)
IPv6 packets do not have the IPCS bit set.
Reads as 0b.