diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 415b362c..b203a489 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -368,6 +368,8 @@ service poc_mobile { returns (hex_usage_counts_res_v1); rpc submit_radio_usage_counts_report(radio_usage_counts_req_v1) returns (radio_usage_counts_res_v1); + rpc submit_radio_location_estimates(radio_location_estimates_req_v1) + returns (radio_location_estimates_resp_v1); } message file_info { @@ -907,3 +909,50 @@ message verified_subscriber_verified_mapping_event_ingest_report_v1 { // Timestamp in milliseconds since unix epoch uint64 timestamp = 3; } + +message radio_location_correlation_v1 { + string id = 1; + uint64 timestamp = 2; +} + +message radio_location_estimate_v1 { + // The res12 h3 index representing the center of the estimate + uint64 hex = 1; + // h3 grid distance the location confidence applies to + uint32 grid_distance = 2; + Decimal confidence = 3; + repeated radio_location_correlation_v1 radio_location_correlations = 4; +} + +message radio_location_estimates_req_v1 { + oneof entity { + string cbrs_id = 1; + bytes wifi_pub_key = 2; + } + repeated radio_location_estimate_v1 estimates = 3; + // unix epoch timestamp in seconds + uint64 timestamp = 4; + // pubkey binary of the signing keypair + bytes carrier_key = 5; + bytes signature = 6; +} + +message radio_location_estimates_resp_v1 { string id = 1; } + +message radio_location_estimates_ingest_report_v1 { + // unix epoch timestamp in seconds + uint64 received_timestamp = 1; + radio_location_estimates_req_v1 report = 2; +} + +enum radio_location_estimates_verification_status { + radio_location_estimates_verification_status_valid = 0; + radio_location_estimates_verification_status_invalid_key = 1; +} + +message verified_radio_location_estimates_report_v1 { + radio_location_estimates_ingest_report_v1 report = 1; + radio_location_estimates_verification_status status = 2; + // unix epoch timestamp in seconds + uint64 timestamp = 3; +}