Currently the rds selftests only tests the tcp transport. This means
most of rds_rdma.ko has no testing coverage. This series refactors the
rds self tests to add an rdma option when running tests. When used,
the test creates a pair of ROCE interfaces to run the payloads through.
Most of this set is refactoring the existing test.py module. Since most
of this code is one long procedure, it is difficult to modularize it
without creating a lot of pylint complaints about lengthy functions
with too many variables or branches.
Patch 1 fixes an RDS-IB shutdown hang exposed by the new ROCE selftests
in patches 10/11. The next seven patches break down test.py into helper
functions. After we have modularized the send/recv packet logic, we
introduce the new ROCE equivalent network configurations, add the new
command line flags to build and run the test with rdma support.
Questions, comments and feedback appreciated!
Thanks everyone!
Allison
Change Log
v2:
[PATCH net-next v1 1/9] selftests: rds: Capitalize ret global in test.py
Dropped
[PATCH net-next v2 4/9] selftests: rds: Add helper function recv_burst() in
test.py
Pylint nits
[PATCH net-next v2 6/9] selftests: rds: Add helper function
snd_rcv_packets() in test.py
Pylint nits
[PATCH net-next v2 7/9] selftests: rds: Register network teardown via atexi
NEW
Registers network config cleanup function teardown_tcp() with atexi
[PATCH net-next v2 8/9] selftests: rds: Add ROCE support to test.py
Pylint nits
Added rdma network teardown cleanup on atexit
Fixed test result reporting with dynamic per-transport reporting
v3:
[PATCH net-next v3 1/11] net/rds: Don't sleep inside
rds_ib_conn_path_shutdown
NEW
[PATCH net-next v3 08/11] selftests: rds: Handle errors in netns_socket
NEW
[PATCH net-next v3 10/11] selftests: rds: Add ROCE support to test.py
Sashiko complaint: expand snd_rcv_packets docstring
Sashiko complaint: properly close sockets when test completes
Sashiko complaint: collect pcaps per rdma iface
Sashiko complaint: only teardown rdma net configs when -T rdma is used
Sashiko complaint: cancel timeout before reporting test results
[PATCH net-next v3 11/11] selftests: rds: Add ROCE support to run.sh
Sashiko complaint: Update test.py usage and README with -T usage
Allison Henderson (11):
net/rds: Don't sleep inside rds_ib_conn_path_shutdown
selftests: rds: Add helper function setup_tcp() in test.py
selftests: rds: Add helper function check_info() in test.py
selftests: rds: Add helper function send_burst() in test.py
selftests: rds: Add helper function recv_burst() in test.py
selftests: rds: Add helper function verify_hashes() in test.py
selftests: rds: Add helper function snd_rcv_packets() in test.py
selftests: rds: Handle errors in netns_socket
selftests: rds: Register network teardown via atexit
selftests: rds: Add ROCE support to test.py
selftests: rds: Add ROCE support to run.sh
net/rds/ib_cm.c | 25 +-
tools/testing/selftests/net/rds/README.txt | 29 +-
tools/testing/selftests/net/rds/config.sh | 15 +-
tools/testing/selftests/net/rds/run.sh | 53 +-
tools/testing/selftests/net/rds/test.py | 631 ++++++++++++++-------
5 files changed, 529 insertions(+), 224 deletions(-)
--
2.25.1