Descriptor RingsBCM5718 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 
listed in Table 13 on page 80.
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.