• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2019 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19package android.stats.connectivity;
20option java_multiple_files = true;
21option java_outer_classname = "NetworkStackProto";
22
23enum DhcpRenewResult {
24    RR_UNKNOWN = 0;
25    RR_SUCCESS = 1;
26    RR_ERROR_NAK = 2;
27    RR_ERROR_IP_MISMATCH = 3;
28    RR_ERROR_IP_EXPIRE = 4;
29}
30
31enum DisconnectCode {
32    DC_NONE = 0;
33    DC_NORMAL_TERMINATION = 1;
34    DC_PROVISIONING_FAIL = 2;
35    DC_ERROR_STARTING_IPV4 = 4;
36    DC_ERROR_STARTING_IPV6 = 5;
37    DC_ERROR_STARTING_IPREACHABILITYMONITOR = 6;
38    DC_INVALID_PROVISIONING = 7;
39    DC_INTERFACE_NOT_FOUND = 8;
40    DC_PROVISIONING_TIMEOUT = 9;
41}
42
43enum TransportType {
44    TT_UNKNOWN = 0;
45    // Indicates this network uses a Cellular transport
46    TT_CELLULAR = 1;
47    // Indicates this network uses a Wi-Fi transport
48    TT_WIFI = 2;
49    // Indicates this network uses a Bluetooth transport
50    TT_BLUETOOTH = 3;
51    // Indicates this network uses an Ethernet transport
52    TT_ETHERNET = 4;
53    // Indicates this network uses a Wi-Fi Aware transport
54    TT_WIFI_AWARE = 5;
55    // Indicates this network uses a LoWPAN transport
56    TT_LOWPAN = 6;
57    // Indicates this network uses a Cellular+VPN transport
58    TT_CELLULAR_VPN = 7;
59    // Indicates this network uses a Wi-Fi+VPN transport
60    TT_WIFI_VPN = 8;
61    // Indicates this network uses a Bluetooth+VPN transport
62    TT_BLUETOOTH_VPN = 9;
63    // Indicates this network uses an Ethernet+VPN transport
64    TT_ETHERNET_VPN = 10;
65    // Indicates this network uses a Wi-Fi+Cellular+VPN transport
66    TT_WIFI_CELLULAR_VPN = 11;
67    // Indicates this network uses for test only
68    TT_TEST = 12;
69}
70
71enum DhcpFeature {
72    DF_UNKNOWN = 0;
73    // DHCP INIT-REBOOT state
74    DF_INITREBOOT = 1;
75    // DHCP rapid commit option
76    DF_RAPIDCOMMIT  = 2;
77    // Duplicate address detection
78    DF_DAD = 3;
79    // Fast initial Link setup
80    DF_FILS = 4;
81}
82
83enum HostnameTransResult {
84    HTR_UNKNOWN = 0;
85    HTR_SUCCESS = 1;
86    HTR_FAILURE = 2;
87    HTR_DISABLE = 3;
88}
89
90enum ProbeResult {
91    PR_UNKNOWN = 0;
92    PR_SUCCESS = 1;
93    PR_FAILURE = 2;
94    PR_PORTAL = 3;
95    // DNS query for the probe host returned a private IP address
96    PR_PRIVATE_IP_DNS = 4;
97}
98
99enum ValidationResult {
100    VR_UNKNOWN = 0;
101    VR_SUCCESS = 1;
102    VR_FAILURE = 2;
103    VR_PORTAL = 3;
104    VR_PARTIAL = 4;
105}
106
107enum ProbeType {
108    PT_UNKNOWN = 0;
109    PT_DNS       = 1;
110    PT_HTTP      = 2;
111    PT_HTTPS     = 3;
112    PT_PAC       = 4;
113    PT_FALLBACK  = 5;
114    PT_PRIVDNS   = 6;
115    PT_CAPPORT_API = 7;
116}
117
118// The Dhcp error code is defined in android.net.metrics.DhcpErrorEvent
119enum DhcpErrorCode {
120    ET_UNKNOWN = 0;
121    ET_L2_ERROR = 1;
122    ET_L3_ERROR = 2;
123    ET_L4_ERROR = 3;
124    ET_DHCP_ERROR = 4;
125    ET_MISC_ERROR = 5;
126    /* Reserve for error type
127    // ET_L2_ERROR_TYPE = ET_L2_ERROR << 8;
128    ET_L2_ERROR_TYPE = 256;
129    // ET_L3_ERROR_TYPE = ET_L3_ERROR << 8;
130    ET_L3_ERROR_TYPE = 512;
131    // ET_L4_ERROR_TYPE = ET_L4_ERROR << 8;
132    ET_L4_ERROR_TYPE = 768;
133    // ET_DHCP_ERROR_TYPE = ET_DHCP_ERROR << 8;
134    ET_DHCP_ERROR_TYPE = 1024;
135    // ET_MISC_ERROR_TYPE = ET_MISC_ERROR << 8;
136    ET_MISC_ERROR_TYPE = 1280;
137    */
138    // ET_L2_TOO_SHORT = (ET_L2_ERROR_TYPE | 0x1) << 16;
139    ET_L2_TOO_SHORT = 16842752;
140    // ET_L2_WRONG_ETH_TYPE = (ET_L2_ERROR_TYPE | 0x2) << 16;
141    ET_L2_WRONG_ETH_TYPE = 16908288;
142    // ET_L3_TOO_SHORT = (ET_L3_ERROR_TYPE | 0x1) << 16;
143    ET_L3_TOO_SHORT = 33619968;
144    // ET_L3_NOT_IPV4 = (ET_L3_ERROR_TYPE | 0x2) << 16;
145    ET_L3_NOT_IPV4 = 33685504;
146    // ET_L3_INVALID_IP = (ET_L3_ERROR_TYPE | 0x3) << 16;
147    ET_L3_INVALID_IP = 33751040;
148    // ET_L4_NOT_UDP = (ET_L4_ERROR_TYPE | 0x1) << 16;
149    ET_L4_NOT_UDP = 50397184;
150    // ET_L4_WRONG_PORT = (ET_L4_ERROR_TYPE | 0x2) << 16;
151    ET_L4_WRONG_PORT = 50462720;
152    // ET_BOOTP_TOO_SHORT = (ET_DHCP_ERROR_TYPE | 0x1) << 16;
153    ET_BOOTP_TOO_SHORT = 67174400;
154    // ET_DHCP_BAD_MAGIC_COOKIE = (ET_DHCP_ERROR_TYPE | 0x2) << 16;
155    ET_DHCP_BAD_MAGIC_COOKIE = 67239936;
156    // ET_DHCP_INVALID_OPTION_LENGTH = (ET_DHCP_ERROR_TYPE | 0x3) << 16;
157    ET_DHCP_INVALID_OPTION_LENGTH = 67305472;
158    // ET_DHCP_NO_MSG_TYPE = (ET_DHCP_ERROR_TYPE | 0x4) << 16;
159    ET_DHCP_NO_MSG_TYPE = 67371008;
160    // ET_DHCP_UNKNOWN_MSG_TYPE = (ET_DHCP_ERROR_TYPE | 0x5) << 16;
161    ET_DHCP_UNKNOWN_MSG_TYPE = 67436544;
162    // ET_DHCP_NO_COOKIE = (ET_DHCP_ERROR_TYPE | 0x6) << 16;
163    ET_DHCP_NO_COOKIE = 67502080;
164    // ET_BUFFER_UNDERFLOW = (ET_MISC_ERROR_TYPE | 0x1) << 16;
165    ET_BUFFER_UNDERFLOW = 83951616;
166    // ET_RECEIVE_ERROR = (ET_MISC_ERROR_TYPE | 0x2) << 16;
167    ET_RECEIVE_ERROR = 84017152;
168    // ET_PARSING_ERROR = (ET_MISC_ERROR_TYPE | 0x3) << 16;
169    ET_PARSING_ERROR = 84082688;
170}
171
172enum NetworkQuirkEvent {
173    QE_UNKNOWN = 0;
174    QE_IPV6_PROVISIONING_ROUTER_LOST = 1;
175}
176
177enum IpType {
178    // Unknown IP address type;
179    UNKNOWN = 0;
180    // IPv4 address;
181    IPV4 = 4;
182    // IPv6 address;
183    IPV6 = 6;
184}
185
186enum NudEventType {
187    // Unknown event type;
188    NUD_EVENT_UNKNOWN = 0;
189    // Forced nud probe after roaming from IpReachabilityMonitor, neighbor is unreachable;
190    NUD_POST_ROAMING_FAILED = 1;
191    // Forced nud probe after roaming from IpReachabilityMonitor, neighbor is unreachable and
192    // IP provisioning lost;
193    NUD_POST_ROAMING_FAILED_CRITICAL = 2;
194    // Forced nud probe after receiving CMD_CONFIRM from IpReachabilityMonitor, neighbor is
195    // unreachable;
196    NUD_CONFIRM_FAILED = 3;
197    // Forced nud probe after receiving CMD_CONFIRM from IpReachabilityMonitor, neighbor is
198    // unreachable and IP provisioning lost;
199    NUD_CONFIRM_FAILED_CRITICAL = 4;
200    // Neighbor unreachable notification from kernel;
201    NUD_ORGANIC_FAILED = 5;
202    // Neighbor unreachable notification from kernel, and IP provisioning is also lost;
203    NUD_ORGANIC_FAILED_CRITICAL = 6;
204    // NUD probe failure due to neighbor's MAC address has changed.
205    NUD_MAC_ADDRESS_CHANGED = 7;
206}
207
208enum NudNeighborType {
209    // Unknown neighbor type;
210    NUD_NEIGHBOR_UNKNOWN = 0;
211    // Neighbor is default gateway;
212    NUD_NEIGHBOR_GATEWAY = 1;
213    // Neighbor is DNS server;
214    NUD_NEIGHBOR_DNS = 2;
215    // Neighbor is both the default gateway and DNS server;
216    NUD_NEIGHBOR_BOTH = 3;
217}
218
219message NetworkStackEventData {
220
221}
222
223