From a04f505ece28b71f3fa8df1995a67d85033cb110 Mon Sep 17 00:00:00 2001 From: David Su Date: Wed, 20 Feb 2019 17:42:28 -0800 Subject: [PATCH 1/2] wifi.proto: Add fields for network selection metrics collection Compare decisions made by different network selection algorithms. Bug: 112196799 Test: compiles Change-Id: Ia827a8fe050b834dd8da6c2b759ab092914a8bc9 --- proto/src/wifi.proto | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/proto/src/wifi.proto b/proto/src/wifi.proto index 5fa7766ea5105..0a51c1d548147 100644 --- a/proto/src/wifi.proto +++ b/proto/src/wifi.proto @@ -524,6 +524,9 @@ message WifiLog { // Link Probe metrics optional LinkProbeStats link_probe_stats = 139; + + // List of NetworkSelectionExperimentDecisions stats for each experiment + repeated NetworkSelectionExperimentDecisions network_selection_experiment_decisions_list = 140; } // Information that gets logged for every WiFi connection. @@ -2286,3 +2289,26 @@ message LinkProbeStats { // Counts the occurrences of error codes for failed link probes. repeated LinkProbeFailureReasonCount failure_reason_counts = 8; } + +// Stores the decisions that were made by a experiment when compared against another experiment +message NetworkSelectionExperimentDecisions { + // the id of one experiment + optional int32 experiment1_id = 1; + + // the id of the other experiment + optional int32 experiment2_id = 2; + + // Counts occurrences of the number of network choices there were when experiment1 makes the + // same network selection as experiment2. + // The keys are the number of network choices, and the values are the number of occurrences of + // this number of network choices when exp1 and exp2 make the same network selection. + repeated MapEntryInt32Int32 same_selection_num_choices_counter = 3; + + // Counts occurrences of the number of network choices there were when experiment1 makes the + // same network selection as experiment2. + // The keys are the number of network choices, and the values are the number of occurrences of + // this number of network choices when exp1 and exp2 make different network selections. + // Note that it is possible for the network selection to be different even when there only exists + // a single network choice, since choosing not to connect to that network is a valid choice. + repeated MapEntryInt32Int32 different_selection_num_choices_counter = 4; +} From 21709bca30fe7b3aa8d14c217590123ed93f8551 Mon Sep 17 00:00:00 2001 From: David Su Date: Sun, 24 Feb 2019 15:26:50 -0800 Subject: [PATCH 2/2] wifi.proto: Add candidate nominator and experiment to ConnectionEvent Adds fields for connection nominator and currently active network selector experiment ID to ConnectEvent. Bug: 112196799 Test: compiles Change-Id: I5182d576c05ec230250038e61e3f447387c5cf12 --- proto/src/wifi.proto | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/proto/src/wifi.proto b/proto/src/wifi.proto index 0a51c1d548147..29b03c956e826 100644 --- a/proto/src/wifi.proto +++ b/proto/src/wifi.proto @@ -654,6 +654,39 @@ message ConnectionEvent { HLF_UNWANTED = 4; } + // Entity that recommended connecting to this network. + enum ConnectionNominator { + // Unknown nominator + NOMINATOR_UNKNOWN = 0; + + // User selected network manually + NOMINATOR_MANUAL = 1; + + // Saved network + NOMINATOR_SAVED = 2; + + // Suggestion API + NOMINATOR_SUGGESTION = 3; + + // Passpoint + NOMINATOR_PASSPOINT = 4; + + // Carrier suggestion + NOMINATOR_CARRIER = 5; + + // External scorer + NOMINATOR_EXTERNAL_SCORED = 6; + + // Netrec + NOMINATOR_NETREC = 7; + + // User connected choice override + NOMINATOR_SAVED_USER_CONNECT_CHOICE = 8; + + // Open Network Available Pop-up + NOMINATOR_OPEN_NETWORK_AVAILABLE = 9; + } + // Start time of the connection. optional int64 start_time_millis = 1;// [(datapol.semantic_type) = ST_TIMESTAMP]; @@ -683,6 +716,12 @@ message ConnectionEvent { // Connection is using locally generated random MAC address. optional bool use_randomized_mac = 10 [default = false]; + + // Who chose to connect. + optional ConnectionNominator connection_nominator = 11; + + // The currently running network selector when this connection event occurred. + optional int32 network_selector_experiment_id = 12; } // Number of occurrences of a specific RSSI poll rssi value