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