Skip to main content

pim_protocol/
lib.rs

1//! Wire-format frames exchanged across the mesh transport and control planes.
2//!
3//! These types define the canonical binary layout shared by peers for
4//! transport, routing, discovery-related control messages, and packet
5//! fragmentation.
6
7#![warn(missing_docs)]
8
9/// Control-plane frames such as IP assignment and keepalive requests.
10pub mod control_frame;
11/// Encapsulation for mesh-routed IP payloads.
12pub mod data_frame;
13/// Fragment headers used when a packet exceeds the mesh MTU.
14pub mod fragment_frame;
15/// Shared discriminator for the outer transport envelope.
16pub mod frame_type;
17/// Wire representation of the peer handshake messages.
18pub mod handshake_frame;
19/// Periodic liveness and gateway-metric frames.
20pub mod heartbeat_frame;
21/// Stream framing used by byte-stream transports such as TCP.
22pub mod length_delimited;
23pub mod reassembler;
24/// Route advertisement frames exchanged between peers.
25pub mod route_frame;
26/// Authenticated outer transport envelope exchanged on direct links.
27pub mod transport_frame;
28
29pub use control_frame::{ControlFrame, ControlType};
30pub use data_frame::{DataFlags, MeshDataFrame};
31pub use fragment_frame::{fragment_packet, FragmentFrame, MAX_FRAGMENT_PAYLOAD};
32pub use frame_type::FrameType;
33pub use handshake_frame::{HandshakeFrameType, HandshakeWireFrame};
34pub use heartbeat_frame::HeartbeatFrame;
35pub use length_delimited::LengthDelimitedCodec;
36pub use reassembler::Reassembler;
37pub use route_frame::{RouteEntry, RouteUpdateFrame};
38pub use transport_frame::TransportFrame;