The new version with tag 2024_07_26.57a21d2 includes the following changes: 57a21d2 tap: Improve handling of partially received frames on qemu socket 37e3b24 tap: Correctly handle frames of odd length 4684f60 tap: Don't use EPOLLET on Qemu sockets 9e3f235 tap: Don't attempt to carry on if we get a bad frame length from qemu a06db27 tap: Better report errors receiving from QEMU socket 77c092e log: Fetch log times with CLOCK_MONOTONIC, not CLOCK_REALTIME e5c37ba log: Initialise timestamp for relative log time also if we use a log file 327d9d4 log, util: Fix sub-second part in relative log time calculation 2ce1d37 test/lib/perf_report: Fix highlight e9a5423 test: Fix spurious test failure with systemd-resolved becf81a fwd: Broaden what we consider for DNS specific forwarding rules 0ada84e fwd: Refactor tests in fwd_nat_from_tap() for clarity 4a333c8 conf: Accept addresses enclosed by square brackets in port forwarding specifiers 6ff702f tap: Exit if we fail to bind a UNIX domain socket with explicit path f72d35a test: iperf3 3.16 introduces multiple threads, drop our own implementation of that 606e0c7 test: Update names of symbols and slabinfo entries f16f8f5 test: Fix memory/passt tests, --netns-only is not a valid option for passt 1cd7730 log: Drop newlines in the middle of the perror()-like messages 1329558 tcp: Change SO_PEEK_OFF support message to debug() d19b396 tap: Don't quit if pasta gets EIO on writev() to tap, interface might be down a09aeb4 tcp: Correctly update SO_PEEK_OFF when tcp_send_frames() drops frames 9cb6b50 tcp: probe for SO_PEEK_OFF both in tcpv4 and tcp6 882599e udp: Rename UDP listening sockets d29fa08 udp: Remove rdelta port forwarding maps d89b3aa udp: Remove obsolete socket tracking 898f797 udp: Direct datagrams from host to guest via flow table b7ad193 udp: Find or create flows for datagrams from tap interface 8126f7a udp: Remove obsolete splice tracking e0647ad udp: Handle "spliced" datagrams with per-flow sockets a45a7e9 udp: Create flows for datagrams from originating sockets 8abd06e fwd: Update flow forwarding logic for UDP c000f2a flow, icmp: Use general flow forwarding rules for ICMP 060f24e flow, tcp: Flow based NAT and port forwarding for TCP 4cd753e icmp: Manage outbound socket address via flow table 781164e flow: Helper to create sockets based on flowside 2faf6fc icmp: Eliminate icmp_id_map 2f40a01 icmp: Look up ping flows using flow hash 6d76278 icmp: Obtain destination addresses from the flowsides 5cffb1b icmp: Remove redundant id field from flow table entry 508adde tcp: Re-use flow hash for initial sequence number generation acca423 flow, tcp: Generalise TCP hash table to general flow hash table 163a339 tcp, flow: Replace TCP specific hash function with general flow hash f19a8f7 tcp_splice: Eliminate SPLICE_V6 flag 528a651 tcp: Simplify endpoint validation using flowside information e2ea10e tcp: Manage outbound address via flow table 52d45f1 tcp: Obtain guest address from flowside f9fe212 tcp, flow: Remove redundant information, repack connection structures 4e2d36e flow: Common address information for target side 8012f5f flow: Common address information for initiating side ba74b1f doc: Extend zero-recv test with methods using msghdr 01e5611 doc: Test behaviour of closing duplicate UDP sockets 66a02c9 tcp_splice: Use parameterised macros for per-side event/flag bits 5235c47 flow: Introduce flow_foreach_sidei() macro 71d7985 flow, tcp_splice: Prefer 'sidei' for variables referring to side index 9b125e7 flow, icmp, tcp: Clean up helpers for getting flow from index 2fa91ee udp: Handle errors on UDP sockets 6bd8283 util: Add AF_UNSPEC support to sockaddr_ntop() 4e1f850 udp, tcp: Tweak handling of no_udp and no_tcp flags 272d1d0 udp: Make udp_sock_recv static f79c423 conf: Don't configure port forwarding for a disabled protocol a740e16 tcp: handle shrunk window advertisements from guest e63d281 tcp: leverage support of SO_PEEK_OFF socket option when available 8bd57bf doc: Trivial fix for reuseaddr-priority ec2691a doc: Test behaviour of zero length datagram recv()s 299c407 doc: Add program to document and test assumptions about SO_REUSEADDR be0214c udp: Consolidate datagram batching 69e5393 udp: Move some more of sock_handler tasks into sub-functions c6c61a9 udp: Don't repeatedly initialise udp[46]_eth_hdr 55aff45 udp: Unify udp[46]_l2_iov 9f9b15f udp: Unify udp[46]_mh_splice fbd78b6 udp: Rename IOV and mmsghdr arrays f62c33d udp: Pass full epoll reference through more of sock handler path 8f8eb73 flow: Add flow_sidx_valid() helper 74c1c5e util: sock_l4() determine protocol from epoll type rather than the reverse b625ed5 conf: Use the right maximum buffer size for c->sock_path 403a7c1 tcp_splice: Check return value of setsockopt() for SO_RCVLOWAT 21ee1eb conf: Copy up to MAXDNSRCH - 1 bytes, not MAXDNSRCH https://passt.top/passt/log/?qt=range&q=2024_06_24.1ee2eca..2024_07_26.… Packages: - Alpine Linux: https://pkgs.alpinelinux.org/packages?name=passt - Arch Linux: https://www.archlinux.org/packages/extra/x86_64/passt/ https://archlinuxarm.org/packages/aarch64/passt https://archlinuxarm.org/packages/armv7h/passt - Chimera: https://pkgs.chimera-linux.org/packages?name=passt - Clear Linux: https://github.com/clearlinux-pkgs/passt/ - Debian tracker: https://tracker.debian.org/pkg/passt - Copr (CentOS Stream, EPEL, Fedora, Mageia): https://copr.fedorainfracloud.org/coprs/sbrivio/passt/build/7793866/ permanent mirror: https://passt.top/builds/copr/0^20240726.g57a21d2/ - Fedora updates: https://bodhi.fedoraproject.org/updates/?packages=passt - Gentoo versions: https://packages.gentoo.org/packages/net-misc/passt - GNU Guix: https://packages.guix.gnu.org/packages/passt/ - NixOS: https://github.com/NixOS/nixpkgs/tree/nixos-unstable/pkgs/by-name/pa/passt - openSUSE: https://software.opensuse.org/package/passt - PLD Linux: https://git.pld-linux.org/cgi-bin/gitweb.cgi?p=packages/passt.git - Solus: https://github.com/getsolus/packages/tree/main/packages/p/passt - Ubuntu tracker: https://launchpad.net/ubuntu/+source/passt - Void Linux: https://voidlinux.org/packages/?q=passt - Static builds: - Package for other RPM-based distributions, x86_64 only: https://passt.top/builds/latest/x86_64/passt-g57a21d2-1.x86_64.rpm - x86_64 static binaries: https://passt.top/builds/latest/x86_64/ - Debian package, from x86_64 static build: https://passt.top/builds/latest/x86_64/passt_57a21d2-1_all.deb -- Stefano