Files
VerseVDI-Protocol/frames/datagram-v1.md
T

1.3 KiB

VerseVDI control datagram v1

Phase 3A reserves a bounded control-datagram envelope. It does not forward video, audio, provider traffic, VM traffic, or arbitrary binary clipboard data.

All multi-byte integers are unsigned big-endian. The fixed header is 21 bytes:

Offset Size Field Rule
0 2 magic ASCII VD (0x56 0x44)
2 1 version 1 only
3 1 channel registered channel identifier
4 1 flags registry-defined; unknown bits reject
5 4 sequence session-local wrapping sequence
9 8 timestamp_ms sender timestamp, bounded by transport skew policy
17 1 fragment_index zero-based; 0 when not fragmented
18 1 fragment_count 1 when not fragmented; index less than count
19 2 payload_length exact payload byte count

The complete frame is at most 65,536 bytes and payload_length is at most 65,515. Truncated, oversized, unknown-version, unknown-channel, invalid-fragment, and length-mismatch frames are rejected before allocation proportional to the claimed payload. Media/provider identifiers are not registered channels.

Registered Phase 3A channels are control.ack.v1, control.cancel.v1, and clipboard.text.v1. Clipboard payloads are UTF-8 JSON text contracts and remain subject to the 65,536-byte text limit and explicit authorization.