diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index ff5b4094..06fff579 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -7,6 +7,89 @@ import "mapper.proto"; import "hex_boosting.proto"; import "service_provider.proto"; +message hex_usage_stats_req_v1 { + // H3 resolution 10 tile + uint64 hex = 1; + // Number of unique service provider subscribers active in the hex + // during the epoch ( inclusive of discovery mapping enabled subscribers ) + uint64 service_provider_user_count = 2; + // Number of unique discovery mapping enabled subscribers active + // in the hex during the epoch + uint64 disco_mapping_user_count = 3; + // Number of unique offload users active in the hex during the epoch + uint64 offload_user_count = 4; + // total count of bytes transferred via radios located in the hex + // by service provider subscribers during the epoch, + // inclusive of upload and download + uint64 service_provider_transfer_bytes = 5; + // total count of bytes transferred via radios located in the hex + // by offload users during the epoch + // inclusive of upload and download + uint64 offload_transfer_bytes = 6; + // Unix timestamp in milliseconds of the epoch start + uint64 epoch_start_timestamp = 7; + // Unix timestamp in milliseconds of the epoch end + uint64 epoch_end_timestamp = 8; + // Unix timestamp in milliseconds of when the report was generated + uint64 timestamp = 9; + // Carrier pubkey from verification mapping service + bytes carrier_mapping_key = 10; + // Signed payload of the verification mapping service + bytes signature = 11; +} + +message hex_usage_stats_res_v1 { string id = 1; } + +message hex_usage_stats_ingest_report_v1 { + // Timestamp in milliseconds since unix epoch + uint64 received_timestamp = 1; + // the verified report + hex_usage_stats_req_v1 report = 2; +} + +message radio_usage_stats_req_v1 { + // The onchain address of the hotspot + bytes hotspot_pubkey = 1; + // the cbsd id of the radio if it is a cbrs radio otherwise empty + string cbsd_id = 2; + // Number of unique service provider subscribers which have connected + // to the radio during the epoch ( inclusive of discovery mapping + // enabled subscribers ) + uint64 service_provider_user_count = 3; + // Number of unique discovery mapping subscribers which + // have connected to the radio during the epoch + uint64 disco_mapping_user_count = 4; + // Number of unique offload users which have connected to the radio + // during the epoch + uint64 offload_user_count = 5; + // total count of bytes transferred via the radio by service provider + // subscribers during the epoch, inclusive of upload and download + uint64 service_provider_transfer_bytes = 6; + // total count of bytes transferred via the radio by offload users + // during the epoch + // inclusive of upload and download + uint64 offload_transfer_bytes = 7; + // Unix timestamp in milliseconds of the epoch start + uint64 epoch_start_timestamp = 8; + // Unix timestamp in milliseconds of the epoch end + uint64 epoch_end_timestamp = 9; + // Unix timestamp in milliseconds of when the report was generated + uint64 timestamp = 10; + // Carrier pubkey from verification mapping service + bytes carrier_mapping_key = 11; + // Signed payload of the verification mapping service + bytes signature = 12; +} + +message radio_usage_stats_res_v1 { string id = 1; } + +message radio_usage_stats_ingest_report_v1 { + // Timestamp in milliseconds since unix epoch + uint64 received_timestamp = 1; + // the verified report + radio_usage_stats_req_v1 report = 2; +} + message speedtest_req_v1 { bytes pub_key = 1; string serial = 2; @@ -303,6 +386,10 @@ service poc_mobile { rpc submit_subscriber_verified_mapping_event( subscriber_verified_mapping_event_req_v1) returns (subscriber_verified_mapping_event_res_v1); + rpc submit_hex_usage_stats_report(hex_usage_stats_req_v1) + returns (hex_usage_stats_res_v1); + rpc submit_radio_usage_stats_report(radio_usage_stats_req_v1) + returns (radio_usage_stats_res_v1); } message file_info {