blob: b124734ad17669bafadb9304b6794d8a38657662 [file] [log] [blame]
/**
* Copyright (c) 2018, 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;
import android.net.LinkProperties;
import android.net.NetworkCapabilities;
import android.net.PrivateDnsConfigParcel;
/** @hide */
oneway interface INetworkMonitor {
// After a network has been tested this result can be sent with EVENT_NETWORK_TESTED.
// The network should be used as a default internet connection. It was found to be:
// 1. a functioning network providing internet access, or
// 2. a captive portal and the user decided to use it as is.
const int NETWORK_TEST_RESULT_VALID = 0;
// After a network has been tested this result can be sent with EVENT_NETWORK_TESTED.
// The network should not be used as a default internet connection. It was found to be:
// 1. a captive portal and the user is prompted to sign-in, or
// 2. a captive portal and the user did not want to use it, or
// 3. a broken network (e.g. DNS failed, connect failed, HTTP request failed).
const int NETWORK_TEST_RESULT_INVALID = 1;
// After a network has been tested, this result can be sent with EVENT_NETWORK_TESTED.
// The network may be used as a default internet connection, but it was found to be a partial
// connectivity network which can get the pass result for http probe but get the failed result
// for https probe.
const int NETWORK_TEST_RESULT_PARTIAL_CONNECTIVITY = 2;
// Network validation flags indicate probe result and types. If no NETWORK_VALIDATION_RESULT_*
// are set, then it's equal to NETWORK_TEST_RESULT_INVALID. If NETWORK_VALIDATION_RESULT_VALID
// is set, then the network validates and equal to NETWORK_TEST_RESULT_VALID. If
// NETWORK_VALIDATION_RESULT_PARTIAL is set, then the network has partial connectivity which
// is equal to NETWORK_TEST_RESULT_PARTIAL_CONNECTIVITY. Networks receiving validation that both
// do not require validation and are not validated will have NETWORK_VALIDATION_RESULT_SKIPPED
// set. NETWORK_VALIDATION_PROBE_* is set when the specific probe result of the network is
// resolved.
const int NETWORK_VALIDATION_RESULT_VALID = 0x01;
const int NETWORK_VALIDATION_RESULT_PARTIAL = 0x02;
const int NETWORK_VALIDATION_RESULT_SKIPPED = 0x04;
// NETWORK_VALIDATION_RESULT_* and NETWORK_VALIDATION_PROBE_* are independent values sent in
// different ints.
const int NETWORK_VALIDATION_PROBE_DNS = 0x04;
const int NETWORK_VALIDATION_PROBE_HTTP = 0x08;
const int NETWORK_VALIDATION_PROBE_HTTPS = 0x10;
const int NETWORK_VALIDATION_PROBE_FALLBACK = 0x20;
const int NETWORK_VALIDATION_PROBE_PRIVDNS = 0x40;
void start();
void launchCaptivePortalApp();
void notifyCaptivePortalAppFinished(int response);
void setAcceptPartialConnectivity();
void forceReevaluation(int uid);
void notifyPrivateDnsChanged(in PrivateDnsConfigParcel config);
void notifyDnsResponse(int returnCode);
void notifyNetworkConnected(in LinkProperties lp, in NetworkCapabilities nc);
void notifyNetworkDisconnected();
void notifyLinkPropertiesChanged(in LinkProperties lp);
void notifyNetworkCapabilitiesChanged(in NetworkCapabilities nc);
}