The new version with tag 2025_04_15.2340bbf includes the following changes: 2340bbf udp: Propagate errors on listening and brand new sockets cfc0ee1 udp: Minor re-organisation of udp_sock_recverr() f107a86 udp: Add udp_pktinfo() helper 0498457 udp: Deal with errors as we go in udp_sock_fwd() 3f99558 udp: Pass socket & flow information direction to error handling functions 1bb8145 udp: Be quieter about errors on UDP receive baf049f udp: Fix breakage of UDP error handling by PKTINFO support 5024908 conf: Honour --dns-forward for local resolver even with --no-map-gw bbff365 conf: Split add_dns_resolv() into separate IPv4 and IPv6 versions 59cc89f udp, udp_flow: Track our specific address on socket interfaces 695c623 inany: Improve ASSERT message for bad socket family f4b0dd8 udp: Use PKTINFO cmsgs to get destination address for received datagrams 6693fa1 tcp_splice: Don't clobber errno before checking for EAGAIN d3f33f3 tcp_splice: Don't double count bytes read on EINTR ffbef85 conf: Add missing return in conf_nat(), fix --map-guest-addr none 06ef64c udp_flow: Save 8 bytes in struct udp_flow on 64-bit architectures 9725e79 udp_flow: Don't discard packets that arrive between bind() and connect() 9eb5406 udp: Fold udp_splice_prepare and udp_splice_send into udp_sock_to_sock bd6a41e udp: Rework udp_listen_sock_data() into udp_sock_fwd() 159beef udp_flow: Take pif and port as explicit parameters to udp_flow_from_sock() fd844a9 udp: Move UDP_MAX_FRAMES to udp.c fc6ee68 udp: Merge vhost-user and "buf" listening socket paths 0304dd9 udp: Split spliced forwarding path from udp_buf_reply_sock_data() 5221e17 udp: Parameterize number of datagrams handled by udp_*_reply_sock_data() 3a0881d udp: Don't bother to batch datagrams from "listening" socket 84ab130 udp: Polish udp_vu_sock_info() and remove from vu specific code 1d7bbb1 udp: Make udp_sock_recv() take max number of frames as a parameter d74b5a7 udp: Use connect()ed sockets for initiating side a7775e9 udp: support traceroute in direction tap-socket 06784d7 passt-repair: Ensure that read buffer is NULL-terminated 684870a udp: Correct some seccomp filter annotations 76e554d udp: Simplify updates to UDP flow timestamp 8aa2d90 udp: Remove redundant udp_at_sidx() call in udp_tap_handler() 3d41e4d passt-repair: Correct off-by-one error verifying name dec3d73 migrate, tcp: bind() migrated sockets in repair mode 6bfc60b platform requirements: Add test for address conflicts with TCP_REPAIR 8e32881 platform requirements: Add attributes to die() function 2ed2d59 platform requirements: Fix clang-tidy warning 3de5af6 udp: Improve name of UDP related ICMP sending functions 025a3c2 udp: Don't attempt to forward ICMP socket errors to other sockets 42a854a pasta, passt-repair: Support multiple events per read() in inotify handlers 65cca54 udp: correct source address for ICMP messages 664c588 build: normalize arm targets 77883fb udp: Add helper function for creating connected UDP socket 37d78c9 udp: Always hash socket facing flowsides f67c488 udp: Better handling of failure to forward from reply socket 269cf6a udp: Share more logic between vu and non-vu reply socket paths d924b7d udp_vu: Factor things out of udp_vu_reply_sock_data() loop 5a977c2 udp: Simplify checking of epoll event bits 89b203b udp: Common invocation of udp_sock_errs() for vhost-user and "buf" paths cf4d3f0 packet: Upgrade severity of most packet errors 0857515 packet: ASSERT on signs of pool corruption 9153aca util: Add abort_with_msg() and ASSERT_WITH_MSG() helpers 38bcce9 packet: Rework packet_get() versus packet_get_try() 961aa6a packet: Move checks against PACKET_MAX_LEN to packet_check_range() 37d9f37 packet: Avoid integer overflows in packet_get_do() c48331c packet: Correct type of PACKET_MAX_LEN 9866d14 tap: Clarify calculation of TAP_MSGS a41d6d1 tap: Make size of pool_tap[46] purely a tuning parameter e43e007 packet: More cautious checks to avoid pointer arithmetic UB 4592719 vu_common: Tighten vu_packet_check_range() https://passt.top/passt/log/?qt=range&q=2025_03_20.32f6212..2025_04_15.… 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/ - Copr (CentOS Stream, EPEL, Fedora, Mageia): https://copr.fedorainfracloud.org/coprs/sbrivio/passt/build/8907839/ permanent mirror: https://passt.top/builds/copr/0^20250415.g2340bbf/ - Debian tracker: https://tracker.debian.org/pkg/passt - 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/ - Homebrew: https://formulae.brew.sh/formula/passt - NixOS: https://github.com/NixOS/nixpkgs/tree/nixos-unstable/pkgs/by-name/pa/passt - openSUSE: https://software.opensuse.org/package/passt - OpenMandriva: https://github.com/OpenMandrivaAssociation/passt/tree/master - 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-g2340bbf-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_2340bbf-1_all.deb -- Stefano