Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54e6518f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic 'do_not_roam_on_traffic' into oc-dr1-dev

* changes:
  Add traffic thresholds to prevent wifi network changes
  WifiInfo: Add getters for success tx/rx rate
parents 8d753bc3 b7670831
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -490,6 +490,9 @@
    <!-- Integers specifying the max packet Tx/Rx rates for full scan -->
    <integer translatable="false" name="config_wifi_framework_max_tx_rate_for_full_scan">8</integer>
    <integer translatable="false" name="config_wifi_framework_max_rx_rate_for_full_scan">16</integer>
    <!-- Integers specifying the min packet Tx/Rx rates in packets per second for staying on the same network -->
    <integer translatable="false" name="config_wifi_framework_min_tx_rate_for_staying_on_network">16</integer>
    <integer translatable="false" name="config_wifi_framework_min_rx_rate_for_staying_on_network">16</integer>
    <!-- Integer parameters of the wifi to cellular handover feature
         wifi should not stick to bad networks -->
    <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz">-82</integer>
+2 −0
Original line number Diff line number Diff line
@@ -375,6 +375,8 @@
  <java-symbol type="string"  name="config_wifi_framework_sap_2G_channel_list" />
  <java-symbol type="integer" name="config_wifi_framework_max_tx_rate_for_full_scan" />
  <java-symbol type="integer" name="config_wifi_framework_max_rx_rate_for_full_scan" />
  <java-symbol type="integer" name="config_wifi_framework_min_tx_rate_for_staying_on_network" />
  <java-symbol type="integer" name="config_wifi_framework_min_rx_rate_for_staying_on_network" />

  <java-symbol type="bool" name="config_wifi_framework_cellular_handover_enable_user_triggered_adjustment" />
  <java-symbol type="integer" name="config_wifi_framework_associated_full_scan_tx_packet_threshold" />
+22 −5
Original line number Diff line number Diff line
@@ -151,8 +151,9 @@ public class WifiInfo implements Parcelable {
    /**
     * This factor is used to adjust the rate output under the new algorithm
     * such that the result is comparable to the previous algorithm.
     * This actually converts from unit 'packets per second' to 'packets per 5 seconds'.
     */
    private static final long OUTPUT_SCALE_FACTOR = 5000;
    private static final long OUTPUT_SCALE_FACTOR = 5;
    private long mLastPacketCountUpdateTimeStamp;

    /**
@@ -198,16 +199,16 @@ public class WifiInfo implements Parcelable {
                    double currentSampleWeight = 1.0 - lastSampleWeight;

                    txBadRate = txBadRate * lastSampleWeight
                        + (txbad - txBad) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (txbad - txBad) * OUTPUT_SCALE_FACTOR * 1000 / timeDelta
                        * currentSampleWeight;
                    txSuccessRate = txSuccessRate * lastSampleWeight
                        + (txgood - txSuccess) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (txgood - txSuccess) * OUTPUT_SCALE_FACTOR * 1000 / timeDelta
                        * currentSampleWeight;
                    rxSuccessRate = rxSuccessRate * lastSampleWeight
                        + (rxgood - rxSuccess) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (rxgood - rxSuccess) * OUTPUT_SCALE_FACTOR * 1000 / timeDelta
                        * currentSampleWeight;
                    txRetriesRate = txRetriesRate * lastSampleWeight
                        + (txretries - txRetries) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (txretries - txRetries) * OUTPUT_SCALE_FACTOR * 1000/ timeDelta
                        * currentSampleWeight;
            } else {
                txBadRate = 0;
@@ -446,6 +447,22 @@ public class WifiInfo implements Parcelable {
        return ScanResult.is5GHz(mFrequency);
    }

    /**
     * @hide
     * This returns txSuccessRate in packets per second.
     */
    public double getTxSuccessRatePps() {
        return txSuccessRate / OUTPUT_SCALE_FACTOR;
    }

    /**
     * @hide
     * This returns rxSuccessRate in packets per second.
     */
    public double getRxSuccessRatePps() {
        return rxSuccessRate / OUTPUT_SCALE_FACTOR;
    }

    /**
     * Record the MAC address of the WLAN interface
     * @param macAddress the MAC address in {@code XX:XX:XX:XX:XX:XX} form