pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/59717: [patch] net/scamper: update to 20251020



>Number:         59717
>Category:       pkg
>Synopsis:       [patch] net/scamper: update to 20251020
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 20 18:15:00 +0000 2025
>Originator:     mjl@pi2.localdomain
>Release:        NetBSD 10.1
>Organization:
>Environment:
System: NetBSD pi2 10.1 NetBSD 10.1 (GENERIC) #0: Mon Dec 16 13:08:11 UTC 2024 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/evbarm/compile/GENERIC evbarm
Architecture: earmv7hf
Machine: evbarm
>Description:
https://mailman.caida.org/pipermail/scamper-announce/2025-June/000053.html
https://mailman.caida.org/pipermail/scamper-announce/2025-July/000054.html
https://mailman.caida.org/pipermail/scamper-announce/2025-August/000055.html
https://mailman.caida.org/pipermail/scamper-announce/2025-October/000056.html
https://mailman.caida.org/pipermail/scamper-announce/2025-October/000057.html

Merged ChangeLog:

scamper:
* support tx/rx on ARPHRD_NONE linux packet sockets
* make route socket code work on solaris
* disable epoll on solaris, which doesn't seem to work
* let host -s take an IPv6 address
* add sniff.enable and neighbourdisc.enable config options
* add neighbourdisc json output
* abandon a remote source and its current tasks when sc_remoted sends
  an application-level fin
* trace, tracelb: do not do ptr lookups if host command has been
  disabled by configuration
* remove unused msec parameter from scamper_task_queue_done, remove
  scamper_task_queue and scamper_task_queue_wait, removing unnecessary
  gettimeofday calls.
* rename time-based variables in event loop after their use to
  make it more obvious what is going on
* fix json rendering of pmtud traceroutes with a host-connected MTU
  mismatch
* fix regression from 20250106 where scamper might not write the final
  measurement result and hang indefinitely, if you are unlucky.
* add do-not-probe file support, with -O dnp=file option, documented
  in man page.  do-not-probe file support can be disabled with
  --disable-scamper-dnp configure option.
* let traceroute with PMTUD use ICMP-echo probes, document in man page.
* document existence of ping -O mss=val option in man page.
* add tls_errstr, use it in printerror_ssl.
* minify ping and trace json output by removing spaces in output.
* host: if qname contains a trailing dot, remove the trailing dot, so that
  example.com. and example.com are equivalent.
* host: if do-not-probe file contains a prefix covering a nameserver
  in /etc/resolv.conf, still allow the host command to use it.
* rework most internal use of printerror/scamper_debug, tagging
  measurement results with errmsg strings if an error occurs affecting
  a measurement.
* emit errmsg strings in json and warts output.  errmsg strings will
  also be emitted to debugfile / stderr as before.  these strings
  are not emitted in text output of measurements.
* add error result code (stop reason) to dealias measurements.
* silently ignore unlikely PTR lookup error conditions for trace and
  tracelb -- PTR lookups are not essential components of these
  measurements.
* fix memory leaks when encountering unlikely error conditions in
  sting, tbit, tracelb, udpprobe.

libscamperfile:
* add scamper_neighbourdisc_tojson, bump version
* clean up mtu / stop_hop checks in trace text output
* provide API access to udpprobe stop_reason and its string rendering.
* add scamper_dealias_reply_is_icmp_echo_reply().
* silence spurious uninitialized use warning in scamper_http_lib.c.
* add scamper_tbit_totext().
* fix regression from 20241112 when reading tbit warts, which rejected
  valid tbit measurements.
* add scamper_*_errmsg_get functions.
* let neighbourdisc src_mac and dst_ip be null when reading warts
  files, rather than reject the object.
* bump version.

libscamperctrl:
* add iata attribute to scamper_vp_t.
* bump version.

throughout:
* switch to mostly timeval-based math to avoid division operations,
  remove some timeval functions, add others (mul, div)
* implement branchless comparison functions for address and time
  comparison
* speed up ipv4_prefix, ipv4_prefixhosts scamper_addr implementations
* simplify string_nullterm and string_nullterm_char according to how
  they are used in practice
* add slist_node_iter and dlist_node_iter functions to optimise a
  common code pattern
* add slist_to_dlist, dlist_to_slist, splaytree_to_slist, and
  splaytree_to_dlist to reduce repeated code
* silence warnings and errors when compiling with gcc 2.95
* remove string_concaf from more places.

Python module:
* add ScamperNeighbourdisc.to_json(), to convert a neighbourdisc object
  to JSON.
* add ScamperInst.resultc attribute, to find out the number of result
  objects queued in the parent ScamperCtrl for the instance.
* signal eof when the instance has no objects queued in parent ctrl
* make ScamperIcmpExts.ext_count be an attribute, consistent with
  documentation
* make ScamperTracelbNode near, far, length be attributes rather than
  methods, consistent with documentation
* fix sync=True do_* code paths
* install scamper.pyi file alongside the compiled python module to
  allow for static type checking analysis with mypy, and for code
  completion in vscode
* use #defines from scamper C header files in more places.
* support pickling of ScamperAddr.
* add .iata attribute to ScamperVP, ScamperInst.
* add .stop_reason and .stop_reason_str attributes to ScamperHost,
  ScamperHttp, ScamperPing and ScamperUdpprobe.
* add ScamperDealias.is_icmp_echo_reply().
* add to_text() method to ScamperDealias, ScamperPing, ScamperTbit,
  ScamperTrace, ScamperTracelb.
* release GIL when waiting for measurement results so that module is
  asyncio friendly.
* add errmsg attribute to measurement objects, interface file, and
  document.

sc_remoted:
* disconnect mux clients if associated scamper process disconnects
* catch TERM signal (in addition to INT and HUP)
* write pidfile after becoming daemon, when -D is used
* add iata to list of supported metadata items per VP, document in
  man page.

sc_hoiho:
* learn ASN regexes where the operator controlling the PTR record uses
  a prefix on the hostname (e.g., ^ipv4.de-cix.)

sc_minrtt:
* add -a anycast-file option, to specify a file containing apparent
  anycast prefixes.  sc_minrtt will not consider samples for a covered
  IP address if any of the samples collected by sc_pinger for the
  address imply the address could not be in a single location.
  document in man page.

sc_pinger:
* add -Z zombie-time option, which will cause sc_pinger to exit if a
  remote scamper instance goes silent for a user-defined length of
  time
* add -B bad-spec option to detect bad probe methods at run time,
  which look for unlikely sequences of reply TTL values
* update documentation

sc_wartsdump:
* print error code for udpprobe.
* use scamper_*_[stop|result]_tostr functions rather than duplicate code.
* emit errmsg.

tests:
* further config unit tests
* add neighbourdisc test case
* add unit tests for string_nullterm and string_nullterm_char
* expand timeval math tests by adding add, diff, inrange, mul, div
  tests, and more sub tests
* expand scamper_addr tests to include cmp, human_cmp,
  prefix, first-bit-diff, and prefixhosts
* expand trace tests to include a pmtud traceroute with a
  host-connected MTU mismatch
* add more qname tests in unit_cmd_host.c.
* check that errmsg is read-from and written-to warts files correctly.

documentation:
* complete trace and ping warts(5) format descriptions

misc:
* benign changes to allow compilation on solaris
>How-To-Repeat:
	
>Fix:
diff -uNr scamper/Makefile scamper-new/Makefile
--- scamper/Makefile	2025-10-20 17:44:02.212083770 +0000
+++ scamper-new/Makefile	2025-10-20 17:44:25.974364938 +0000
@@ -1,7 +1,7 @@
 # $NetBSD: Makefile,v 1.23 2025/06/05 06:31:37 wiz Exp $
 #
 
-DISTNAME=	scamper-cvs-20250603
+DISTNAME=	scamper-cvs-20251020
 PKGNAME=	${DISTNAME:S/-cvs//}
 CATEGORIES=	net
 MASTER_SITES=	http://www.caida.org/catalog/software/scamper/code/
diff -uNr scamper/distinfo scamper-new/distinfo
--- scamper/distinfo	2025-10-20 07:36:42.188432487 +0000
+++ scamper-new/distinfo	2025-10-20 17:44:50.178087071 +0000
@@ -1,5 +1,5 @@
 $NetBSD: distinfo,v 1.20 2025/06/05 06:31:37 wiz Exp $
 
-BLAKE2s (scamper-cvs-20250603.tar.gz) = c775304ca229fec4c47e881b744bf09478fdeac6087979a48f3f818d9f390516
-SHA512 (scamper-cvs-20250603.tar.gz) = e88021c9fff04526afe3c170e140d2101cc86b33c5ca35f4d95479080c7576c1234b3985f0841ae92a53d5a217792a0c64ab0245510733bd26d15bb1e692d238
-Size (scamper-cvs-20250603.tar.gz) = 3255542 bytes
+BLAKE2s (scamper-cvs-20251020.tar.gz) = 58a0dc0d1373cd2d1c40b3ed7342026e75ef7b06d4ae1bc2d44ed72415d1b461
+SHA512 (scamper-cvs-20251020.tar.gz) = 05aa3e2916adbdb06b4c5b3cb842b80a311429a00cad81495864483a9bcd91bbf3cc4de3c6c96c0be1a0987d64e4024c2f6deb8d041fa52d3fac05d514b84b61
+Size (scamper-cvs-20251020.tar.gz) = 3291401 bytes



Home | Main Index | Thread Index | Old Index