[Bug 285074] net/scamper: update to 20250227

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 28 Feb 2025 01:46:56 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285074

            Bug ID: 285074
           Summary: net/scamper: update to 20250227
           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 258051
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=258051&action=edit
net/scamper: update to 20250227

update net/scamper to 20250227.  This is the second release since I last
updated the port (20250106 was the other)

https://mailman.caida.org/pipermail/scamper-announce/2025-January/000048.html
https://mailman.caida.org/pipermail/scamper-announce/2025-February/000049.html

Merged ChangeLog:

scamper:
* handle many ports in BPF compiler better.
* remove cycles, autoreload features from file input sources.
* do not compile in support for select(2) by default (saving CPU and
  memory in the default use).
* normalize kqueue(2) / epoll(2) code paths.
* use IP_RECVIF on platforms (FreeBSD) that don't have IP_PKTINFO.
* remove sig_tx_ip_src from task signature structure, nothing used it.
* add holdtime (-H) parameter back to scamper, will controls the
  length of time that scamper will hold task signatures before
  allowing a follow up measurement to use the same signature.  5
  seconds by default, disable with zero (to save memory and CPU).
* fix compilation when platform has IPV6_PKTINFO but not
  IPV6_RECVPKTINFO setsockopt (old platforms).
* replace calls to getaddrinfo AI_NUMERICHOST with calls to inet_pton
  (fixes complilation on old MacOS, and is probably the faster
  solution generally).
* increase pps-max (scamper -p) to 50,000.
* adjust timestamps using datalink timestamps when using
  trace -N <squeries>.
* reduce memory use in storing traceroute state.
* remove per-measurement pktbufs, to save a tiny amount of memory.
* refactor BPF compiler to make it more obvious what is going on.
* refactor ping task signatures to make it more obvious what is going
  on.
* refactor scamper's timeout calculation to make it more obvious what
  is going on.
* move output of done tasks into its own function to make it more
  obvious what is going on.
* remove use of v?snprintf from more places to render strings faster
  (especially ping and trace JSON)
* remove "outfile" commands from control socket
* remove most "source" commands from control socket, leaving only
  "source list" for now.
* remove scamper's -O outcopy option
* add sentences documenting privilege separation to man page
* http: accept valid wildcard certs
* host: add edns-client-subnet and SVCB queries
* trace: include monitor-name in JSON output if known
* ping: separate scamper_ping_probe_t from scamper_ping_reply_t,
  saving memory.
* ping: add stop reason and information about probes with no replies
  to JSON output
* icmpexts: introduce a scamper_icmpexts_t structure that contains
  scamper_icmpext_t structures, rather than use a linked list.
  update trace and tracelb to use new storage form.

throughout:
* reduce memory use in dlist_t, splaytree_t, heap_t.
* rearrange header include order in mjl_heap.c, mjl_list.c,
  mjl_patricia.c, mjl_prefixtree.c, mjl_splaytree.c so that asserts
  are not compiled in by default (saving CPU).
* update string_concat code reduce use of vsnprintf, which will
  reduce CPU use in things like rendering json.
* remove hardly-used onremove callback support from [cds]list_t,
  splaytree_t, heap_t, saving memory / CPU.

sc_remoted:
* add mux support, enabling drivers to work with multiple remote
  scamper instances over a single unix domain socket
* add metadata support, enabling sc_remoted to supply remote scamper
  metadata to drivers
* add ability to increase zombie timeout to 3 hours.
* update man page

libscamperctrl:
* add support for sc_remoted mux sockets, metadata
* bump library version due to API changes

libscamperfile:
* bump library version due to significant API changes, especially
  around ping and icmpext data.
* methods for processing ECS, SVCB.
* ping, trace, icmpexts: add functions to duplicate these structures.
* http: be more permissive parsing chunked replies, and parsing headers.
* fix scamper_addr_is_reserved for IPv6, reported by Ken Keys

python module:
* add support for sc_remoted mux
* add DNS SVCB queries, ECS support
* add ScamperIcmpExts container
* add ScamperHttp.bufs() iterator, as well as buf() and buf_count.
* add ScamperHttpBuf.type_str and .dir_str attributes signalling the
  type and direction of the chunk
* let timeout parameter to ScamperCtrl.poll and ScamperCtrl.responses
  be either a number or timedelta
* add setters for ScamperCtrl.param, eofcb, morecb, to enable these
  to be changed after a ScamperCtrl is constructed.
* cythonize with 3.0.12 so that the module builds with python 3.13
* update documentation
  https://www.caida.org/catalog/software/scamper/python/

sc_pinger:
* support selecting a VP through a sc_remoted mux socket, update
  man page

sc_speedtrap:
* support selecting a VP through a sc_remoted mux socket, update
  man page
* do not form transitive closure among any IPs in a set where any
  two IPs have IP-ID values that suggest they are not aliases.
  patch from Ken Keys.

sc_bdrmap:
* fix null pointer dereference when processing traceroutes

tests:
* add tests to check ping and trace object duplication
* add more scamper_addr_isreserved tests
* add tests for parsing SVCB
* add tests for parsing HTTP headers
* add string_concat tests to unit_string.
* add unit_splaytree, unit_heap, unit_http_warts, unit_ping_warts,
  unit_trace_warts, unit_udpprobe_warts tests.  http, trace, and
  udpprobe warts unit tests were contributed by Marcus Luckie.
* add fuzz_warts for fuzzing libscamperfile, contributed by Marcus
  Luckie.

various:
* add assertions to silence clang static analysis warnings

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