]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #31293 from ragazenta/netdev_rps
authorLuca Boccassi <bluca@debian.org>
Wed, 28 Feb 2024 13:37:28 +0000 (13:37 +0000)
committerGitHub <noreply@github.com>
Wed, 28 Feb 2024 13:37:28 +0000 (13:37 +0000)
udevd: Add ReceivePacketSteeringCPUMask for systemd.link

1  2 
test/test-network/systemd-networkd-tests.py

index ab5f95b72afa9635e970e0df32d4f80f330a9bd6,4f088f3f76e1202c13bd3e6d7536b2e64d066867..e194f212ee15f44f2729f4ee21aaf1f0d3e8c9b2
@@@ -2459,6 -2459,131 +2459,131 @@@ class NetworkdNetDevTests(unittest.Test
  
          self.wait_online('ifb99:degraded')
  
+     def test_rps_cpu_0(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-0.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 1)
+     @unittest.skipUnless(os.cpu_count() >= 2, reason="CPU count should be >= 2 to pass this test")
+     def test_rps_cpu_1(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-1.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 2)
+     @unittest.skipUnless(os.cpu_count() >= 2, reason="CPU count should be >= 2 to pass this test")
+     def test_rps_cpu_0_1(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-0-1.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 3)
+     @unittest.skipUnless(os.cpu_count() >= 4, reason="CPU count should be >= 4 to pass this test")
+     def test_rps_cpu_multi(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-multi.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 15)
+     def test_rps_cpu_all(self):
+         cpu_count = os.cpu_count()
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-all.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(f"{int(output.replace(',', ''), base=16):x}", f'{(1 << cpu_count) - 1:x}')
+     def test_rps_cpu_disable(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-all.link', '24-rps-cpu-disable.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 0)
+     def test_rps_cpu_empty(self):
+         copy_network_unit('12-dummy.netdev', '24-rps-cpu-empty.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 0)
+     def test_rps_cpu_0_empty(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-0-empty.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 0)
+     def test_rps_cpu_0_and_empty(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-0.link', '24-rps-cpu-empty.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 0)
+     def test_rps_cpu_invalid(self):
+         copy_network_unit('12-dummy.netdev', '24-rps-cpu-invalid.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 0)
+     def test_rps_cpu_0_invalid(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-0-invalid.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 1)
+     def test_rps_cpu_0_and_invalid(self):
+         copy_network_unit('12-dummy.netdev', '25-rps-cpu-0.link', '24-rps-cpu-invalid.link')
+         start_networkd()
+         self.wait_links('dummy98')
+         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
+         print(output)
+         self.assertEqual(int(output.replace(',', ''), base=16), 0)
  class NetworkdL2TPTests(unittest.TestCase, Utilities):
  
      def setUp(self):
@@@ -5577,7 -5702,7 +5702,7 @@@ class NetworkdDHCPServerRelayAgentTests
          print(output)
          self.assertRegex(output, r'Address: 192.168.5.150 \(DHCP4 via 192.168.5.1\)')
  
 -    def test_replay_agent_on_bridge(self):
 +    def test_relay_agent_on_bridge(self):
          copy_network_unit('25-agent-bridge.netdev',
                            '25-agent-veth-client.netdev',
                            '25-agent-bridge.network',