From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH 00/24] Boundary-checked "packets", TCP timerfd timeouts, assorted fixes Date: Fri, 25 Mar 2022 23:52:36 +0100 Message-ID: <20220325225300.2803584-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4089846779005644057==" --===============4089846779005644057== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Stefano Brivio (24): conf, util, tap: Implement --trace option for extra verbose logging pcap: Fix mistake in printed string util: Drop CHECK_SET_MIN_MAX{,_PROTO_FD} macros util: Use standard int types tcp: Refactor to use events instead of states, split out spliced implementation test/lib/video: Fill in href attributes of video shortcuts udp: Drop _splice from recv, send, sendto static buffer names udp: Split buffer queueing/writing parts of udp_sock_handler() dhcpv6, tap, tcp: Use IN6_ARE_ADDR_EQUAL instead of open-coded memcmp() udp: Use flags for local, loopback, and configured unicast binds Makefile: Enable a few hardening flags test: Add asciinema(1) as requirement for CI in README test, seccomp, Makefile: Switch to valgrind runs for passt functional tests tcp, udp, util: Enforce 24-bit limit on socket numbers tcp: Rework timers to use timerfd instead of periodic bitmap scan tcp_splice: Close sockets right away on high number of open files test/perf: Work-around for virtio_net hang before long streams from guest README: Avoid "here" links README: Update Interfaces and Availability sections tcp: Fit struct tcp_conn into a single 64-byte cacheline dhcp: Minimum option length implied by RFC 951 is 60 bytes, not 62 tcp, tcp_splice: Use less awkward syntax to swap in/out sockets from pools util: Fix function declaration style of write_pidfile() treewide: Packet abstraction with mandatory boundary checks Makefile | 18 +- README.md | 58 +- arp.c | 51 +- arp.h | 2 +- conf.c | 15 + dhcp.c | 62 +- dhcp.h | 2 +- dhcpv6.c | 151 +- dhcpv6.h | 3 +- icmp.c | 28 +- icmp.h | 4 +- ndp.c | 59 +- ndp.h | 3 +- packet.c | 134 ++ packet.h | 77 + passt.1 | 5 + passt.c | 13 +- passt.h | 9 +- pcap.c | 2 +- seccomp.sh | 1 + tap.c | 331 ++-- tcp.c | 3023 +++++++++++++++---------------------- tcp.h | 27 +- tcp_splice.c | 888 +++++++++++ tcp_splice.h | 15 + test/README.md | 10 +- test/lib/setup | 52 +- test/lib/video | 2 +- test/perf/passt_tcp | 15 + test/perf/passt_udp | 15 + test/run | 9 + test/valgrind.supp | 9 + test/valgrind/passt | 22 + test/valgrind/passt_in_ns | 22 + udp.c | 501 +++--- udp.h | 6 +- util.c | 95 +- util.h | 43 +- 38 files changed, 3313 insertions(+), 2469 deletions(-) create mode 100644 packet.c create mode 100644 packet.h create mode 100644 tcp_splice.c create mode 100644 tcp_splice.h create mode 100644 test/valgrind.supp create mode 100644 test/valgrind/passt create mode 100644 test/valgrind/passt_in_ns -- 2.35.1 --===============4089846779005644057==--