mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-10 08:37:02 +00:00
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
3.2 KiB
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.fipsvia host map populated from peer config aliases and/etc/fips/hostsfile - DNS responder auto-reloads hosts file on modification (no restart needed)
- Debian/Ubuntu
.debpackaging 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/fipstofips-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