diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2021-07-21 12:01:04 +0200 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2021-07-21 12:01:04 +0200 |
commit | 64a0ba3b272dd9ee175e0c6256a6d0cb1733599b (patch) | |
tree | 4a9ab4a8c4a264ad66d12ac8cc597a062f788963 /udp.h | |
parent | 7fa3e90290d1966e25f3f8882ee25f14808e8e48 (diff) | |
download | passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.tar passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.tar.gz passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.tar.bz2 passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.tar.lz passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.tar.xz passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.tar.zst passt-64a0ba3b272dd9ee175e0c6256a6d0cb1733599b.zip |
udp: Introduce recvmmsg()/sendmmsg(), zero-copy path from socket
Packets are received directly onto pre-cooked, static buffers
for IPv4 (with partial checksum pre-calculation) and IPv6 frames,
with pre-filled Ethernet addresses and, partially, IP headers,
and sent out from the same buffers with sendmmsg(), for both
passt and pasta (non-local traffic only) modes.
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'udp.h')
-rw-r--r-- | udp.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -9,6 +9,8 @@ int udp_tap_handler(struct ctx *c, int af, void *addr, struct tap_msg *msg, int count, struct timespec *now); int udp_sock_init(struct ctx *c); void udp_timer(struct ctx *c, struct timespec *ts); +void udp_update_l2_buf(unsigned char *eth_d, unsigned char *eth_s, + uint32_t *ip_da); /** * union udp_epoll_ref - epoll reference portion for TCP connections |