Skip to content

Latest commit

 

History

History
411 lines (317 loc) · 23.1 KB

CHANGELOG.md

File metadata and controls

411 lines (317 loc) · 23.1 KB

Changelog

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.

Added

  • Highlight lost probes in sample history (#1247)
  • Added quit-preserve-screen (default: shift+q) key binding to quit Tui without clearing the screen (#1382)

Changed

  • Added information bar to Tui (#1349)
  • [BREAKING CHANGE] Remove Timestamp from all DnsEntry variants (#1296)
  • [BREAKING CHANGE] Replace toggle-privacy key binding with expand-privacy and contract-privacy (#1347)
  • [BREAKING CHANGE] Hide source address when --tui-privacy-max-ttl is set (#1365)
  • Only show hostnames if different from IPs (#1363)

Fixed

  • 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

  • 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)

Changed

  • [BREAKING CHANGE] Changed initial sequence to be 33434 (#1203)
  • [BREAKING CHANGE] Renamed tui-max-[samples|flows] as max-[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

  • Fixed DestinationUnreachable incorrectly assumed to come from target host (#1225)
  • Fixed incorrect target hop calculation (#1226)
  • Do not conflate AddressInUse and AddrNotAvailable errors (#1246)

0.10.0 - 2024-03-31

Added

  • 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 and IPv6->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)

Changed

  • Ensure paris and dublin ECMP strategy are only used with supported protocols (#848)
  • Restrict flows to paris and dublin 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

  • 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 for udp and tcp 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

  • Added support for tracing flows (#776)
  • Added support for icmp extensions (#33)
  • Added support for MPLS label stack class icmp 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 Graphviz DOT format (#582)
  • Added flows report mode (-m flows) to output a list of all unique tracing flows (#770)
  • Added --icmp-extensions (-e) flag for parsing IPv4/IPv6 icmp extensions (#751)
  • Added --tui-icmp-extension-mode flag to control how icmp 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 Debian deb 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)

Changed

  • [BREAKING CHANGE] icmp extension object data added to json and stream 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 from f to ctrl+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 with ratatui crate (#569)

Fixed

  • 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

  • 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 from mmdb 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)

Changed

  • 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)

Fixed

  • 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

  • Added support for Windows (icmp, udp & tcp for IPv4 &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)

Fixed

  • Variable Equal Cost Multi-path Routing (ECMP) causing truncated trace (#269)
  • Tracing using the tcp may ignore some incoming icmp 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

  • Added support for tracing using IPv6 for tcp (#191)
  • Added -R (--multipath-strategy) flag to allow setting the Equal Cost Multi-path Routing strategy and added support for the dublin traceroute strategies for IPv4/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)

Changed

  • Gray out hops which did not update in the current round (#216)

0.5.0 - 2022-06-02

Added

  • Added support for tracing using IPv6 for icmp and udp (#35)
  • Added BSOD error reporting to Tui (#179)
  • Added Ctrl-C keyboard command to quit the Tui (#91)

Changed

  • Rewrite of network code to use RAW sockets (#195, #192)

Fixed

  • 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

  • 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 and tcp 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 the TOS (DSCP+ECN) IPv4 header value (#38)

Changed

  • 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 as tui-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) and tui-max-addrs ( -M) (1)

Fixed

  • 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

Fixed

  • 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

0.3.0 - 2022-05-08

Added

  • 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)

Changed

  • Simplified Tracer by removing circular buffer (#106)
  • Added round end reason indicator to Tracer (#88)
  • SHow better error message for failed DNS resolution (#119)

Fixed

  • Tracing with udp protocol not showing the target hop due to incorrect handling of DestinationUnreachable responses (#131)
  • Tui failing on shutdown on Windows due to DisableMouseCapture being invoked without a prior EnableMouseCapture 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

  • Added the -r (--dns-resolve-method) flag to specify using either the OS DNS resolver (default), a 3rd party resolver (Google 8.8.8.8 and Cloudflare 1.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 default system 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

Changed

  • All DNS queries are now non-blocking to prevent the Tui from freezing during slow DNS query
  • Renamed min-sequence flag as initial-sequence

Fixed

  • Fixed the behaviour when the sequence number wraps around at 2^16 - 1

0.1.0 - 2022-04-27

Added

  • Initial WIP release of trippy