diff --git a/internal/proto/analytics/BUILD b/internal/proto/analytics/BUILD deleted file mode 100644 index f4beb852..00000000 --- a/internal/proto/analytics/BUILD +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") -load("@com_google_protobuf//bazel:java_lite_proto_library.bzl", "java_lite_proto_library") -load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") -load("@com_google_protobuf//rust:defs.bzl", "rust_proto_library") -load("@rules_cc//cc:cc_test.bzl", "cc_test") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -proto_library( - name = "connections_log_proto", - srcs = [ - "connections_log.proto", - ], - compatible_with = ["//buildenv/target:non_prod"], - deps = [ - "//proto:connections_enums_proto", - "//proto/errorcode:error_code_enums_proto", - "//storage/datapol/annotations/proto:datapol_annotations", - ], -) - -cc_proto_library( - name = "connections_log_cc_proto", - compatible_with = ["//buildenv/target:non_prod"], - visibility = [ - "//connections:__subpackages__", - "//internal/analytics:__pkg__", - "//location/nearby/analytics/cpp:__subpackages__", - ], - deps = [":connections_log_proto"], -) - -cc_test( - name = "proto_analytics_test", - size = "small", - srcs = [ - "connections_log_test.cc", - ], - shard_count = 16, - deps = [ - ":connections_log_cc_proto", - "//internal/platform:logging", - "//internal/platform/implementation/g3", # build_cleaner: keep - "//logs/proto/location/nearby:nearby_client_log_cc_proto", - "//proto:connections_enums_cc_proto", - "@com_github_protobuf_matchers//protobuf-matchers", - "@com_google_googletest//:gtest_main", - "@com_google_protobuf//:protobuf", - ], -) - -rust_proto_library( - name = "connections_log_rust_proto", - deps = [":connections_log_proto"], -) - -java_lite_proto_library( - name = "connections_log_java_proto_lite", - deps = [":connections_log_proto"], -) diff --git a/internal/proto/analytics/connections_log.proto b/internal/proto/analytics/connections_log.proto deleted file mode 100644 index 8da414dc..00000000 --- a/internal/proto/analytics/connections_log.proto +++ /dev/null @@ -1,752 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto2"; - -package location.nearby.analytics.proto; - -// import "storage/datapol/annotations/proto/semantic_annotations.proto"; -import "proto/connections_enums.proto"; -import "proto/errorcode/error_code_enums.proto"; - -option optimize_for = LITE_RUNTIME; -option java_package = "com.google.location.nearby.analytics.proto"; -option java_outer_classname = "ConnectionsLogProto"; -option objc_class_prefix = "GNCP"; - -// Top-level log proto for Nearby Connections. -// LINT.IfChange(ConnectionsLog) -// Next Tag: 7 -message ConnectionsLog { - // The type of this log. - optional location.nearby.proto.connections.EventType event_type = 1; - - // Non-null for EventType.CLIENT_SESSION. - // Encapsulates all client activity between connecting to and disconnecting - // from the Nearby Connections API via Client. - optional ClientSession client_session = 2; - - // The version of Nearby Connections. E.g. "v1.0.4". - optional string version = 3 /* type = ST_SOFTWARE_ID */; - - // For EventType.ERROR_CODE - optional ErrorCode error_code = 4; - - // Indicates the source of the log. - optional location.nearby.proto.connections.LogSource log_source = 5; - - // This is a temporary logging field for FilesGo migration phase based on - // device geolocation. Example values are "P1", "P2", "PA" etc. - // In files migration, we have different phases to rollout Files-> Nearby - // migration on different list of countries. For example, at phase A (PA), - // the migration happens in Asian countries; P1 for Europe countries; P2 - // for North and South Americas. - // Reference: http://shortn/_9smZZ8CTD6, http://shortn/_Y08gVwZRKc - optional string files_migration_phase = 6; - - // Encapsulates one session of a client connected to Nearby Connections API. - message ClientSession { - // Elapsed time in milliseconds between Client connect and - // disconnect. - optional int64 duration_millis = 1; - - // Zero or more StrategySessions. - repeated StrategySession strategy_session = 2; - - // The client session flow id. - optional int64 client_flow_id = 3 /* type = ST_SESSION_ID */; - - // All the connection tokens used in this client session. - optional string connection_token = 4 - /* type = ST_SESSION_ID */; - - reserved 5; // device type isdeprecated and moved to StrategySession - } - - message OperationResult { - // The category of the operation result - optional location.nearby.proto.connections.OperationResultCategory - result_category = 1; - - // The result code of the operation result - optional location.nearby.proto.connections.OperationResultCode result_code = - 2; - } - - message OperationResultWithMedium { - optional location.nearby.proto.connections.Medium medium = 1; - - // Indicate which mediums belong to the same update API Call. - optional int32 update_index = 2; - - // The category of the operation result - optional location.nearby.proto.connections.OperationResultCategory - result_category = 3; - - // The result code of the operation result - optional location.nearby.proto.connections.OperationResultCode result_code = - 4; - - // The connection mode. - optional location.nearby.proto.connections.ConnectionMode connection_mode = - 5; - } - - // One round of a particular Strategy done by a client. - message StrategySession { - // Elapsed time in milliseconds between a call to startAdvertising/Discovery - // and the end of this particular Strategy. A StrategySession may end due to - // - the client disconnecting from Client; - // - a call to stopAllEndpoints, which disconnects all endpoints and - // stops any advertising/discovery; - // - a new call to startAdvertising/Discovery. - optional int64 duration_millis = 1; - - // The Strategy used for this session. - optional location.nearby.proto.connections.ConnectionsStrategy strategy = 2; - - // The role(s) played by this device during this StrategySession. - repeated location.nearby.proto.connections.SessionRole role = 3; - - // One or more of the following *Phase is present, depending on the role(s). - - // Encapsulates discovery information. - repeated DiscoveryPhase discovery_phase = 4; - // Encapsulates advertising information. - repeated AdvertisingPhase advertising_phase = 5; - - // Attempts at establishing a connection to another device. - repeated ConnectionAttempt connection_attempt = 6; - - // Successful and accepted connections to another device. - repeated EstablishedConnection established_connection = 7; - - // Attempts to upgrade a connection from one medium to another. - repeated BandwidthUpgradeAttempt upgrade_attempt = 9; - - // The build version of the user's device (Same value as the Build number in - // Settings -> about phone). - optional string build_version = 10 - /* type = ST_SOFTWARE_ID */; - } - - // Encapsulates activity during a period of discovery. - message DiscoveryPhase { - // Elapsed time in milliseconds between startDiscovery and stopDiscovery. - optional int64 duration_millis = 1; - - // The Medium(s) used for discovery. - repeated location.nearby.proto.connections.Medium medium = 2; - - // Discovered endpoints during this round of discovery. - repeated DiscoveredEndpoint discovered_endpoint = 3; - - // Attempted ConnectionRequests (requested by the client). They may or - // may not reach the other endpoint. - repeated ConnectionRequest sent_connection_request = 4; - - // UWB ranging related data during discovery (May range with multiple - // endpoints) - repeated UwbRangingProcess uwb_ranging = 5; - - // The SendingEvent flow id. - optional int64 client_flow_id = 6 /* type = ST_SESSION_ID */; - - // Encapsulates additional discovery information. - optional DiscoveryMetadata discovery_metadata = 7; - - // Collect the discovery results of the mediums - repeated OperationResultWithMedium adv_dis_result = 8; - - // The readon of stopping discoverying - optional location.nearby.proto.connections.StopDiscoveringReason - stop_reason = 9; - - // The type of the device. - optional location.nearby.proto.connections.DeviceType device_type = 10; - - // The supported service. - optional location.nearby.proto.connections.SupportedService - supported_service = 11; - } - - // An endpoint discovered on a particular medium during discovery. - message DiscoveredEndpoint { - // The medium on which this endpoint was discovered. - optional location.nearby.proto.connections.Medium medium = 1; - - // Elapsed time between the call to startDiscovery() and the time at which - // this endpoint was discovered. - optional int64 latency_millis = 2; - } - - // Encapsulates activity during UWB ranging. - message UwbRangingProcess { - // Elapsed time in milliseconds between startRanging and stopRanging. - optional int64 duration_millis = 1; - - // UWB raw ranging data received during discovery. This is optional. Only - // certain devices (Debug/Testing etc.) will log the raw data. - repeated RawUwbRangingEvent uwb_ranging_data = 2; - - // Number of ranging data received - optional int32 number_of_ranging_data = 3; - - // The minimum distance during a UWB ranging session - optional int32 distance_min = 4; - - // The maximum distance during a UWB ranging session - optional int32 distance_max = 5; - - // The average distance during a UWB ranging session - optional int32 distance_ave = 6; - - // The distance variance during a UWB ranging session - optional int32 distance_variance = 7; - - // The minimum AoA during a UWB ranging session - optional int32 azimuth_min = 8; - - // The maximum AoA during a UWB ranging session - optional int32 azimuth_max = 9; - - // The average AoA during a UWB ranging session - optional int32 azimuth_ave = 10; - - // The AoA variance during a UWB ranging session - optional int32 azimuth_variance = 11; - } - - // Ranging data received during discovery phase. - message RawUwbRangingEvent { - // Distance in cm - optional int32 distance = 1; - - // Azimuth angle in degree - optional int32 azimuth_angle = 2; - - // Polar angle in degree (0 if the device doesn't support it) - optional int32 polar_angle = 3; - } - - // Encapsulates activity during a period of advertising. - message AdvertisingPhase { - // Elapsed time in milliseconds between startAdvertising and - // stopAdvertising. - optional int64 duration_millis = 1; - - // The Medium(s) used for advertising. - repeated location.nearby.proto.connections.Medium medium = 2; - - // Received ConnectionRequests from remote endpoints. - repeated ConnectionRequest received_connection_request = 3; - - // The ReceivingEvent flow id. - optional int64 client_flow_id = 4 /* type = ST_SESSION_ID */; - - // Encapsulates additional advertising information. - optional AdvertisingMetadata advertising_metadata = 5; - - // Collect the discovery results of the mediums - repeated OperationResultWithMedium adv_dis_result = 6; - - // The readon of stopping advertising - optional location.nearby.proto.connections.StopAdvertisingReason - stop_reason = 7; - - // The type of the device. - optional location.nearby.proto.connections.DeviceType device_type = 8; - - // The supported service. - optional location.nearby.proto.connections.SupportedService - supported_service = 9; - } - - // A request to connect, corresponding to the API's concept of - // request/accept/rejectConnection(). - message ConnectionRequest { - // Elapsed time in milliseconds between the connection request being - // initiated and the responses being received. - optional int64 duration_millis = 1; - - // Elapsed time in milliseconds between the start of the containing - // Advertising/DiscoveryPhase and the start of this ConnectionRequest, i.e. - // the time at which the request is sent (on the discoverer, at the request - // of the client) or received (on the advertiser, over the wire from the - // remote endpoint). - optional int64 request_delay_millis = 2; - - // The local endpoint's response to this connection request. - optional location.nearby.proto.connections.ConnectionRequestResponse - local_response = 3; - - // The remote endpoint's response to this connection request. - optional location.nearby.proto.connections.ConnectionRequestResponse - remote_response = 4; - - // The SendingEvent flow id. - optional int64 client_flow_id = 5 /* type = ST_SESSION_ID */; - } - - // An attempt to connect to an endpoint over a particular medium. - message ConnectionAttempt { - // Elapsed time in milliseconds between starting the connection attempt - // and succeeding/failing. - optional int64 duration_millis = 1; - - // The type of connection attempt. - optional location.nearby.proto.connections.ConnectionAttemptType type = 2; - - // The direction (incoming vs outgoing) of this attempt. - optional location.nearby.proto.connections.ConnectionAttemptDirection - direction = 3; - - // The Medium of this connection attempt. - optional location.nearby.proto.connections.Medium medium = 4; - - // The result of the connection attempt. - optional location.nearby.proto.connections.ConnectionAttemptResult - attempt_result = 5; - - // The ReceivingEvent flow id. - optional int64 client_flow_id = 6 /* type = ST_SESSION_ID */; - - // The token used to identify this connection pair. - optional string connection_token = 7 - /* type = ST_SESSION_ID */; - - // Encapsulates additional connection information. - optional ConnectionAttemptMetadata connection_attempt_metadata = 8; - - // The result code of this connection attempt - optional OperationResult operation_result = 9; - - // The connection mode. - optional location.nearby.proto.connections.ConnectionMode connection_mode = - 10; - - // The type of the device. - optional location.nearby.proto.connections.DeviceType device_type = 11; - - // The supported service. - optional location.nearby.proto.connections.SupportedService - supported_service = 12; - - // The latency of the wifi connection in milliseconds, starting from when - // the wifi credentials are received from the remote device, to the moment - // wifi connection is established with internet access. - optional int64 wifi_connection_latency_millis = 13; - - // The latency of the device attestation in milliseconds, starting from when - // the device attestation is initiated, to the moment the device attestation - // is finished. - optional int64 device_attestation_latency_millis = 14; - - // The error code returned by Play Integrity API during device attestation. - optional int64 play_integrity_error_code = 15; - - // If this connection is forced over USB. - optional bool is_forced_usb = 16; - } - - message DeviceInfo { - enum Platform { - UNKNOWN = 0; - ANDROID = 1; - IOS = 2; - CROS = 3; - WINDOWS = 4; - } - optional string device_model = 1; - optional Platform device_platform = 2; - optional string country_code = 3; - optional string manufacturer = 4; - } - - message DisconnectionReasonDetail { - enum DisconnectionReason { - UNKNOWN_DISCONNECTION_REASON = 0; - DCT_ERROR_MDNS_DISCOVERY_TIMEOUT = 1; - DCT_ERROR_MDNS_REGISTER_SERVICE = 2; - DCT_ERROR_SUBSEQUENT_TLS_SPAKE = 3; - DCT_ERROR_REQUEST_FAILED = 4; - DCT_ERROR_RESPONSE_FAILED = 5; - DCT_ERROR_CONTROL_MESSAGE_EXCHANGE = 6; - DCT_ERROR_CAPABILITY_MISMATCH = 7; - DCT_ERROR_HIGH_SPEED_MEDIUM_UNAVAILABLE = 8; - DCT_ERROR_WIFI_DISABLED = 9; - DCT_ERROR_WIFI_DISCONNECTED = 10; - DCT_ERROR_WIFI_CREDENTIAL_TRANSFER = 11; - DCT_ERROR_WIFI_INTERNET_CONNECTION = 12; - DCT_ERROR_UPGRADE_HIGH_SPEED_MEDIUM_FAILED = 13; - DCT_ERROR_USER_CANCELLED = 14; - DCT_ERROR_SERVICE_CANCELLED = 15; - DCT_ERROR_UNVERIFIED_INTEGRITY = 16; - SESSION_SUCCESS = 17; - } - optional bool is_local_disconnection = 1; - optional DisconnectionReason disconnection_reason = 2; - } - - // A successfully-established connection over a particular medium. - message EstablishedConnection { - enum SafeDisconnectionResult { - UNKNOWN_SAFE_DISCONNECTION_RESULT = 0; - SAFE_DISCONNECTION = 1; - UNSAFE_DISCONNECTION = 2; - } - - // Elapsed time in milliseconds that the connection is active. - optional int64 duration_millis = 1; - - // The Medium of this connection. - optional location.nearby.proto.connections.Medium medium = 2; - - // Payloads sent over this connection. - repeated Payload sent_payload = 3; - - // Payloads received over this connection. - repeated Payload received_payload = 4; - - // The reason this connection was disconnected. - optional location.nearby.proto.connections.DisconnectionReason - disconnection_reason = 5; - - // The SendingEvent flow id. - optional int64 client_flow_id = 6 /* type = ST_SESSION_ID */; - - // The token use to identify this established connection. - optional string connection_token = 7 - /* type = ST_SESSION_ID */; - - // The type of established connection. - optional location.nearby.proto.connections.ConnectionAttemptType type = 8; - - // If this is a safe disconnection. - optional SafeDisconnectionResult safe_disconnection_result = 9; - - // The result code of this established connection - optional OperationResult operation_result = 10; - - // The remote device info - optional DeviceInfo remote_device_info = 11; - - // The disconnection reason details - optional DisconnectionReasonDetail disconnection_reason_detail = 12; - - // The type of the device. - optional location.nearby.proto.connections.DeviceType device_type = 13; - - // The supported service. - optional location.nearby.proto.connections.SupportedService - supported_service = 14; - - // The speed test report. - optional SpeedTestReport speed_test_report = 15; - - // The count of long inactivity events without any payload transfer. - optional int32 inactivity_count = 16; - - // The RSSI (radio signal strength indicator) in dBm. - // INTERNET_RSSI_UNKNOWN (-127) if unknown. - optional int32 rssi = 17; - - // If this connection is forced over USB. - optional bool is_forced_usb = 18; - } - - message SpeedTestReport { - // The throughput in kbytes per second. - optional int32 throughput_kbytes_per_sec = 1; - - // Whether the throughput is incoming or outgoing. - optional bool is_incoming = 2; - } - - // Contains the transfer statistics for a DCT payload. - message DctPayloadTransferStats { - // The type of the DCT payload. - // Note: For legacy payloads, the type is logged in the Payload message - // instead. - optional location.nearby.proto.connections.DctPayloadType type = 1; - - // Indicates whether the payload was sent using the multipart protocol. - // True if multipart was used, false otherwise. - optional bool is_multipart = 2; - - // The number of parts that were successfully transferred. - // This field is only meaningful when is_multipart is true. - // The counting method differs for outgoing and incoming multipart payloads: - // - OUTGOING: All parts associated with the same request are treated as one - // payload. This field increments by 1 if the payload transfers - // successfully. - // - INCOMING: Each part of the incoming multipart payload is logged - // individually. This field increments for each successfully received - // part. - optional int32 num_parts_success = 3; - - // The number of parts that failed to transfer. - // This field is only meaningful when is_multipart is true. - // The counting method differs for outgoing and incoming multipart payloads: - // - OUTGOING: All parts associated with the same request are treated as one - // payload. This field increments by 1 if the payload fails to transfer. - // - INCOMING: Each part of the incoming multipart payload is logged - // individually. This field increments for each part that fails to be - // received. - optional int32 num_parts_failure = 4; - - // True if this payload transfer is an attempt to resume an interrupted - // payload after a reconnection. False if it's a new payload transfer. - optional bool is_resumption = 5; - - // The data speed report in kbyte per second using global bytes counter - optional int32 data_speed_report_kbyte_per_sec = 6; - } - - // A Payload transferred (or attempted to be transferred) between devices. - message Payload { - // Elapsed time in milliseconds that num_bytes_transferred took to transfer. - optional int64 duration_millis = 1; - - // The type of this payload. - optional location.nearby.proto.connections.PayloadType type = 2; - - // Total size of the payload in bytes. - optional int64 total_size_bytes = 3; - - // Total number of bytes transferred successfully. - optional int64 num_bytes_transferred = 4; - - // The number of chunks used to transfer num_bytes_transferred. - optional int32 num_chunks = 5; - - // The end status of the payload transfer. - optional location.nearby.proto.connections.PayloadStatus status = 6; - - // The number of successful auto resume. - optional int32 num_successful_auto_resume = 7; - - // The result code of this sent payload - optional OperationResult operation_result = 8; - - // The number of failed auto resume attempts. - optional int32 num_failed_auto_resume = 9; - - // Statistics for DCT payloads, e.g., type, multipart details. Populated - // only for DCT payloads. - optional DctPayloadTransferStats dct_payload_transfer_stats = 10; - } - - // An attempt to upgrade an existing connection from one medium to another. - message BandwidthUpgradeAttempt { - // The direction (incoming vs outgoing) of the upgrade attempt. - optional location.nearby.proto.connections.ConnectionAttemptDirection - direction = 1; - - // Elapsed time in milliseconds of the upgrade attempt. - optional int64 duration_millis = 2; - - // The original medium (e.g. bluetooth). - optional location.nearby.proto.connections.Medium from_medium = 3; - - // The new medium that we're hoping to upgrade to (e.g. wifi). - optional location.nearby.proto.connections.Medium to_medium = 4; - - // The result of the upgrade attempt. - optional location.nearby.proto.connections.BandwidthUpgradeResult - upgrade_result = 5; - - // If upgrade_result is not success, the stage at which the error occurred. - optional location.nearby.proto.connections.BandwidthUpgradeErrorStage - error_stage = 6; - - // The SendingEvent flow id. - optional int64 client_flow_id = 7 /* type = ST_SESSION_ID */; - - // The token used to identify this upgrade pair. - optional string connection_token = 8 - /* type = ST_SESSION_ID */; - - // The result code of this upgrade attempt - optional OperationResult operation_result = 9; - - optional location.nearby.proto.connections.DeviceType device_type = 10; - - // The supported service. - optional location.nearby.proto.connections.SupportedService - supported_service = 11; - - // The number of network interfaces on the device for the upgrade medium - // that can be used for bandwidth upgrade. - optional int32 num_interfaces = 12; - // The number of network interfaces on the device for the upgrade medium - // that can be used for bandwidth upgrade and are IPv6 only. - optional int32 num_ipv6_only_interfaces = 13; - // The number of times the upgrade attempt is tried. - // This count is reset to 0 when the upgrade is successful. - optional int32 try_count = 14; - // If true, the upgrade attempt is forced to use the USB medium, regardless - // of the available mediums. - optional bool is_forced_usb = 15; - } - - // Next Id: 22 - message ErrorCode { - // The direction (incoming vs outgoing) of this error. - optional location.nearby.proto.connections.ConnectionAttemptDirection - direction = 1; - optional string service_id = 2; - // The error medium (e.g. bluetooth). - optional location.nearby.proto.connections.Medium medium = 3; - // The event which the error occurs on. - optional location.nearby.errorcode.proto.Event event = 4; - // The error description. - optional location.nearby.errorcode.proto.Description description = 5; - // The flow id which the error occurs on. - optional int64 flow_id = 6 /* type = ST_SESSION_ID */; - - // Error code value - oneof ErrorCodeDetail { - location.nearby.errorcode.proto.CommonError common_error = 7; - location.nearby.errorcode.proto.StartAdvertisingError - start_advertising_error = 8; - location.nearby.errorcode.proto.StartDiscoveringError - start_discovering_error = 9; - location.nearby.errorcode.proto.StopAdvertisingError - stop_advertising_error = 10; - location.nearby.errorcode.proto.StopDiscoveringError - stop_discovering_error = 11; - location.nearby.errorcode.proto.StartListeningIncomingConnectionError - start_listening_incoming_connection_error = 12; - location.nearby.errorcode.proto.StopListeningIncomingConnectionError - stop_listening_incoming_connection_error = 13; - location.nearby.errorcode.proto.ConnectError connect_error = 14; - location.nearby.errorcode.proto.DisconnectError disconnect_error = 15; - location.nearby.errorcode.proto.SendPayloadError send_payload_error = 17; - location.nearby.errorcode.proto.ReceivePayloadError - receive_payload_error = 18; - location.nearby.errorcode.proto.UpgradeError upgrade_error = 19; - location.nearby.errorcode.proto.AcceptConnectionError - accept_connection_error = 20; - location.nearby.errorcode.proto.RejectConnectionError - reject_connection_error = 21; - } - - // The token use to identify this established connection. - optional string connection_token = 16 - /* type = ST_SESSION_ID */; - } - - // Some additional information to keep with the advertising phase. - message AdvertisingMetadata { - // The bluetooth low energy extended advertisement support status. - optional bool supports_extended_ble_advertisements = 1; - - // The frequency of the connected WiFi AP. - optional int32 connected_ap_frequency = 2; - - // The NFC (Near Field Communication) support status - optional bool supports_nfc_technology = 3; - - // The Bluetooth multiple advertisement support status. - optional bool multiple_advertisement_supported = 4; - - // The power level of this advertising - optional location.nearby.proto.connections.PowerLevel power_level = 5; - - // The dual band support status - optional bool supports_dual_band = 6; - - // The wifi aware support status - optional bool supports_wifi_aware = 7; - - // The endpoint info size - optional int32 endpoint_info_size = 8; - } - - // Some additional information to keep with the discovery phase. - message DiscoveryMetadata { - // The bluetooth low energy extended advertisement support status. - optional bool supports_extended_ble_advertisements = 1; - - // The frequency of the connected WiFi AP. - optional int32 connected_ap_frequency = 2; - - // The NFC (Near Field Communication) support status - optional bool supports_nfc_technology = 3; - - // The power level of this discovering - optional location.nearby.proto.connections.PowerLevel power_level = 4; - } - - // Some additional information to keep with the connection attempt. - message ConnectionAttemptMetadata { - // The technology used by the mediums. - optional location.nearby.proto.connections.ConnectionTechnology technology = - 1; - - // The wifi band used by the wifi mediums. - optional location.nearby.proto.connections.ConnectionBand band = 2; - - // The frequency used by the wifi mediums. - optional int32 frequency = 3; - - // The MCC (Mobile country code) MNC (Mobile network code) of the network - // operator. - optional string network_operator = 4 - /* type = ST_LOCATION */; - - // The upper-case ISO 3166-1 alpha-2 country code of: - // 1. the current connected WiFi network - // 2. or the current registered operator's MCC (Mobile Country Code) - // 3. or empty string. - optional string country_code = 5 /* type = ST_LOCATION */; - - // The TDLS status used by the wifi lan medium, - // TDLS, shortened from Tunneled Direct Link Setup, is "a seamless way to - // stream media and other data faster between devices already on the same - // Wi-Fi network." Devices using it communicate directly with one another, - // without involving the wireless network's router. - optional bool is_tdls_used = 6; - - // The try times for this hosted group or connection operation. - optional int32 try_counts = 7; - - // The enabled status of the wifi hotspot(tethering) when doing this - // connection attempt. - optional bool wifi_hotspot_status = 8; - - // The MAX supported TX link speed (Mbps). - optional int32 max_tx_speed = 9; - - // The MAX supported RX link speed (Mbps). - optional int32 max_rx_speed = 10; - - // The connected wifi channel width. - optional int32 wifi_channel_width = 11; - - // The send buffer size of the created socket - optional int32 send_buffer_size = 12; - - // The receive buffer size of the created socket - optional int32 receive_buffer_size = 13; - - // The frequency of the connected WiFi AP. - optional int32 connected_ap_frequency = 14; - - // The connectivity MCC mode - optional bool is_mcc_mode = 15; - } -} -// LINT.ThenChange() diff --git a/internal/proto/analytics/connections_log_test.cc b/internal/proto/analytics/connections_log_test.cc deleted file mode 100644 index 53048875..00000000 --- a/internal/proto/analytics/connections_log_test.cc +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// #include "logs/proto/location/nearby/nearby_client_log.proto.h" -#include "google/protobuf/descriptor.h" -#include "gtest/gtest.h" -#include "internal/platform/logging.h" -#include "internal/proto/analytics/connections_log.pb.h" -#include "proto/connections_enums.pb.h" - -namespace nearby { -namespace analytics { -namespace proto { - -namespace { - -using G3ConnectionsLog = ::location::nearby::analytics::proto::ConnectionsLog; -using P3ConnectionsLog = ::location::nearby::analytics::proto::ConnectionsLog; - -using ::proto2::Descriptor; -using ::proto2::FieldDescriptor; - -// Forward declaration. -bool Compare(const Descriptor* desc1, const Descriptor* desc2); - -// Compares the two field descriptors and return false if name, number, label, -// or type is different. -bool Compare(const FieldDescriptor* field1, const FieldDescriptor* field2) { - if (field1->name() != field2->name()) { - LOG(WARNING) << "Field name diff: " << field1->name() << " <=> " - << field2->name(); - return false; - } - if (field1->number() != field2->number()) { - LOG(WARNING) << "Field " << field1->name() - << " number diff: " << field1->number() << " <=> " - << field2->number(); - return false; - } - if (field1->label() != field2->label()) { - LOG(WARNING) << "Field " << field1->name() - << " label diff: " << field1->label() << " <=> " - << field2->label(); - return false; - } - bool bRet = false; - if (field1->type() != field2->type()) { - LOG(WARNING) << "Field " << field1->name() - << " type diff: " << field1->type() << " <=> " - << field2->type(); - return bRet; - } else if (field1->type() == FieldDescriptor::TYPE_MESSAGE) { - const Descriptor* msg1 = field1->message_type(); - const Descriptor* msg2 = field2->message_type(); - - bRet = Compare(msg1, msg2); - } else { - bRet = true; - } - - return bRet; -} - -// Compares the two descriptors and return false immediately if different. -bool Compare(const Descriptor* desc1, const Descriptor* desc2) { - LOG(INFO) << "Descriptor1 full name: " << desc1->full_name() << " <=> " - << desc2->full_name(); - for (int i = 0; i < desc1->field_count(); ++i) { - const FieldDescriptor* field1 = desc1->field(i); - const FieldDescriptor* field2 = desc2->FindFieldByName(field1->name()); - - bool bRet = false; - if (field2) { - bRet = Compare(field1, field2); - } else { - LOG(ERROR) << "Descriptor1 full name: " << desc1->full_name() - << "=> Extra field1 name=" << field1->name() - << ", number=" << field1->number() - << ", label=" << field1->label() - << ", type=" << field1->type(); - } - if (!bRet) { - return false; - } - } - for (int i = 0; i < desc2->field_count(); ++i) { - const FieldDescriptor* field2 = desc2->field(i); - const FieldDescriptor* field1 = desc1->FindFieldByName(field2->name()); - if (!field1) { - LOG(ERROR) << "Descriptor2 full name: " << desc2->full_name() - << "=> Extra field2 name=" << field2->name() - << ", number=" << field2->number() - << ", label=" << field2->label() - << ", type=" << field2->type(); - return false; - } - } - - return true; -} - -TEST(ConnectionsLogTest, TwoMessagesAreIdentical) { - const proto2::Descriptor* descriptor1 = G3ConnectionsLog::descriptor(); - const proto2::Descriptor* descriptor2 = P3ConnectionsLog::descriptor(); - - EXPECT_TRUE(Compare(descriptor1, descriptor2)); -} - -} // namespace - -} // namespace proto -} // namespace analytics -} // namespace nearby