Files
fips/CHANGELOG.md
T
Johnathan Corgan f37eb4b846 Fix documentation drift from recent feature additions
Update 9 documentation files to match current implementation:
- Add missing rekey config section (node.rekey.*) and host mapping
  section to fips-configuration.md
- Update Ethernet frame format from [type:1][payload] to
  [type:1][length:2 LE][payload] in wire-formats and transport docs
- Fix Ethernet effective MTU from interface-1 to interface-3
- Mark rekey as Implemented in mesh-layer and session-layer status tables
- Change TCP default port examples from 443 to 8443
- Add rekey, persistent identity, host mapping, mesh size estimation to
  README features and status sections
- Update chaos scenario count from 16 to 20, add rekey topology to
  static test docs
2026-03-11 03:11:12 +00:00

3.2 KiB

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.

[Unreleased]

Added

  • Ethernet transport with beacon discovery and auto-connect
  • TCP transport with configurable bind address and static peer support
  • Docker sidecar deployment for containerized services
  • Comprehensive node and transport statistics via control socket
  • fipstop TUI monitoring tool with smoothed metrics and quality indices
  • fipstop peers display: transport type, direction, and tree roles
  • Estimated mesh size from bloom filter cardinality
  • ECN congestion signaling and transport congestion detection
  • Persistent identity with key file management (fipsctl keygen)
  • Periodic Noise rekey with fresh DH for forward secrecy (FMP + FSP)
  • Host-to-npub static mapping: resolve hostname.fips via host map populated from peer config aliases and /etc/fips/hosts file
  • DNS responder auto-reloads hosts file on modification (no restart needed)
  • Debian/Ubuntu .deb packaging via cargo-deb
  • Systemd service packaging with tarball installer
  • Build version metadata: git commit hash, dirty flag, and target triple embedded in all binaries via --version
  • Local CI runner script (testing/ci-local.sh)
  • TCP transport node-level integration tests
  • CI: expanded integration matrix, nextest JUnit reporting, workflow_dispatch
  • CHANGELOG.md following Keep a Changelog format

Fixed

  • Spanning tree coordinate loop: reject parents whose ancestry contains us
  • PMTUD per-destination path MTU check and ICMPv6 MTU field width
  • Ethernet AEAD decryption failures caused by minimum-frame padding
  • Link-dead detection skipping peers that never send data
  • FMP version check added to TCP stream reader
  • Control socket path mismatch between daemon and clients
  • fips-dns.service pulling in systemd-resolved and hanging on missing fips0

Changed

  • GitHub repository moved from jmcorgan/fips to fips-network/fips

[0.1.0-alpha] - 2026-02-24

Added

  • Core mesh routing protocol with greedy coordinate-based forwarding
  • Noise IK handshake at FMP (link layer) and Noise XK at FSP (session layer)
  • UDP transport with configurable bind address and static peers
  • TUN-based virtual network interface (fips0) with ICMPv6 Packet Too Big
  • DNS resolver for .fips domain names (port 5354)
  • Spanning tree construction with cost-based parent selection and flap dampening
  • Bloom filter-based identity discovery protocol with reverse-path routing
  • MMP (Mesh Management Protocol) for link and session layer measurement
  • Hybrid coordinate warmup (CoordsWarmup message and proactive fallback)
  • Handshake retry with exponential backoff (link and session layer)
  • Link-layer heartbeat and liveness timeout for dead peer detection
  • Epoch-based peer restart detection
  • Per-link MTU support and reactive MtuExceeded error signal
  • Session idle timeout and identity cache expiry
  • Unix domain control socket for runtime observability (fipsctl)
  • Docker test harness with static and stochastic topologies
  • CI with GitHub Actions (x86_64 and aarch64, unit and integration tests)
  • Design documentation suite covering all protocol layers