On Tue, 25 Aug 2026 09:52:09 +0000 Cosmin Ratiu wrote:
Option 1 would be to only set req_qid on _changes_ (edge transitions)
and keep it 0 otherwise. Also make it mean queue = req_qid - 1 to allow
the use of queue 0. Ideally, only the first packet in each direction
would have req_qid != 0. These packets cannot be decapped and cannot go
through HW GRO, but all subsequent ones with req_qid == 0 may. dst_qid
is of course != 0 in all packets and is honored.
But then you need to make sure those packets aren't lost, and maybe
retransmit req_qid until it gets received. I thought about it a bit,
maybe using TCP acks as an indication? Or just trying best-effort a
couple of times...
Option 2 would be to just disallow HW GRO with req_qid.
I'd go with Option 2 FWIW and revisit it later if we find out that more
NICs need some sort of workaround.
And option 3: sport selection to get the desired RSS result makes this
interaction non-existent.