mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-12 09:33:23 +00:00
Split protocol.rs into protocol/ directory, standardize imports, clean lib.rs
- Replace use super::*; in node/lifecycle.rs with explicit imports, remove 10 resulting unused imports from node/mod.rs - Split protocol.rs (1838 lines) into protocol/ directory: mod.rs (re-exports), error.rs, link.rs, tree.rs, filter.rs, discovery.rs, session.rs — each with co-located tests - Remove unused flat re-exports from lib.rs for internal utility modules (wire, index, rate_limit, icmp, noise, tun) - 316 tests pass, zero warnings
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
//! FIPS Protocol Messages
|
||||
//!
|
||||
//! Wire format definitions for FIPS protocol communication across two layers:
|
||||
//!
|
||||
//! ## Link Layer (peer-to-peer, hop-by-hop)
|
||||
//!
|
||||
//! Messages exchanged between directly connected peers over Noise-encrypted
|
||||
//! links. Includes spanning tree gossip, bloom filter propagation, discovery
|
||||
//! protocol, and forwarding of session-layer datagrams.
|
||||
//!
|
||||
//! Link-layer peer authentication uses Noise IK (see `noise.rs`), which
|
||||
//! establishes the encrypted channel before any of these messages are sent.
|
||||
//!
|
||||
//! ## Session Layer (end-to-end, between FIPS addresses)
|
||||
//!
|
||||
//! Messages exchanged between source and destination FIPS nodes, encrypted
|
||||
//! with session keys that intermediate nodes cannot read. Includes session
|
||||
//! establishment, IPv6 datagram encapsulation, and routing errors.
|
||||
//!
|
||||
//! Session-layer datagrams are carried as opaque payloads through the link
|
||||
//! layer, encrypted end-to-end independently of per-hop link encryption.
|
||||
|
||||
mod discovery;
|
||||
mod error;
|
||||
mod filter;
|
||||
mod link;
|
||||
mod session;
|
||||
mod tree;
|
||||
|
||||
// Re-export all public types at protocol:: level
|
||||
pub use error::ProtocolError;
|
||||
pub use link::{
|
||||
Disconnect, DisconnectReason, HandshakeMessageType, LinkMessageType, SessionDatagram,
|
||||
};
|
||||
pub use tree::TreeAnnounce;
|
||||
pub use filter::FilterAnnounce;
|
||||
pub use discovery::{LookupRequest, LookupResponse};
|
||||
pub use session::{
|
||||
CoordsRequired, DataFlags, DataPacket, PathBroken, SessionAck, SessionFlags,
|
||||
SessionMessageType, SessionSetup, DATA_FLAG_COORDS_PRESENT, DATA_HEADER_SIZE,
|
||||
};
|
||||
|
||||
/// Protocol version for message compatibility.
|
||||
pub const PROTOCOL_VERSION: u8 = 1;
|
||||
|
||||
// Legacy type alias re-export
|
||||
#[allow(deprecated)]
|
||||
pub use link::MessageType;
|
||||
Reference in New Issue
Block a user