Implement tests for tdc testsuite to verify concurrent rules update with rtnl-unlocked flower classifier implementation. The goal of these tests is to verify general flower classifier correctness by updating filters on same classifier instance in parallel and to verify its atomicity by concurrently updating filters in same handle range. All three filter update operations (add, replace, delete) are tested.
Existing script tdc_batch.py is re-used for batch file generation. It is extended with several optional CLI arguments that are needed for concurrency tests. Thin wrapper tdc_multibatch.py is implemented on top of tdc_batch.py to simplify its usage when generating multiple batch files for several test configurations. Parallelism in tests is implemented by running multiple instances of tc in batch mode with xargs tool. Xargs is chosen for its ease of use and because it is available by default on most modern Linux distributions. Vlad Buslov (8): selftests: tdc_batch.py: add options needed for concurrency tests selftests: concurrency: add test to verify parallel rules insertion selftests: concurrency: add test to verify parallel rules deletion selftests: concurrency: add test to verify parallel rules replace selftests: concurrency: add test to verify concurrent replace selftests: concurrency: add test to verify concurrent delete selftests: concurrency: add test to verify parallel add/delete selftests: concurrency: add test to verify parallel replace/delete .../tc-testing/tc-tests/filters/concurrency.json | 177 +++++++++++++++++++++ tools/testing/selftests/tc-testing/tdc_batch.py | 58 ++++++- tools/testing/selftests/tc-testing/tdc_config.py | 1 + .../testing/selftests/tc-testing/tdc_multibatch.py | 65 ++++++++ 4 files changed, 297 insertions(+), 4 deletions(-) create mode 100644 tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json create mode 100755 tools/testing/selftests/tc-testing/tdc_multibatch.py -- 2.13.6