scamper/scamper.changes

1142 lines
51 KiB
Plaintext

-------------------------------------------------------------------
Sat Nov 16 17:58:30 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
- update to version 20241112:
* scamper:
* check bound source address when attempting to reuse open sockets.
* bind to the specified source address with for all udp6 sockets used
with udp-sport ping method.
* finalize task signatures for ping, trace, udpprobe, and dealias
immediately before tasks begin probing to provide more ability for
parallel measurements to the same destinations.
* python module:
* correct bugs in documentation
* add to_json() to all measurement types where there's a scamper json
rendering
* libscamperfile:
* fix memory leaks on malformed warts input
* add scamper_*_tojson functions for dealias, host, ping, tbit, trace,
tracelb, and udpprobe
* move Makefile rules for libscamperfile from scamper/Makefile.am into
lib/libscamperfile/Makefile.am
* sc_speedtrap:
* add -R /path/to/socket to enable speedtrap to use a remote scamper
instance
* add -v to emit version of scamper release the utility came from
* update man page with documentation
* configure:
* add --disable-utils and --disable-libs options to configure, to control
how much of the scamper package is actually built.
* update to serial 37 of ax_python_devel.m4 and serial 8 of
ax_gcc_builtin.m4
-------------------------------------------------------------------
Mon Sep 23 07:17:26 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
* update to version 20240920:
* scamper:
* add -O noring to disable use of ring buffer on Linux when
scamper is configured with --enable-scamper-ring
* udpprobe: add -S src parameter, update manual page with
previously supported but undocumented options
* sc_prefixprober:
* allow do-not-probe list to be embedded in the input set of
prefixes to probe, update manual page.
* add -v to emit version of scamper release the sc_prefixprober
utility came from
* Python module:
* add src parameter to ScamperCtrl.do_udpprobe
* update to version 20240916:
* scamper:
* with ping -F 0 and trace -s 0, choose a different TCP or UDP source
port if an otherwise available source port has been used in the past
5 seconds to the same destination IP and port.
* ping: add udp-sport probe method
* ping: refactor udp packet matching on datalink sockets
* allow -D when outputting to a file.
* use SO_TIMESTAMP on linux packet sockets, rather than call an ioctl,
to fix buggy linux timestamps when not using ring
* rework privsep code to be signal aware, and forward signals from
scamper's privileged process to scamper's unprivileged process via
the socketpair between the processes. i.e.,
scamper -D -U /path/to/scamper-unix-socket -e /path/to/scamper.pid
kill -HUP `cat /path/to/scamper.pid`
now works. TERM and INT also propagate from privileged to
unprivileged process. this allows the user that started scamper to
send signals to the privileged process, which it then forwards to
unprivileged process. the user who started scamper is otherwise not
able to send the unprivileged process signals, as that process
typically runs as user nobody.
* host: add -O nsid to signal queried server to include nsid OPT
record in response. parse any server-provided OPT records.
* udpprobe: record ifname replies were received on
* udpprobe: increase supported probe size from 1000 to 1400 bytes.
* factor out most repeated tls code patterns into utils_tls.c
* add functions to utils_tls.c to load key material from opened
file descriptors, to allow key material to be reloaded in
unprivileged process
* reload TLS key material on HUP signal
* do not negotiate use of TLS v1.1
* refactor privsep code to make it obvious which functions belong to
which process, and develop an obvious pattern in the code.
* make route socket interface work on NetBSD again
* tracelb: fix sport validation
* other minor code cleanups
* sc_minrtt:
* thread input stage, add batch import. by default, sc_minrtt
will import N files per batch, where N is the number of processors
online.
* add -b batchc parameter that allows for batch size to be adjusted
according to what is appropriate for the system
* set exit status to zero when import is successful
* add -v to emit version of scamper release the utility came from
* refactor code in places
* libscamperfile:
* bump version to account for added interfaces for udpprobe, host
objects.
* Python module:
* add nsid option to ScamperCtrl.do_dns method
* add ScamperUdpprobeReply.ifname attribute
* add OPT glue to ScamperHost, and related features
(udpsize, edns_version, edns_do attributes)
* add context manager support to ScamperFile and ScamperCtrl, allowing
for Python with / as syntax
* sc_bdrmap:
* change -v vp-ases option to -V vp-ases
* add -v to emit version of scamper release the utility came from
* sc_attach, sc_hoiho, sc_remoted:
* add -v to emit version of scamper release the utility came from
* sc_wartsdump:
* update for new udpprobe, host features.
* tests:
* add unit_cmd_tracelb, contributed by Marcus Luckie.
* add unit_ping_lib, check scamper_ping_reply_is_from_target
* add unit_host_warts, check OPT record reading and writing.
* expand unit_dl_parse_ip tests
* documentation:
* update python module documentation to reflect changes
* update scamper, sc_attach, sc_bdrmap, sc_hoiho, sc_minrtt,
sc_pinger, sc_remoted manual pages to reflect changes
-------------------------------------------------------------------
Mon Aug 19 07:05:31 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Remove upper bound on Cython, Cython 3 appears to be supported.
-------------------------------------------------------------------
Sat Aug 17 08:16:38 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
- update to version 20240716:
* 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.
- update to version 20240725:
* 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
- update to version 20240813:
* scamper:
* properly set icmp_id on ICMP probe signature in ping when -F 0.
* reduce code duplication in scamper_fd.c by replacing fd_udp() and
fd_tcp() with fd_tcpudp().
* process IPv6 TCP replies in dealias.
* simplify BPF logic, support unit testing of dl_filter_compile.
* fix 20240725 regression to actually call scamper_debug logic for
datalink packets.
* python module:
* raise exception if ScamperCtrl.do_*() is called on a ScamperInst
that has signalled EOF.
* add ScamperInst.is_eof() method.
* configure:
* check for tcp_timer.h in configure, use if found, to fix check
for tcp_var.h.
* sc_pinger, sc_minrtt:
* support batch probing with radargun primitive.
* update sc_pinger manual page with batch probing details.
* tests:
* silence benign clang static analysis warnings.
* add more ping command unit tests.
* add unit_dl_filter_compile to test bpf compiler.
* enhance check-ifdef.pl to find #define / #ifdef ordering issues,
make pass through code to adjust header ordering.
-------------------------------------------------------------------
Mon May 13 06:41:00 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix dependency of libscamperfile-devel: require the new
libscamperfile9. The last updated bumped the so-version, which
results in a different package name.
- Drop all obsoletes of libscamperfile9: obsoleting old library
packages is explicitly not to be done according to the packaging
guidelines around shared libraries.
-------------------------------------------------------------------
Sun May 5 14:11:00 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
* update to version 20240503:
* 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.
* 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
* 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_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.
-------------------------------------------------------------------
Sat Mar 16 19:34:46 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 20240229:
* bugfix: correct SCAMPER_DL_IS_ICMP_TIME_REPLY macro so that scamper
does not ignore ICMP replies quoting TCP/UDP packets for 1/256
source port values.
* bugfixes for -O icmp-rxerr: handle EPOLLERR on linux, try using
IPV6_RECVHOPLIMIT before IPV6_HOPLIMIT for IPv6 udp probing.
* bugfix: fix possible assertions in dealias, trace, and tracelb code.
* ping: count UDP replies as from the target
* trace: correct datalink timestamp adjustments
* add more specific error messages when a scamper command is not
accepted, return them over control socket or terminal, as appropriate.
* scamper_fd_t: refactor fd_addr, fd_sport, fd_dl, fd_ifindex
* scamper_fd_t: decouple udp4raw/udp4dg from each other. use udp4dg
and udp6 sockets in udpprobe primitive, rather than have each
udpprobe task create its own socket.
* scamper_fd_t: add methods that return an available open socket for
probing a given destination without blocking if another task is
probing the same destination. use this with ping -F 0 and trace -s 0,
instead of generating random port values, so that scamper opens
the minimum number of file descriptors.
* ping and trace: have -O dl mean to capture transmit and receive
timestamps from a datalink interface. add -O raw option so that
IPv4 TCP probes can be transmitted over a raw socket, to allow transmitted
TCP packets to be observed on the datalink interface.
* add memory-mapped ring buffer support (PACKET_RX_RING) for receiving
packets on datalink sockets on Linux. enable at scamper runtime
with -O ring. contributed by Alistair King.
## python module:
* generate module .c with Cython 0.29.37, to enable module to compile
with Python 3.11.
* link against libpython
* have all time parameters take either a timedelta or float/int. float/int
parameters are all seconds.
* add ScamperInstError exception which identifies the scamper instance
and includes the error string returned by the instance.
* reduce copying in methods that return bytes objects
* add str method for ScamperInst
- reenable python build
-------------------------------------------------------------------
Tue Feb 6 09:07:29 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
- Temporarily disable Python build because of incompatibility with Python 3.11
Reported upstream, will be fixed in next version.
-------------------------------------------------------------------
Mon Feb 5 12:59:00 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20240122:
* scamper
* fix regression in 20240117 where trace -W 0 (probe as soon as
there's a response) was not accepted, despite being the default.
add unit test for this.
* for trace, improve probe and reply matching of UDP packets
* fix printing UDP responses to traceroute probes in scamper -O text output
* for trace section of scamper.1 man page, document -O const-payload,
and expand documentation for -O dl.
* python module:
* ship scamper release with a the C source code pre-generated for the
python module, so that the build process does not require a cython
installation. bootstrap.pl will build the C source code unless told
not to via --without-cython
* rename ScamperPing.reply_count to ScamperPing.stop_count, as the
reply_count attribute meant something different on a ScamperPing
object than what it means with ScamperDealiasProbe, etc
* sc_remoted:
* expand sc_remoted.1 manual page with information about validating
scamper client TLS certificates, and how to use -M monitor-name.
-------------------------------------------------------------------
Wed Jan 17 07:35:36 UTC 2024 - Sebastian Wagner <sebix@sebix.at>
- update to version 20240117:
- scamper:
- fix crashes if a task is provided an apparent response, but the task
- has not yet sent a packet in ping, sting, tbit, trace, tracelb.
- find and fix memory leaks in measurement command parsing code via
- fuzzing.
- add udpprobe, http, dealias -m midarest, and dealias -m midardisc methods.
- udpprobe and http do not currently have json output methods.
- remove -d dport, -s sport, and -t ttl dealias parameters. these
- were only valid for mercator, and can be specified in a probedef instead.
- record size of responses for dealias probes.
- modify all commands to be able to take human-friendly wait parameters --
- e.g. trace -W 0.5s or trace -W 500ms instead of trace -W 50000.
- support transmitting raw packets on linux ppp interfaces
- add -b payload-size parameter to ping
- python interface:
- add python interface to most of scamper. building this module requires
- cython < 3.0. to build, use something like:
- PYTHON=/path/to/python CYTHON=/path/to/cython ./configure --with-python
- the documentation for this interface is available at
- https://www.caida.org/catalog/software/scamper/python/
- the ubuntu PPA provides python3-scamper, and the FreeBSD port should
- hopefully provide py-scamper shortly. these sources may be useful
- for getting the module packaged for other operating systems.
- https://launchpad.net/~matthewluckie/+archive/ubuntu/scamper
- libscamperfile and libscamperctrl:
- improvements, bump versions
- tests:
- many new unit tests and fuzzing cradles for scamper components
- sc_pinger:
- add -l limit and -M move-dir options
- sc_remoted:
- no need to link against libscamperfile, remove dependency
- sc_attach, sc_filterpolicy, sc_prefixscan, sc_wartsfix:
- compile / link on windows.
-------------------------------------------------------------------
Fri Nov 10 15:00:00 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 20230614d (bsc#1217032):
* fix buffer overflow when parsing TCP packets where the sender
includes a TCP fast open cookie larger than 16 bytes
-------------------------------------------------------------------
Sat Oct 7 09:04:41 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
- update to version 20230614c:
- scamper:
* fix compile-on-windows support; use icmp-echo probes instead of UDP
probes for traceroute on windows; provide "attach" support on
windows.
* fix compile-on-FreeBSD-15+ where pf firewall does not have
DIOCGETSTATUS ioctl
* in scamper's remote control (-R option), fix file descriptor leak
when unable to reconnect to the remote controller.
* add --disable-scamper-trace --disable-scamper-ping
--disable-scamper-tracelb --disable-scamper-dealias
--disable-scamper-tbit --disable-scamper-sting
--disable-scamper-sniff --disable-scamper-host configure options
to build scamper without specific measurement capabilities.
- sc_attach:
* add windows support
-------------------------------------------------------------------
Sun Aug 13 06:05:08 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
- update to version 20230614b:
- scamper:
* fix handling of EPOLLHUP on client disconnection -- Linux-specific
(scamper -U /path/to/socket)
- libscamperctrl:
* fix handling of disconnected instances
-------------------------------------------------------------------
Wed Aug 9 05:58:57 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
- update to version 20230614a
* configure:
* better tests for zlib, libbz2, and liblzma that check for both
libraries and headers.
* change --with-sc_uptime, --with-sc_hoiho, and --with-tests to be
--enable-sc_uptime, --enable-sc_hoiho, and --enable-tests
* disable maintainer mode, pass foreign to AM_INIT_AUTOMAKE
* scamper:
* remove reading regular files from poll/select/epoll/kqueue path,
which fixes reading regular input files (-f option to scamper) using
epoll or kqueue
* fix reading stdin as input (-f option to scamper) when using
epoll (catch EPOLLHUP)
* add DNS server to host signature, add host path for scamper_task_find
* rework scamper_osinfo to work with malformed release names (uname -r)
* dealias: do not crash on malformed prefixscan and bump commands
* dealias: fix memory leak of probedefs on malformed commands
* sting: fix memory leak of recorded packets
* remove tsps input method (-O tsps option to scamper)
* update manual page
* libscamperctrl:
* link against list.o and splaytree.o so that the library is self-contained
* fix memory leak when task is not accepted
* API improvements
* libscamperfile:
* fix memory leak when reading SOA/MX from warts file
* fix memory leak when reading PMTUD traceroute structures from warts file
* sting: fix memory leak of recorded packets
* sc_analysis_dump, sc_warts2pcap, sc_wartscat, sc_wartsfilter:
* link against list.o/utils.o so that these utilities are not reliant on
those symbols being exported from libscamperfile
* sc_prefixprober:
* allow compression type to be specified using -O
* free scamper_addr_t as each are removed from the list to probe
* sc_remoted:
* catch EPOLLHUP with epoll
* sc_warts2text:
* fix memory leaks
* sc_wartsdump:
* fix memory leaks
* link against utils.o so that sc_wartsdump is not reliant on those
symbols being exported from libscamperfile
-------------------------------------------------------------------
Tue Jun 13 06:20:24 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
- update to version 20230605:
* HEADSUP: if you previously used -e pidfile to record the pid of a
running scamper process, there is a good chance that the pidfile is
owned by root. scamper now attempts to write this file using the uid
that started scamper, and will not be able to write it if scamper is
not started by root (it should not be, rather the scamper binary
should be setuid root). Please delete the existing pidfile, or change
its ownership, prior to restarting scamper, or scamper will not start.
* scamper:
* write a process ID that the user that started scamper can kill
in the pidfile when using privsep.
* when using privsep, exit the unprivileged process if the privileged
process exits (is killed)
* run as real uid from the start of scamper, for both privsep and
not-privsep.
* fix bug where attempting to open an unsupported datalink would
leave a freed scamper_fd_t in the fd_tree and fd_list, leading to
a crash.
* fix double free triggered when a user provides an invalid dealias
command.
* fix memory leak if the payload was specified twice to ping or trace
* rework pollfunc selection logic, use kqueue/epoll by default.
* remove _malloc_options = "AJ" as this only works on unsupported
versions of FreeBSD.
* add additional paramaters to attach command to allow the user
to override list and cycle parameters, documented in manual page.
* catch EAGAIN/EINTR from select/kqueue/epoll to allow gdb to attach
and detach without flagging errors.
* for DNS replies for host command, record reply flags and rcode.
* add support for SOA and NS queries in host.
* add a JSON output for host measurements.
* do not let scamper emit warts to a tty. check for isatty in
configure.
* only allow -O and -z to be specified multiple times in a trace command
* only allow -O to be specified multiple times in a ping command
* split command parsing logic out from task probing logic. add
fuzzing cradle for parsing logic for all measurement types, and
basic unit tests for dealias, ping, and trace parsing logic.
* autodetect output type by file extension if output type is not
explicitly specified on the command line.
* libscamperfile:
* remove all struct definitions from libscamperfile (e.g.
scamper_trace, scamper_ping, scamper_addr, etc). provide typedefs
for each (scamper_trace_t) and _get() functions that return the
field requested. This change will allow hopefully allow
libscamperfile's version to stabilize. all scamper utilities now
use these get functions.
* shift some functions that were previously implemented in
libscamperfile into the one place they were used, if they were only
used in (for example scamper / sc_analysis_dump / other scamper
utility). delete other functions that were not used anywhere in
the public scamper release.
* libscamperctrl:
* fix bug by ensuring line_off is always valid after the read.
* catch EAGAIN from select.
* add kqueue support.
* add scamper_attp_* routines to allow applications to specify
list and cycle parameters.
* for scamper_inst_do, take a parameter to keep with each task.
* add scamper_task_getparam function to get the parameter.
* add scamper_task_getcmd function to get the command associated with a task.
* use TYPE_FATAL instead of TYPE_ERR in application callback when
scamper_inst_read encounters a fatal error, only use TYPE_ERR when
scamper does not accept a command.
* sc_prefixprober:
* new driver to conduct measurements (ping, trace, tracelb) to an
address in each prefix.
* sc_ally:
* use scamper_file_t outfiles, add ability to write gz/bz2/xz files.
* ask for cycle-start and cycle-stop records, write them out.
* improve use of libscamperctrl.
* sc_hoiho:
* add support for VP geohints, document.
* silence -Wshadow.
* silence warnings related to assignments that are not used.
* sc_ipiddump:
* fix memory leak when user specifies invalid command line options.
* sc_filterpolicy:
* ask for cycle-start and cycle-stop records, write them out.
* improve use of libscamperctrl.
* sc_pinger:
* signal done to get cycle stop record.
* improve use of libscamperctrl.
* document remote socket option.
* sc_prefixscan:
* use scamper_file_t outfiles, add ability to write gz/bz2/xz files.
* ask for cycle-start and cycle-stop records, write them out.
* improve use of libscamperctrl.
* sc_remoted:
* catch EAGAIN from select.
* sc_speedtrap:
* ask for cycle-start and cycle-stop records, write them out.
* improve use of libscamperctrl.
* sc_uptime:
* silence -Wshadow.
* silence warnings related to assignments that are not used.
* fix memory leak in up_reboots_doone.
* sc_warts2json:
* fix memory leak with cycle start/stop records.
* emit json for host records.
* sc_wartscat:
* fix ability to write compressed warts files.
- update to version 20230323:
* libscamperfile:
* add ability for scamper and all utilities to read warts and arts
files compressed with bzip2 and xz, if libbz2 and liblzma are found
by configure.
* add ability for scamper and all utilities to write warts files
compressed with gzip, bzip2, and xz, if zlib, libbz2, and liblzma
are found by configure.
* tidy up libscamperfile code.
* misc:
* silence -Wsign-compare and -Wtype-limits
* tidy usage statements for sc_uptime and sc_tbitpmtud
* document use of '-' to read from stdin and write to stdout
in sc_wartsfilter.1
-------------------------------------------------------------------
Tue Mar 7 09:28:35 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20230302:
- scamper:
* use a random source port / ICMP ID in trace if -s 0.
* better parallelize pings to a single destination that use
udp-dport, tcp-ack-sport, or tcp-syn-sport probe methods.
* document default value of source port consistently for all
measurements that take a source port parameter in the man page.
- sc_wartscat:
* print useful error messages when encountering an error.
* add ability to merge neighbourdisc, tbit, sting, sniff, and host.
-------------------------------------------------------------------
Fri Feb 24 07:32:35 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20230224:
- scamper:
- allow multiple parallel measurements to the same destination,
- provided the measurements have probe signatures that scamper can
- distinguish.
- return the associated task ID with each DATA blob in control socket.
- this task ID matches the ID returned in an OK when scamper accepted
- the task.
- in ping, only compute delay statistics on responses from destination.
- in ping, allow timeout to be expressed in fractions of a second.
- libscamperfile:
- support reading gz-compressed warts files.
- libscamperctrl:
- add libscamperctrl, a library to interact with a collection of
- scamper instances.
- modify sc_ally, sc_filterpolicy, sc_prefixscan, sc_speedtrap, and
- sc_pinger to use this library.
- this library is likely to evolve. current behaviour is documented
- in libscamperctrl manual page.
- misc:
- improve sc_wartsfilter manual page with examples.
- add remote control socket support to sc_pinger.
- fix kqueue/epoll loop in sc_remoted.
- consistently use size_t throughout when counting number of items.
- build without warnings using -Wextra -Wno-unused-parameter.
- improvements through adding function attributes to printf-like
- functions.
- deorbit some unused functions from utils.c.
-------------------------------------------------------------------
Thu Dec 29 09:06:25 UTC 2022 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20211212e:
- scamper:
* gracefully handle situations where there is no
/etc/resolv.conf, or no nameserver lines in an /etc/resolv.conf
but a measurement or scamper-internal task wants to resolve a
name
* tidy up buggy prinf-like statements in scamper and some drivers.
- warts/json:
* in JSON output for ping, print the TCP/UDP src/dst ports or
ICMP id/seq used in individual probe packets,
* fix regression in libscamperfile so that it can read old warts
files.
-------------------------------------------------------------------
Sat Nov 19 07:20:02 UTC 2022 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20211212d:
- scamper:
* add tcp-syn-sport method to ping, document in scamper(1) manual page
- documentation:
* document trace json object in sc_warts2json(1) manual page
-------------------------------------------------------------------
Thu Aug 18 06:36:07 UTC 2022 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20211212b:
- scamper:
* add an option (-O cafile=/path/to/file) to load CA certificates
from a specific file when starting scamper for validating a
remote controller's certificate (this was released in 20211212a)
* add options
-O client-certfile=/path/to/certfile and
-O client-privfile=/path/to/privfile
to have scamper present a client certificate during a TLS handshake
with a remote controller
* fix bugs that prevent scamper from reconnecting to a remote
controller
* fix -d debugfile when scamper is built with privilege separation
* fix bug when writing neighbordisc measurements to warts file that
prevents a neighbordisc measurement from being read
* fix bug when reading some tracelb measurements with unresponsive hops
from a warts file
* allow user to specify fractions of a second to ping timeout (-W)
* use a random source port / ICMP ID in ping if -F 0
- sc_remoted:
* add -C option to specify a CA PEM file to verify client certificates
presented by scamper instances.
* add -O skipnameverification option to tell sc_remoted to verify
scamper presents a certificate signed by the CA, but do not do
name verification
-------------------------------------------------------------------
Mon Apr 25 14:13:43 UTC 2022 - Dominique Leuenberger <dimstar@opensuse.org>
- Drop libscamperfile1 provides from the lib subpckage:
libscamperfile.so.2 is not a drop-in replacement for anything
that linked libscamperfile.so.1, and as such the provides is
invalid. The obsoletes is technically wrong, but is there to fix
the upgrade path of a wrongly-packaged libscamperfile.so.2 in a
libscamperfile1 package.
-------------------------------------------------------------------
Fri Feb 25 20:29:54 UTC 2022 - Sebastian Wagner <sebix@sebix.at>
- add provices/obsoletes for old libscamperfile1 sub-package.
-------------------------------------------------------------------
Sat Feb 12 18:37:04 UTC 2022 - Sebastian Wagner <sebix@sebix.at>
- Update to version 20211212a:
- No changelog available.
-------------------------------------------------------------------
Tue Dec 14 17:50:16 UTC 2021 - Sebastian Wagner <sebix@sebix.at>
- update to version 20211212:
- scamper:
* in hostname code, handle nameserver lines with comments in them
- sc_remoted:
* fix logic to handle TLSv1.3 handshakes
- sc_hoiho:
* add the ability to learn regular expressions that extract
network names from router hostnames, documented in the
sc_hoiho man page
-------------------------------------------------------------------
Wed Oct 27 18:47:44 UTC 2021 - Sebastian Wagner <sebix@sebix.at>
- update to 20211026:
scamper:
* in trace, allow probes to multiple consecutive hops to be
outstanding in the network without having to stop and wait,
using the -N parameter documented in scamper's man page.
* in trace, do optional PTR lookups using the option documented
in scamper's man page. output these hostnames into warts and
json outputs.
* bump libscamperfile version for the above changes.
* document that scamper's control socket can be told to return
JSON through an option now documented in scamper's man page.
* improvements to reading warts files via fuzzing.
* other man page tidy ups.
sc_erosprober:
* add the ability to adjust the probe list at run time through a
unix domain socket, documented in the sc_erosprober man page.
sc_hoiho:
* add the ability to learn regular expressions that extract
geographic hints from router hostnames, documented in the
sc_hoiho man page
-------------------------------------------------------------------
Mon Apr 5 19:33:43 UTC 2021 - Sebastian Wagner <sebix@sebix.at>
- update to version 20210324:
sc_speedtrap:
* speed up speedtrap's runtime
-------------------------------------------------------------------
Wed Sep 23 06:32:14 UTC 2020 - Sebastian Wagner <sebix@sebix.at>
- update to version 20200923:
- scamper:
* integrate some fixes for compiling scamper on windows
- sc_erosprober:
* allow larger probe intervals
- sc_hoiho:
* add support for learning regexes that extract ASNs in hostnames
-------------------------------------------------------------------
Sat Jul 18 13:36:44 UTC 2020 - Sebastian Wagner <sebix@sebix.at>
- update to version 20200717:
- scamper:
- update remote control protocol to support session resumption
if the underlying TCP connection is interrupted.
- if remote controller is specified with a domain name, use TLS.
- fix -p pidfile when starting scamper as a daemon
- expire entries in the ARP cache periodically
- add -r support to ping and tracelb, and record router addresses
in warts output.
- autoconf work to build on linux without sys/socketvar.h or
linux/netlink.h
- allow scamper to do IPv4 ICMP echo and IPv6 UDP traceroute
without requiring root on linux.
- libscamperfile version 1.0.0
- sc_remoted:
- update remote control protocol to support session resumption
if the underlying TCP connection is interrupted.
- use HUP signal to reload TLS certificate and private key chain
- add -e pidfile to write PID to file, to make HUP easy
- sc_pinger:
- add utility to ping a set of addresses with ICMP echo, UDP, and
TCP-ack probes
- throughout:
- reduce number of warnings when compiling with -Wextra
- remove rcsid from all files
-------------------------------------------------------------------
Sat Mar 14 16:50:43 UTC 2020 - Sebastian Wagner <sebix@sebix.at>
- update to version 20191102b:
- scamper:
* do not dereference a null pointer when converting a tracelb node
with no IP address to a string, when generating json output.
- sc_bdrmap:
* allow the source IP address to be specified when probing with the
-S parameter.
- sc_wartsfilter:
* a new utility to select specific records from a warts file
-------------------------------------------------------------------
Mon Jan 6 19:30:11 UTC 2020 - Sebastian Wagner <sebix@sebix.at>
-update to version 20191102:
* scamper
* escape hostname in json output for tracelb
* use length parameters when parsing hostname responses, from
Marianne Fletcher
* sc_bdrmap
* add a -O noalias option to tell bdrmap to not do alias resolution.
* update -C documentation in the sc_bdrmap.1 man page
* fix a memory leak of trace objects in -d traces
* print RTT in -d traces
* add an -M option to help corner cases with private and IXP addresses
* relax heuristics to allow VPs to claim routers with IP2AS when no
other router assignments can take place
* turn off analytical interface alias resolution heuristics by default
* sc_hoiho
* change -O verbose to -O debug to better reflect what it does.
* change tpa to atp to be consistent with language in paper
https://www.caida.org/~mjl/pubs/rnc.pdf
* free a malloc, pointed out by clang static analysis
* add support for reading -d 3 output, which is the format of
regular expressions provided in the data supplement:
http://data.caida.org/datasets/supplement/2019-imc-hoiho/
* sc_uptime
* add a metadata table to be able to track metadata across sc_uptime
invocations, from Marianne Fletcher
* fix an error message when trying to create a database that
already exists.
-------------------------------------------------------------------
Wed Sep 18 19:37:58 UTC 2019 - Sebastian Wagner <sebix@sebix.at>
- remove SIOCGSTAMP.patch
- update to version 20190916:
* scamper
* add a host implementation for looking up DNS records. it uses
the first nameserver it finds in /etc/resolv.conf by default.
* add an -O ptr option to tracelb.
* bugfix json output for tracelb.
* integrate patricia trie implementation into scamper hotspot
* use HAVE_SYSCTL macro to solve a compile issue on android
* include <linux/sockios.h> to get SIOCGSTAMP in Linux kernel > 5.2
* add -A option to ping code to set the ack number to use in tcp
probes (or sequence number in SYN packets). do not randomly
generate sequence and ack values for each TCP ping.
* rework options handling to allow for long long values.
* set the window size in TCP probes to 65535, instead of advertising a
zero receive window.
* update configure scripts around the use of --with-privsep-dir-owner
* sc_ally:
* when outputting alias sets, conduct a canonical sort to allow for
easy diffs
* update man page because sc_ally can take more than two addresses per
line
* sc_erosprober:
* new driver to periodically probe addresses and rotate output files.
* sc_hoiho:
* new utility for holistic orthography of Internet hostname
observations. this utility is only built if --with-sc_hoiho is
passed to configure. sc_hoiho requires pcre or pcre2, which can be
controlled by passing --with-pcre or --with-pcre2 to configure.
* sc_uptime:
* add a last_tx column to state_dsts to allow for simple monitoring of
when each destination address was last probed.
* various drivers:
* handle scamper disconnections gracefully in sc_ally,
sc_filterpolicy, sc_prefixscan, sc_radargun, sc_speedtrap,
sc_tbitblind, sc_tbitpmtud, and sc_uptime
-------------------------------------------------------------------
Tue Aug 20 19:34:08 UTC 2019 - Sebastian Wagner <sebix@sebix.at>
- add SIOCGSTAMP.patch for recent changes in socket.h/socketios.h
-------------------------------------------------------------------
Sat Dec 22 22:04:19 UTC 2018 - Sebastian Wagner <sebix@sebix.at>
- update to version 20181219:
* scamper:
* json output format for tracelb (MDA traceroute)
* print an error message if an output file cannot be opened
* document (in warts.5) the offset variable in a warts traceroute record,
and scamper_trace_dtree_t
* use autoconf to check if X509_VERIFY_PARAM_set1_host is available,
rather than OpenSSL #defines that are not used consistently among
OpenSSL-like libraries.
* libscamperfile:
* don't crash on a zero length file, or other conditions where sf->type
is SCAMPER_FILE_NONE
sc_ally:
* fix example in manual page
* dump 3: when merging routers in a transitive closure, remove the
obsolete router from the dump list.
* if an address is repeated in the input file then complain
* sc_bdrmap:
* document -C csum in sc_bdrmap.1
* allow duplicate prefixes in the IXP file
* add initial support for UDP paris traceroute, as an alternative
to the ICMP paris traceroute bdrmap uses by default.
* document updates in sc_bdrmap.1
* sc_ttlexp:
* add -O noreserved
* bugfix reading from stdin, file handling
* document updates in sc_ttlexp.1
* sc_uptime:
* add an optional -I interval parameter which controls how frequently
we want an address to be probed. add logic to exit early if we are
probing on with -I and there is a list of low-priority probing
that is not empty, so that sc_uptime can meet the probe interval.
* add the ability to expire addresses out of the database after they
have not been seen in traceroute for a while, and they do not
respond with an incrementing IPID value, with optional -E expiry
parameter.
* loading addresses into the state database is now a separate step (-a)
* add a -c option to create and initialise a database file
* add do-not-probe support
* replace import code that used a row for each sample with a blob that
stores multiple samples per blob.
* report some measure of progress on import
* build monotonic sequences which allow patterns in responses to be
more easily identified, so that reboots are not falsely inferred
in the cases of multiple counters, 16 bit counters, and routers
that start each sequence after a PTB with a new IPID.
* add an -O verbose to dump IPID sequences
* document updates in sc_uptime.1
-------------------------------------------------------------------
Sun May 6 08:20:47 UTC 2018 - sebix@sebix.at
- update to version 20180504:
* scamper:
* increase the size of a buffer in scamper's traceroute json
creation to reduce chance of truncation.
* print the number of probes sent by traceroute in the json
output.
* enforce a minimum firsthop value of 1 when reading a warts
traceroute object.
* sc_bdrmap:
* choose a static ICMP checksum value when using Paris traceroute
to reduce churn in observed topology in bdrmap output.
* add ability to pass list of ASes to -d traces to see
traceroutes towards specific ASes, useful for understanding
bdrmap inferences.
-------------------------------------------------------------------
Thu Mar 8 19:36:27 UTC 2018 - sebix@sebix.at
- update to version 20180309:
* sc_*:
* For the utilities (sc_*) that read input files, do not allocate
memory to hold the entire input file in memory before parsing
the file. This improvement affects sc_ally, sc_attach,
sc_bdrmap, sc_filterpolicy, sc_radargun, sc_speedtrap,
sc_tbitblind, sc_tbitpmtud, sc_uptime, sc_warts2text.
* sc_tbitpmtud:
* add scamper driver from IMC2010 paper to collect data on webserver
responsiveness to ICMP packet too big messages, and perform
rudimentary analysis of collected data.
* sc_ttlexp:
* new utility to dump source addresses from ICMP TTL expired
messages in warts files.
* sc_wartsfix:
* add a manual page
* sc_warts2csv:
* add a manual page
-------------------------------------------------------------------
Mon Dec 4 08:40:18 UTC 2017 - sebix@sebix.at
- remove new-openssl.patch, included upstream
- update to version 20171204:
- scamper:
* add a blind-fin tbit test, which tests receiver behavior to TCP FIN
packets which could have come from an off-path attacker.
- sc_radargun:
* add -d 2 option, which dumps interface IP-ID behavior classifications.
-------------------------------------------------------------------
Thu Nov 30 21:22:24 UTC 2017 - sebix@sebix.at
- add patch new-openssl.patch to compile with new openssl versions
-------------------------------------------------------------------
Thu Aug 24 06:58:41 UTC 2017 - sebix@sebix.at
- update to version 20170822
scamper:
* replace recursive versions of some functions with iterative versions.
* add cycle-start and cycle-stop json record implementations.
* fix traceroute json record: the hop transmit time value it reported
was junk.
* add support for sending json over the control socket. use
"attach format json" to get this mode; "attach" by itself still
returns uuencoded warts. Initial patch supplied by Young Hyun.
* fix possible memory leaks detected with static analysis.
* quality assurance on research paper cites in manual pages.
* spelling errors noticed by Iain R. Learmonth.
sc_ally:
* add feature to dump inferred aliases from the collected data.
sc_speedtrap:
* add threaded implementation of pairwise comparison to form candidate
alias sets, if pthreads are detected at compilation time and
--disable-threads configure option is not supplied.
sc_uptime:
* new scamper driver to infer IPv6 device reboot windows if the device
returns an incrementing identifier field in the IPv6 fragmentation
header. the driver is not built by default, as it expects sqlite3.
use --with-sc_uptime configure option to build.
https://www.caida.org/~mjl/pubs/spf.pdf
-------------------------------------------------------------------
Thu Jun 22 20:47:31 UTC 2017 - sebix@sebix.at
- update to 20161204a
* More fixes to libscamperfile caught with fuzz testing. corrupt
warts files provided by Greg Ward of Dyn
* if targets or commands are specified in a file, and that file
ends after all probing of commands in that file has completed,
finish the source, allowing scamper to exit. this scenario is
most likely when stdin is the input file. Reported by Alex
Colvin of Dyn
* use select/poll/epoll/kqueue to look for read events on stdin files
* malloc enough memory for a prefix6_t in the prefixtree code. reported
by Sebastian Wagner via gcc7. only sc_bdrmap uses that code
* increase size of string buffers for some ping and trace fields for text
output to silence gcc7 warning.
* allow source IP address to be null when outputting a trace with json
* update sc_tbitblind.1 man page to show correct use of scamper's IPFW
firewall support, which changed in the 20161204 release
* fix unlikely unaligned access when computing checksums with IPv6
addresses
-------------------------------------------------------------------
Wed Jun 21 20:20:18 UTC 2017 - sebix@sebix.at
- update to 20161204
* add remote control socket support to scamper. scamper can be
configured to connect to a remote controller at run time to
allow remote systems to control a scamper instance. the
remote controller is handled by the sc_remoted utility, and
is documented in the sc_remoted manual page (see below).
* fixes to libscamperfile caught with fuzz testing. corrupt
warts data files provided by Greg Ward of Dyn.
* add a PATRICIA trie implementation based off Sedgewick's
Algorithms in C++ book. this improves the performance
of scamper compared to holding addresses in splaytrees.
* improve speed of warts(5) code.
* improve speed of scamper_writebuf by allocating pagesize blocks
at a time.
* begin to document ping warts records in warts(5).
* fix debug printf implementation so that all features will
be built in as long as --without-debugfile is not used.
backported to 20141211g.
* silence compiler warnings from Microsoft Visual Studio.
backported to 20141211g.
* sc_prefixscan:
* add a utility, sc_prefixscan, that provides a convenient
interface to scamper's prefixscan alias resolution method.
https://www.caida.org/tools/measurement/scamper/man/sc_prefixscan.1.pdf
* sc_radargun:
* add a utility, sc_radargun, that provides a convenient
interface to scamper's radargun implementation.
https://www.caida.org/tools/measurement/scamper/man/sc_radargun.1.pdf
* sc_remoted:
* add a utility, sc_remoted, that provides an interface to a
collection of remote scamper instances.
https://www.caida.org/tools/measurement/scamper/man/sc_remoted.1.pdf
* sc_ally:
* use writebufs so sc_ally is event driven and will not block.
* add code to probe candidate sets in pairs, with transitive
closure to save probes.
* allow inter-probe gaps of less than 1 second.
* sc_attach:
* add support for remote control sockets.
* add an option to randomise the order tasks are run.
* sc_speedtrap:
* stricter default test for inferring if two IP addresses may
share a single shared counter.
backported to 20141211g.
* code cleanup.
* sc_warts2json
* add support for printing ICMP extensions included in traceroute
responses, prompted by Quirin Scheitle
-------------------------------------------------------------------
Sat Oct 8 19:30:55 UTC 2016 - mardnh@gmx.de
- update to version 20141211e
- upstream does not provide a changelog
-------------------------------------------------------------------
Sun Aug 21 18:29:06 UTC 2016 - mardnh@gmx.de
- moved man3/* from lib- to -devel subpackage
- removed useless provides from libscamperfile0
-------------------------------------------------------------------
Wed Aug 17 17:49:53 UTC 2016 - mardnh@gmx.de
- initial package, version 20141211e