summaryrefslogtreecommitdiff
path: root/common/networkstackclient/src
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2020-04-24 12:19:37 +0000
committerRemi NGUYEN VAN <reminv@google.com>2020-04-28 08:10:04 +0000
commit812baf3e3a5bd0a7cfdaf4b96c8ae190a36b7d30 (patch)
tree1a96fb09ca1564271d15cbb9130a372aa8b46251 /common/networkstackclient/src
parent90b9ebe5f6cf77435373ebab0e14770a8bcc0d4d (diff)
Address comments on NetworkStack AIDL v6
Address issues found during AIDL review: - Rename clientAddr to singleClientAddr - Do not use a ParcelableBundle for notifyNetworkTested or notifyDataStallSuspected; instead use AIDL parcelables for stronger backwards compatibility guarantees. As part of moving notifyNetworkTested to using a parcelable the test result int is split into two: the actual evaluation result, and the probesSucceeded int. It used to contain both as a bit mask, which does not make sense if probesAttempted is in a separate int itself. Test: atest NetworkMonitorTest ConnectivityServiceTest ConnectivityServiceIntegrationTest, manual Bug: 153500847 Merged-In: I4aac6ff7432472f8a9345fb5785c6314ec8946e4 Change-Id: I4aac6ff7432472f8a9345fb5785c6314ec8946e4
Diffstat (limited to 'common/networkstackclient/src')
-rw-r--r--common/networkstackclient/src/android/net/DataStallReportParcelable.aidl48
-rw-r--r--common/networkstackclient/src/android/net/INetworkMonitorCallbacks.aidl22
-rw-r--r--common/networkstackclient/src/android/net/NetworkTestResultParcelable.aidl45
-rw-r--r--common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl2
4 files changed, 105 insertions, 12 deletions
diff --git a/common/networkstackclient/src/android/net/DataStallReportParcelable.aidl b/common/networkstackclient/src/android/net/DataStallReportParcelable.aidl
new file mode 100644
index 0000000..c5ba19d
--- /dev/null
+++ b/common/networkstackclient/src/android/net/DataStallReportParcelable.aidl
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * 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
+ *
+ * http://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 perNmissions and
+ * limitations under the License.
+ */
+
+package android.net;
+
+parcelable DataStallReportParcelable {
+ /**
+ * Timestamp of the report, relative to SystemClock.elapsedRealtime().
+ */
+ long timestampMillis = 0;
+
+ /**
+ * Detection method of the data stall, one of DataStallReport.DETECTION_METHOD_*.
+ */
+ int detectionMethod = 1;
+
+ /**
+ * @see android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_PACKET_FAIL_RATE.
+ * Only set if the detection method is TCP, otherwise 0.
+ */
+ int tcpPacketFailRate = 2;
+
+ /**
+ * @see android.net.ConnectivityDiagnosticsManager.DataStallReport
+ * .KEY_TCP_METRICS_COLLECTION_PERIOD_MILLIS.
+ * Only set if the detection method is TCP, otherwise 0.
+ */
+ int tcpMetricsCollectionPeriodMillis = 3;
+
+ /**
+ * @see android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_DNS_CONSECUTIVE_TIMEOUTS.
+ * Only set if the detection method is DNS, otherwise 0.
+ */
+ int dnsConsecutiveTimeouts = 4;
+} \ No newline at end of file
diff --git a/common/networkstackclient/src/android/net/INetworkMonitorCallbacks.aidl b/common/networkstackclient/src/android/net/INetworkMonitorCallbacks.aidl
index f57a8f7..79eb95a 100644
--- a/common/networkstackclient/src/android/net/INetworkMonitorCallbacks.aidl
+++ b/common/networkstackclient/src/android/net/INetworkMonitorCallbacks.aidl
@@ -17,22 +17,22 @@
package android.net;
import android.net.CaptivePortalData;
+import android.net.DataStallReportParcelable;
import android.net.INetworkMonitor;
+import android.net.NetworkTestResultParcelable;
import android.net.PrivateDnsConfigParcel;
/** @hide */
oneway interface INetworkMonitorCallbacks {
- void onNetworkMonitorCreated(in INetworkMonitor networkMonitor);
+ void onNetworkMonitorCreated(in INetworkMonitor networkMonitor) = 0;
// Deprecated. Use notifyNetworkTestedWithExtras() instead.
- void notifyNetworkTested(int testResult, @nullable String redirectUrl);
- void notifyPrivateDnsConfigResolved(in PrivateDnsConfigParcel config);
- void showProvisioningNotification(String action, String packageName);
- void hideProvisioningNotification();
- void notifyProbeStatusChanged(int probesCompleted, int probesSucceeded);
- void notifyNetworkTestedWithExtras(int testResult, @nullable String redirectUrl,
- long timestampMillis, in PersistableBundle extras);
- void notifyDataStallSuspected(long timestampMillis, int detectionMethod,
- in PersistableBundle extras);
- void notifyCaptivePortalDataChanged(in CaptivePortalData data);
+ void notifyNetworkTested(int testResult, @nullable String redirectUrl) = 1;
+ void notifyPrivateDnsConfigResolved(in PrivateDnsConfigParcel config) = 2;
+ void showProvisioningNotification(String action, String packageName) = 3;
+ void hideProvisioningNotification() = 4;
+ void notifyProbeStatusChanged(int probesCompleted, int probesSucceeded) = 5;
+ void notifyNetworkTestedWithExtras(in NetworkTestResultParcelable result) = 6;
+ void notifyDataStallSuspected(in DataStallReportParcelable report) = 7;
+ void notifyCaptivePortalDataChanged(in CaptivePortalData data) = 8;
} \ No newline at end of file
diff --git a/common/networkstackclient/src/android/net/NetworkTestResultParcelable.aidl b/common/networkstackclient/src/android/net/NetworkTestResultParcelable.aidl
new file mode 100644
index 0000000..93efd73
--- /dev/null
+++ b/common/networkstackclient/src/android/net/NetworkTestResultParcelable.aidl
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * 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
+ *
+ * http://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 perNmissions and
+ * limitations under the License.
+ */
+
+package android.net;
+
+parcelable NetworkTestResultParcelable {
+ /**
+ * Timestamp of the evaluation, as determined by to SystemClock.elapsedRealtime().
+ */
+ long timestampMillis;
+
+ /**
+ * Result of the evaluation, as a bitmask of INetworkMonitor.NETWORK_VALIDATION_RESULT_*.
+ */
+ int result;
+
+ /**
+ * List of succeeded probes, as a bitmask of INetworkMonitor.NETWORK_VALIDATION_PROBE_* flags.
+ */
+ int probesSucceeded;
+
+ /**
+ * List of attempted probes, as a bitmask of INetworkMonitor.NETWORK_VALIDATION_PROBE_* flags.
+ */
+ int probesAttempted;
+
+ /**
+ * If the evaluation detected a captive portal, the URL that can be used to login to that
+ * portal. Otherwise null.
+ */
+ String redirectUrl;
+} \ No newline at end of file
diff --git a/common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl b/common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl
index 1ba0195..503ccaa 100644
--- a/common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl
+++ b/common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl
@@ -26,6 +26,6 @@ parcelable DhcpServingParamsParcel {
long dhcpLeaseTimeSecs;
int linkMtu;
boolean metered;
- int clientAddr;
+ int singleClientAddr;
boolean changePrefixOnDecline;
}