Update the transport types of metrics
In the current design, the transport types of metrics won't be
updated when the underlying network of VPN is changed.
Update the transport types of metrics when getMetricsForNetwork()
is called.
And since the underlying network is changed, enforce to collect
the pending metrics before updating the transport types.
dns/connect events:
// The original underlying network is wifi, but now it's replaced
by mobile data.
ConnectStats(netId=105, transports={0, 4}, 0 events, 0 success, 0 blocking, 0 IPv6 dst)
DnsEvent(netId=105, transports={0, 4}, 4 events, 4 success)
network statistics:
// Wifi is the underlying network of VPN
{netId=105, transports={1, 4}, dns avg=488ms max=633ms err=0.0% tot=2,
connect avg=0ms max=0ms err=0.0% tot=0,
tcp avg_loss=0.0% total_sent=0 total_lost=0, tcp rtt=0ms, tcp sent-ack_diff=0ms}
// Mobile data is the underlying network of VPN
{netId=105, transports={0, 4}, dns avg=633ms max=633ms err=0.0% tot=1,
connect avg=0ms max=0ms err=0.0% tot=0,
tcp avg_loss=0.0% total_sent=0 total_lost=0, tcp rtt=0ms, tcp sent-ack_diff=0ms}
Bug: 189166339
Test: Manual test.
Change-Id: I9b1d0c635f30d0c88d85777d820b15e546bda60b
1 file changed