From 3be922d1e6bbec0a091cde8b1f3fffabc822ac3f Mon Sep 17 00:00:00 2001 From: Suprabh Shukla Date: Thu, 8 Feb 2024 19:20:40 -0800 Subject: Use uids < 10000 in kernel net tests Application uids are blocked by the BACKGROUND_MATCH bit in the bpf map which can be enabled on boot. Test: atest vts_kernel_net_tests Bug: 322273516 Change-Id: Ie11af7142c6b8fcb87fbc7102b82cbdf7d46758a --- net/test/bpf_test.py | 2 +- net/test/multinetwork_base.py | 11 +++++++---- net/test/multinetwork_test.py | 6 +++++- net/test/xfrm_tunnel_test.py | 9 ++++++++- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/net/test/bpf_test.py b/net/test/bpf_test.py index 4602515..f0b4393 100755 --- a/net/test/bpf_test.py +++ b/net/test/bpf_test.py @@ -88,7 +88,7 @@ libc = ctypes.CDLL(ctypes.util.find_library("c"), use_errno=True) KEY_SIZE = 4 VALUE_SIZE = 4 TOTAL_ENTRIES = 20 -TEST_UID = 54321 +TEST_UID = 5432 TEST_GID = 12345 # Offset to store the map key in stack register REG10 key_offset = -8 diff --git a/net/test/multinetwork_base.py b/net/test/multinetwork_base.py index 4f1f9aa..e84dba2 100644 --- a/net/test/multinetwork_base.py +++ b/net/test/multinetwork_base.py @@ -108,8 +108,9 @@ class MultiNetworkBaseTest(net_test.NetworkTest): # Wether to output setup commands. DEBUG = False - # The size of our UID ranges. - UID_RANGE_SIZE = 1000 + UID_RANGE_START = 2000 + UID_RANGE_END = 9999 + UID_RANGE_SIZE = UID_RANGE_END - UID_RANGE_START + 1 # Rule priorities. PRIORITY_UID = 100 @@ -136,9 +137,11 @@ class MultiNetworkBaseTest(net_test.NetworkTest): @classmethod def UidRangeForNetid(cls, netid): + per_netid_range = int(cls.UID_RANGE_SIZE / len(cls.NETIDS)) + idx = cls.NETIDS.index(netid) return ( - cls.UID_RANGE_SIZE * netid, - cls.UID_RANGE_SIZE * (netid + 1) - 1 + cls.UID_RANGE_START + per_netid_range * idx, + cls.UID_RANGE_START + per_netid_range * (idx + 1) - 1 ) @classmethod diff --git a/net/test/multinetwork_test.py b/net/test/multinetwork_test.py index b3bbf68..dbafbf5 100755 --- a/net/test/multinetwork_test.py +++ b/net/test/multinetwork_test.py @@ -1279,6 +1279,10 @@ class UidRoutingTest(multinetwork_base.MultiNetworkBaseTest): def _Random(): return random.randint(1000000, 2000000) + @staticmethod + def _RandomUid(cls): + return random.randint(cls.UID_RANGE_START, cls.UID_RANGE_END) + def CheckGetAndSetRules(self, version): start, end = tuple(sorted([self._Random(), self._Random()])) table = self._Random() @@ -1404,7 +1408,7 @@ class UidRoutingTest(multinetwork_base.MultiNetworkBaseTest): def testChangeFdAttributes(self): netid = random.choice(self.NETIDS) - uid = self._Random() + uid = self._RandomUid(self) table = self._TableForNetid(netid) remoteaddr = self.GetRemoteAddress(6) s = socket(AF_INET6, SOCK_DGRAM, 0) diff --git a/net/test/xfrm_tunnel_test.py b/net/test/xfrm_tunnel_test.py index b1e41e9..715b559 100755 --- a/net/test/xfrm_tunnel_test.py +++ b/net/test/xfrm_tunnel_test.py @@ -651,6 +651,13 @@ class XfrmTunnelBase(xfrm_base.XfrmBaseTest): else: return cls.OnlinkPrefix(6, netid - _TUNNEL_NETID_OFFSET) + "1" + @classmethod + def UidRangeForTunnelNetId(cls, netid): + if netid < _TUNNEL_NETID_OFFSET: + raise ValueError("Tunnel netid outside tunnel range") + netid -= _TUNNEL_NETID_OFFSET + return (500 + 50 * netid, 500 + 50 * (netid + 1) - 1) + @classmethod def _SetupTunnelNetwork(cls, tunnel, is_add): """Setup rules and routes for a tunnel Network. @@ -682,7 +689,7 @@ class XfrmTunnelBase(xfrm_base.XfrmBaseTest): table = tunnel.netid # Set up routing rules. - start, end = cls.UidRangeForNetid(tunnel.netid) + start, end = cls.UidRangeForTunnelNetId(tunnel.netid) cls.iproute.UidRangeRule(version, is_add, start, end, table, cls.PRIORITY_UID) cls.iproute.OifRule(version, is_add, tunnel.iface, table, cls.PRIORITY_OIF) -- cgit v1.2.3