Jumbo Frames
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 119
• The Len1, Len2 and Len3 fields contain the respective lengths of the remaining three piece of the buffer in
host memory.
• The Type field is used by the controller internally and should be ignored and need not be set by the host.
• The Flags bits are used to indicate any special processing that is needed in the buffer. Bits that are not
explicitly defined here must be set to zero. See
.
• For Receive Return Ring descriptors, if using IP checksum offload, the host driver software should rely on
the Flags bit IP_CHECKSUM (Flags bit 12) to determine if the IP checksum in the received packet is
correct. This field used to contain the actual IP checksum value, but that is not true for the BCM5718 Family
of controllers. Only the Flags bit IP_CHECKSUM should be relied on by host driver software as is done by
Broadcom drivers.
• The TCP/UDP Checksum field is the checksum of all data following the IP header, for the length defined in
the IP header. If the Receive No Pseudo-header Checksum bit is set, then the pseudo header checksum is
not added to this value. If the bit is set this value includes the pseudo header.
• The Error Flags field contains a bitmask of possible errors. It is only valid if the
BD_FLAGS_FRAME_HAS_ERROR bit (see
) is set in the Flags field.
• The VLAN Tag field is filled in if the BD_FLAGS_VLAN_TAG bit is set in the flags field. It is the 2 byte VLAN
tag that has been extracted from a 802.1Q compliant frame.
• The Reserved field is used internally by the controller. The host should ignore the value of this field.
Note:
None of the Len N values may be less than 8 bytes.
Table 31: Receive BD Error Flags
Bit#
Error Flag Name
Description
16
BD_ERR_BAD_CRC
This frame has a bad CRC.
17
BD_ERR_COLL_DETECT
This frame had a collision.
18
BD_ERR_LINK_LOST_DURING_PKT The link was lost while this, incomplete frame was being
received.
19
BD_ERR_PHY_DECODE_ERR
The frame had an unspecified frame decoding error.
20
BD_ERR_ODD_NIBBLED_RCVD_MII The packet arrived with an odd number of nibbles.
21
BD_ERR_MAC_ABORT
The MAC aborted the packet due to an unspecified internal
error.
22
BD_ERR_LEN_LT_64
The MAC received a runt packet.
23
BD_ERR_TRUNC_NO_RESOURCES The MAC could not receive this entire packet due to a lack of
internal resources. Note that this bit is not set for frame
longer than MTU that have bad CRC.
24
BD_ERR_GIANT_FRAME_RCVD
This frame was longer than the maximum packet length
value set in the Receive MTU register. The data is truncated
at the length specified in the Receive MTU register. This bit
must be set when bit 4 BD_FLAG_IP_FRAG_END is set for
the last BD of the last fragment in a train of fragments.
25:31
Reserved
–