summaryrefslogtreecommitdiff
path: root/lib/odp-execute-private.c
Commit message (Collapse)AuthorAgeFilesLines
* odp-execute: Add ISA implementation of set_masked IPv6 actionEmma Finn2022-12-211-0/+14
| | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the AVX512 implementation of the ipv6_set_addrs action as well as an AVX512 implementation of updating the L4 checksums. Here are some relative performance numbers for this patch: +-----------------------------+----------------+ | Actions | AVX with patch | +-----------------------------+----------------+ | ipv6_src | 1.14x | +-----------------------------+----------------+ | ipv6_src + ipv6_dst | 1.40x | +-----------------------------+----------------+ | ipv6_label | 1.14x | +-----------------------------+----------------+ | mod_ipv6 4 x field | 1.43x | +-----------------------------+----------------+ Signed-off-by: Emma Finn <emma.finn@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Fix ipv4 missing clearing of connection tracking fields.Emma Finn2022-12-071-0/+12
| | | | | | | | | | This patch add clearing of connection tracking fields to the avx512 implementation of the ipv4 action. This patch also extends the actions autovalidator to include a compare for packet metadata. Fixes: 92eb03f7b03a ("odp-execute: Add ISA implementation of set_masked IPv4 action") Signed-off-by: Emma Finn <emma.finn@intel.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
* odp-execute: Avoid unnecessary logging for action implementations.Ilya Maximets2022-07-221-5/+6
| | | | | | | | | | | | | | | | | There is no need to log if the implementation didn't change. Scalar one is default, any change will be logged. And availability is not really important to log at INFO level. Moving these logs to DBG level to avoid littering the log file and confusing users. We do the same for miniflow_extract and datapath interface implementations. Additionally text of the log message made more readable and uniform with the one used for miniflow_extract. Fixes: 95e4a35b0a1d ("odp-execute: Add function pointers to odp-execute for different action implementations.") Acked-by: Emma Finn <emma.finn@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
* odp-execute: Add ISA implementation of set_masked ETHEmma Finn2022-07-151-0/+14
| | | | | | | | | | | This commit includes infrastructure changes for enabling set_masked_X actions and also adds support for the AVX512 implementation of the eth_set_addrs action. Signed-off-by: Emma Finn <emma.finn@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Add ISA implementation of pop_vlan action.Emma Finn2022-07-151-1/+31
| | | | | | | | | | | | This commit adds the AVX512 implementation of the pop_vlan action. Signed-off-by: Emma Finn <emma.finn@intel.com> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Co-authored-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Add ISA implementation of actions.Emma Finn2022-07-151-0/+8
| | | | | | | | | | | | | | This commit adds the AVX512 implementation of the action functionality. Usage: $ ovs-appctl odp-execute/action-impl-set avx512 Signed-off-by: Emma Finn <emma.finn@intel.com> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Co-authored-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Add command to switch action implementation.Emma Finn2022-07-151-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a new command to allow the user to switch the active action implementation at runtime. Usage: $ ovs-appctl odp-execute/action-impl-set scalar This commit also adds a new command to retrieve the list of available action implementations. This can be used by to check what implementations of actions are available and what implementation is active during runtime. Usage: $ ovs-appctl odp-execute/action-impl-show Added separate test-case for ovs-actions show/set commands: odp-execute - actions implementation Signed-off-by: Emma Finn <emma.finn@intel.com> Signed-off-by: Kumar Amber <kumar.amber@intel.com> Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com> Co-authored-by: Kumar Amber <kumar.amber@intel.com> Co-authored-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Add auto validation function for actions.Emma Finn2022-07-151-0/+98
| | | | | | | | | | | | | | | | | | This commit introduced the auto-validation function which allows users to compare the batch of packets obtained from different action implementations against the linear action implementation. The autovalidator function can be triggered at runtime using the following command: $ ovs-appctl odp-execute/action-impl-set autovalidator Signed-off-by: Emma Finn <emma.finn@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Add function pointer for pop_vlan action.Emma Finn2022-07-151-1/+15
| | | | | | | | | | | | | This commit removes the pop_vlan action from the large switch and creates a separate function for batched processing. A function pointer is also added to call the new batched function for the pop_vlan action. Signed-off-by: Emma Finn <emma.finn@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* odp-execute: Add function pointers to odp-execute for different action ↵Emma Finn2022-07-151-0/+91
implementations. This commit introduces the initial infrastructure required to allow different implementations for OvS actions. The patch introduces action function pointers which allows user to switch between different action implementations available. This will allow for more performance and flexibility so the user can choose the action implementation to best suite their use case. Signed-off-by: Emma Finn <emma.finn@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>