Receive Side ScalingBCM5718 Programmer’s Guide
Broadcom®
January 29, 2016 • 5718-PG108-R Page 102
Figure 18: RSS Receive Processing Sequence
The devices implement the above RSS algorithm in hardware except for the step of adding the Base CPU
Number to the value from Indirection Table. If required, the step of adding the Base CPU Number to the CPU
Result can be done in the main Interrupt Service Routine to determine which CPU will process the packet.
RSS Parameters
Hash Function
The default hash function is the Toeplitz hash. No other hash functions are currently supported, so there is no
configurable parameter.
Hash Type
The fields that are used to hash across the incoming packet. The 5 devices support all the four hash types given
below and the configuration bits for enabling/disabling these hash types are provided in Receive MAC Mode
register at offset 0x468. Any combination of these hash types can be enabled:
• Four-tuple of source TCP Port, source IP version 4 (IPv4) address, destination TCP port, and destination
IPv4 address.
• Four-tuple of source TCP Port, source IP version 6 (IPv6) address, destination TCP port, and destination
IPv6 address.
• Two-tuple of source IPv4 address and destination IPv4 address.
• Two-tuple of source IPv6 address and destination IPv6 address.
Hash Mask
The RSS Hash Mask bits (bits 22:20 of the Receive MAC Mode register at offset 0x468) allow the configuration
of number of hash-result bits that are used to index into the indirection table.
Note: The BCM5719 and BCM5720 add support for UDP RSS hash functionality, in addition to the
legacy TCP RSS hash functionality.
Hash
Function
Incoming Packets
Hash Result
(32 Bits)
CPU
Result
Indirection
Table
Hash
Mask
Masked Hash
Result 1-7
Bits
32-Bit Hash Result
Hash Type
+
Base CPU Number