* scamper: * add initial implementation of RFC 4656 OWAMP. the implementation is functional but incomplete, and all owamp interfaces (e.g., warts, json, command line interface, python interface, and the implementation itself) are subject to change. * document current owamp command line interface in scamper man page. * remove unused scamper_privsep_open_udp and scamper_privsep_open_tcp. * sc_remoted: * use unveil(2) and pledge(2) where present (OpenBSD) to restrict the files sc_remoted has access to after initialization, and restrict system calls available to sc_remoted. * add optional-at-runtime chroot support to sc_remoted, to restrict the files sc_remoted has access to after initalization on operating systems without unveil(2), and add "security considerations" section to sc_remoted man page on chroot support. * refactor debug messages: most were errors that should have been emitted to stderr even without using -O debug. * add -O notimes option to remove timestamps, useful when the system independently prefaces debug output with a timestamp. * emit names and magic values associated with remote scamper instances in debug messages. * Python module: * bindings for ScamperOwamp. * drop GIL when calling clibscamperctrl.scamper_mux_add which can be IO bound. * add hash / cmp to ScamperVp, allowing ScamperVp objects to be stored in sets. * allow do_ inst variables to be a set as well as a list, use set internally. OBS-URL: https://build.opensuse.org/package/show/network:utilities/scamper?expand=0&rev=97
1627 lines
73 KiB
Plaintext
1627 lines
73 KiB
Plaintext
-------------------------------------------------------------------
|
|
Tue Jan 6 12:40:50 UTC 2026 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- Update to version 20260105:
|
|
* scamper:
|
|
* add initial implementation of RFC 4656 OWAMP. the implementation is
|
|
functional but incomplete, and all owamp interfaces (e.g., warts,
|
|
json, command line interface, python interface, and the
|
|
implementation itself) are subject to change.
|
|
* document current owamp command line interface in scamper man page.
|
|
* remove unused scamper_privsep_open_udp and scamper_privsep_open_tcp.
|
|
* sc_remoted:
|
|
* use unveil(2) and pledge(2) where present (OpenBSD) to restrict
|
|
the files sc_remoted has access to after initialization, and restrict
|
|
system calls available to sc_remoted.
|
|
* add optional-at-runtime chroot support to sc_remoted, to restrict
|
|
the files sc_remoted has access to after initalization on operating
|
|
systems without unveil(2), and add "security considerations" section
|
|
to sc_remoted man page on chroot support.
|
|
* refactor debug messages: most were errors that should have been
|
|
emitted to stderr even without using -O debug.
|
|
* add -O notimes option to remove timestamps, useful when the system
|
|
independently prefaces debug output with a timestamp.
|
|
* emit names and magic values associated with remote scamper instances in
|
|
debug messages.
|
|
* Python module:
|
|
* bindings for ScamperOwamp.
|
|
* drop GIL when calling clibscamperctrl.scamper_mux_add which can be
|
|
IO bound.
|
|
* add hash / cmp to ScamperVp, allowing ScamperVp objects to be stored
|
|
in sets.
|
|
* allow do_ inst variables to be a set as well as a list, use set
|
|
internally.
|
|
* libscamperctrl:
|
|
* fix possible crash in scamper_mux_add().
|
|
* add scamper_mux_add_inet().
|
|
* ensure scamper_ctrl_strerror() will report something if
|
|
scamper_mux_add() or scamper_mux_add_inet() fails.
|
|
* bump version.
|
|
* libscamperfile:
|
|
* add owamp interfaces, scamper/scamper_owamp.h
|
|
* bump version to account for owamp interfaces.
|
|
* tests:
|
|
* add additional tests for radargun data structures.
|
|
* add unit_cmd_owamp tests to check owamp command parsing.
|
|
* add glue to check warts and json code paths for owamp.
|
|
* sc_wartsdump:
|
|
* consistently preface any hex output with 0x.
|
|
* dump owamp structures.
|
|
* configure.ac
|
|
* use quoted form for all test statements.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Oct 20 11:15:58 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to version 20251020:
|
|
* 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_*_errmsg_get functions.
|
|
* let neighbourdisc src_mac and dst_ip be null when reading warts
|
|
files, rather than reject the object.
|
|
* bump version.
|
|
- Python library:
|
|
* release GIL when waiting for measurement results so that module is
|
|
asyncio friendly.
|
|
* add errmsg attribute to measurement objects, interface file, and
|
|
document.
|
|
- sc_wartsdump:
|
|
* use scamper_*_[stop|result]_tostr functions rather than duplicate code.
|
|
* emit errmsg.
|
|
- tests:
|
|
* check that errmsg is read-from and written-to warts files correctly.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Oct 6 11:11:39 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- Update to version 20251002:
|
|
* scamper:
|
|
* 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.
|
|
* libscamperfile:
|
|
* 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.
|
|
* libscamperctrl:
|
|
* add iata attribute to scamper_vp_t.
|
|
* Python module:
|
|
* 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.
|
|
* update pyi to match API changes, fix enums with latest mypy.
|
|
* sc_remoted:
|
|
* add iata to list of supported metadata items per VP, document in
|
|
man page.
|
|
* 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_wartsdump:
|
|
* print error code for udpprobe.
|
|
* tests:
|
|
* add more qname tests in unit_cmd_host.c.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Sep 26 07:34:15 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- Update to 20250804:
|
|
* scamper:
|
|
* 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.
|
|
* throughout:
|
|
* remove string_concaf from more places.
|
|
* Python module:
|
|
* no change to the module.
|
|
* in python interface file (scamper.pyi), fix types of
|
|
ScamperDealiasMidardiscRound.start and ScamperCtrl.do_midarest(addrs),
|
|
and make ScamperCtrl generic in parameter type to help with static
|
|
type checking.
|
|
* sc_remoted:
|
|
* catch TERM signal (in addition to INT and HUP)
|
|
* write pidfile after becoming daemon, when -D is used
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 29 15:29:39 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to version 20250729:
|
|
* scamper:
|
|
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
|
|
* 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
|
|
* tests:
|
|
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
|
|
* Python module:
|
|
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
|
|
* hoiho:
|
|
learn ASN regexes where the operator controlling the PTR record uses
|
|
a prefix on the hostname (e.g., ^ipv4.de-cix.)
|
|
* documentation:
|
|
complete trace and ping warts(5) format descriptions
|
|
* libscamperfile:
|
|
bump revision because implementation (but not API) changed
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 29 15:28:52 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- Add script convert-changelog.sh to convert upstream changelog style to RPM style
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 1 08:47:20 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to version 20250630:
|
|
* 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
|
|
* libscamperfile:
|
|
* add scamper_neighbourdisc_tojson, bump version
|
|
* clean up mtu / stop_hop checks in trace text output
|
|
* 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
|
|
* sc_remoted:
|
|
* disconnect mux clients if associated scamper process disconnects
|
|
* 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
|
|
* tests:
|
|
* further config unit tests
|
|
* add neighbourdisc test case
|
|
* misc:
|
|
* benign changes to allow compilation on solaris
|
|
* Update to version 20250603:
|
|
* scamper:
|
|
* add initial streaming implementation of trace and ping, document
|
|
existence in man page
|
|
* reload scamper config file with SIGHUP, document signal handling
|
|
in man page
|
|
* fix scamper_trace_reply_dup
|
|
* restructure recording of probes in do_trace_probe
|
|
* tbit: dl_* -> tbit_* so that we don't have a function named dl_data,
|
|
which causes a compiler error on solaris
|
|
* HEADS UP: it is my intention to remove the following command line
|
|
options from scamper in a future release, probably making them
|
|
available some other way:
|
|
-l listname (name to assign to default list)
|
|
-L listid (list id for default list)
|
|
-C cycleid (cycle id)
|
|
* libscamperfile:
|
|
* add scamper_[trace|ping|tracelb|dealias]_totext, which provide an
|
|
interface to get the same text rendering supplied by scamper
|
|
* add scamper_trace_pmtud_noteiter functions
|
|
* ensure pointers are not null before dereferencing them when rendering
|
|
path MTU text output
|
|
* fix json rendering of traceroute probes with no response after
|
|
stop_hop
|
|
* remove potential memory leak rendering MTU information in trace text
|
|
* bump libscamperfile version
|
|
* Python module:
|
|
* implement str() for ScamperPing, ScamperTrace, and ScamperTracelb,
|
|
which provides the same text rendering that would have been supplied
|
|
by scamper
|
|
* add ScamperTracePmtudNote and ScamperTracePmtud.notes()
|
|
* update docs: https://www.caida.org/catalog/software/scamper/python/
|
|
* tests:
|
|
* add unit_text to check text rendering
|
|
* add unit_json to check json rendering
|
|
* add fuzz_warts2text to find bugs in text rendering with malformed
|
|
warts
|
|
* add trace unit test case: traceroute probes with no response
|
|
* replace fuzz-tmux.sh with fuzz-tmux.pl, which better aligns with
|
|
my workflow
|
|
* misc:
|
|
* silence clang dead initialization warnings
|
|
|
|
-------------------------------------------------------------------
|
|
Tue May 6 06:49:32 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to version 20250505:
|
|
* scamper:
|
|
* trace: separate probes from replies
|
|
* trace: support -P tcp-ack Path MTU probing
|
|
* trace: support -N squeries with Path MTU probing
|
|
* trace: embed path MTU probing data in JSON output
|
|
* ping: add -O dltx option to force datalink tx, capture nhmtu in ICMP PTB messages
|
|
* add basic sysctl-like configuration file support, which currently only allows for disabling measurement primitives, e.g.: # disable udpprobe measurement primitive udpprobe.enable=0
|
|
* hopefully fix build on solaris
|
|
* libscamperfile:
|
|
* chase separation of traceroute probes from replies, add scamper_trace_hopiter_* to simplify required user code modifications.
|
|
* fix 20250227 regression that did not read ipid32 in ping replies correctly, which lead to speedtrap not working.
|
|
* fix udpprobe warts storage when no packets are sent.
|
|
* be defensive allocating memory in warts read path.
|
|
* be defensive with possible null pointers when generating json from malformed warts.
|
|
* bump libscamperfile version.
|
|
* Python module:
|
|
* include setup.py in source code distribution.
|
|
* transparently handle separation of traceroute probes from replies.
|
|
* extend do_ping to support MTU probing, and capture embedded nhmtu.
|
|
* tests:
|
|
* replace unit_host_warts, unit_http_warts, unit_ping_warts, unit_trace_warts, unit_udpprobe_warts, with unit_warts.
|
|
* expand ping warts unit tests to check ipid values.
|
|
* expand trace warts unit tests to include last ditch probing, and path mtu discovery.
|
|
* add udpprobe and dealias warts unit tests.
|
|
* add fuzz_warts2json.
|
|
* add simple unit tests for parsing scamper configuration file.
|
|
* throughout:
|
|
* chase libscamperfile modifications throughout bundled utilities.
|
|
* use string_concatc in all obvious places, reduce use of string_concaf further, speeding up string rendering.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Apr 5 11:22:07 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to version 20250401:
|
|
- scamper:
|
|
* move items that require privilege (opening files, unlinking files,
|
|
opening raw sockets, datalink interfaces) into scamper_priv.c and
|
|
have each follow a consistent pattern. previously these were
|
|
distributed throughout many source code files.
|
|
* add build option that allows scamper to decide if it will do
|
|
privilege separation at run time.
|
|
the --enable-scamper-privsep=rootonly configure option enables this
|
|
behavior. if run with root privileges, scamper will do privilege
|
|
separation. if not run with root privileges, scamper will not.
|
|
--enable-scamper-privsep=yes (the default) does privilege separation
|
|
regardless of root privilege status.
|
|
note: the previous --disable-privsep configure option has become
|
|
--disable-scamper-privsep
|
|
* restructure the way that blocked tasks (tasks that share a probe
|
|
signature) are handled
|
|
* add -O mss=foo option to ping, which will include mss option to
|
|
TCP syn probe methods.
|
|
* ignore packets on the datalink interface associated with a probe
|
|
that has a timestamp after the datalink packet's timestamp.
|
|
* increase scamper -H holdtime limit from 10s to 60s.
|
|
- python module:
|
|
* add ScamperCtrl.outfile setter
|
|
* fix ScamperFile filter_types
|
|
- libscamperfile:
|
|
* handle termination HTTP chunk correctly (noticed running unit tests
|
|
on MacOS, which has a stricter strtol)
|
|
* be more accepting when processing HTTP headers
|
|
- libscamperctrl:
|
|
* fix bug when reading partial control messages from mux
|
|
- tests:
|
|
* add unit test for prefixtree implementation
|
|
* add tests for parsing HTTP headers
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Mar 1 11:50:34 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to version 20250227:
|
|
- scamper:
|
|
* 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.
|
|
- 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 more string_concat_* and timeval tests
|
|
- various:
|
|
* add assertions to silence clang static analysis warnings
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Jan 12 13:46:25 UTC 2025 - Sebastian Wagner <sebix@sebix.at>
|
|
|
|
- update to scamper 20250106:
|
|
* 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.
|
|
* 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.
|
|
* libscamperfile, libscamperctrl:
|
|
* bump library version because underlying code changed (API did not)
|
|
* tests:
|
|
* add string_concat test 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.
|
|
|
|
-------------------------------------------------------------------
|
|
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
|
|
|