/* * 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. */ syntax = "proto2"; package android.service; import "frameworks/base/libs/incident/proto/android/privacy.proto"; option java_multiple_files = true; option java_outer_classname = "NetworkStatsServiceProto"; // Represents dumpsys from NetworkStatsService (netstats). message NetworkStatsServiceDumpProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; repeated NetworkInterfaceProto active_interfaces = 1; repeated NetworkInterfaceProto active_uid_interfaces = 2; // Device level network stats, which may include non-IP layer traffic. optional NetworkStatsRecorderProto dev_stats = 3; // IP-layer traffic stats. optional NetworkStatsRecorderProto xt_stats = 4; // Per-UID network stats. optional NetworkStatsRecorderProto uid_stats = 5; // Per-UID, per-tag network stats, excluding the default tag (i.e. tag=0). optional NetworkStatsRecorderProto uid_tag_stats = 6; } // Corresponds to NetworkStatsService.mActiveIfaces/mActiveUidIfaces. message NetworkInterfaceProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; optional string interface = 1; optional NetworkIdentitySetProto identities = 2; } // Corresponds to NetworkIdentitySet. message NetworkIdentitySetProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; repeated NetworkIdentityProto identities = 1; } // Corresponds to NetworkIdentity. message NetworkIdentityProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; // Constats from ConnectivityManager.TYPE_*. optional int32 type = 1; optional string subscriber_id = 2 [ (android.privacy).dest = DEST_EXPLICIT ]; optional string network_id = 3 [ (android.privacy).dest = DEST_EXPLICIT ]; optional bool roaming = 4; optional bool metered = 5; optional bool default_network = 6; } // Corresponds to NetworkStatsRecorder. message NetworkStatsRecorderProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; optional int64 pending_total_bytes = 1; optional NetworkStatsCollectionProto complete_history = 2; } // Corresponds to NetworkStatsCollection. message NetworkStatsCollectionProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; repeated NetworkStatsCollectionStatsProto stats = 1; } // Corresponds to NetworkStatsCollection.mStats. message NetworkStatsCollectionStatsProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; optional NetworkStatsCollectionKeyProto key = 1; optional NetworkStatsHistoryProto history = 2; } // Corresponds to NetworkStatsCollection.Key. message NetworkStatsCollectionKeyProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; optional NetworkIdentitySetProto identity = 1; optional int32 uid = 2; optional int32 set = 3; optional int32 tag = 4; } // Corresponds to NetworkStatsHistory. message NetworkStatsHistoryProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; // Duration for this bucket in milliseconds. optional int64 bucket_duration_ms = 1; repeated NetworkStatsHistoryBucketProto buckets = 2; } // Corresponds to each bucket in NetworkStatsHistory. message NetworkStatsHistoryBucketProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; // Bucket start time in milliseconds since epoch. optional int64 bucket_start_ms = 1; optional int64 rx_bytes = 2; optional int64 rx_packets = 3; optional int64 tx_bytes = 4; optional int64 tx_packets = 5; optional int64 operations = 6; }