Receive and Transmit Description

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.1Receive 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-2for 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

Description

Bits

 

 

 

 

Passed in-exact filter

 

Hardware supplies the PIF field to expedite software processing of packets.

PIF (bit 7)

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.

 

 

 

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

IPCS (bit 6)

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.

 

 

Software Developer’s Manual

21

Page 35
Image 35
Intel Intel Gigabit Ethernet Controllers Receive Descriptor Status Field, Receive Status RDESC.STATUS Layout, Description