xref: /linux/tools/testing/selftests/drivers/net/hw/nk_devmem.py (revision cf85f810f911234a06a4ef2439e8694b93b717fc)
1#!/usr/bin/env python3
2# SPDX-License-Identifier: GPL-2.0
3"""Test devmem TCP with netkit."""
4
5import os
6from devmem_lib import (setup_test, run_rx, run_tx, run_tx_chunks, run_rx_hds,
7                        run_rx_large_niov)
8from lib.py import ksft_run, ksft_exit, ksft_disruptive
9from lib.py import NetDrvContEnv
10
11
12@ksft_disruptive
13def check_nk_rx(cfg) -> None:
14    """Run the devmem RX test through netkit."""
15    run_rx(cfg)
16
17
18@ksft_disruptive
19def check_nk_tx(cfg) -> None:
20    """Run the devmem TX test through netkit."""
21    run_tx(cfg)
22
23
24@ksft_disruptive
25def check_nk_tx_chunks(cfg) -> None:
26    """Run the devmem TX chunking test through netkit."""
27    run_tx_chunks(cfg)
28
29
30def check_nk_rx_hds(cfg) -> None:
31    """Run the HDS test through netkit."""
32    run_rx_hds(cfg)
33
34
35def check_nk_rx_large_niov(cfg) -> None:
36    """Run the devmem RX large-niov test through netkit."""
37    run_rx_large_niov(cfg)
38
39
40def main() -> None:
41    """Run the netkit devmem test cases."""
42    with NetDrvContEnv(__file__, rxqueues=2, primary_rx_redirect=True) as cfg:
43        setup_test(cfg,
44                   os.path.join(os.path.dirname(os.path.abspath(__file__)),
45                                "ncdevmem"))
46        ksft_run([check_nk_rx, check_nk_tx, check_nk_tx_chunks,
47                  check_nk_rx_hds, check_nk_rx_large_niov], args=(cfg,))
48    ksft_exit()
49
50
51if __name__ == "__main__":
52    main()
53