Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3851c36d authored by Maciej Żenczykowski's avatar Maciej Żenczykowski Committed by android-build-merger
Browse files

Merge "Fix mobile data usage didn't get increased for xlat464 traffic" am:...

Merge "Fix mobile data usage didn't get increased for xlat464 traffic" am: e284b30c am: e74fb60c
am: 2db791f6

Change-Id: If8c252038d86ffb9d60de27d50994a2ebcca8408
parents d521d87d 2db791f6
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -1187,14 +1187,22 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
                    }
                }

                // Traffic occurring on stacked interfaces is usually clatd,
                // which is already accounted against its final egress interface
                // by the kernel. Thus, we only need to collect stacked
                // interface stats at the UID level.
                // Traffic occurring on stacked interfaces is usually clatd.
                // UID stats are always counted on the stacked interface and never
                // on the base interface, because the packets on the base interface
                // do not actually match application sockets until they are translated.
                //
                // Interface stats are more complicated. Packets subject to BPF offload
                // never appear on the base interface and only appear on the stacked
                // interface, so to ensure those packets increment interface stats, interface
                // stats from stacked interfaces must be collected.
                final List<LinkProperties> stackedLinks = state.linkProperties.getStackedLinks();
                for (LinkProperties stackedLink : stackedLinks) {
                    final String stackedIface = stackedLink.getInterfaceName();
                    if (stackedIface != null) {
                        if (mUseBpfTrafficStats) {
                            findOrCreateNetworkIdentitySet(mActiveIfaces, stackedIface).add(ident);
                        }
                        findOrCreateNetworkIdentitySet(mActiveUidIfaces, stackedIface).add(ident);
                        if (isMobile) {
                            mobileIfaces.add(stackedIface);