cmvr-es/protos/cmvr/config/quic_edge_config/quic_edge_config.proto

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;
}