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

Commit 75f03461 authored by Hugo Benichi's avatar Hugo Benichi Committed by Android (Google) Code Review
Browse files

Merge "Various fixes in IpReachability event logging" into nyc-dev

parents 333e808b 25bf8f5d
Loading
Loading
Loading
Loading
+13 −27
Original line number Diff line number Diff line
@@ -26111,9 +26111,10 @@ package android.net.metrics {
    field public static final int IPCE_IPMGR_PROVISIONING_FAIL = 4097; // 0x1001
    field public static final int IPCE_IPMGR_PROVISIONING_OK = 4096; // 0x1000
    field public static final int IPCE_IPRM_BASE = 0; // 0x0
    field public static final int IPCE_IPRM_MESSAGE_RECEIVED = 1; // 0x1
    field public static final int IPCE_IPRM_PROBE_RESULT = 0; // 0x0
    field public static final int IPCE_IPRM_REACHABILITY_LOST = 2; // 0x2
    field public static final int IPCE_IPRM_NUD_FAILED = 2; // 0x2
    field public static final int IPCE_IPRM_PROBE_FAILURE = 1; // 0x1
    field public static final int IPCE_IPRM_PROBE_STARTED = 0; // 0x0
    field public static final int IPCE_IPRM_PROVISIONING_LOST = 3; // 0x3
    field public static final int IPCE_NETMON_BASE = 2048; // 0x800
    field public static final int IPCE_NETMON_CHECK_RESULT = 2049; // 0x801
    field public static final int IPCE_NETMON_STATE_CHANGE = 2048; // 0x800
@@ -26128,35 +26129,20 @@ package android.net.metrics {
    field public final java.lang.String ifName;
  }
  public final class IpReachabilityMonitorLostEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
  public final class IpReachabilityEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
    method public int describeContents();
    method public static void logEvent(java.lang.String);
    method public static void logNudFailed(java.lang.String);
    method public static void logProbeEvent(java.lang.String, int);
    method public static void logProvisioningLost(java.lang.String);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.net.metrics.IpReachabilityMonitorLostEvent> CREATOR;
    field public static final android.os.Parcelable.Creator<android.net.metrics.IpReachabilityEvent> CREATOR;
    field public static final int NUD_FAILED = 512; // 0x200
    field public static final int PROBE = 256; // 0x100
    field public static final int PROVISIONING_LOST = 768; // 0x300
    field public final int eventType;
    field public final java.lang.String ifName;
  }
  public final class IpReachabilityMonitorMessageEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
    method public int describeContents();
    method public static void logEvent(java.lang.String, java.lang.String, int, int);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.net.metrics.IpReachabilityMonitorMessageEvent> CREATOR;
    field public final java.lang.String destination;
    field public final java.lang.String ifName;
    field public final int msgType;
    field public final int nudState;
  }
  public final class IpReachabilityMonitorProbeEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
    method public int describeContents();
    method public static void logEvent(java.lang.String, java.lang.String, boolean);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.net.metrics.IpReachabilityMonitorProbeEvent> CREATOR;
    field public final java.lang.String destination;
    field public final java.lang.String ifName;
    field public final boolean success;
  }
}
package android.net.nsd {
+4 −3
Original line number Diff line number Diff line
@@ -39,9 +39,10 @@ public abstract class IpConnectivityEvent {
    public static final int IPCE_IPMGR_BASE                = 4 * 1024;
    public static final int IPCE_DNS_BASE                  = 5 * 1024;

    public static final int IPCE_IPRM_PROBE_RESULT         = IPCE_IPRM_BASE + 0;
    public static final int IPCE_IPRM_MESSAGE_RECEIVED     = IPCE_IPRM_BASE + 1;
    public static final int IPCE_IPRM_REACHABILITY_LOST    = IPCE_IPRM_BASE + 2;
    public static final int IPCE_IPRM_PROBE_STARTED        = IPCE_IPRM_BASE + 0;
    public static final int IPCE_IPRM_PROBE_FAILURE        = IPCE_IPRM_BASE + 1;
    public static final int IPCE_IPRM_NUD_FAILED           = IPCE_IPRM_BASE + 2;
    public static final int IPCE_IPRM_PROVISIONING_LOST    = IPCE_IPRM_BASE + 3;

    public static final int IPCE_DHCP_RECV_ERROR           = IPCE_DHCP_BASE + 0;
    public static final int IPCE_DHCP_PARSE_ERROR          = IPCE_DHCP_BASE + 1;
+84 −0
Original line number Diff line number Diff line
@@ -24,38 +24,61 @@ import android.os.Parcelable;
 * {@hide}
 */
@SystemApi
public final class IpReachabilityMonitorLostEvent extends IpConnectivityEvent
        implements Parcelable {
public final class IpReachabilityEvent extends IpConnectivityEvent implements Parcelable {

    public static final int PROBE             = 1 << 8;
    public static final int NUD_FAILED        = 2 << 8;
    public static final int PROVISIONING_LOST = 3 << 8;

    public final String ifName;
    // eventType byte format (MSB to LSB):
    // byte 0: unused
    // byte 1: unused
    // byte 2: type of event: PROBE, NUD_FAILED, PROVISIONING_LOST
    // byte 3: kernel errno from RTNetlink or IpReachabilityMonitor
    public final int eventType;

    private IpReachabilityMonitorLostEvent(String ifName) {
    private IpReachabilityEvent(String ifName, int eventType) {
        this.ifName = ifName;
        this.eventType = eventType;
    }

    private IpReachabilityMonitorLostEvent(Parcel in) {
    private IpReachabilityEvent(Parcel in) {
        this.ifName = in.readString();
        this.eventType = in.readInt();
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeString(ifName);
        out.writeInt(eventType);
    }

    public int describeContents() {
        return 0;
    }

    public static final Parcelable.Creator<IpReachabilityMonitorLostEvent> CREATOR
        = new Parcelable.Creator<IpReachabilityMonitorLostEvent>() {
        public IpReachabilityMonitorLostEvent createFromParcel(Parcel in) {
            return new IpReachabilityMonitorLostEvent(in);
    public static final Parcelable.Creator<IpReachabilityEvent> CREATOR
        = new Parcelable.Creator<IpReachabilityEvent>() {
        public IpReachabilityEvent createFromParcel(Parcel in) {
            return new IpReachabilityEvent(in);
        }

        public IpReachabilityMonitorLostEvent[] newArray(int size) {
            return new IpReachabilityMonitorLostEvent[size];
        public IpReachabilityEvent[] newArray(int size) {
            return new IpReachabilityEvent[size];
        }
    };

    public static void logEvent(String ifName) {
        logEvent(IPCE_IPRM_REACHABILITY_LOST, new IpReachabilityMonitorLostEvent(ifName));
    public static void logProbeEvent(String ifName, int nlErrorCode) {
        final int tag = (nlErrorCode == 0) ? IPCE_IPRM_PROBE_STARTED : IPCE_IPRM_PROBE_FAILURE;
        final int eventType = PROBE | (nlErrorCode & 0xFF);
        logEvent(tag, new IpReachabilityEvent(ifName, eventType));
    }

    public static void logNudFailed(String ifName) {
        logEvent(IPCE_IPRM_NUD_FAILED, new IpReachabilityEvent(ifName, NUD_FAILED));
    }

    public static void logProvisioningLost(String ifName) {
        logEvent(IPCE_IPRM_PROVISIONING_LOST, new IpReachabilityEvent(ifName, PROVISIONING_LOST));
    }
};
+0 −75
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 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 permissions and
 * limitations under the License.
 */

package android.net.metrics;

import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

/**
 * {@hide}
 */
@SystemApi
public final class IpReachabilityMonitorMessageEvent extends IpConnectivityEvent
        implements Parcelable {
    public final String ifName;
    public final String destination;
    public final int msgType;
    public final int nudState;

    private IpReachabilityMonitorMessageEvent(String ifName, String destination, int msgType,
            int nudState) {
        this.ifName = ifName;
        this.destination = destination;
        this.msgType = msgType;
        this.nudState = nudState;
    }

    private IpReachabilityMonitorMessageEvent(Parcel in) {
        this.ifName = in.readString();
        this.destination = in.readString();
        this.msgType = in.readInt();
        this.nudState = in.readInt();
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeString(ifName);
        out.writeString(destination);
        out.writeInt(msgType);
        out.writeInt(nudState);
    }

    public int describeContents() {
        return 0;
    }

    public static final Parcelable.Creator<IpReachabilityMonitorMessageEvent> CREATOR
        = new Parcelable.Creator<IpReachabilityMonitorMessageEvent>() {
        public IpReachabilityMonitorMessageEvent createFromParcel(Parcel in) {
            return new IpReachabilityMonitorMessageEvent(in);
        }

        public IpReachabilityMonitorMessageEvent[] newArray(int size) {
            return new IpReachabilityMonitorMessageEvent[size];
        }
    };

    public static void logEvent(String ifName, String destination, int msgType, int nudState) {
        logEvent(IPCE_IPRM_MESSAGE_RECEIVED,
                new IpReachabilityMonitorMessageEvent(ifName, destination, msgType, nudState));
    }
};
+0 −70
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 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 permissions and
 * limitations under the License.
 */

package android.net.metrics;

import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

/**
 * {@hide}
 */
@SystemApi
public final class IpReachabilityMonitorProbeEvent extends IpConnectivityEvent
        implements Parcelable {
    public final String ifName;
    public final String destination;
    public final boolean success;

    private IpReachabilityMonitorProbeEvent(String ifName, String destination, boolean success) {
        this.ifName = ifName;
        this.destination = destination;
        this.success = success;
    }

    private IpReachabilityMonitorProbeEvent(Parcel in) {
        this.ifName = in.readString();
        this.destination = in.readString();
        this.success = in.readByte() > 0 ? true : false;
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeString(ifName);
        out.writeString(destination);
        out.writeByte((byte)(success ? 1 : 0));
    }

    public int describeContents() {
        return 0;
    }

    public static final Parcelable.Creator<IpReachabilityMonitorProbeEvent> CREATOR
        = new Parcelable.Creator<IpReachabilityMonitorProbeEvent>() {
        public IpReachabilityMonitorProbeEvent createFromParcel(Parcel in) {
            return new IpReachabilityMonitorProbeEvent(in);
        }

        public IpReachabilityMonitorProbeEvent[] newArray(int size) {
            return new IpReachabilityMonitorProbeEvent[size];
        }
    };

    public static void logEvent(String ifName, String destination, boolean success) {
        logEvent(IPCE_IPRM_PROBE_RESULT,
                new IpReachabilityMonitorProbeEvent(ifName, destination, success));
    }
};
Loading