aboutgitcodebugslistschat
path: root/passt.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-01-16 11:50:35 +1100
committerStefano Brivio <sbrivio@redhat.com>2024-01-22 23:35:17 +0100
commitb43e4483ed4888e1ab0c5195fa3f61bb24bde904 (patch)
treeaa2e5bef99488b8d089f6db5c9642cf3caa527fa /passt.c
parentc97bb527d6894a66f19584c1e300854c3110da64 (diff)
downloadpasst-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.tar
passt-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.tar.gz
passt-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.tar.bz2
passt-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.tar.lz
passt-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.tar.xz
passt-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.tar.zst
passt-b43e4483ed4888e1ab0c5195fa3f61bb24bde904.zip
flow, tcp: Add flow-centric dispatch for deferred flow handling
tcp_defer_handler(), amongst other things, scans the flow table and does some processing for each TCP connection. When we add other protocols to the flow table, they're likely to want some similar scanning. It makes more sense for cache friendliness to perform a single scan of the flow table and dispatch to the protocol specific handlers, rather than having each protocol separately scan the table. To that end, add a new flow_defer_handler() handling all flow-linked deferred operations. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'passt.c')
-rw-r--r--passt.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/passt.c b/passt.c
index 0246b04..5f72a28 100644
--- a/passt.c
+++ b/passt.c
@@ -103,6 +103,7 @@ static void post_handler(struct ctx *c, const struct timespec *now)
/* NOLINTNEXTLINE(bugprone-branch-clone): intervals can be the same */
CALL_PROTO_HANDLER(c, now, icmp, ICMP);
+ flow_defer_handler(c);
#undef CALL_PROTO_HANDLER
}