diff options
| author | David Gibson <david@gibson.dropbear.id.au> | 2026-01-16 11:59:26 +1100 |
|---|---|---|
| committer | Stefano Brivio <sbrivio@redhat.com> | 2026-01-18 12:48:09 +0100 |
| commit | 4a0d507296ef8c1349669e95fd672539734d9a6c (patch) | |
| tree | fc06f38a7318d6b5209b392f4ee7d6fb7fac2119 /test | |
| parent | fe37028466d3d29d74ebf53e9c53c9f139fbc74e (diff) | |
| download | passt-4a0d507296ef8c1349669e95fd672539734d9a6c.tar passt-4a0d507296ef8c1349669e95fd672539734d9a6c.tar.gz passt-4a0d507296ef8c1349669e95fd672539734d9a6c.tar.bz2 passt-4a0d507296ef8c1349669e95fd672539734d9a6c.tar.lz passt-4a0d507296ef8c1349669e95fd672539734d9a6c.tar.xz passt-4a0d507296ef8c1349669e95fd672539734d9a6c.tar.zst passt-4a0d507296ef8c1349669e95fd672539734d9a6c.zip | |
flow, fwd: Optimise forwarding rule lookup using epoll ref when possible
Now that listening sockets include a reference to the forwarding rule
which created them we can, in many cases, avoid a linear search of the
forwarding table when we want to find the relevant rule. Instead we
can take the rule index from the socket's epoll reference, and use
that to immediately find the correct rule.
This is conceptually simple, but requires a moderate amount of
plumbing to get the index from the reference through to the rule
lookup. We still allow fall back to linear search if we don't have
the index, and this may (rarely) be used in the udp_flush_flow() case,
where we could get packets for one flow on a different flow's socket,
rather than through a listening socket as usual.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'test')
0 files changed, 0 insertions, 0 deletions
