91 lines
2.8 KiB
Protocol Buffer
91 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package cmvr.config;
|
|
|
|
message QuicEdgeTlsConfig {
|
|
string ca_file = 1;
|
|
string certificate_file = 2;
|
|
string private_key_file = 3;
|
|
string server_name = 4;
|
|
|
|
// Development-only escape hatch. Production configurations should keep
|
|
// this false and provide ca_file plus server_name.
|
|
bool allow_insecure = 5;
|
|
}
|
|
|
|
message QuicEdgeReconnectConfig {
|
|
uint32 initial_delay_ms = 1;
|
|
uint32 maximum_delay_ms = 2;
|
|
double multiplier = 3;
|
|
uint32 jitter_percent = 4;
|
|
uint32 connect_timeout_ms = 5;
|
|
}
|
|
|
|
message QuicEdgeTrackConfig {
|
|
enum SourceKind {
|
|
SOURCE_KIND_UNSPECIFIED = 0;
|
|
SOURCE_KIND_CAMERA = 1;
|
|
SOURCE_KIND_MICROPHONE = 2;
|
|
}
|
|
|
|
uint32 track_id = 1;
|
|
SourceKind source_kind = 2;
|
|
string device_id = 3;
|
|
bool enable = 4;
|
|
|
|
// Zero uses QuicEdgeConfig.maximum_frame_bytes.
|
|
uint32 max_frame_bytes = 5;
|
|
|
|
// Protocol-neutral MediaSourceHub track ID. When empty, the service derives
|
|
// the default ID from source_kind and device_id (for example
|
|
// "right_hand_cam/video/color"). The Hub's descriptor is the authority for
|
|
// codec metadata and descriptor generation.
|
|
string source_track_id = 6;
|
|
}
|
|
|
|
message QuicEdgeConfig {
|
|
string id = 1;
|
|
reserved 2;
|
|
string server_host = 3;
|
|
uint32 server_port = 4;
|
|
string alpn = 5;
|
|
string node_id = 6;
|
|
QuicEdgeTlsConfig tls = 7;
|
|
QuicEdgeReconnectConfig reconnect = 8;
|
|
|
|
// Local safety limits. The effective DATAGRAM size is the minimum of this
|
|
// value and the peer/path value reported by the QUIC implementation.
|
|
uint32 maximum_datagram_bytes = 9;
|
|
uint32 maximum_control_frame_bytes = 10;
|
|
uint32 maximum_frame_bytes = 11;
|
|
uint32 datagram_send_queue_depth = 12;
|
|
uint32 media_poll_interval_ms = 13;
|
|
|
|
// Node-presence fields migrated from the former gRPC edge agent. node_id may
|
|
// be "auto" when the implementation supports hostname-based resolution.
|
|
string software_version = 14;
|
|
|
|
// Existing edge gRPC server endpoint advertised to the gateway. Empty or
|
|
// "auto" host selects a usable address from the current interface snapshot.
|
|
string grpc_endpoint_host = 15;
|
|
uint32 grpc_endpoint_port = 16;
|
|
bool grpc_endpoint_tls = 17;
|
|
|
|
// Local heartbeat frequency in milliseconds. A zero
|
|
// NodeRegisterResponse.heartbeat_interval_ms keeps this value; a non-zero
|
|
// response is the platform's negotiated override.
|
|
// control_response_timeout_ms applies while waiting for registration and
|
|
// heartbeat acknowledgements on the reliable stream.
|
|
uint32 heartbeat_interval_ms = 18;
|
|
uint32 control_response_timeout_ms = 19;
|
|
|
|
// An empty list, or a list with no enabled entry, is valid: node registration,
|
|
// IP reporting and heartbeat continue without a camera or microphone.
|
|
repeated QuicEdgeTrackConfig tracks = 20;
|
|
bool include_loopback_interfaces = 21;
|
|
}
|
|
|
|
message QuicEdgeRootConfig {
|
|
QuicEdgeConfig quic_edge = 1;
|
|
}
|