From aefd51056a3985e3d714bd90f689ee10a2c75629 Mon Sep 17 00:00:00 2001 From: Macpie Date: Thu, 12 Sep 2024 14:03:27 -0700 Subject: [PATCH 01/11] Start on radio_location_estimates --- src/service/poc_mobile.proto | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 415b362c..fe9e3f5c 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -907,3 +907,30 @@ message verified_subscriber_verified_mapping_event_ingest_report_v1 { // Timestamp in milliseconds since unix epoch uint64 timestamp = 3; } + +enum EventType { + TOWER = 1; + DISCO_MAPPING = 2; + VERIFICATION_MAPPING = 3; +} + +message rle_event_v1 { + EventType type = 1; + uint64 timestamp = 2; +} + +message radio_location_estimate_v1 { + uint32 radius = 1; + uint32 confidence = 2; + repeated rle_event_v1 events = 3; +} + +message radio_location_estimates_v1 { + string radio_id = 1; + repeated radio_location_estimate_v1 estimates = 2; + // unix epoch timestamp in seconds + uint64 timestamp = 3; + // pubkey binary of the signing keypair + bytes signer = 4; + bytes signature = 5; +} From f3652088cfdb97ca71e4bfb9b14684099f455998 Mon Sep 17 00:00:00 2001 From: Macpie Date: Thu, 12 Sep 2024 14:48:22 -0700 Subject: [PATCH 02/11] Remove event type --- src/service/poc_mobile.proto | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index fe9e3f5c..9eedcc64 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -908,14 +908,8 @@ message verified_subscriber_verified_mapping_event_ingest_report_v1 { uint64 timestamp = 3; } -enum EventType { - TOWER = 1; - DISCO_MAPPING = 2; - VERIFICATION_MAPPING = 3; -} - message rle_event_v1 { - EventType type = 1; + string id = 1; uint64 timestamp = 2; } From e25730561ca859195655e3a70ef0d4f3c8d5004f Mon Sep 17 00:00:00 2001 From: Macpie Date: Fri, 13 Sep 2024 15:12:42 -0700 Subject: [PATCH 03/11] Add submit_radio_location_estimates api --- src/service/poc_mobile.proto | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 9eedcc64..f65e02e8 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 { @@ -919,7 +921,7 @@ message radio_location_estimate_v1 { repeated rle_event_v1 events = 3; } -message radio_location_estimates_v1 { +message radio_location_estimates_req_v1 { string radio_id = 1; repeated radio_location_estimate_v1 estimates = 2; // unix epoch timestamp in seconds @@ -928,3 +930,5 @@ message radio_location_estimates_v1 { bytes signer = 4; bytes signature = 5; } + +message radio_location_estimates_resp_v1 { string id = 1; } From c3d0e5de899f18a5e970e81593f782564f11fcc4 Mon Sep 17 00:00:00 2001 From: Macpie Date: Tue, 17 Sep 2024 12:11:53 -0700 Subject: [PATCH 04/11] Update radius and confidence to Decimal --- src/service/poc_mobile.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index f65e02e8..2d110197 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -916,8 +916,8 @@ message rle_event_v1 { } message radio_location_estimate_v1 { - uint32 radius = 1; - uint32 confidence = 2; + Decimal radius = 1; + Decimal confidence = 2; repeated rle_event_v1 events = 3; } From 65f2bd853164fd5708587cdaffb4db87f92ede94 Mon Sep 17 00:00:00 2001 From: Macpie Date: Tue, 1 Oct 2024 11:00:22 -0700 Subject: [PATCH 05/11] Add reports --- src/service/poc_mobile.proto | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 2d110197..8730151c 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -917,6 +917,7 @@ message rle_event_v1 { message radio_location_estimate_v1 { Decimal radius = 1; + // TODO: lat long Decimal confidence = 2; repeated rle_event_v1 events = 3; } @@ -927,8 +928,26 @@ message radio_location_estimates_req_v1 { // unix epoch timestamp in seconds uint64 timestamp = 3; // pubkey binary of the signing keypair - bytes signer = 4; + bytes carrier_key = 4; bytes signature = 5; } 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; +} From 1bbfaf10bed717ec51f3cb4163334bebb31706df Mon Sep 17 00:00:00 2001 From: Macpie Date: Wed, 2 Oct 2024 15:07:56 -0700 Subject: [PATCH 06/11] Add lat long to estimates --- src/service/poc_mobile.proto | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 8730151c..df867c60 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -917,9 +917,10 @@ message rle_event_v1 { message radio_location_estimate_v1 { Decimal radius = 1; - // TODO: lat long - Decimal confidence = 2; - repeated rle_event_v1 events = 3; + Decimal lat = 2; + Decimal long = 3; + Decimal confidence = 4; + repeated rle_event_v1 events = 5; } message radio_location_estimates_req_v1 { From a9d2398a8a4a503ebbb561e0992e0d20bd94fc5c Mon Sep 17 00:00:00 2001 From: Macpie Date: Mon, 14 Oct 2024 10:15:59 -0700 Subject: [PATCH 07/11] Make radio_id into entity so we can make diff between wifi and cbrs --- src/service/poc_mobile.proto | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index df867c60..1d44a3e2 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -924,13 +924,16 @@ message radio_location_estimate_v1 { } message radio_location_estimates_req_v1 { - string radio_id = 1; - repeated radio_location_estimate_v1 estimates = 2; + 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 = 3; + uint64 timestamp = 4; // pubkey binary of the signing keypair - bytes carrier_key = 4; - bytes signature = 5; + bytes carrier_key = 5; + bytes signature = 6; } message radio_location_estimates_resp_v1 { string id = 1; } From bd12fb64ddff02bf478d36c795f514832686cc71 Mon Sep 17 00:00:00 2001 From: Macpie Date: Wed, 16 Oct 2024 16:46:42 -0700 Subject: [PATCH 08/11] change long to lon --- src/service/poc_mobile.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 1d44a3e2..093b56cc 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -918,7 +918,7 @@ message rle_event_v1 { message radio_location_estimate_v1 { Decimal radius = 1; Decimal lat = 2; - Decimal long = 3; + Decimal lon = 3; Decimal confidence = 4; repeated rle_event_v1 events = 5; } From 018589bcb5234dead8880453c493d9d704cab5b1 Mon Sep 17 00:00:00 2001 From: Michael Jeffrey Date: Fri, 25 Oct 2024 15:02:54 -0700 Subject: [PATCH 09/11] use a list of res12 hexes for estimates we use hexes in many places in the system, let's conform to that here as well --- src/service/poc_mobile.proto | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 093b56cc..13b7410d 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -916,9 +916,8 @@ message rle_event_v1 { } message radio_location_estimate_v1 { - Decimal radius = 1; - Decimal lat = 2; - Decimal lon = 3; + // The res12 h3 indexes of the estimated covered area + repeated uint64 hexes = 1; Decimal confidence = 4; repeated rle_event_v1 events = 5; } From 7c76de357a5141fbb8f8abbfca3f8dbf6b741580 Mon Sep 17 00:00:00 2001 From: Michael Jeffrey Date: Wed, 30 Oct 2024 14:36:38 -0700 Subject: [PATCH 10/11] Use center hex and grid distance for estimate event Enumerating all the possible valid hexes for a location estimate can create extremely large messages for estimates with large radius. Sending the center hex and grid distance does a few things. - Compacts the message - speaks in terms of hexes like most other things in the system - Provides an easy way to check locations using h3.grid_distance(center, target) <= grid_distance --- src/service/poc_mobile.proto | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 13b7410d..24330d51 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -916,10 +916,12 @@ message rle_event_v1 { } message radio_location_estimate_v1 { - // The res12 h3 indexes of the estimated covered area - repeated uint64 hexes = 1; - Decimal confidence = 4; - repeated rle_event_v1 events = 5; + // 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 rle_event_v1 events = 4; } message radio_location_estimates_req_v1 { From 96df87b421c362d19d9610e4dcb3083f35b87418 Mon Sep 17 00:00:00 2001 From: Michael Jeffrey Date: Thu, 31 Oct 2024 14:48:10 -0700 Subject: [PATCH 11/11] update rle_event_v1 -> radio_location_correlation_v1 At this time, the most imformation we can expose about the events that led to the radio location estimate is an id and timestamp. There may be more information in the future, but this is enough information for someone to give us and we can fetch the underlying record for investigation. --- src/service/poc_mobile.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 24330d51..b203a489 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -910,7 +910,7 @@ message verified_subscriber_verified_mapping_event_ingest_report_v1 { uint64 timestamp = 3; } -message rle_event_v1 { +message radio_location_correlation_v1 { string id = 1; uint64 timestamp = 2; } @@ -921,7 +921,7 @@ message radio_location_estimate_v1 { // h3 grid distance the location confidence applies to uint32 grid_distance = 2; Decimal confidence = 3; - repeated rle_event_v1 events = 4; + repeated radio_location_correlation_v1 radio_location_correlations = 4; } message radio_location_estimates_req_v1 {