Sort and group network stats collected from eBPF.

Since eBPF use hash map to record stats, network stats collected
from eBPF will be out of order. And the performance of
findIndexHinted in NetworkStats would be impacted.

Furthermore, since the StatsKey contains iface index, the
network stats reported to framework would create items with the
same iface, uid, tag and set, which causes NetworkStats maps
wrong item to subtract.

Thus, the stats needs to be properly sorted and grouped before
reported.

Bug: 112226716
Test: 1. manually reconnect vpn
      2. atest libnetdbpf_test
      3. runtest frameworks-net
      4. cts-tradefed run cts -m CtsUsageStatsTestCases -t \
              android.app.usage.cts.NetworkUsageStatsTest

Change-Id: I7cb622bfcc643f6e1a0ab59c5aafa85319313493
3 files changed