diff options
Diffstat (limited to 'tools/testing/selftests/tc-testing')
-rw-r--r-- | tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json | 26 | ||||
-rwxr-xr-x | tools/testing/selftests/tc-testing/tdc_multibatch.py | 26 |
2 files changed, 49 insertions, 3 deletions
diff --git a/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json b/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json index 102a6a3f08df..8316634a0cd7 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json +++ b/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json @@ -121,5 +121,31 @@ "$TC qdisc del dev $DEV2 ingress", "/bin/rm -rf $BATCH_DIR" ] + }, + { + "id": "ab62", + "name": "Add and delete from same tp with 10 tc instances", + "category": [ + "filter", + "flower", + "concurrency" + ], + "setup": [ + "/bin/mkdir $BATCH_DIR", + "$TC qdisc add dev $DEV2 ingress", + "./tdc_multibatch.py -x init_ $DEV2 $BATCH_DIR 100000 5 add", + "find $BATCH_DIR/init_* -print | xargs -n 1 -P 5 $TC -b", + "./tdc_multibatch.py -x par_ -a 500001 -m 5 $DEV2 $BATCH_DIR 100000 5 add", + "./tdc_multibatch.py -x par_ $DEV2 $BATCH_DIR 100000 5 del" + ], + "cmdUnderTest": "find $BATCH_DIR/par_* -print | xargs -n 1 -P 10 $TC -b", + "expExitCode": "0", + "verifyCmd": "$TC -s filter show dev $DEV2 ingress", + "matchPattern": "filter protocol ip pref 1 flower chain 0 handle", + "matchCount": "500000", + "teardown": [ + "$TC qdisc del dev $DEV2 ingress", + "/bin/rm -rf $BATCH_DIR" + ] } ] diff --git a/tools/testing/selftests/tc-testing/tdc_multibatch.py b/tools/testing/selftests/tc-testing/tdc_multibatch.py index 0d8be39b5580..5e7237952e49 100755 --- a/tools/testing/selftests/tc-testing/tdc_multibatch.py +++ b/tools/testing/selftests/tc-testing/tdc_multibatch.py @@ -22,24 +22,44 @@ parser.add_argument( choices=['add', 'del', 'replace'], help="operation to perform on filters") parser.add_argument( + "-x", + "--file_prefix", + default="", + help="prefix for generated batch file names") +parser.add_argument( "-d", "--duplicate_handles", action="store_true", help="duplicate filter handle range in all files") +parser.add_argument( + "-a", + "--handle_start", + type=int, + default=1, + help="start handle range from (default: 1)") +parser.add_argument( + "-m", + "--mac_prefix", + type=int, + default=0, + choices=range(0, 256), + help="add this value to third byte of source MAC address of flower filter" + "(default: 0)") args = parser.parse_args() device = args.device dir = args.dir -file_prefix = args.operation + "_" +file_prefix = args.file_prefix + args.operation + "_" num_filters = args.num_filters num_files = args.num_files operation = args.operation duplicate_handles = args.duplicate_handles -handle = 1 +handle = args.handle_start +mac_prefix = args.mac_prefix 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)) + num_filters, handle, operation, i + mac_prefix, device, file)) if not duplicate_handles: handle += num_filters |