English
Language : 

82598EB Datasheet, PDF (235/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - Receive Functionality
3.5.2.10 Receive-Side Scaling (RSS)
RSS is a mechanism to post each received packet into one of several descriptor queues. Software
potentially assigns each queue to a different processor, therefore sharing the load of packet processing
among several processors.
As described in Section 3.5.2, the 82598 uses RSS as one ingredient in its packet assignment policy
(the other is VMDq). The RSS output is a 4-bit index or a pair of 4-bit indices. The 82598's global
assignment uses these bits (or only some of the LSBs) as part of the queue policy.
RSS is enabled in the MRQC register. RSS status field in the descriptor write-back is enabled when the
RXCSUM.PCSD bit is set (Fragment Checksum is disabled). RSS is therefore mutually exclusive with
UDP fragmentation. Also, support for RSS is not provided when legacy receive descriptor format is
used.
When RSS is enabled, the 82598 provides software with the following information, required by
Microsoft* RSS or provided for software device driver assistance:
• A Dword result of the Microsoft* RSS hash function, to be used by the stack for flow classification,
is written into the receive packet descriptor (required by Microsoft* RSS).
• A 4-bit RSS Type field conveys the hash function used for the specific packet (required by
Microsoft* RSS).
Figure 3-25 shows the process of computing an RSS output:
1. The receive packet is parsed into the header fields used by the hash operation (IP addresses, TCP
port, etc.)
2. A hash calculation is performed. The 82598 supports a single hash function, as defined by
Microsoft* RSS. The 82598 therefore does not indicate to the software device driver which hash
function is used. The 32-bit result is fed into the packet receive descriptor.
3. The seven LSBs of the hash result are used as an index into a 128-entry indirection table. Each
entry provides a 4-bit RSS output index or a pair of 4 bit indices.
When RSS is disabled, packets are assigned an RSS output index = 0b. System software might enable
or disable RSS at any time. While disabled, system software might update the contents of any of the
RSS-related registers.
When multiple requests queues are enabled in RSS mode, un-decodable packets are assigned an RSS
output index = 0b. The 32-bit tag (normally a result of the hash function) equals 0b.
235