Files
fips/docs/design
Johnathan Corgan a5a62b3768 Session 43: CLI config option and state machine design
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
2026-01-31 23:33:02 +00:00
..

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