Loading proto/src/ipconnectivity.proto +58 −9 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ option java_outer_classname = "IpConnectivityLogClass"; // NetworkId represents the id given by the system to a physical network on the // Android device. It is used to relates events to each other for devices with // multiple networks (WiFi, 4G, ...). // Deprecated since version 3, replaced by top-level network_id field in // IpConnectivityEvent. message NetworkId { // Every network gets assigned a network_id on creation based on order of // creation. Thus network_id N is assigned to the network created directly Loading Loading @@ -91,7 +93,8 @@ message IpReachabilityEvent { // This message is associated to android.net.metrics.NetworkEvent. message NetworkEvent { // The id of the network on which this event happened. optional NetworkId network_id = 1; // Deprecated since version 3. optional NetworkId network_id = 1 [deprecated = true]; // The type of network event, represented by NETWORK_* constants defined in // android.net.metrics.NetworkEvent. Loading @@ -107,7 +110,8 @@ message NetworkEvent { // This message is associated to android.net.metrics.ValidationProbeEvent. message ValidationProbeEvent { // The id of the network for which the probe was sent. optional NetworkId network_id = 1; // Deprecated since version 3. optional NetworkId network_id = 1 [deprecated = true]; // The time it took for that probe to complete or time out. optional int32 latency_ms = 2; Loading Loading @@ -167,18 +171,28 @@ message DNSLatencies { // Represents latency and errno statistics of the connect() system call. // Since version 2. // Next tag: 7 message ConnectStatistics { // The number of connect() operations recorded. optional int32 connect_count = 1; // The number of connect() operations done in blocking mode. // Since version 3. optional int32 connect_blocking_count = 5; // The number of connect() operations with IPv6 socket address. optional int32 ipv6_addr_count = 2; // The time it took for each successful connect() operation to complete. // The number of repeated values can be less than connect_count in case of // event rate-limiting. // The time it took for successful blocking connect() operations to complete // The number of repeated values can be less than connect_blocking_count in // case of event rate-limiting. repeated int32 latencies_ms = 3; // The time it took for successful connect() operation to complete in // non-blocking mode. The number of repeated values can be less than // connect_count - connect_blocking_count in case of event rate-limiting. repeated int32 non_blocking_latencies_ms = 6; // Counts of all error values returned by failed connect() operations. // The Pair key field is the errno code. The Pair value field is the count // for that errno code. Loading Loading @@ -212,10 +226,15 @@ message DHCPEvent { // Represents the generation of an Android Packet Filter program. // Since version 1. // Next tag: 8 message ApfProgramEvent { // Lifetime of the program in seconds. // Maximum lifetime of the program in seconds. optional int64 lifetime = 1; // Effective lifetime of the program in seconds from the time the // program was installed to the time it was replaced or removed. optional int64 effective_lifetime = 7; // Number of RAs filtered by the APF program. optional int32 filtered_ras = 2; Loading @@ -236,6 +255,7 @@ message ApfProgramEvent { // Represents Router Advertisement listening statistics for an interface with // Android Packet Filter enabled. // Since version 1. // Next tag: 12 message ApfStatistics { // The time interval in milliseconds these stastistics cover. optional int64 duration_ms = 1; Loading @@ -261,6 +281,14 @@ message ApfStatistics { // The maximum APF program size in byte advertised by hardware. optional int32 max_program_size = 9; // The total number of successful APF program updates triggered by any state // change in ApfFilter. Since version 3. optional int32 program_updates_all = 10; // The total number of APF program updates triggered when disabling the // multicast filter. Since version 3. optional int32 program_updates_allowing_multicast = 11; } // Represents the reception of a Router Advertisement packet for an interface Loading Loading @@ -308,7 +336,7 @@ message IpProvisioningEvent { } // Represents one of the IP connectivity event defined in this file. // Next tag: 16 // Next tag: 19 message IpConnectivityEvent { // Time in ms when the event was recorded. optional int64 time_ms = 1; Loading @@ -318,7 +346,27 @@ message IpConnectivityEvent { // Since version 2. optional LinkLayer link_layer = 15; // Event type. // Represents the id given by the system to a physical network on the device. // Every network gets assigned a unique id on creation from a monotonic // counter. The value 0 is never assigned to a network and means no network. // It is used to correlate different types of events to each other for devices // with multiple networks (WiFi, 4G, ...). // Since version 3. optional int32 network_id = 16; // The interface name (wlan, rmnet, lo, ...) on which the event happened. // Present if the link_layer field was not inferred from the if_name on // the device, so that post-processing of the serialized proto can backfill // link_layer. Since version 3. optional string if_name = 17; // The transport types of the network on which the event happened, expressed // as a bit field of TRANSPORT_* constants as defined in NetworkCapabilities. // Present if the link_layer field was not inferred from the transport types, // so that post-processing of the serialized proto can backfill link_layer // Since version 3. optional int64 transports = 18; oneof event { // An event about the system default network. Loading Loading @@ -371,9 +419,10 @@ message IpConnectivityLog { optional int32 dropped_events = 2; // The version number of the metrics events being collected. // nyc-dev: not populated, implicitly 0. // nyc: not populated, implicitly 0. // nyc-dr1: not populated, implicitly 1 (sailfish and marlin only). // nyc-mr1: not populated, implicitly 1. // nyc-mr2: 2. // oc: 3. optional int32 version = 3; }; tests/net/java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java +37 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.test.suitebuilder.annotation.SmallTest; import java.util.Arrays; import junit.framework.TestCase; // TODO: instead of comparing textpb to textpb, parse textpb and compare proto to proto. public class IpConnectivityEventBuilderTest extends TestCase { @SmallTest Loading @@ -58,8 +59,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " default_network_event <", " network_id <", " network_id: 102", Loading Loading @@ -89,8 +93,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " dhcp_event <", " duration_ms: 192", " if_name: \"wlan0\"", Loading @@ -112,8 +119,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " dhcp_event <", " duration_ms: 0", " if_name: \"wlan0\"", Loading @@ -137,8 +147,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " dns_lookup_batch <", " event_types: 1", " event_types: 1", Loading Loading @@ -185,8 +198,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " ip_provisioning_event <", " event_type: 1", " if_name: \"wlan0\"", Loading @@ -208,8 +224,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " ip_reachability_event <", " event_type: 512", " if_name: \"wlan0\"", Loading @@ -231,8 +250,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " network_event <", " event_type: 5", " latency_ms: 20410", Loading @@ -258,8 +280,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " validation_probe_event <", " latency_ms: 40730", " network_id <", Loading Loading @@ -287,11 +312,15 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " apf_program_event <", " current_ras: 9", " drop_multicast: true", " effective_lifetime: 0", " filtered_ras: 7", " has_ipv4_addr: true", " lifetime: 200", Loading Loading @@ -319,8 +348,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " apf_statistics <", " dropped_ras: 2", " duration_ms: 45000", Loading @@ -328,6 +360,8 @@ public class IpConnectivityEventBuilderTest extends TestCase { " max_program_size: 2048", " parse_errors: 2", " program_updates: 4", " program_updates_all: 0", " program_updates_allowing_multicast: 0", " received_ras: 10", " zero_lifetime_ras: 1", " >", Loading @@ -351,8 +385,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " ra_event <", " dnssl_lifetime: -1", " prefix_preferred_lifetime: 300", Loading tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ public class IpConnectivityMetricsTest extends TestCase { @SmallTest public void testEndToEndLogging() { // TODO: instead of comparing textpb to textpb, parse textpb and compare proto to proto. IpConnectivityLog logger = new IpConnectivityLog(mService.impl); Parcelable[] events = { Loading @@ -158,16 +159,22 @@ public class IpConnectivityMetricsTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 100", " transports: 0", " ip_reachability_event <", " event_type: 512", " if_name: \"wlan0\"", " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 200", " transports: 0", " dhcp_event <", " duration_ms: 192", " if_name: \"wlan0\"", Loading @@ -175,8 +182,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 300", " transports: 0", " default_network_event <", " network_id <", " network_id: 102", Loading @@ -191,8 +201,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 400", " transports: 0", " ip_provisioning_event <", " event_type: 1", " if_name: \"wlan0\"", Loading @@ -200,8 +213,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 500", " transports: 0", " validation_probe_event <", " latency_ms: 40730", " network_id <", Loading @@ -212,8 +228,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 600", " transports: 0", " apf_statistics <", " dropped_ras: 2", " duration_ms: 45000", Loading @@ -221,13 +240,18 @@ public class IpConnectivityMetricsTest extends TestCase { " max_program_size: 2048", " parse_errors: 2", " program_updates: 4", " program_updates_all: 0", " program_updates_allowing_multicast: 0", " received_ras: 10", " zero_lifetime_ras: 1", " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 700", " transports: 0", " ra_event <", " dnssl_lifetime: -1", " prefix_preferred_lifetime: 300", Loading tests/net/java/com/android/server/connectivity/NetdEventListenerServiceTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -213,9 +213,13 @@ public class NetdEventListenerServiceTest extends TestCase { IpConnectivityEvent got = events.get(0); String want = String.join("\n", "if_name: \"\"", "link_layer: 0", "network_id: 0", "time_ms: 0", "transports: 0", "connect_statistics <", " connect_blocking_count: 0", " connect_count: 12", " errnos_counters <", " key: 1", Loading Loading
proto/src/ipconnectivity.proto +58 −9 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ option java_outer_classname = "IpConnectivityLogClass"; // NetworkId represents the id given by the system to a physical network on the // Android device. It is used to relates events to each other for devices with // multiple networks (WiFi, 4G, ...). // Deprecated since version 3, replaced by top-level network_id field in // IpConnectivityEvent. message NetworkId { // Every network gets assigned a network_id on creation based on order of // creation. Thus network_id N is assigned to the network created directly Loading Loading @@ -91,7 +93,8 @@ message IpReachabilityEvent { // This message is associated to android.net.metrics.NetworkEvent. message NetworkEvent { // The id of the network on which this event happened. optional NetworkId network_id = 1; // Deprecated since version 3. optional NetworkId network_id = 1 [deprecated = true]; // The type of network event, represented by NETWORK_* constants defined in // android.net.metrics.NetworkEvent. Loading @@ -107,7 +110,8 @@ message NetworkEvent { // This message is associated to android.net.metrics.ValidationProbeEvent. message ValidationProbeEvent { // The id of the network for which the probe was sent. optional NetworkId network_id = 1; // Deprecated since version 3. optional NetworkId network_id = 1 [deprecated = true]; // The time it took for that probe to complete or time out. optional int32 latency_ms = 2; Loading Loading @@ -167,18 +171,28 @@ message DNSLatencies { // Represents latency and errno statistics of the connect() system call. // Since version 2. // Next tag: 7 message ConnectStatistics { // The number of connect() operations recorded. optional int32 connect_count = 1; // The number of connect() operations done in blocking mode. // Since version 3. optional int32 connect_blocking_count = 5; // The number of connect() operations with IPv6 socket address. optional int32 ipv6_addr_count = 2; // The time it took for each successful connect() operation to complete. // The number of repeated values can be less than connect_count in case of // event rate-limiting. // The time it took for successful blocking connect() operations to complete // The number of repeated values can be less than connect_blocking_count in // case of event rate-limiting. repeated int32 latencies_ms = 3; // The time it took for successful connect() operation to complete in // non-blocking mode. The number of repeated values can be less than // connect_count - connect_blocking_count in case of event rate-limiting. repeated int32 non_blocking_latencies_ms = 6; // Counts of all error values returned by failed connect() operations. // The Pair key field is the errno code. The Pair value field is the count // for that errno code. Loading Loading @@ -212,10 +226,15 @@ message DHCPEvent { // Represents the generation of an Android Packet Filter program. // Since version 1. // Next tag: 8 message ApfProgramEvent { // Lifetime of the program in seconds. // Maximum lifetime of the program in seconds. optional int64 lifetime = 1; // Effective lifetime of the program in seconds from the time the // program was installed to the time it was replaced or removed. optional int64 effective_lifetime = 7; // Number of RAs filtered by the APF program. optional int32 filtered_ras = 2; Loading @@ -236,6 +255,7 @@ message ApfProgramEvent { // Represents Router Advertisement listening statistics for an interface with // Android Packet Filter enabled. // Since version 1. // Next tag: 12 message ApfStatistics { // The time interval in milliseconds these stastistics cover. optional int64 duration_ms = 1; Loading @@ -261,6 +281,14 @@ message ApfStatistics { // The maximum APF program size in byte advertised by hardware. optional int32 max_program_size = 9; // The total number of successful APF program updates triggered by any state // change in ApfFilter. Since version 3. optional int32 program_updates_all = 10; // The total number of APF program updates triggered when disabling the // multicast filter. Since version 3. optional int32 program_updates_allowing_multicast = 11; } // Represents the reception of a Router Advertisement packet for an interface Loading Loading @@ -308,7 +336,7 @@ message IpProvisioningEvent { } // Represents one of the IP connectivity event defined in this file. // Next tag: 16 // Next tag: 19 message IpConnectivityEvent { // Time in ms when the event was recorded. optional int64 time_ms = 1; Loading @@ -318,7 +346,27 @@ message IpConnectivityEvent { // Since version 2. optional LinkLayer link_layer = 15; // Event type. // Represents the id given by the system to a physical network on the device. // Every network gets assigned a unique id on creation from a monotonic // counter. The value 0 is never assigned to a network and means no network. // It is used to correlate different types of events to each other for devices // with multiple networks (WiFi, 4G, ...). // Since version 3. optional int32 network_id = 16; // The interface name (wlan, rmnet, lo, ...) on which the event happened. // Present if the link_layer field was not inferred from the if_name on // the device, so that post-processing of the serialized proto can backfill // link_layer. Since version 3. optional string if_name = 17; // The transport types of the network on which the event happened, expressed // as a bit field of TRANSPORT_* constants as defined in NetworkCapabilities. // Present if the link_layer field was not inferred from the transport types, // so that post-processing of the serialized proto can backfill link_layer // Since version 3. optional int64 transports = 18; oneof event { // An event about the system default network. Loading Loading @@ -371,9 +419,10 @@ message IpConnectivityLog { optional int32 dropped_events = 2; // The version number of the metrics events being collected. // nyc-dev: not populated, implicitly 0. // nyc: not populated, implicitly 0. // nyc-dr1: not populated, implicitly 1 (sailfish and marlin only). // nyc-mr1: not populated, implicitly 1. // nyc-mr2: 2. // oc: 3. optional int32 version = 3; };
tests/net/java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java +37 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.test.suitebuilder.annotation.SmallTest; import java.util.Arrays; import junit.framework.TestCase; // TODO: instead of comparing textpb to textpb, parse textpb and compare proto to proto. public class IpConnectivityEventBuilderTest extends TestCase { @SmallTest Loading @@ -58,8 +59,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " default_network_event <", " network_id <", " network_id: 102", Loading Loading @@ -89,8 +93,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " dhcp_event <", " duration_ms: 192", " if_name: \"wlan0\"", Loading @@ -112,8 +119,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " dhcp_event <", " duration_ms: 0", " if_name: \"wlan0\"", Loading @@ -137,8 +147,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " dns_lookup_batch <", " event_types: 1", " event_types: 1", Loading Loading @@ -185,8 +198,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " ip_provisioning_event <", " event_type: 1", " if_name: \"wlan0\"", Loading @@ -208,8 +224,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " ip_reachability_event <", " event_type: 512", " if_name: \"wlan0\"", Loading @@ -231,8 +250,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " network_event <", " event_type: 5", " latency_ms: 20410", Loading @@ -258,8 +280,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " validation_probe_event <", " latency_ms: 40730", " network_id <", Loading Loading @@ -287,11 +312,15 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " apf_program_event <", " current_ras: 9", " drop_multicast: true", " effective_lifetime: 0", " filtered_ras: 7", " has_ipv4_addr: true", " lifetime: 200", Loading Loading @@ -319,8 +348,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " apf_statistics <", " dropped_ras: 2", " duration_ms: 45000", Loading @@ -328,6 +360,8 @@ public class IpConnectivityEventBuilderTest extends TestCase { " max_program_size: 2048", " parse_errors: 2", " program_updates: 4", " program_updates_all: 0", " program_updates_allowing_multicast: 0", " received_ras: 10", " zero_lifetime_ras: 1", " >", Loading @@ -351,8 +385,11 @@ public class IpConnectivityEventBuilderTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 1", " transports: 0", " ra_event <", " dnssl_lifetime: -1", " prefix_preferred_lifetime: 300", Loading
tests/net/java/com/android/server/connectivity/IpConnectivityMetricsTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ public class IpConnectivityMetricsTest extends TestCase { @SmallTest public void testEndToEndLogging() { // TODO: instead of comparing textpb to textpb, parse textpb and compare proto to proto. IpConnectivityLog logger = new IpConnectivityLog(mService.impl); Parcelable[] events = { Loading @@ -158,16 +159,22 @@ public class IpConnectivityMetricsTest extends TestCase { String want = joinLines( "dropped_events: 0", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 100", " transports: 0", " ip_reachability_event <", " event_type: 512", " if_name: \"wlan0\"", " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 200", " transports: 0", " dhcp_event <", " duration_ms: 192", " if_name: \"wlan0\"", Loading @@ -175,8 +182,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 300", " transports: 0", " default_network_event <", " network_id <", " network_id: 102", Loading @@ -191,8 +201,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 400", " transports: 0", " ip_provisioning_event <", " event_type: 1", " if_name: \"wlan0\"", Loading @@ -200,8 +213,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 500", " transports: 0", " validation_probe_event <", " latency_ms: 40730", " network_id <", Loading @@ -212,8 +228,11 @@ public class IpConnectivityMetricsTest extends TestCase { " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 600", " transports: 0", " apf_statistics <", " dropped_ras: 2", " duration_ms: 45000", Loading @@ -221,13 +240,18 @@ public class IpConnectivityMetricsTest extends TestCase { " max_program_size: 2048", " parse_errors: 2", " program_updates: 4", " program_updates_all: 0", " program_updates_allowing_multicast: 0", " received_ras: 10", " zero_lifetime_ras: 1", " >", ">", "events <", " if_name: \"\"", " link_layer: 0", " network_id: 0", " time_ms: 700", " transports: 0", " ra_event <", " dnssl_lifetime: -1", " prefix_preferred_lifetime: 300", Loading
tests/net/java/com/android/server/connectivity/NetdEventListenerServiceTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -213,9 +213,13 @@ public class NetdEventListenerServiceTest extends TestCase { IpConnectivityEvent got = events.get(0); String want = String.join("\n", "if_name: \"\"", "link_layer: 0", "network_id: 0", "time_ms: 0", "transports: 0", "connect_statistics <", " connect_blocking_count: 0", " connect_count: 12", " errnos_counters <", " key: 1", Loading