summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/tc-testing/tdc_multibatch.py
diff options
context:
space:
mode:
authorVlad Buslov <vladbu@mellanox.com>2019-02-22 16:00:41 +0200
committerDavid S. Miller <davem@davemloft.net>2019-02-24 12:49:58 -0800
commit450ef62033c76cb654e0deaf432c1b40b57d1488 (patch)
tree84bb25ade997a2a3a6ba7070af200676e99ca200 /tools/testing/selftests/tc-testing/tdc_multibatch.py
parent3b07270db82a617bb1be4890aaf4f80e9c1a4e8b (diff)
selftests: concurrency: add test to verify parallel rules insertion
Implement test that verifies parallel rules insertion by adding 1 million flower filters with 10 concurrent tc instances. Put it to standalone 'concurrency' category. Implement tdc_multibatch.py helper script that is used to generate multiple batch files for concurrent tc execution. Extend config with new 'BATCH_DIR' variable to specify temporary output directory that is used to store batch files generated by tdc_multibatch.py. Signed-off-by: Vlad Buslov <vladbu@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/testing/selftests/tc-testing/tdc_multibatch.py')
-rwxr-xr-xtools/testing/selftests/tc-testing/tdc_multibatch.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/testing/selftests/tc-testing/tdc_multibatch.py b/tools/testing/selftests/tc-testing/tdc_multibatch.py
new file mode 100755
index 000000000000..cd980d1785bb
--- /dev/null
+++ b/tools/testing/selftests/tc-testing/tdc_multibatch.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python3
+# SPDX-License-Identifier: GPL-2.0
+"""
+tdc_multibatch.py - a thin wrapper over tdc_batch.py to generate multiple batch
+files
+
+Copyright (C) 2019 Vlad Buslov <vladbu@mellanox.com>
+"""
+
+import argparse
+import os
+
+parser = argparse.ArgumentParser(
+ description='TC multiple batch file generator')
+parser.add_argument("device", help="device name")
+parser.add_argument("dir", help="where to put batch files")
+parser.add_argument(
+ "num_filters", type=int, help="how many lines per batch file")
+parser.add_argument("num_files", type=int, help="how many batch files")
+parser.add_argument(
+ "operation",
+ choices=['add', 'del', 'replace'],
+ help="operation to perform on filters")
+args = parser.parse_args()
+
+device = args.device
+dir = args.dir
+file_prefix = args.operation + "_"
+num_filters = args.num_filters
+num_files = args.num_files
+operation = args.operation
+handle = 1
+
+for i in range(num_files):
+ file = dir + '/' + file_prefix + str(i)
+ os.system("./tdc_batch.py -n {} -a {} -e {} -m {} {} {}".format(
+ num_filters, handle, operation, i, device, file))
+ handle += num_filters