From 9a28157ea6e94d4ad299b9daa6fd29866ebfcd19 Mon Sep 17 00:00:00 2001 From: Andrew McKenzie Date: Fri, 23 Feb 2024 15:33:07 +0000 Subject: [PATCH 1/5] add subscriber radio data threshold report support --- src/service/poc_mobile.proto | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index a6819d52..a8893bc8 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -119,6 +119,54 @@ message subscriber_location_ingest_report_v1 { subscriber_location_req_v1 report = 2; } +message radio_threshold_report_req_v1 { + // the id of the radio which has met the coverage threshold requirements + // CBRS radios only + string cbsd_id = 1; + // The onchain address of the gateway which has met the coverage + // threshold requirements + bytes hotspot_pubkey = 2; + // the threshold value representing the amount of transferred bytes the + // minimum number of subscribers as defined by subscriber_threshold have + // exceeded + uint64 bytes_threshold = 3; + // the threshold value representing the minimum number of subscribers + // that have exceeded the bytes_threshold for the hotspot + uint32 subscriber_threshold = 4; + // Unix timestamp in seconds when the thresholds were exceeded + uint64 threshold_timestamp = 5; + // pubkey of the carrier identity service + bytes carrier_pub_key = 6; + // signed payload of the carrier identity service + bytes signature = 7; +} + +message radio_threshold_report_resp_v1 { string id = 1; } + +message radio_threshold_ingest_report_v1 { + // Timestamp in milliseconds since unix epoch + uint64 received_timestamp = 1; + radio_threshold_report_req_v1 report = 2; +} + +enum radio_threshold_report_verification_status { + threshold_report_status_valid = 0; + // used to grandfather in hotspots that have received boosting + // prior to the data component of hip84 going live + threshold_report_status_legacy_valid = 1; + threshold_report_status_invalid_carrier_key = 2; +} + +message verified_radio_threshold_ingest_report_v1 { + // the verified report + radio_threshold_ingest_report_v1 report = 1; + // the status determined by the verification + radio_threshold_report_verification_status status = 2; + // Timestamp at which verification was determined, in milliseconds since unix + // epoch + uint64 timestamp = 3; +} + enum signal_level { NONE = 0; LOW = 1; @@ -190,6 +238,8 @@ service poc_mobile { returns (subscriber_location_resp_v1); rpc submit_coverage_object(coverage_object_req_v1) returns (coverage_object_resp_v1); + rpc submit_radio_threshold(radio_threshold_report_req_v1) + returns (radio_threshold_report_resp_v1); } message file_info { From 713f5fa348718b335d27ea5bd92961dfb3790d6c Mon Sep 17 00:00:00 2001 From: Andrew McKenzie Date: Tue, 5 Mar 2024 12:16:03 +0000 Subject: [PATCH 2/5] add invalidated threshold msgs --- src/service/poc_mobile.proto | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index a8893bc8..a71c0277 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -167,6 +167,46 @@ message verified_radio_threshold_ingest_report_v1 { uint64 timestamp = 3; } +enum invalidated_threshold_reason { + invalidated_threshold_reason_radio_moved = 0; +} + +message radio_invalidated_threshold_report_req_v1 { + // the id of the radio which thresholds are invalidated + string cbsd_id = 1; + // The onchain address of the gateway + bytes hotspot_pubkey = 2; + // the reason the thresholds are invalidated + invalidated_threshold_reason reason = 3; + // pubkey of the carrier identity service + bytes carrier_pub_key = 4; + // signed payload of the carrier identity service + bytes signature = 5; +} + +message radio_invalidated_threshold_report_resp_v1 { string id = 1; } + +message radio_invalidated_threshold_ingest_report_v1 { + // Timestamp in milliseconds since unix epoch + uint64 received_timestamp = 1; + radio_invalidated_threshold_report_req_v1 report = 2; +} + +enum radio_invalidated_threshold_report_verification_status { + invalidated_threshold_report_status_valid = 0; + invalidated_threshold_report_status_invalid_carrier_key = 1; +} + +message verified_invalidated_radio_threshold_ingest_report_v1 { + // the verified report + radio_invalidated_threshold_ingest_report_v1 report = 1; + // the status determined by the verification + radio_invalidated_threshold_report_verification_status status = 2; + // Timestamp at which verification was determined, in milliseconds since unix + // epoch + uint64 timestamp = 3; +} + enum signal_level { NONE = 0; LOW = 1; From 22a962e08c1ad4be2e331c63715eb276747341f8 Mon Sep 17 00:00:00 2001 From: Andrew McKenzie Date: Tue, 5 Mar 2024 12:24:27 +0000 Subject: [PATCH 3/5] add invalidated rpc --- src/service/poc_mobile.proto | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index a71c0277..ee114284 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -278,8 +278,11 @@ service poc_mobile { returns (subscriber_location_resp_v1); rpc submit_coverage_object(coverage_object_req_v1) returns (coverage_object_resp_v1); - rpc submit_radio_threshold(radio_threshold_report_req_v1) + rpc submit_threshold_report(radio_threshold_report_req_v1) returns (radio_threshold_report_resp_v1); + rpc submit_invalidated_threshold_report( + radio_invalidated_threshold_report_req_v1) + returns (radio_invalidated_threshold_report_resp_v1); } message file_info { From 8433611b033dad0fc83a7499638b51d10228f43b Mon Sep 17 00:00:00 2001 From: Andrew McKenzie Date: Tue, 5 Mar 2024 13:46:34 +0000 Subject: [PATCH 4/5] rename things --- src/service/poc_mobile.proto | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index ee114284..31d1b44b 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -171,7 +171,7 @@ enum invalidated_threshold_reason { invalidated_threshold_reason_radio_moved = 0; } -message radio_invalidated_threshold_report_req_v1 { +message invalidated_radio_threshold_report_req_v1 { // the id of the radio which thresholds are invalidated string cbsd_id = 1; // The onchain address of the gateway @@ -184,24 +184,24 @@ message radio_invalidated_threshold_report_req_v1 { bytes signature = 5; } -message radio_invalidated_threshold_report_resp_v1 { string id = 1; } +message invalidated_radio_threshold_report_resp_v1 { string id = 1; } -message radio_invalidated_threshold_ingest_report_v1 { +message invalidated_radio_threshold_ingest_report_v1 { // Timestamp in milliseconds since unix epoch uint64 received_timestamp = 1; - radio_invalidated_threshold_report_req_v1 report = 2; + invalidated_radio_threshold_report_req_v1 report = 2; } -enum radio_invalidated_threshold_report_verification_status { +enum invalidated_radio_threshold_report_verification_status { invalidated_threshold_report_status_valid = 0; invalidated_threshold_report_status_invalid_carrier_key = 1; } message verified_invalidated_radio_threshold_ingest_report_v1 { // the verified report - radio_invalidated_threshold_ingest_report_v1 report = 1; + invalidated_radio_threshold_ingest_report_v1 report = 1; // the status determined by the verification - radio_invalidated_threshold_report_verification_status status = 2; + invalidated_radio_threshold_report_verification_status status = 2; // Timestamp at which verification was determined, in milliseconds since unix // epoch uint64 timestamp = 3; @@ -281,8 +281,8 @@ service poc_mobile { rpc submit_threshold_report(radio_threshold_report_req_v1) returns (radio_threshold_report_resp_v1); rpc submit_invalidated_threshold_report( - radio_invalidated_threshold_report_req_v1) - returns (radio_invalidated_threshold_report_resp_v1); + invalidated_radio_threshold_report_req_v1) + returns (invalidated_radio_threshold_report_resp_v1); } message file_info { From b1a5b7489ba6d85ddc6b1e1540fb8eddaa2bfad2 Mon Sep 17 00:00:00 2001 From: Andrew McKenzie Date: Tue, 5 Mar 2024 14:08:38 +0000 Subject: [PATCH 5/5] add invalidated ts --- src/service/poc_mobile.proto | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 31d1b44b..d03c68ac 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -178,10 +178,13 @@ message invalidated_radio_threshold_report_req_v1 { bytes hotspot_pubkey = 2; // the reason the thresholds are invalidated invalidated_threshold_reason reason = 3; + // Timestamp in milliseconds since unix epoch + // of when the thresholds were invalidated + uint64 timestamp = 4; // pubkey of the carrier identity service - bytes carrier_pub_key = 4; + bytes carrier_pub_key = 5; // signed payload of the carrier identity service - bytes signature = 5; + bytes signature = 6; } message invalidated_radio_threshold_report_resp_v1 { string id = 1; }