Hi, DTS developers/users, With DPDK development rapidly, more and more test suites were developed in DTS. (150+ test suites and 3k+ test cases in DTS). Meanwhile, paralleling execution tests for NICs/crypto/other device on same DUT become important for reducing execution time for covering all test cases. So we plan to enhance the DTS, for * Improve test suite quality * Unified test capability/function into framework * Paralleling execution So we draft a DTS development plan, and share with you. Looking forward to hear your thoughts, ideas and suggestions. /Zhaoyan DTS framework enhancement ========================= Unified packet sending for functionality test * Implement all packet sending features in Packet Class * Remove others sending functions in DTS framework * Sending packet from Tester only Generic EAL options generator for DPDK based application * Generate EAL options for DPDK app, and consider the assigned hardware resource for test, instead of whole DUT * Test suite can overwrite the options, in restricted range * Define hardware resource in crb.cfg, port.cfg and pktgen.cfg Global resource management * Global driver load or unload, vfio-pci, igb_uio, uio_pci_generic * Define a parameter to decside if insmod/rmmod, if the module updated. otherwise, keep this module on host. * External_memory setup * Define DUT's cores mask in crb configuration * Define DUT's ports mask * Define physical ports in crb config Clean up unused APIs, unused imported libraries, and unused APIs * plotting.py, plotgraph.py, numpy, matplotlib * e.g. self.tester.run_rfc2544, has been replaced by pktgen class * Replace private texttable.py with public version All-in-one configuration file * Support configure all information in one configuration file for easy using * yaml file is better Prepare to move to Python 3, make code be compatible with py2 and py3 Generate auto-script for all DTS dependencies * Update requirements.txt * Generate script for binary dependencies for compilation python packages Release DTS container version Test Suites cleanness ================= Move to new packet sending API * Update all tests, which generate packets and send packets Move to generic EAL generator API * Update all tests which use DPDK based application with new EAL string Clean up "sleep" * Replace "sleep" with a stable checking mechanism Replace "pktgen app" with "testpmd app" for testing * pktgen app needs be built for special DPDK version and too heavy for a simple function test, replace it in test case with testpmd app Clean up absolute path * Replace "/tmp" with "/tmp//", or relative path "tmp". * Replace specific OS path in test case Clean up test case dependencies, (files, libraries or tools) * Check all test suites, and add dependencies into auto-script or requirements.txt