On Thu, Mar 25, 2021 at 10:46:12AM +0200, Oz Shlomo wrote:
Hi Marcelo,
On 3/24/2021 11:20 PM, Marcelo Ricardo Leitner wrote:
quoted
Maybe I'm just missing it but I'm not seeing how removals would only
happen after the entry is actually offloaded. As in, if the add queue
is very long, and the datapath see a FIN, seems the next gc iteration
could try to remove it before it's actually offloaded. I think this is
what Pablo meant on his original reply here too, then his idea on
having add/del to work with the same queue.
The work item will not be allocated if the hw offload is pending.
nf_flow_offload_work_alloc()
if (test_and_set_bit(NF_FLOW_HW_PENDING, &flow->flags))
return NULL;
Ahá! Right, and with that there can only be 1 flow_offload_work for a
flow at a time, so it can't fetch stats for a flow that is still to be
offloaded too. Got it.
Thanks,
Marcelo