Snap for 10758424 from 3686c69eb19f285e587ce0f8e6c50f6619ddae46 to mainline-sdkext-release

Change-Id: Idf8b92884f5f097f899f578a2d8df990f063a871
diff --git a/stats/atoms.proto b/stats/atoms.proto
index 984100d..2cb27c0 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -1047,6 +1047,8 @@
     extensions 711; // OnDevicePersonalizationApiCalled ondevicepersonalization_api_called
     extensions 712; // FederatedComputeApiCalled federated_compute_api_called
     extensions 714; // AdServicesEnrollmentFailed ad_services_enrollment_failed
+    extensions 719; // PnoScanStarted pno_scan_started
+    extensions 720; // PnoScanStopped pno_scan_stopped
     extensions 722; // WifiIsUnusableReported wifi_is_unusable_reported
     extensions 723; // WifiApCapabilitiesReported wifi_ap_capabilities_reported
     extensions 9999; // Atom9999 atom_9999
@@ -1284,6 +1286,7 @@
     extensions 10193; // WifiModuleInfo wifi_module_info
     extensions 10194; // WifiSettingInfo wifi_setting_info
     extensions 10195; // WifiComplexSettingInfo wifi_complex_setting_info
+    extensions 10198; // WifiConfiguredNetworkInfo wifi_configured_network_info;
     extensions 99999; // Atom99999 atom_99999
 
     // DO NOT USE field numbers above 100,000 in AOSP.
@@ -9675,6 +9678,9 @@
 
   // Record query service count before unregistered service
   optional int32 replied_requests_count = 11;
+
+  // Record sent query count before stopped discovery
+  optional int32 sent_query_count = 12;
 }
 
 /**
@@ -13597,7 +13603,7 @@
  * Reported from:
  *   packages/modules/AppSearch/service/java/com/android/server/appsearch/contactsindexer/ContactsIndexerManagerService.java
  *
- * Next tag: 11
+ * Next tag: 18
  */
 message ContactsIndexerUpdateStatsReported {
     enum UpdateType {
@@ -13641,6 +13647,30 @@
 
     // Number of old contacts failed to be deleted
     optional int32 number_of_contacts_delete_failed = 10;
+
+    // Number of old contacts to be deleted that were not found
+    optional int32 number_of_contacts_delete_not_found = 11;
+
+    // Start timestamp of the update in millis
+    optional int64 update_start_timestamp_millis = 12;
+
+    // Timestamp of the last full update in millis (not including this update)
+    optional int64 last_full_update_timestamp_millis = 13;
+
+    // Timestamp of the last delta update in millis (not including this update)
+    optional int64 last_delta_update_timestamp_millis = 14;
+
+    // Timestamp of the last contact to be updated from CP2 in millis
+    optional int64 last_contact_updated_timestamp_millis = 15;
+
+    // Timestamp of the last contact to be deleted from CP2 in millis
+    optional int64 last_contact_deleted_timestamp_millis = 16;
+
+    // The previous update's last_contact_updated_timestamp_millis
+    // This field is only set for a full update and expected to match
+    // last_contacted_update_timestamp_millis. If the fields do not match, then we
+    // were unexpectedly not synced up with CP2 at the time of the update.
+    optional int64 previous_last_contact_updated_timestamp_millis = 17;
 }
 
 /**
@@ -21813,7 +21843,7 @@
     // The actual name of the api within the 3 classes described above.
     optional AdServicesApiName  api_name = 2;
 
-    optional string app_package_name = 3;
+    optional string app_package_name = 3; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
     optional string sdk_package_name = 4;
 
     optional int32 latency_millis = 5;
@@ -21830,6 +21860,32 @@
         UNKNOWN_REPORT = 0;
         EVENT = 1;
         AGGREGATE = 2;
+        DEBUG_EVENT = 3;
+        DEBUG_AGGREGATE = 4;
+        VERBOSE_DEBUG_SOURCE_DESTINATION_LIMIT = 5;
+        VERBOSE_DEBUG_SOURCE_NOISED = 6;
+        VERBOSE_DEBUG_SOURCE_STORAGE_LIMIT = 7;
+        VERBOSE_DEBUG_SOURCE_SUCCESS = 8;
+        VERBOSE_DEBUG_SOURCE_UNKNOWN_ERROR = 9;
+        VERBOSE_DEBUG_SOURCE_FLEXIBLE_EVENT_REPORT_VALUE_ERROR = 10;
+        VERBOSE_DEBUG_TRIGGER_AGGREGATE_DEDUPLICATED = 11;
+        VERBOSE_DEBUG_TRIGGER_AGGREGATE_INSUFFICIENT_BUDGET = 12;
+        VERBOSE_DEBUG_TRIGGER_AGGREGATE_NO_CONTRIBUTIONS = 13;
+        VERBOSE_DEBUG_TRIGGER_AGGREGATE_REPORT_WINDOW_PASSED = 14;
+        VERBOSE_DEBUG_TRIGGER_ATTRIBUTIONS_PER_SOURCE_DESTINATION_LIMIT = 15;
+        VERBOSE_DEBUG_TRIGGER_EVENT_DEDUPLICATED = 16;
+        VERBOSE_DEBUG_TRIGGER_EVENT_EXCESSIVE_REPORTS = 17;
+        VERBOSE_DEBUG_TRIGGER_EVENT_LOW_PRIORITY = 18;
+        VERBOSE_DEBUG_TRIGGER_EVENT_NO_MATCHING_CONFIGURATIONS = 19;
+        VERBOSE_DEBUG_TRIGGER_EVENT_NOISE = 20;
+        VERBOSE_DEBUG_TRIGGER_EVENT_REPORT_WINDOW_PASSED = 21;
+        VERBOSE_DEBUG_TRIGGER_NO_MATCHING_FILTER_DATA = 22;
+        VERBOSE_DEBUG_TRIGGER_NO_MATCHING_SOURCE = 23;
+        VERBOSE_DEBUG_TRIGGER_REPORTING_ORIGIN_LIMIT = 24;
+        VERBOSE_DEBUG_TRIGGER_EVENT_STORAGE_LIMIT = 25;
+        VERBOSE_DEBUG_TRIGGER_UNKNOWN_ERROR = 26;
+        VERBOSE_DEBUG_TRIGGER_AGGREGATE_STORAGE_LIMIT = 27;
+        VERBOSE_DEBUG_TRIGGER_AGGREGATE_EXCESSIVE_REPORTS = 28;
     }
 
     optional ReportType type = 1;
@@ -21845,6 +21901,7 @@
     optional android.adservices.service.measurement.ReportUploadMethod upload_method = 4;
     // delay (in milliseconds) between scheduled delivery time and actual delivery time.
     optional int64 reporting_delay_millis = 5;
+    optional string app_package_name = 6; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
@@ -21866,6 +21923,7 @@
     optional android.adservices.service.measurement.RegistrationFailureType failure_type = 7;
     // delay (in milliseconds) between registration queue request and the time it gets processed
     optional int64 registration_delay_millis = 8;
+    optional string app_package_name = 9; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
@@ -22988,7 +23046,7 @@
 // Logs when an API call from app to sandbox process is made
 // Next ID: 6
 message SandboxApiCalled {
-    // Next ID: 14
+    // Next ID: 16
     enum Method {
         METHOD_UNSPECIFIED = 0;
         LOAD_SDK = 1;
@@ -23004,6 +23062,8 @@
         GET_APP_OWNED_SDK_SANDBOX_INTERFACES = 13;
         // Api used by SDKs in the sandbox via SdkSandboxController
         GET_SANDBOXED_SDKS_VIA_CONTROLLER = 10;
+        LOAD_SDK_VIA_CONTROLLER = 14;
+        GET_APP_OWNED_SDK_SANDBOX_INTERFACES_VIA_CONTROLLER = 15;
 
         LOAD_SANDBOX_AND_SDK = 2 [deprecated = true];
         SEND_DATA = 4 [deprecated = true];
@@ -23011,6 +23071,7 @@
     // The method which was called.
     optional Method method = 1;
 
+    // Next ID: 12
     enum Stage {
         STAGE_UNSPECIFIED = 0;
         APP_TO_SYSTEM_SERVER = 1;
@@ -23022,6 +23083,8 @@
         SANDBOX_TO_SYSTEM_SERVER = 7;
         SYSTEM_SERVER_SANDBOX_TO_APP = 8;
         SYSTEM_SERVER_TO_APP = 9;
+        TOTAL = 10;
+        TOTAL_WITH_LOAD_SANDBOX = 11;
     }
     // The stage at which latency is being measured.
     optional Stage stage = 4;
diff --git a/stats/atoms/adservices/adservices_extension_atoms.proto b/stats/atoms/adservices/adservices_extension_atoms.proto
index 1e23d01..75f7cda 100644
--- a/stats/atoms/adservices/adservices_extension_atoms.proto
+++ b/stats/atoms/adservices/adservices_extension_atoms.proto
@@ -139,6 +139,7 @@
   optional bool is_matched = 3;
   optional int64 join_key_hash = 4;
   optional int64 join_key_hash_limit = 5;
+  optional string app_package_name = 6; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
@@ -193,6 +194,7 @@
   optional android.adservices.service.measurement.DelayedSourceRegistrationStatus registration_status = 1;
   // delay (in milliseconds) between a source registration and a previously registered trigger with matching attribution destination
   optional int64 missed_source_delay_millis = 2;
+  optional string app_package_name = 3; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
@@ -207,6 +209,7 @@
   optional bool is_install_attribution = 6;
   // delay (in milliseconds) between trigger registration and a trigger becoming attributed.
   optional int64 trigger_to_attribution_delay_millis = 7;
+  optional string app_package_name = 8; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
@@ -222,6 +225,7 @@
  */
 message AdServicesMeasurementWipeout {
   optional android.adservices.service.measurement.WipeoutCause wipeout_cause = 1;
+  optional string app_package_name = 2; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
@@ -233,6 +237,7 @@
   optional bool is_matched = 3;
   optional int64 num_unique_ad_ids_used = 4;
   optional int64 num_unique_ad_id_limit = 5;
+  optional string app_package_name = 6; // [(datapol.semantic_type) = ST_SOFTWARE_ID, (contains_pii) = false]
 }
 
 /**
diff --git a/stats/atoms/wifi/wifi_extension_atoms.proto b/stats/atoms/wifi/wifi_extension_atoms.proto
index 8530a7a..620a7d2 100644
--- a/stats/atoms/wifi/wifi_extension_atoms.proto
+++ b/stats/atoms/wifi/wifi_extension_atoms.proto
@@ -46,6 +46,8 @@
         = 693 [(module) = "wifi"];
     optional WifiThreadTaskExecuted wifi_thread_task_executed = 694 [(module) = "wifi"];
     optional WifiStateChanged wifi_state_changed = 700 [(module) = "wifi"];
+    optional PnoScanStarted pno_scan_started = 719 [(module) = "wifi"];
+    optional PnoScanStopped pno_scan_stopped = 720 [(module) = "wifi"];
     optional WifiIsUnusableReported wifi_is_unusable_reported = 722 [(module) = "wifi"];
     optional WifiApCapabilitiesReported wifi_ap_capabilities_reported= 723 [(module) = "wifi"];
 
@@ -54,6 +56,7 @@
     optional WifiModuleInfo wifi_module_info = 10193 [(module) = "wifi"];
     optional WifiSettingInfo wifi_setting_info = 10194 [(module) = "wifi"];
     optional WifiComplexSettingInfo wifi_complex_setting_info = 10195 [(module) = "wifi"];
+    optional WifiConfiguredNetworkInfo wifi_configured_network_info = 10198 [(module) = "wifi"];
 }
 
 /**
@@ -391,6 +394,43 @@
     optional bool enabled_by_wifi_wake = 3;
 }
 
+// Logged when a PNO scan is started.
+message PnoScanStarted {
+    // Whether this scan includes Passpoint SSIDs
+    optional bool includes_passpoint_ssids = 1;
+}
+
+// Logged when a PNO scan is stopped.
+message PnoScanStopped {
+    enum StopReason {
+        UNSPECIFIED = 0;
+        SCAN_FAILED = 1;
+        FOUND_RESULTS = 2;
+    }
+
+    enum FailureCode {
+        UNSPECIFIED_FAILURE = 0;
+        WIFICOND_SCAN_FAILURE = 1;
+        WIFICOND_REQUEST_FAILURE = 2;
+        WIFI_SCANNING_SERVICE_FAILURE = 3;
+    }
+
+    // Reason that this scan stopped
+    optional StopReason stop_reason = 1;
+    // Number of results found by this scan
+    optional int32 num_results = 2;
+    // Whether we were scanning for Passpoint SSIDs
+    optional bool scanned_for_passpoint_ssids = 3;
+    // Whether any Passpoint results were found
+    optional bool includes_passpoint_results = 4;
+    // Whether this scan led to the selection of a connection candidate
+    optional bool candidate_selected = 5;
+    // Whether the connection candidate is a Passpoint network
+    optional bool candidate_is_passpoint = 6;
+    // Failure code if this scan stopped due to a failure
+    optional FailureCode failure_code = 7;
+}
+
 /**
  * Pulled to indicate a single boolean Wifi setting.
  */
@@ -545,3 +585,67 @@
     // Whether AP supports ECPS priority access
     optional bool is_ecps_priority_access_supported = 26;
 }
+
+/*
+ * Pulled to indicate a single configured network on the device.
+ */
+message WifiConfiguredNetworkInfo {
+    enum MacRandomization {
+        // Default value. Mode is unknown
+        MAC_RANDOMIZATION_UNSPECIFIED = 0;
+        // Factory MAC is used when connecting to this network
+        MAC_RANDOMIZATION_NONE = 1;
+        // Randomized MAC is generated once and reused for all connections to this network
+        MAC_RANDOMIZATION_PERSISTENT = 2;
+        // Randomized MAC is used and is not persisted across connections to this network
+        MAC_RANDOMIZATION_NON_PERSISTENT = 3;
+        // Framework decides on the MAC randomization strategy
+        MAC_RANDOMIZATION_AUTO = 4;
+    }
+
+    enum MeteredOverride {
+        // Default value. Mode is unknown
+        METERED_OVERRIDE_UNSPECIFIED = 0;
+        // No metered override
+        METERED_OVERRIDE_NONE = 1;
+        // Override network to be metered
+        METERED_OVERRIDE_METERED = 2;
+        // Override network to be unmetered
+        METERED_OVERRIDE_NOT_METERED = 3;
+    }
+
+    // Unique ID for this network
+    optional int64 network_id = 1;
+    // Whether this is an Enterprise network
+    optional bool is_enterprise = 2;
+    // Whether this is a hidden network
+    optional bool is_hidden = 3;
+    // Whether this is a Passpoint network
+    optional bool is_passpoint = 4;
+    // Whether this is a suggestion network
+    optional bool is_suggestion = 5;
+    // Whether this network has a UTF-8 SSID
+    optional bool is_utf_8_ssid = 6;
+    // Whether the SSID translation feature is enabled
+    optional bool is_ssid_translation_enabled = 7;
+    // Whether this network was configured using TOFU
+    optional bool configured_using_tofu = 8;
+    // Whether this network has encountered a captive portal
+    optional bool encountered_captive_portal = 9;
+    // Whether this network has auto-join enabled
+    optional bool auto_join_enabled = 10;
+    // Security mode used by this network
+    optional android.net.wifi.SecurityMode connected_security_mode = 11;
+    // MAC randomization setting used by this network
+    optional MacRandomization mac_randomization = 12;
+    // Metered override setting used by this network
+    optional MeteredOverride metered_override = 13;
+    // EAP type used by this network
+    optional android.net.wifi.EapType eap_type = 14;
+    // EAP inner authentication method used by this network
+    optional android.net.wifi.EapInnerMethod eap_inner_auth_method = 15;
+    // Whether this network supports free OpenRoaming
+    optional bool free_open_roaming_supported = 16;
+    // Whether this network supports settled OpenRoaming
+    optional bool settled_open_roaming_supported = 17;
+}
diff --git a/stats/enums/adservices/common/adservices_enums.proto b/stats/enums/adservices/common/adservices_enums.proto
index 259e9e6..54e04df 100644
--- a/stats/enums/adservices/common/adservices_enums.proto
+++ b/stats/enums/adservices/common/adservices_enums.proto
@@ -98,6 +98,9 @@
   // Shared pref reset failure.
   SHARED_PREF_RESET_FAILURE = 8;
 
+  // Remote exception when calling the Cobalt upload API.
+  COBALT_UPLOAD_API_REMOTE_EXCEPTION = 9;
+
   // Topics errors: 1001-2000
   // Remote exception when calling get topics.
   GET_TOPICS_REMOTE_EXCEPTION = 1001;
@@ -222,6 +225,9 @@
   // Error occurred while deleting a table for Topics.
   TOPICS_DELETE_TABLE_FAILURE = 1040;
 
+  // Cobalt initialisation failure for Topics.
+  TOPICS_COBALT_LOGGER_INITIALIZATION_FAILURE = 1041;
+
   // Measurement errors: 2001-3000
   // Error occurred when inserting enrollment data to DB.
   ENROLLMENT_DATA_INSERT_ERROR = 2001;
@@ -229,6 +235,15 @@
   // Error occurred when deleting enrollment data to DB.
   ENROLLMENT_DATA_DELETE_ERROR = 2002;
 
+  // Measurement foreground unknown failure.
+  MEASUREMENT_FOREGROUND_UNKNOWN_FAILURE = 2003;
+
+  // Measurement datastore failure.
+  MEASUREMENT_DATASTORE_FAILURE = 2004;
+
+  // Measurement datastore unknown failure.
+  MEASUREMENT_DATASTORE_UNKNOWN_FAILURE = 2005;
+
   // UX errors: 4001-5000
   CONSENT_REVOKED_ERROR = 4001;
 
@@ -271,8 +286,8 @@
   // Ad services entry point failure.
   AD_SERVICES_ENTRY_POINT_FAILURE = 4014;
 
-  // Measurement foreground unknown failure.
-  MEASUREMENT_FOREGROUND_UNKNOWN_FAILURE = 4015;
+  // Used to be MEASUREMENT_FOREGROUND_UNKNOWN_FAILURE but renamed in ag/24158741
+  RESERVED_ERROR_CODE_4015 = 4015;
 }
 
 /**
diff --git a/stats/enums/adservices/measurement/enums.proto b/stats/enums/adservices/measurement/enums.proto
index 261ccf7..27b9098 100644
--- a/stats/enums/adservices/measurement/enums.proto
+++ b/stats/enums/adservices/measurement/enums.proto
@@ -46,6 +46,9 @@
   UNKNOWN_STATUS = 0;
   SUCCESS_STATUS = 1;
   FAILURE_STATUS = 2;
+  AGGREGATE_REPORT_GENERATED_SUCCESS_STATUS = 3;
+  EVENT_REPORT_GENERATED_SUCCESS_STATUS = 4;
+  AGGREGATE_AND_EVENT_REPORTS_GENERATED_SUCCESS_STATUS = 5;
 }
 
 /**
@@ -58,6 +61,7 @@
   ENROLLMENT_REGISTRATION_FAILURE_TYPE = 3;
   REDIRECT_REGISTRATION_FAILURE_TYPE = 4;
   STORAGE_REGISTRATION_FAILURE_TYPE = 5;
+  JOB_RETRY_LIMIT_EXCEEDED_REGISTRATION_FAILURE_TYPE = 6;
 }
 
 /**
@@ -69,6 +73,9 @@
   NETWORK_ERROR_REPORT_UPLOAD_FAILURE_TYPE = 2;
   DATASTORE_ERROR_REPORT_UPLOAD_FAILURE_TYPE = 3;
   REPORT_NOT_PENDING_REPORT_UPLOAD_FAILURE_TYPE = 4;
+  JOB_RETRY_LIMIT_EXCEEDED_REPORT_UPLOAD_FAILURE_TYPE = 5;
+  SERIALIZATION_ERROR_REPORT_UPLOAD_FAILURE_TYPE = 6;
+  ENCRYPTION_ERROR_REPORT_UPLOAD_FAILURE_TYPE = 7;
 }
 
 /**
@@ -112,6 +119,7 @@
   NO_TOP_LEVEL_FILTER_MATCH_ATTRIBUTION_FAILURE_TYPE = 5;
   RATE_LIMIT_EXCEEDED_ATTRIBUTION_FAILURE_TYPE = 6;
   NO_REPORTS_GENERATED_ATTRIBUTION_FAILURE_TYPE = 7;
+  JOB_RETRY_LIMIT_EXCEEDED_ATTRIBUTION_FAILURE_TYPE = 8;
 }
 
 /**
@@ -137,5 +145,6 @@
   UNKNOWN_WIPEOUT_CAUSE = 0;
   UNINSTALL_WIPEOUT_CAUSE = 1;
   CONSENT_FLIP_WIPEOUT_CAUSE = 2;
-  CLEAR_DATA_WIPEOUT_CAUSE = 3;
+  CLEAR_DATA_WIPEOUT_CAUSE = 3; // request from Android to clear data
+  DELETE_REGISTRATIONS_API_CLEAR_DATA_WIPEOUT_CAUSE = 4; // request from a web browser to clear data
 }
\ No newline at end of file
diff --git a/stats/enums/bluetooth/enums.proto b/stats/enums/bluetooth/enums.proto
index b2cfab0..5beb045 100644
--- a/stats/enums/bluetooth/enums.proto
+++ b/stats/enums/bluetooth/enums.proto
@@ -327,7 +327,7 @@
         LE_SCAN_DURATION_COUNT_BATCH_1H = 120108;
         LE_SCAN_DURATION_COUNT_BATCH_1HP = 120109;
 
-        // [120,200 - 120,300) LE scan radio active duration
+        // [120,200 - 120,250) LE scan radio active duration
         LE_SCAN_RADIO_DURATION_ALL = 120200;
         LE_SCAN_RADIO_DURATION_REGULAR = 120201;
         LE_SCAN_RADIO_DURATION_BATCH = 120202;
@@ -336,6 +336,22 @@
         LE_SCAN_RADIO_DURATION_BATCH_SCREEN_ON = 120205;
         LE_SCAN_RADIO_DURATION_BATCH_SCREEN_OFF = 120206;
 
+        // [120,250 - 120,300) LE scan radio scan mode count
+        LE_SCAN_RADIO_SCAN_MODE_OPPORTUNISTIC_COUNT = 120250;
+        LE_SCAN_RADIO_SCAN_MODE_LOW_POWER_COUNT = 120251;
+        LE_SCAN_RADIO_SCAN_MODE_BALANCED_COUNT = 120252;
+        LE_SCAN_RADIO_SCAN_MODE_LOW_LATENCY_COUNT = 120253;
+        LE_SCAN_RADIO_SCAN_MODE_AMBIENT_DISCOVERY_COUNT = 120254;
+        LE_SCAN_RADIO_SCAN_MODE_SCREEN_OFF_COUNT = 120255;
+        LE_SCAN_RADIO_SCAN_MODE_SCREEN_OFF_BALANCED_COUNT = 120256;
+        LE_SCAN_RADIO_SCAN_MODE_OPPORTUNISTIC_COUNT_SCREEN_OFF = 120257;
+        LE_SCAN_RADIO_SCAN_MODE_LOW_POWER_COUNT_SCREEN_OFF = 120258;
+        LE_SCAN_RADIO_SCAN_MODE_BALANCED_COUNT_SCREEN_OFF = 120259;
+        LE_SCAN_RADIO_SCAN_MODE_LOW_LATENCY_COUNT_SCREEN_OFF = 120260;
+        LE_SCAN_RADIO_SCAN_MODE_AMBIENT_DISCOVERY_COUNT_SCREEN_OFF = 120261;
+        LE_SCAN_RADIO_SCAN_MODE_SCREEN_OFF_COUNT_SCREEN_OFF = 120262;
+        LE_SCAN_RADIO_SCAN_MODE_SCREEN_OFF_BALANCED_COUNT_SCREEN_OFF = 120263;
+
         // [120,300 - 120,400) LE scan results count
         LE_SCAN_RESULTS_COUNT_ALL = 120300;
         LE_SCAN_RESULTS_COUNT_REGULAR = 120301;
@@ -350,6 +366,8 @@
 
         // [120,400 - 120,500) LE scan abuse count
         LE_SCAN_ABUSE_COUNT_SCAN_TIMEOUT = 120400;
+        LE_SCAN_ABUSE_COUNT_HW_FILTER_NOT_AVAILABLE = 120401;
+        LE_SCAN_ABUSE_COUNT_TRACKING_HW_FILTER_NOT_AVAILABLE = 120402;
 
     // [120,500 - 121,000) LE advertise related
         // [120,500 - 120,600) LE advertise enable/disable count
@@ -389,6 +407,14 @@
   // [120,900 - 121,000) GATT Related Count
         GATT_CLIENT_CONNECT_IS_DIRECT = 120900;
         GATT_CLIENT_CONNECT_IS_AUTOCONNECT = 120901;
+        GATT_CLIENT_CONNECT_IS_DIRECT_IN_FOREGROUND = 120902;
+        GATT_CLIENT_CONNECT_IS_DIRECT_NOT_IN_FOREGROUND = 120903;
+        GATT_CLIENT_CONNECT_IS_AUTOCONNECT_IN_FOREGROUND = 120904;
+        GATT_CLIENT_CONNECT_IS_AUTOCONNECT_NOT_IN_FOREGROUND = 120905;
+        GATT_SERVER_CONNECT_IS_DIRECT_IN_FOREGROUND = 120906;
+        GATT_SERVER_CONNECT_IS_DIRECT_NOT_IN_FOREGROUND = 120907;
+        GATT_SERVER_CONNECT_IS_AUTOCONNECT_IN_FOREGROUND = 120908;
+        GATT_SERVER_CONNECT_IS_AUTOCONNECT_NOT_IN_FOREGROUND = 120909;
 
         // [121,000 - 121,010) Screen on/off count
         SCREEN_ON_EVENT = 121000;
diff --git a/stats/enums/stats/connectivity/connectivity_service.proto b/stats/enums/stats/connectivity/connectivity_service.proto
index 3d5b2f8..b2df89b 100644
--- a/stats/enums/stats/connectivity/connectivity_service.proto
+++ b/stats/enums/stats/connectivity/connectivity_service.proto
@@ -59,6 +59,7 @@
     NET_REGISTER = 1;
     NET_DISCOVER = 2;
     NET_RESOLVE = 3;
+    NET_SERVICE_INFO_CALLBACK = 4;
 }
 
 enum MdnsQueryResult {
@@ -71,4 +72,8 @@
     MQR_SERVICE_DISCOVERY_STOP = 6;
     MQR_SERVICE_RESOLVED = 7;
     MQR_SERVICE_RESOLUTION_FAILED = 8;
+    MQR_SERVICE_RESOLUTION_STOP = 9;
+    MQR_SERVICE_INFO_CALLBACK_REGISTERED = 10;
+    MQR_SERVICE_INFO_CALLBACK_REGISTRATION_FAILED = 11;
+    MQR_SERVICE_INFO_CALLBACK_UNREGISTERED = 12;
 }