All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Highlight lost probes in sample history (#1247)
- Added
quit-preserve-screen
(default:shift+q
) key binding to quit Tui without clearing the screen (#1382)
- Added information bar to Tui (#1349)
- [BREAKING CHANGE] Remove
Timestamp
from allDnsEntry
variants (#1296) - [BREAKING CHANGE] Replace
toggle-privacy
key binding withexpand-privacy
andcontract-privacy
(#1347) - [BREAKING CHANGE] Hide source address when
--tui-privacy-max-ttl
is set (#1365) - Only show hostnames if different from IPs (#1363)
- Reverse dns enqueued multiple times when dns-ttl expires (#1290)
- Fixed panic for icmp extensions with malformed length (#1287)
- Cursor not moved to the bottom on exit when using
--tui-preserve-screen
(#1375)
0.11.0 - 2024-08-11
- Added NAT detection for
IPv4/udp/dublin
(#1104) - Added public API (#1192)
- Added support for NAT detection (
N
) column (#1219) - Added support for last icmp packet type (
T
) column (#1105) - Added support for last icmp packet code (
C
) column (#1109) - Added support for the probe failure count (
f
) column (#1258) - Added settings dialog tab hotkeys (#1217)
- Added
--dns-ttl
flag to allow refreshing the reverse DNS results (#1233) - Added
--generate-man
flag for generating ROFF man page (#85) - Added Ubuntu PPA package (#859)
- Added Chocolatey package (#572)
- [BREAKING CHANGE] Changed initial sequence to be
33434
(#1203) - [BREAKING CHANGE] Renamed
tui-max-[samples|flows]
asmax-[samples|flows]
(#1187) - Separated library and binary crates (#1141)
- Record
icmp
packet code (#734) - Transient error handling for
IPv4
on macOS, Linux & Windows (#1255) - Improved error messages (#1150)
- Revamp the help dialog (#1260)
- Fixed
DestinationUnreachable
incorrectly assumed to come from target host (#1225) - Fixed incorrect target hop calculation (#1226)
- Do not conflate
AddressInUse
andAddrNotAvailable
errors (#1246)
0.10.0 - 2024-03-31
- Added support for calculating and displaying jitter (#39)
- Added support for customizing columns (#757)
- Added support for reordering and toggling column visibility in Tui (#1026)
- Added support for dublin ECMP routing
for
IPv6/udp
(#272) - Added support for IPinfo flavoured
mmdb
files (#862) - Added support for
IPv4->IPv6
andIPv6->IPv4
DNS fallback modes (#864) - Added TUN based simulation tests (#908)
- Added support for last src port (
S
) and last dest port (P
) custom columns (#974) - Added support for last sequence (
Q
) custom column (#976) - Added support for more named theme colors (#1011)
- Ensure
paris
anddublin
ECMP strategy are only used with supported protocols (#848) - Restrict flows to
paris
anddublin
ECMP strategies (#1007) - Improved Tui table column layout logic (#925)
- Use exclusive reference
&mut
for all Socket operations (#843) - Reduced maximum sequence per round from 1024 to 512 (#1067)
- Fixed off-by-one bug in max-rounds calculation (#906)
- Fixed panic with
expand-hosts-max
Tui command (#892) - Fixed failure to parse generated config file on Windows (#958)
- Fixed tracer panic for
icmp
TimeExceeded "Fragment reassembly time exceeded" packets (#979) - Fixed tracer not discarding unrelated
icmp
packets forudp
andtcp
protocols (#982) - Fixed incorrect minimum packet size for
IPv6
(#985) - Fixed permission denied error reading configuration file from snap installation (#1058)
0.9.0 - 2023-11-30
- Added support for tracing flows (#776)
- Added support for
icmp
extensions (#33) - Added support for
MPLS
label stack classicmp
extension objects (#753) - Added support for paris ECMP routing
for
IPv6/udp
(#749) - Added
--unprivileged
(-u
) flag to allow tracing without elevated privileges (macOS only) (#101) - Added
--tui-privacy-max-ttl
flag to hide host and IP details for low ttl hops (#766) - Added
toggle-privacy
(default:p
) key binding to show or hide private hops (#823) - Added
toggle-flows
(default:f
) key binding to show or hide tracing flows (#777) - Added
--dns-resolve-all
(-y
) flag to allow tracing to all IPs resolved from DNS lookup entry (#743) - Added
dot
report mode (-m dot
) to output hop graph in GraphvizDOT
format (#582) - Added
flows
report mode (-m flows
) to output a list of all unique tracing flows (#770) - Added
--icmp-extensions
(-e
) flag for parsingIPv4
/IPv6
icmp
extensions (#751) - Added
--tui-icmp-extension-mode
flag to control howicmp
extensions are rendered (#752) - Added
--print-config-template
flag to output a template config file (#792) - Added
--icmp
flag as a shortcut for--protocol icmp
(#649) - Added
toggle-help-alt
(default:?
) key binding to show or hide help (#694) - Added panic handing to Tui (#784)
- Added official Windows
scoop
package (#462) - Added official Windows
winget
package (#460) - Release
musl
Debiandeb
binary asset (#568) - Release
armv7
Linux binary assets (#712) - Release
aarch64-apple-darwin
(aka macOS Apple Silicon) binary assets (#801) - Added additional Rust Tier 1 and Tier 2 binary assets (#811)
- [BREAKING CHANGE]
icmp
extension object data added tojson
andstream
reports (#806) - [BREAKING CHANGE] IPs field added to
csv
and all tabular reports (#597) - [BREAKING CHANGE] Command line flags
--dns-lookup-as-info
and--tui-preserve-screen
no longer require a boolean argument (#708) - [BREAKING CHANGE] Default key binding for
ToggleFreeze
changed fromf
toctrl+f
(#785) - Always render AS lines in hop details mode (#825)
- Expose DNS resolver module as part of
trippy
library (#754) - Replaced unmaintained
tui-rs
crate withratatui
crate (#569)
- Reverse DNS lookup not working in reports (#509)
- Crash on NetBSD during window resizing (#276)
- Protocol mismatch causes tracer panic (#745)
- Incorrect row height in Tui hop detail navigation view for hops with no responses (#765)
- Unnecessary socket creation in certain tracing modes (#647)
- Incorrect byte order in
IPv4
packet length calculation (#686)
0.8.0 - 2023-05-15
- Added
--tui-as-mode
flag to control how AS information is rendered (#483) - Added support for configuration files and added a
-c
(--config-file
) flag (#412) - Added
--generate
flag for generating shell completions (#86) - Added support for showing and navigating host detail (#70)
- Added
--geoip-mmdb-file
and--tui-geoip-mode
flags for looking up and displaying GeoIp information frommmdb
files (#503) - Added settings dialog and simplified Tui header display (#521)
- Added interactive GeoIp map display (#505)
- Added support for the paris ECMP traceroute strategy
for
IPv4/udp
(#542) - Added
silent
reporting mode to run tracing without producing any output (#555) - Added
-v
(--verbose
),--log-format
,--log-filter
&--log-span-events
flags to support generating debug trace logging output (#552)
- Show AS information for IP addresses without PTR record (#479)
- Re-enabled musl release builds (#456)
- [BREAKING CHANGE] Renamed short config flag for
report-cycles
from-c
to-C
(#491) - Ensure administrator privileges on Windows (#451)
- Add context information to socket errors (#153)
- Do not require passing targets for certain command line flags (#500)
- Key press registering two events on Windows (#513)
- Command line parameter names in error messages should be
in
kebab-case
(#516)
0.7.0 - 2023-03-25
- Added support for Windows (
icmp
,udp
&tcp
forIPv4
&IPv6
) (#98) - Added support for custom Tui key bindings (#448)
- Added support for custom Tui color themes (#411)
- Added RPM packaging (#95)
- Added DEB packaging (#94)
- Variable Equal Cost Multi-path Routing (ECMP) causing truncated trace (#269)
- Tracing using the
tcp
may ignore some incomingicmp
responses (#407) - Tracer panics with large
--initial-sequence
and delayed TCP probe response (#435) - Trippy Docker fails to start (#277)
0.6.0 - 2022-08-19
- Added support for tracing using
IPv6
fortcp
(#191) - Added
-R
(--multipath-strategy
) flag to allow setting the Equal Cost Multi-path Routing strategy and added support for the dublin traceroute strategies forIPv4/udp
(#158) - Added zoom-able chart showing round trip times for all hops in a trace (#209)
- Added
--udp
and--tcp
flags as shortcuts to-p udp
and-p tcp
respectively (#205)
- Gray out hops which did not update in the current round (#216)
0.5.0 - 2022-06-02
- Added support for tracing using
IPv6
foricmp
andudp
(#35) - Added BSOD error reporting to Tui (#179)
- Added Ctrl-C keyboard command to quit the Tui (#91)
- Setting
-c
(--report-cycles
) to 1 returns no traces (#189) - Tracer failures not being shown for reports (#183)
0.4.0 - 2022-05-18
- Added
-P
(--target-port
) flag to allow specifying the target port (1, 2) - Added ability to trace with either a fixed source or a fixed destination port for both
udp
andtcp
tracing (#43) - Display source and destination ports in Tui (#156)
- Added the
-A
(--source-address
) flag to allow specifying the source address (#162) - Added the
-I
(--interface
) flag to allow specifying the source interface (#142) - Added the
-Q
(--tos
) flag to allow specifying theTOS
(DSCP
+ECN
)IPv4
header value (#38)
- Changed
tcp
tracing to use a standard (non-raw) socket to be able to detect the target (#134) - Changed
udp
tracing to use a standard (non-raw) socket (#155) - Renamed the
--tui-max-addresses-per-hop
flag astui-max-addrs
(#165) - Reorder the cli flags in the help output (#163)
- Change short alias for flag
max_round_duration
from-I
to-T
(1) - Added short cli flags for
source-port
(-S
),first-ttl
(-f
) andtui-max-addrs
(-M
) (1)
- Checksums for
udp
packets were not being set (obsoleted by #155) (#159) TimeExceeded
responses from the target address were not being handled (1)- The largest time-to-live for a given round was being calculated incorrectly in some cases (1)
0.3.1 - 2022-05-09
- Local Ipv4 discovery fails on some platforms (#133, #142)
- DNS resolution not filtering for
IPv4
addresses (#148)- Note: see #35 for the status of
IPv6
support
- Note: see #35 for the status of
0.3.0 - 2022-05-08
- Added ability for
icmp
tracing to multiple targets simultaneously in Tui (#72) - Added ability to enable and disable the
AS
lookup from the Tui (#126) - Added ability to switch between hop address display modes (ip, hostname or both) in thr Tui (#124)
- Added ability to expand and collapse the number of hosts displays per hop in the Tui (#124)
- Added the
-s
(--tui-max-samples
) flag to specify the number of samples to keep for analysis and display (#110) - Added ability to flush the DNS cache from the Tui (#71)
- Simplified
Tracer
by removing circular buffer (#106) - Added round end reason indicator to
Tracer
(#88) - SHow better error message for failed DNS resolution (#119)
- Tracing with
udp
protocol not showing the target hop due to incorrect handling ofDestinationUnreachable
responses (#131) - Tui failing on shutdown on Windows due to
DisableMouseCapture
being invoked without a priorEnableMouseCapture
call (#116) - Build failing on Windows due to incorrect conditional compilation configuration (#113)
- Tracing not publishing all
Probe
in a round when the round ends without finding the target (#103) - Tracing with
tcp
protocol not working as the checksum was not set (#79) - Do not show FQDN for reverse DNS queries from non-system resolvers (#120)
0.2.0 - 2022-04-29
- Added the
-r
(--dns-resolve-method
) flag to specify using either the OS DNS resolver (default), a 3rd party resolver (Google8.8.8.8
and Cloudflare1.1.1.1
) or DNS resolver configuration from the/etc/resolv.conf
file - Added the
-z
(--dns-lookup-as-info
) flag to display the ASN for each discovered host. This is not yet supported for the defaultsystem
resolver, see #66. - Added the
--dns-timeout
flag to allow setting a timeout on all DNS queries - Added additional parameter validation for
first-ttl
,max-ttl
&initial-sequence
- All DNS queries are now non-blocking to prevent the Tui from freezing during slow DNS query
- Renamed
min-sequence
flag asinitial-sequence
- Fixed the behaviour when the sequence number wraps around at
2^16 - 1
0.1.0 - 2022-04-27
- Initial WIP release of
trippy