aboutgitcodebugslistschat
path: root/tcp_splice.h
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2022-11-17 16:58:51 +1100
committerStefano Brivio <sbrivio@redhat.com>2022-11-25 01:35:19 +0100
commit356c6e0677072f1a6cfe9b5d0648d89ab6fd5523 (patch)
treea601be5d18ee5f55c8f33298066b2e1e395b66c9 /tcp_splice.h
parent73d3a3e84eeea5566a3a65b033cf1d933b07c2ee (diff)
downloadpasst-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar
passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.gz
passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.bz2
passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.lz
passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.xz
passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.zst
passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.zip
tcp: Unify part of spliced and non-spliced conn_from_sock path
In tcp_sock_handler() we split off to handle spliced sockets before checking anything else. However the first steps of the "new connection" path for each case are the same: allocate a connection entry and accept() the connection. Remove this duplication by making tcp_conn_from_sock() handle both spliced and non-spliced cases, with help from more specific tcp_tap_conn_from_sock and tcp_splice_conn_from_sock functions for the later stages which differ. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'tcp_splice.h')
-rw-r--r--tcp_splice.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/tcp_splice.h b/tcp_splice.h
index 22024d6..f9462ae 100644
--- a/tcp_splice.h
+++ b/tcp_splice.h
@@ -6,8 +6,12 @@
#ifndef TCP_SPLICE_H
#define TCP_SPLICE_H
+struct tcp_splice_conn;
+
void tcp_sock_handler_splice(struct ctx *c, union epoll_ref ref,
uint32_t events);
+void tcp_splice_conn_from_sock(struct ctx *c, union epoll_ref ref,
+ struct tcp_splice_conn *conn, int s);
void tcp_splice_init(struct ctx *c);
#endif /* TCP_SPLICE_H */