English
Language : 

82598EB Datasheet, PDF (237/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - Receive Functionality
• TcpIPv6Ex – the 82598 parses the packet to identify an IPv6 packet containing a TCP segment
with extensions. If the packet is not an IPv6 packet containing a TCP segment, RSS is not done
for the packet. Extension headers should be parsed for a Home-Address-Option field (for source
address) or the Routing-Header-Type-2 field (for destination address).
• IPv6 – the 82598 parses the packet to identify an IPv6 packet. If the packet is not an IPv6
packet, RSS is not done for the packet.
The following additional cases are not part of the Microsoft* RSS specification:
• UdpIPv4 – the 82598 parses the packet to identify a packet with UDP over IPv4
• UdpIPv6 – the 82598 parses the packet to identify a packet with UDP over IPv6
• UdpIPv6Ex – the 82598 parses the packet to identify a packet with UDP over IPv6 with extensions
A packet is identified as containing a TCP segment if all of the following conditions are met:
• The transport layer protocol is TCP (not UDP, ICMP, IGMP, etc.)
• The TCP segment can be parsed (IP options can be parsed, packet not encrypted)
• The packet is not fragmented (even if the fragment contains a complete TCP header)
Bits[31:16] of the Multiple Receive Queues Command (MRQC) register enable each of the above hash
function variations (several can be set at a given time). If several functions are enabled at the same
time, priority is defined as follows (skip functions that are not enabled):
IPv4 packet:
1. Use the TcpIPv4 function.
2. Use IPv4_UDP function.
3. Use the IPv4 function.
IPv6 packet:
1. If TcpIPv6Ex is enabled, use the TcpIPv6Ex function or if TcpIPv6 is enabled, use the TcpIPv6
function.
2. If UdpIPv6Ex is enabled, use UdpIPv6Ex function or if UpdIPv6 is enabled, use UdpIPv6 function.
The following combinations are currently supported:
• Any combination of IPv4, TcpIPv4, and UdpIPv4.
• And/or
• Any combination of either IPv6, TcpIPv6, and UdpIPv6, TcpIPv6Ex, and UdpIPv6Ex.
When a packet cannot be parsed by the previously stated rules, it is assigned an RSS output index =
zero. The 32-bit tag (normally a result of the hash function) equals zero.
The 32-bit result of the hash computation is written into the packet descriptor and also provides an
index into the indirection table.
The following notation is used to describe the following hash functions:
• Ordering is little endian in both bytes and bits. For example, the IP address 161.142.100.80
translates into 0xa18e6450 in the signature
• A " ^ " denotes bit-wise XOR operation of same-width vectors
• @x-y denotes bytes x through y (including both of them) of the incoming packet, where byte 0 is
the first byte of the IP header. In other words, all byte-offsets as offsets into a packet where the
237