| /* |
| * Copyright (C) 2017 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.net.MacAddress; |
| |
| import java.util.StringJoiner; |
| |
| /** |
| * An event logged when NFLOG notifies userspace of a wakeup packet for |
| * watched interfaces. |
| * {@hide} |
| */ |
| public class WakeupEvent { |
| public String iface; |
| public int uid; |
| public int ethertype; |
| public byte[] dstHwAddr; |
| public String srcIp; |
| public String dstIp; |
| public int ipNextHeader; |
| public int srcPort; |
| public int dstPort; |
| public long timestampMs; |
| |
| @Override |
| public String toString() { |
| StringJoiner j = new StringJoiner(", ", "WakeupEvent(", ")"); |
| j.add(String.format("%tT.%tL", timestampMs, timestampMs)); |
| j.add(iface); |
| j.add("uid: " + Integer.toString(uid)); |
| j.add("eth=0x" + Integer.toHexString(ethertype)); |
| j.add("dstHw=" + MacAddress.stringAddrFromByteAddr(dstHwAddr)); |
| if (ipNextHeader > 0) { |
| j.add("ipNxtHdr=" + ipNextHeader); |
| j.add("srcIp=" + srcIp); |
| j.add("dstIp=" + dstIp); |
| if (srcPort > -1) { |
| j.add("srcPort=" + srcPort); |
| } |
| if (dstPort > -1) { |
| j.add("dstPort=" + dstPort); |
| } |
| } |
| return j.toString(); |
| } |
| } |