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