[Bug 280322] update net/scamper to 20240716

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 17 Jul 2024 07:00:45 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280322

            Bug ID: 280322
           Summary: update net/scamper to 20240716
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: mjl@luckie.org.nz

Created attachment 252119
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=252119&action=edit
update net/scamper to 20240716

Update net/scamper from 20240229 to 20240716:

https://mailman.caida.org/pipermail/scamper-announce/2024-May/000041.html
https://mailman.caida.org/pipermail/scamper-announce/2024-July/000042.html

Merged ChangeLog:

scamper:
* improvements with -N squeries; let -Q send all probes when using -N.
  add -H wait-probe-hop, which specifies the minimum delay between
  probes with the same TTL.  identify the hop that would have caused
  traceroute to stop when not using -N so that a normal traceroute
  path with one hop representing the destination or stopping hop in
  the path is rendered.  in the json output, put extra hops beyond
  the stopping hop into a extra_hops array.
* make ring-nolocked the default when using -O ring.
* improvements with udpprobe: provide ability to send multiple copies
  of the same payload, add json output, reuse available UDP sockets
  where possible.
* consistently set and record the IPv4 tos and IPv6 tclass fields for
  both ping and trace.
* fix warts.bz2 and warts.xz output, which could previously use all
  available space on the file system.
* speed up rendering of byte arrays as hex in json output.
* fix obtaining IPv6 hoplimit on received packets on MacOS.
* record the name of the interface that received IPv4 and IPv6 ICMP
  responses in ping.
* add TXT queries to host command; add chaos query class; add
  DNS-over-TCP.
* fix use of ctype functions according to netbsd (cast all parameters
  to unsigned char).  make pass through use of ctype functions to do
  ctype function calls last in most logical statements.
* cleanup scamper_file_warts.h so that only necessary struct
  definitions are in that header.
* 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

libscamperfile:
* add new functions, bump library version due to udpprobe changes.

python library
* improve the usefulness of the ScamperInstError exceptions
* let all address parameters to do_() methods also be ScamperAddr
* support creation of ScamperAddr from bytes objects
* updates to support new functionality in udpprobe primitive
* support RR filters on all sections of a DNS response
* add tx, rx, and rtt attributes to DNS responses
* add qtype=txt, qclass=chaos, tcp DNS queries, and ScamperHostTxt
  class.
* add helper method to get ns and txt records out of ans section
  -- ans_nses() and ans_txts()
* add rx and ifname attributes to ScamperPingReply
* add ScamperDealiasProbe.is_from_target() method
* 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

configure:
* remove obsolete AC_PROG_GCC_TRADITIONAL
* fix net/pfvar.h conditional

sc_hoiho:
* fix crashes in IP and FNU stages so that router name regular
  expression inferences work again.

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.

sc_wartscat:
* fix index into infiles array

tests:
* add tests for string_byte2hex, and json escaping
* add unit tests for TXT records
* add fuzzing cradle for host_rr_list
* in fuzz_cmd cradle, ensure any error strings only contain printable
  characters.
* more ping and tbit command unit tests
* split out ARP reply parsing code into dl_parse_arp, add fuzzing cradle.

-- 
You are receiving this mail because:
You are the assignee for the bug.