feat(protocol): add gateway transport authority contracts
This commit is contained in:
+10
-5
@@ -1,7 +1,9 @@
|
||||
# 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.
|
||||
Phase 3C adds bounded encoded video/audio and sequenced-input channels to the same
|
||||
transport envelope. The gateway forwards encoded bytes; it does not decode, encode,
|
||||
transcode, render, or expose provider traffic. Arbitrary binary clipboard data remains
|
||||
rejected.
|
||||
|
||||
All multi-byte integers are unsigned big-endian. The fixed header is 21 bytes:
|
||||
|
||||
@@ -22,6 +24,9 @@ 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.
|
||||
Registered channels are `control.ack.v1`, `control.cancel.v1`, `clipboard.text.v1`,
|
||||
`media.video.v1`, `media.audio.v1`, and `input.sequenced.v1`. Media/input frames use
|
||||
application flow IDs 10, 11, and 12 and a path-MTU-safe payload limit of 1,179 bytes;
|
||||
larger encoded units use at most 16 validated fragments. Clipboard payloads are UTF-8
|
||||
JSON text contracts and remain subject to the 65,536-byte text limit and explicit
|
||||
authorization.
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
"channels": [
|
||||
{"id": 1, "name": "control.ack.v1", "direction": "bidirectional", "max_payload_bytes": 1024},
|
||||
{"id": 2, "name": "control.cancel.v1", "direction": "client-to-server", "max_payload_bytes": 2048},
|
||||
{"id": 3, "name": "clipboard.text.v1", "direction": "bidirectional", "max_payload_bytes": 65515}
|
||||
{"id": 3, "name": "clipboard.text.v1", "direction": "bidirectional", "max_payload_bytes": 65515},
|
||||
{"id": 10, "name": "media.video.v1", "direction": "server-to-client", "max_payload_bytes": 1179},
|
||||
{"id": 11, "name": "media.audio.v1", "direction": "server-to-client", "max_payload_bytes": 1179},
|
||||
{"id": 12, "name": "input.sequenced.v1", "direction": "client-to-server", "max_payload_bytes": 1179}
|
||||
],
|
||||
"reserved_rejected": ["video", "audio", "provider", "vm", "file-transfer", "clipboard.binary"]
|
||||
"reserved_rejected": ["provider", "vm", "file-transfer", "clipboard.binary"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user