Add new netd event callback for changes to NAT64 prefix

Bug: 78545619
Test: system/netd/tests/runtests.sh pass
Test: Register a callback in ConnectivityService temporarily and print out
event parameters. Check event parameters as expected in logs while NAT64 prefix
is added and removed.

Change-Id: I11b2b0aeb159d5fe8dc01ccf6dc64bd9d4d960a5
This commit is contained in:
nuccachen
2018-07-30 17:29:45 +08:00
committed by Hungming Chen
parent fbb102ea84
commit 6e81f2a7dc
3 changed files with 33 additions and 0 deletions

View File

@@ -44,6 +44,20 @@ oneway interface INetdEventCallback {
void onDnsEvent(int netId, int eventType, int returnCode, String hostname,
in String[] ipAddresses, int ipAddressesCount, long timestamp, int uid);
/**
* Represents adding or removing a NAT64 prefix.
* This method must not block or perform long-running operations.
*
* @param netId the ID of the network the prefix was performed on.
* @param added true if the NAT64 prefix was added, or false if the NAT64 prefix was removed.
* There is only one prefix at a time for each netId. If a prefix is added, it replaces
* the previous-added prefix.
* @param prefixString the detected NAT64 prefix as a string literal.
* @param prefixLength the prefix length associated with this NAT64 prefix.
*/
void onNat64PrefixEvent(int netId, boolean added, @utf8InCpp String prefixString,
int prefixLength);
/**
* Represents a private DNS validation success or failure.
* This method must not block or perform long-running operations.

View File

@@ -31,6 +31,12 @@ public class BaseNetdEventCallback extends INetdEventCallback.Stub {
// default no-op
}
@Override
public void onNat64PrefixEvent(int netId, boolean added, String prefixString,
int prefixLength) {
// default no-op
}
@Override
public void onPrivateDnsValidationEvent(int netId, String ipAddress,
String hostname, boolean validated) {

View File

@@ -214,6 +214,19 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
}
}
@Override
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.
public synchronized void onNat64PrefixEvent(int netId,
boolean added, String prefixString, int prefixLength)
throws RemoteException {
for (INetdEventCallback callback : mNetdEventCallbackList) {
if (callback != null) {
callback.onNat64PrefixEvent(netId, added, prefixString, prefixLength);
}
}
}
@Override
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.