From mjl at luckie.org.nz Tue Jul 16 13:39:45 2024 From: mjl at luckie.org.nz (Matthew Luckie) Date: Wed, 17 Jul 2024 08:39:45 +1200 Subject: [scamper-announce] scamper-cvs-20240716 Message-ID: https://www.caida.org/catalog/software/scamper/code/scamper-cvs-20240716.tar.gz SHA256 (scamper-cvs-20240716.tar.gz) = 16dcb59cffeef7b5a6f71b7accaf420add464d190d86b36414507f9ecf4f9b20 SIZE (scamper-cvs-20240716.tar.gz) = 2900984 scamper * add -O dl-any option to scamper, which causes scamper to open a cooked datalink interface bound to "any" on Linux. Note that scamper's implementation of -O dl-any currently prevents transmission of packets on the datalink socket, but this will change in the future. * add -O dyn-filter option to scamper, which causes scamper to dynamically adjust the BPF filter that it configures on a datalink socket according to TCP/UDP ports that scamper is using. this option is only available on Linux, and BSD systems with BIOCSETFNR (FreeBSD and MacOS). note that both -O dyn-filter and -O dl-any cannot currently be used at the same time, but this will change in the future. * only raise SO_SNDBUF and SO_RCVBUF; some systems (e.g. Linux) already have larger socket buffers than scamper's defaults. * add -O sockrx to ping, to force ping to receive ICMP responses over a regular socket, even when using -O dl (which still records datalink transmit timestamps). * speed up receiving on datalink sockets by avoiding unnecessary memsets and removing unused fields, and adjust BSD, Linux, DLPI code to follow similar code patterns. * consider both directions for TCP packets on datalink sockets, allowing datalink transmit timestamps to be recorded for non TCP-syn packets. * avoid processing duplicate copies of the same packet on Linux loopback interface with datalink sockets. * remove "observe" functionality from scamper control socket, as signalled over a year ago. "outfile" and "source" will be removed from the control socket in the future. * cleanup scamper_dlhdr.[ch], use scamper_dlhdr_t to scamper_probe_t instead of its constituent parts. * update tbit usage statement in scamper, and manual page, with currently supported options python module: * use join to assemble command strings for all ScamperCtrl.do_*() for orders of magnitude faster command generation * implement __richcmp__ for all classes where __eq__, __lt__, etc, were previously defined individually * if string passed to ScamperAddr is invalid, raise an exception * implement ScamperCtrl.do_tbit method, ScamperTbit classes sc_minrtt: * add sc_minrtt utility, which takes the output of sc_pinger to produce a minimized RTT input file for sc_hoiho. to build, pass --enable-sc_minrtt as well as --with-pcre or --with-pcre2 to configure, and have sqlite3 development headers and libraries in build environment. tests: * more ping and tbit command unit tests * split out ARP reply parsing code into dl_parse_arp, add fuzzing cradle. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From mjl at luckie.org.nz Thu Jul 25 00:16:36 2024 From: mjl at luckie.org.nz (Matthew Luckie) Date: Thu, 25 Jul 2024 19:16:36 +1200 Subject: [scamper-announce] scamper-cvs-20240725 Message-ID: https://www.caida.org/catalog/software/scamper/code/scamper-cvs-20240725.tar.gz SHA256 (scamper-cvs-20240725.tar.gz) = a702a17e454193465b2f8cb9608521f8bcc2b0900ca6276cf6b6b0cc8033ef07 SIZE (scamper-cvs-20240725.tar.gz) = 2918727 scamper: * add dynamic BPF filters for linux "any" packet interface, allowing both -O dyn-filter and -O dl-any. * avoid generating debugging statements that won't be emitted, saving CPU in the usual scamper operating mode. * process dltx timestamps when -N > 1 and tx timestamp is available after the response has already arrived * don't allow TCP traceroute and -N > 1 because packet matching responses from the destination is challenging. * use scamper_seteuid_[raise|lower] in scamper when built without privsep, rather than use a repeated code pattern. configure: * add --enable-scamper-ring to configure to make -O ring the default python module: * take account of stop_hop when iterating through traceroute hops, add ScamperTrace.stop_hop attribute. * add ScamperTrace.addrs() convenience method, which returns unique addresses observed in the path * add ScamperHost.ans_ptrs() convenience method, which returns the text from PTR records in a response * update documentation: https://www.caida.org/catalog/software/scamper/python/ sc_analysis_dump: * drop geolocation code from utility, which was not plumbed into configure. tests: * add check-ifdef.pl to check for obvious #ifdef bugs -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: