Descriptor Rings
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 79
• Index—Is set by host software in the descriptors in the producer rings. When the controller uses a given
buffer descriptor, it will opaquely pass the Index field for that buffer descriptor through to the corresponding
descriptor in the return ring. This index field of the BD in Return Ring is then used by the host software to
associate the BD in Return Ring with the BD in Producer Ring that points to the given receive buffer.
• Flags—Contains bits flags that contain control information about a given descriptor. The defined flags are
.
Table 12: Defined Flags for Receive Buffers
Bits
Name
Description
15
IP Version
Indicates whether the received IP packet is an IPv6 or IPv4 packet. This bit
will be 1 for IPv6 packet and 0 for IPv4 packet.
14
TCP_UDP_IS_TCP
In producer rings this bit should be set to 0. In return rings this bit will be set
to 1 by the controller if the controller calculated that the incoming packet was
a TCP packet. If the packet is UDP or a non IP frame, then this bit should
be set to 0.
13
TCP_UDP_CHECKSUM
In producer rings this bit should be set to 0. In return rings this bit will be set
to 1 by the controller if the controller calculated that the TCP or UDP
checksum in the corresponding incoming packet was correct.
12
IP_CHECKSUM
In producer rings this bit should be set to 0. In return rings this bit will be set
to 1 by the controller if the controller calculated that the IP checksum in the
corresponding incoming packet was correct.
11
Reserved
–
10
FRAME_HAS_ERROR
If set to 1 in a return ring, it indicates that the controller detected an error.
The specific type of error is specified in the Error_Flag field of the receive
return descriptor.
9:7
RSS Hash Type
Indicates the hash type used in RSS hash calculation for a received packet.
Available hash types are:
• 0 2_TUPLE_IPV4
• 1 4_TUPLE_IPV4
• 2 2_TUPLE_IPV6
• 3 4_TUPLE_IPV6
• 4 Reserved
• 5 Reserved
• 6 Reserved
• 7 Reserved
See
“Receive MAC Mode Register (offset: 0x468)” on page 322
for
additional information about enabling the different RSS hash types.
6
VLAN_TAG*
If set to 1 in a return ring, it indicates that the packet associated with this
buffer contained a four-byte IEEE 802.1Q VLAN tag. The 16 VLAN ID is
stripped from the packet and located in the VLAN tag field in the descriptor.
5
Reserved
Should be set to 0.
4
Reserved
Should be set to 0.
3
RSS_Hash Valid
If set to 1, indicates host that the RSS_Hash in Receive BD of return ring is
valid.
2
PACKET_END
If set to 1, the packet ends with the data in the buffer pointed to by this
descriptor.
1:0
Reserved
Should be set to 0.