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.