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

Commit e74fb60c 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: e284b30c

Change-Id: Ibf2a9fbd94b7ec3adac04087a0d0fd2e2313087a
parents 43f45f94 e284b30c
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -1180,14 +1180,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);