Module 8: Unified Pipeline Orchestrator¶
Files: src/orchestrator/orchestrator.c
Header: include/qrnsp_orchestrator.h
Role¶
Single entry point tying modules 1-7 into a coherent pipeline.
TX Pipeline¶
Application data
→ Message chunking [MSG_ID:4][CHUNK:2][TOTAL:2]
→ IF QUIC: PADDING injection (M3) + jitter (M4)
ELSE IF TCP: chaff/timestamp/H2 padding (M6)
→ Traffic morphing (M7)
→ XDP packet send (M1)
RX Pipeline¶
XDP packet receive (M1)
→ Probe for stego magic
→ IF QUIC: extract from PADDING (M3)
ELSE: winnow/extract from TCP (M6)
→ Deserialize chunk header
→ Reassembly buffer (up to 4 concurrent messages)
→ Complete message delivery
State Machine¶
INIT → HANDSHAKE → ACTIVE → [FALLBACK ↔ ACTIVE] → CLOSED
→ JITTER_ONLY (both paths blocked)
→ BLOCKED (nothing works)
Session Lifecycle¶
orch_init()— generate keypairorch_handshake()— KEM exchange, init all sub-modulesorch_send()/orch_receive()— data transferorch_tick()— periodic: cover traffic, fallback managementorch_destroy()— zeroize everything