#
bee7cf82 |
| 15-Oct-2024 |
Dean Marx <dmarx@iol.unh.edu> |
dts: add checksum offload to testpmd shell
Add csum_set_hw method to testpmd shell class.
Signed-off-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Patrick Robb <probb@iol.unh.edu>
|
#
c986c339 |
| 05-Nov-2024 |
Dean Marx <dmarx@iol.unh.edu> |
dts: add testpmd port queue modification
This patch adds methods for querying and modifying port queue state and configuration. In addition to this, it also adds the ability to capture the forwardin
dts: add testpmd port queue modification
This patch adds methods for querying and modifying port queue state and configuration. In addition to this, it also adds the ability to capture the forwarding statistics that get outputted when you send the "stop" command in testpmd. Querying of port queue information is handled through a TextParser dataclass in case there is future need for using more of the output from the command used to query the information.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Signed-off-by: Dean Marx <dmarx@iol.unh.edu>
show more ...
|
#
474ce443 |
| 16-Oct-2024 |
Nicholas Pratte <npratte@iol.unh.edu> |
dts: add capability check for multicast filtering
The multicast address filter component of the MAC filter test suite is not supported by all device drivers. So, a simple multicast filter capability
dts: add capability check for multicast filtering
The multicast address filter component of the MAC filter test suite is not supported by all device drivers. So, a simple multicast filter capability check is added for the multicast filter testcase.
Bugzilla ID: 1454
Signed-off-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
e3b16f45 |
| 16-Oct-2024 |
Nicholas Pratte <npratte@iol.unh.edu> |
dts: add setting MAC and multicast addresses
New methods have been added to TestPMDShell in order to support the MAC filter's individual test cases: - set_mac_addr - set_multicast_mac_addr
set_ma
dts: add setting MAC and multicast addresses
New methods have been added to TestPMDShell in order to support the MAC filter's individual test cases: - set_mac_addr - set_multicast_mac_addr
set_mac_addr and set_multicast_addr were created for the MAC filter test suite, enabling users to both add or remove MAC and multicast addresses based on a boolean 'add or remove' parameter.
Bugzilla ID: 1454
Signed-off-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
0264e408 |
| 07-Nov-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add blocked ports to EAL parameters
Make the "ports" attribute of EalParams as it actually is to "allowed_ports", and add "blocked_ports".
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com>
dts: add blocked ports to EAL parameters
Make the "ports" attribute of EalParams as it actually is to "allowed_ports", and add "blocked_ports".
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
949d1488 |
| 07-Nov-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: fix custom enum behaviour with doc
When building docs without any dependencies, autodoc will mock all the packages missing from the system. Because DTS makes use of a special enum library calle
dts: fix custom enum behaviour with doc
When building docs without any dependencies, autodoc will mock all the packages missing from the system. Because DTS makes use of a special enum library called aenum, autodoc fails to recognise enum inheriting it as such and raises exceptions as a consequence.
This change extends the already in-place mechanism for type checking that pretends that aenums are builtin enums to the API doc building process.
Fixes: 039256daa8bf ("dts: add topology capability") Fixes: c89d00380603 ("dts: add NIC capability support")
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
show more ...
|
#
d7181426 |
| 10-Oct-2024 |
Dean Marx <dmarx@iol.unh.edu> |
dts: fix verify argument in set forward mode
Condition set_forward_mode verify code on the verify argument, which was originally omitted.
Bugzilla ID: 1410 Fixes: fc0f7dc47ee3 ("dts: add testpmd sh
dts: fix verify argument in set forward mode
Condition set_forward_mode verify code on the verify argument, which was originally omitted.
Bugzilla ID: 1410 Fixes: fc0f7dc47ee3 ("dts: add testpmd shell params")
Signed-off-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Patrick Robb <probb@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
1a7520a1 |
| 08-Oct-2024 |
Dean Marx <dmarx@iol.unh.edu> |
dts: add VLAN methods to testpmd shell
Added the following methods to testpmd shell class: set vlan filter on/off, rx vlan add/rm, set vlan strip on/off, tx vlan set/reset, set promisc/verbose. Fixe
dts: add VLAN methods to testpmd shell
Added the following methods to testpmd shell class: set vlan filter on/off, rx vlan add/rm, set vlan strip on/off, tx vlan set/reset, set promisc/verbose. Fixed a bug in the VLAN regex used in testpmd shell flags.
Fixes: 61d5bc9bf974 ("dts: add port info command to testpmd shell")
Signed-off-by: Dean Marx <dmarx@iol.unh.edu>
show more ...
|
#
d64f6ba5 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add NIC capabilities from port info
Add the capabilities advertised by the testpmd command "show port info" so that test cases may be marked as requiring those capabilities: RUNTIME_RX_QUEUE_SE
dts: add NIC capabilities from port info
Add the capabilities advertised by the testpmd command "show port info" so that test cases may be marked as requiring those capabilities: RUNTIME_RX_QUEUE_SETUP RUNTIME_TX_QUEUE_SETUP RXQ_SHARE FLOW_RULE_KEEP FLOW_SHARED_OBJECT_KEEP
These names are copy pasted from the existing DeviceCapabilitiesFlag class. Dynamic addition of Enum members runs into problems with typing (mypy doesn't know about the members) and documentation generation (Sphinx doesn't know about the members).
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
a79884f9 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add Rx offload capabilities
The scatter Rx offload capability is needed for the pmd_buffer_scatter test suite. The command that retrieves the capability is: show port <port_id> rx_offload capab
dts: add Rx offload capabilities
The scatter Rx offload capability is needed for the pmd_buffer_scatter test suite. The command that retrieves the capability is: show port <port_id> rx_offload capabilities
The command also retrieves a lot of other capabilities (RX_OFFLOAD_*) which are all added into a Flag. The Flag members correspond to NIC capability names so a convenience function that looks for the supported Flags in a testpmd output is also added.
The NIC capability names (mentioned above) are copy-pasted from the Flag. Dynamic addition of Enum members runs into problems with typing (mypy doesn't know about the members) and documentation generation (Sphinx doesn't know about the members).
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
c0119400 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add NIC capabilities from Rx queue info
Add parsing for the show rxq info <port_id> <queue_id> tespmd command and add support for the Scattered Rx capability.
Signed-off-by: Juraj Linkeš <jura
dts: add NIC capabilities from Rx queue info
Add parsing for the show rxq info <port_id> <queue_id> tespmd command and add support for the Scattered Rx capability.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
c89d0038 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add NIC capability support
Some test cases or suites may be testing a NIC feature that is not supported on all NICs, so add support for marking test cases or suites as requiring NIC capabilitie
dts: add NIC capability support
Some test cases or suites may be testing a NIC feature that is not supported on all NICs, so add support for marking test cases or suites as requiring NIC capabilities.
The marking is done with a decorator, which populates the internal required_capabilities attribute of TestProtocol. The NIC capability itself is a wrapper around the NicCapability defined in testpmd_shell. The reason is Enums cannot be extended and the class implements the methods of its abstract base superclass.
The decorator API is designed to be simple to use. The arguments passed to it are all from the testpmd shell. Everything else (even the actual capability object creation) is done internally.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
a91d5f47 |
| 26-Sep-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add text parser for testpmd verbose output
Multiple test suites from the old DTS framework rely on being able to consume and interpret the verbose output of testpmd. The new framework doesn't h
dts: add text parser for testpmd verbose output
Multiple test suites from the old DTS framework rely on being able to consume and interpret the verbose output of testpmd. The new framework doesn't have an elegant way for handling the verbose output, but test suites are starting to be written that rely on it. This patch creates a TextParser class that can be used to extract the verbose information from any testpmd output and also adjusts the `stop` method of the shell to return all output that it collected.
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 ...
|
#
9910db35 |
| 06-Sep-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add MTU config methods to testpmd shell
There are methods within DTS currently that support updating the MTU of ports on a node, but the methods for doing this in a linux session rely on the ip
dts: add MTU config methods to testpmd shell
There are methods within DTS currently that support updating the MTU of ports on a node, but the methods for doing this in a linux session rely on the ip command and the port being bound to the kernel driver. Since test suites are run while bound to the driver for DPDK, there needs to be a way to modify the value while bound to said driver as well. This is done by using testpmd to modify the MTU.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
85d15c7c |
| 23-Aug-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add testpmd port information caching
When using port information multiple times in a testpmd shell instance lifespan, it's desirable to not get the information each time, so caching is added. I
dts: add testpmd port information caching
When using port information multiple times in a testpmd shell instance lifespan, it's desirable to not get the information each time, so caching is added. In case the information changes, there's a way to force the update with either TestPmdShell.show_port_info() or TestPmdShell.show_port_info_all().
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu>
show more ...
|
#
618d9140 |
| 23-Aug-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: fix testpmd port device error handling mode
Make device_error_handling_mode of testpmd port optional as it may not be present, e.g. in VM ports.
Fixes: 61d5bc9bf974 ("dts: add port info comman
dts: fix testpmd port device error handling mode
Make device_error_handling_mode of testpmd port optional as it may not be present, e.g. in VM ports.
Fixes: 61d5bc9bf974 ("dts: add port info command to testpmd shell")
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu>
show more ...
|
#
07816ead |
| 09-Sep-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add testpmd set ports queues
Add a facility to update the number of TX/RX queues during the runtime of testpmd.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepane
dts: add testpmd set ports queues
Add a facility to update the number of TX/RX queues during the runtime of testpmd.
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>
show more ...
|
#
2ecfd126 |
| 09-Sep-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add ability to start/stop testpmd ports
Add testpmd commands to start and stop all the ports, so that they can be configured. Because there is a distinction of commands that require the ports t
dts: add ability to start/stop testpmd ports
Add testpmd commands to start and stop all the ports, so that they can be configured. Because there is a distinction of commands that require the ports to be stopped and started, also add decorators for commands that require a specific state, removing this logic from the test writer's duty.
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>
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 ...
|
#
92439dc9 |
| 11-Jul-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: improve starting and stopping interactive shells
The InteractiveShell class currently relies on being cleaned up and shutdown at the time of garbage collection, but this cleanup of the class do
dts: improve starting and stopping interactive shells
The InteractiveShell class currently relies on being cleaned up and shutdown at the time of garbage collection, but this cleanup of the class does no verification that the session is still running prior to cleanup. So, if a user were to call this method themselves prior to garbage collection, it would be called twice and throw an exception when the desired behavior is to do nothing since the session is already cleaned up. This is solved by using a weakref and a finalize class which achieves the same result of calling the method at garbage collection, but also ensures that it is called exactly once.
Additionally, this fixes issues regarding starting a primary DPDK application while another is still cleaning up via a retry when starting interactive shells. It also adds catch for attempting to send a command to an interactive shell that is not running to create a more descriptive error message.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Patrick Robb <probb@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Dean Marx <dmarx@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 ...
|
#
87ba4cdc |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: use Unpack for type checking and hinting
Interactive shells that inherit DPDKShell initialise their params classes from a kwargs dict. Therefore, static type checking is disabled. This change u
dts: use Unpack for type checking and hinting
Interactive shells that inherit DPDKShell initialise their params classes from a kwargs dict. Therefore, static type checking is disabled. This change uses the functionality of Unpack added in PEP 692 to re-enable it. The disadvantage is that this functionality has been implemented only with TypedDict, forcing the creation of TypedDict mirrors of the Params classes.
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 ...
|
#
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 ...
|
#
fc0f7dc4 |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add testpmd shell params
Implement all the testpmd shell parameters into a data structure.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@ar
dts: add testpmd shell params
Implement all the testpmd shell parameters into a data structure.
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 ...
|
#
967fc62b |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: refactor EAL parameters class
Move EalParams to its own module to avoid circular dependencies. Also the majority of the attributes are now optional.
Signed-off-by: Luca Vizzarro <luca.vizzarro
dts: refactor EAL parameters class
Move EalParams to its own module to avoid circular dependencies. Also the majority of the attributes are now optional.
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 ...
|