HomeFreeBSD

Clear mbuf hashtype on loopback when RSS is enabled.

Description

Clear mbuf hashtype on loopback when RSS is enabled.

The hashtype on an outgoing mbuf reflects the correct hash on the
transmit side of the connection. If this hash persists on loopback,
the receiving RSS/PCBGROUP code will use it to look up the pcbgroup
for the transmit side, which will often not match the pcbgroup for the
receive side of the connection. This leads to TCP connections
hanging, and dropping the SYN/ACK packet. This is essentially
the same as having a hardware network card generate mbufs with an
incorrect RSS hash.

There are a number of places which can set the hash on transmit,
so the simplest fix is to simply clear the hash at loopback time.
Clearing the hash allows a new, correct hash to be calculated in
software on the receive side.

Reviewed by: jtl
Discussed with: adrian
Sponsored by: Netflix

Details

Provenance
gallatinAuthored on
Reviewer
jtl
Parents
rS307672: MFC r307218:
Branches
Unknown
Tags
Unknown