#
1f01c07d |
| 30-Oct-2024 |
Nicholas Pratte <npratte@iol.unh.edu> |
dts: add brief sleep to async sniffer callback function
Currently, the async sniffer includes a callback function which is responsible for the packets sending code. On certain devices this callback
dts: add brief sleep to async sniffer callback function
Currently, the async sniffer includes a callback function which is responsible for the packets sending code. On certain devices this callback function is being called before the asyncsniffer is ready. This commit adds a 1 second sleep to help avoid this condition.
Bugzilla ID: 1573
Signed-off-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
99740300 |
| 26-Sep-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: use Python shell for Scapy instead of XML-RPC
Previously all scapy commands were handled using an XML-RPC server that ran on the TGNode. This unnecessarily enforces a minimum Python version of
dts: use Python shell for Scapy instead of XML-RPC
Previously all scapy commands were handled using an XML-RPC server that ran on the TGNode. This unnecessarily enforces a minimum Python version of 3.10 on the server that is being used as a traffic generator and complicates the implementation of scapy methods. This patch removes the XML-RPC server completely and instead allows the Scapy TG to extend from the PythonShell to implement the functionality of a traffic generator. This is done by importing the Scapy library in the PythonShell and sending commands directly to the interactive session on the TG Node.
Bugzilla ID: 1374
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
65a1b4e8 |
| 24-Jul-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: improve logging for interactive shells
The messages being logged by interactive shells currently are using the same logger as the node they were created from. Because of this, when sending inte
dts: improve logging for interactive shells
The messages being logged by interactive shells currently are using the same logger as the node they were created from. Because of this, when sending interactive commands, the logs make no distinction between when you are sending a command directly to the host and when you are using an interactive shell on the host. This change adds names to interactive shells so that they are able to use their own loggers with distinct names.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Nicholas Pratte <npratte@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
d30bb308 |
| 24-Jul-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add XML-RPC server example
When this XML-RPC server implementation was added, the docstring had to be shortened in order to reduce the chances of this race condition being encountered. Now that
dts: add XML-RPC server example
When this XML-RPC server implementation was added, the docstring had to be shortened in order to reduce the chances of this race condition being encountered. Now that this race condition issue is resolved, the full docstring can be restored.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
2b648cd4 |
| 11-Jul-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add context manager for interactive shells
Interactive shells are managed in a way currently where they are closed and cleaned up at the time of garbage collection. Due to there being no guaran
dts: add context manager for interactive shells
Interactive shells are managed in a way currently where they are closed and cleaned up at the time of garbage collection. Due to there being no guarantee of when this garbage collection happens in Python, there is no way to consistently know when an application will be closed without manually closing the application yourself when you are done with it. This doesn't cause a problem in cases where you can start another instance of the same application multiple times on a server, but this isn't the case for primary applications in DPDK. The introduction of primary applications, such as testpmd, adds a need for knowing previous instances of the application have been stopped and cleaned up before starting a new one, which the garbage collector does not provide.
To solve this problem, a new class is added which acts as a base class for interactive shells that enforces that instances of the application be managed using a context manager. Using a context manager guarantees that once you leave the scope of the block where the application is being used for any reason, the application will be closed immediately. This avoids the possibility of the shell not being closed due to an exception being raised or user error. The interactive shell class then becomes shells that can be started/stopped manually or at the time of garbage collection rather than through a context manager.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Patrick Robb <probb@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
bfad0948 |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: rework interactive shells
The way nodes and interactive shells interact makes it difficult to develop for static type checking and hinting. The current system relies on a top-down approach, att
dts: rework interactive shells
The way nodes and interactive shells interact makes it difficult to develop for static type checking and hinting. The current system relies on a top-down approach, attempting to give a generic interface to the test developer, hiding the interaction of concrete shell classes as much as possible. When working with strong typing this approach is not ideal, as Python's implementation of generics is still rudimentary.
This rework reverses the tests interaction to a bottom-up approach, allowing the test developer to call concrete shell classes directly, and let them ingest nodes independently. While also re-enforcing type checking and making the code easier to read.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
2b2f5a8a |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: remove module-wide imports
Remove the imports in the testbed_model and remote_session modules init file, to avoid the initialisation of unneeded modules, thus removing or limiting the risk of c
dts: remove module-wide imports
Remove the imports in the testbed_model and remote_session modules init file, to avoid the initialisation of unneeded modules, thus removing or limiting the risk of circular dependencies.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
282688ea |
| 30-May-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: update mypy static checker
Update the mypy static checker to the latest version and fix all the reported errors.
Bump up supported Poetry shell version.
Bugzilla ID: 1433
Signed-off-by: Luca
dts: update mypy static checker
Update the mypy static checker to the latest version and fix all the reported errors.
Bump up supported Poetry shell version.
Bugzilla ID: 1433
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu> Tested-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
bad934bf |
| 11-Mar-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add packet filtering to Scapy sniffer
Added the options to filter out LLDP and ARP packets when sniffing for packets with scapy. This was done using BPF filters to ensure that the noise these p
dts: add packet filtering to Scapy sniffer
Added the options to filter out LLDP and ARP packets when sniffing for packets with scapy. This was done using BPF filters to ensure that the noise these packets provide does not interfere with test cases.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|
#
6ef07151 |
| 04-Dec-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: update docstrings
Format according to the Google format and PEP257, with slight deviations.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
#
840b1e01 |
| 04-Dec-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: adjust code for doc generation
The standard Python tool for generating API documentation, Sphinx, imports modules one-by-one when generating the documentation. This requires code changes: * pro
dts: adjust code for doc generation
The standard Python tool for generating API documentation, Sphinx, imports modules one-by-one when generating the documentation. This requires code changes: * properly guarding argument parsing in the if __name__ == '__main__' block, * the logger used by DTS runner underwent the same treatment so that it doesn't create log files outside of a DTS run, * however, DTS uses the arguments to construct an object holding global variables. The defaults for the global variables needed to be moved from argument parsing elsewhere, * importing the remote_session module from framework resulted in circular imports because of one module trying to import another module. This is fixed by reorganizing the code, * some code reorganization was done because the resulting structure makes more sense, improving documentation clarity.
The are some other changes which are documentation related: * added missing type annotation so they appear in the generated docs, * reordered arguments in some methods, * removed superfluous arguments and attributes, * change private functions/methods/attributes to private and vice-versa.
The above all appear in the generated documentation and the with them, the documentation is improved.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|