OSDN Git Service

Fix negative uid stats caused by 464xlat adjust when eBPF is on.
authorjunyulai <junyulai@google.com>
Fri, 19 Oct 2018 13:14:30 +0000 (21:14 +0800)
committerjunyulai <junyulai@google.com>
Tue, 30 Oct 2018 13:23:38 +0000 (21:23 +0800)
commitc33ac0d43b594f6154accf03ae7e3fd34dedc79d
tree52b255a9fe12af047b9a7c28597bbc55825c2a56
parentd1d3b374b7892b9a526dc40d4fa6d7de18ed67f7
Fix negative uid stats caused by 464xlat adjust when eBPF is on.

When using xt_qtaguid to count per uid stats,
NetworkStatsService needs to adjust the 464xlat traffic since
iptables module would double count for ipv4 and ipv6 packet.
But for eBPF, the per uid stats is collected in a different
hook, so the adjustment on root uid would only be needed in tx
direction.

Bug: 112226716
Test: 1. Make ipv4 traffic in ipv6-only network and check data
         usage.
      2. Make ipv4 traffic in a client which connect to
         ipv6-only hotspot.
      3. runtest frameworks-net
      4. cts-tradefed run cts -m CtsNetTestCases -t \
                 android.net.cts.TrafficStatsTest
      5. cts-tradefed run cts -m CtsUsageStatsTestCases

Change-Id: Ic9a84f5446eddc943c255d5f3b89dad171f53cac
core/java/android/net/NetworkStats.java
core/java/com/android/internal/net/NetworkStatsFactory.java
services/core/java/com/android/server/net/NetworkStatsService.java
tests/net/java/android/net/NetworkStatsTest.java