mirror of
https://github.com/jmcorgan/fips.git
synced 2026-07-30 19:46:15 +00:00
Add command-line argument parsing with clap: - -c/--config option to specify config file path - Overrides default search path when provided - Proper error handling for missing/invalid files Improve logging: - Peer connection log now uses separate log entries per field - Better readability with aligned timestamps Fix ICMPv6 error handling: - Add multicast destination filter to should_send_icmp_error() - Router Solicitation packets (ff02::2) now silently dropped - Add test case for multicast destination Add phase-based state machine design document: - Document pattern where lifecycle phases use distinct structs in enum - PeerSlot::Connecting(PeerConnection) -> PeerSlot::Active(ActivePeer) - Benefits: type safety, memory efficiency, security - Describes timeout handling and lookup table requirements
FIPS Design Documents
Protocol design specifications and analysis for the Federated Interoperable Peering System.
Protocol Design
| Document | Description |
|---|---|
| fips-design.md | Core protocol specification: goals, architecture, identity, addressing, spanning tree |
| fips-routing.md | Routing architecture: Bloom filters, discovery protocol, session establishment |
| fips-transports.md | Transport protocol characteristics: UDP, Ethernet, Tor, radio, and other link types |
| spanning-tree-dynamics.md | Detailed study of spanning tree gossip protocol behavior and convergence |
Implementation
| Document | Description |
|---|---|
| fips-architecture.md | Software architecture: entities, state machines, transport abstractions, configuration |
| fips-architecture-review.md | Architecture review issues and resolution status |
| fips-tun-driver.md | TUN interface driver: reader/writer threads, ICMPv6, packet flow |
| fips-state-machines.md | Phase-based state machine pattern: peer lifecycle, transitions, timeout handling |
| fips-protocol-flow.md | Protocol message flow: packet channel, event loop, dispatching |