[scamper-announce] scamper-cvs-20240716

Matthew Luckie mjl at luckie.org.nz
Tue Jul 16 13:39:45 PDT 2024


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: <http://mailman.caida.org/pipermail/scamper-announce/attachments/20240717/ca24d300/attachment.sig>


More information about the scamper-announce mailing list