|
Revision tags: v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1 |
|
| #
1dd3e5e2 |
| 13-Feb-2024 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: optimize IPv4/IPv6 address conversion
Enhanced the move instruction to detect and optimize the conversion between 128-bit numbers (IPv6 addresses) and 64-bit (upper or lower part of IPv6 a
pipeline: optimize IPv4/IPv6 address conversion
Enhanced the move instruction to detect and optimize the conversion between 128-bit numbers (IPv6 addresses) and 64-bit (upper or lower part of IPv6 addresses) or 32-bit numbers (IPv4 addresses).
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
2f8168ea |
| 13-Feb-2024 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: add instruction for IPv6 address upper half
Added new instruction called "movh" to read/write the upper half of an IPv6 address, i.e. bits 127-64 of a 128-bit field.
Signed-off-by: Cristi
pipeline: add instruction for IPv6 address upper half
Added new instruction called "movh" to read/write the upper half of an IPv6 address, i.e. bits 127-64 of a 128-bit field.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
c66dfe7a |
| 14-Feb-2024 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: remove limitation on number of input ports
Removed the requirement that the number of pipeline input ports be a power of 2, which is problematic for many real life use-cases. Also adding c
pipeline: remove limitation on number of input ports
Removed the requirement that the number of pipeline input ports be a power of 2, which is problematic for many real life use-cases. Also adding checks for the output port validity used for sending the current packet.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
|
Revision tags: v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1, v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1 |
|
| #
2d9e1093 |
| 17-Apr-2023 |
Kamalakannan R <kamalakannan.r@intel.com> |
pipeline: fix double free for table stats
The pointer to the table statistics data structure needs to be set to NULL after free inside the table_build_free(), as this function is called from multipl
pipeline: fix double free for table stats
The pointer to the table statistics data structure needs to be set to NULL after free inside the table_build_free(), as this function is called from multiple places, leading to double memory free error.
Similar fix for the learner_build_free() function.
Fixes: 742b0a57f50e ("pipeline: add table statistics to SWX") Fixes: 4f59d3726147 ("pipeline: support learner tables") Cc: stable@dpdk.org
Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
|
Revision tags: v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1 |
|
| #
5b65690e |
| 10-Feb-2023 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: support conversion between big and small fields
While the small fields (size <= 64 bits) can be in either network byte order (header fields) or host byte order (meta-data fields), the big
pipeline: support conversion between big and small fields
While the small fields (size <= 64 bits) can be in either network byte order (header fields) or host byte order (meta-data fields), the big fields (size > 64 bits) are always expected to be in network byte order (big endian), both header and metadata fields.
Previously, a big field could be involved in an assignment only when both the destination and the source are big fields of exactly the same size. This restriction is now relaxed significantly: in case a big field is involved as either destination or source, the other field can now be either a big field (of the same or different size) or a small header field, so in either case both destination and source are in the network byte order.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
| #
8ba342ce |
| 07-Feb-2023 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: add RSS
Add pipeline support for the Receive Side Scaling (RSS) hashing. While the pipeline already supports the stateless hashing schemes, the RSS scheme uses a key configured by the cont
pipeline: add RSS
Add pipeline support for the Receive Side Scaling (RSS) hashing. While the pipeline already supports the stateless hashing schemes, the RSS scheme uses a key configured by the control plane and preserved between successive RSS hash invocations.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
|
Revision tags: v22.11, v22.11-rc4 |
|
| #
a774cba0 |
| 21-Nov-2022 |
Yogesh Jangra <yogesh.jangra@intel.com> |
pipeline: fix validate header instruction
The exported data structure for the header validate instruction did not populate its struct_id field, which results in segmentation fault.
Fixes: 216bc906d
pipeline: fix validate header instruction
The exported data structure for the header validate instruction did not populate its struct_id field, which results in segmentation fault.
Fixes: 216bc906d00 ("pipeline: export pipeline instructions to file") Cc: stable@dpdk.org
Signed-off-by: Yogesh Jangra <yogesh.jangra@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
|
Revision tags: v22.11-rc3, v22.11-rc2, v22.11-rc1 |
|
| #
ac0d65df |
| 30-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: support direct meters on control path
Add pipeline control path API to manage direct meters. These meters are identified by a table key, whose entry ID is used as the index into the meter
pipeline: support direct meters on control path
Add pipeline control path API to manage direct meters. These meters are identified by a table key, whose entry ID is used as the index into the meter array.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
aa185523 |
| 30-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: support direct registers on control path
Add pipeline control path API to read/write direct registers. These registers are identified by a table key, whose entry ID is used as the index in
pipeline: support direct registers on control path
Add pipeline control path API to read/write direct registers. These registers are identified by a table key, whose entry ID is used as the index into the register array.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
d4e95281 |
| 30-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: add table entry ID read instruction
Add the entry ID instruction that reads the entry ID of the latest table lookup operation from the pipeline into the meta-data. The entry ID is then use
pipeline: add table entry ID read instruction
Add the entry ID instruction that reads the entry ID of the latest table lookup operation from the pipeline into the meta-data. The entry ID is then used by the register and meter instructions as the index into the register or meter array.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
c1b4b26a |
| 30-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
table: add entry ID for learner tables
Add support for unique ID for each learner table entry. The entry ID is retrieved as part of the learner table lookup operation and is saved by the pipeline fo
table: add entry ID for learner tables
Add support for unique ID for each learner table entry. The entry ID is retrieved as part of the learner table lookup operation and is saved by the pipeline for later use.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
42605e56 |
| 30-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
table: add entry ID for regular tables
Add support for unique ID for each table entry. The entry ID is retrieved as part of the table lookup operation and is saved by the pipeline for later use.
Si
table: add entry ID for regular tables
Add support for unique ID for each table entry. The entry ID is retrieved as part of the table lookup operation and is saved by the pipeline for later use.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
fa7723b5 |
| 19-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: configure hash function for learner tables
Make the hash function configurable for the learner pipeline tables.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-o
pipeline: configure hash function for learner tables
Make the hash function configurable for the learner pipeline tables.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
| #
9560a329 |
| 19-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: configure hash function for regular tables
Make the hash function configurable for the regular pipeline tables.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-o
pipeline: configure hash function for regular tables
Make the hash function configurable for the regular pipeline tables.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
| #
9ebff617 |
| 12-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: support moving large structure fields
Add support to the move instruction for operands bigger than 64 bits.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-b
pipeline: support moving large structure fields
Add support to the move instruction for operands bigger than 64 bits.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Harshad Narayane <harshad.suresh.narayane@intel.com>
show more ...
|
| #
86347cd9 |
| 12-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: support large default action arguments
Support structure fields bigger than 64 bits as default action arguments.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-
pipeline: support large default action arguments
Support structure fields bigger than 64 bits as default action arguments.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Harshad Narayane <harshad.suresh.narayane@intel.com>
show more ...
|
| #
076d6128 |
| 12-Aug-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: remove 64-bit limit for structure fields
Remove the generic limitation of structure fields to 64 bits or less and push this restriction to the instructions that require it.
Signed-off-by:
pipeline: remove 64-bit limit for structure fields
Remove the generic limitation of structure fields to 64 bits or less and push this restriction to the instructions that require it.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Harshad Narayane <harshad.suresh.narayane@intel.com>
show more ...
|
| #
68b95704 |
| 28-Jul-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: add API for shared library-based pipeline build
Previously, the pipeline build operation was done based on the specification file (typically produced by the P4 compiler), then the C code w
pipeline: add API for shared library-based pipeline build
Previously, the pipeline build operation was done based on the specification file (typically produced by the P4 compiler), then the C code with optimized functions for the pipeline actions and instructions was generated, built into a shared object library, loaded and installed into the pipeline in a completely hardcoded and non-customizable way.
Now, this process is split into three explicit stages: i) code generation (specification file -> C file); ii) code build (C file -> shared object library); iii) code installation (library load into the pipeline).
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
| #
8f55f896 |
| 28-Jul-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: add API for code generation
Previously, the C code generation for the pipeline was hidden under the hood; now, we make this an explicit API operation. Besides the functions for the pipelin
pipeline: add API for code generation
Previously, the C code generation for the pipeline was hidden under the hood; now, we make this an explicit API operation. Besides the functions for the pipeline actions and the pipeline instructions, the generated C source code now includes the pipeline specification structure required for the pipeline configuration operations.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
| #
d69c90c8 |
| 28-Jul-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: add pipeline name
Add an unique name to every pipeline. This enables the library to maintain a list of the existing pipeline objects, which can be queried by the application.
Signed-off-b
pipeline: add pipeline name
Add an unique name to every pipeline. This enables the library to maintain a list of the existing pipeline objects, which can be queried by the application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
show more ...
|
| #
af00c935 |
| 18-Jul-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: fix code generation for recirculation ID
The "offset" and "n_bits" fields were generated incorrectly, hence the output C file was producing compilation errors when the "recircid" instructi
pipeline: fix code generation for recirculation ID
The "offset" and "n_bits" fields were generated incorrectly, hence the output C file was producing compilation errors when the "recircid" instruction was used.
Fixes: 5ec76d29dc6 ("pipeline: support packet recirculation") Cc: stable@dpdk.org
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
|
Revision tags: v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1, v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
64e14b8b |
| 20-Feb-2022 |
Stephen Hemminger <stephen@networkplumber.org> |
remove unnecessary null checks
Found by nullfree.cocci.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> [David: for lpm parts:] Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-
remove unnecessary null checks
Found by nullfree.cocci.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> [David: for lpm parts:] Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com> [David: for vdpa/mlx5 parts:] Acked-by: Matan Azrad <matan@nvidia.com> [David: for dma/dpaa2, raw/ifpga, vdpa/mlx5:] Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Reviewed-by: Chengwen Feng <fengchengwen@huawei.com> [David: reran cocci.sh and updated common/mlx5 and cryptodev asym test] Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
| #
a1b2afe4 |
| 16-Jun-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: rework optimization pattern for header generation
The P4 language requires marking a header as valid before any of the header fields are written as opposed to after the writes are done. He
pipeline: rework optimization pattern for header generation
The P4 language requires marking a header as valid before any of the header fields are written as opposed to after the writes are done. Hence, the optimization of replacing the sequence of instructions to generate a header by reading it from the table action data with a single DMA internal instruction are reworked from "mov all + validate -> dma" to "validate + mov all -> dma".
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
ce1511f4 |
| 16-Jun-2022 |
Harshad Narayane <harshad.suresh.narayane@intel.com> |
pipeline: fix check maximum learner table timeouts
Fix comparison used to check against the maximum number of learner table timeouts.
Fixes: e2ecc53582fb ("pipeline: improve learner table timers")
pipeline: fix check maximum learner table timeouts
Fix comparison used to check against the maximum number of learner table timeouts.
Fixes: e2ecc53582fb ("pipeline: improve learner table timers")
Signed-off-by: Harshad Narayane <harshad.suresh.narayane@intel.com> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|
| #
0a00384a |
| 13-Jun-2022 |
Cristian Dumitrescu <cristian.dumitrescu@intel.com> |
pipeline: fix packet mirroring configuration
Fix segmentation fault due to null pointer dereferencing inside the "mirror" instruction when number of mirroring slots is set to 0. This was taking plac
pipeline: fix packet mirroring configuration
Fix segmentation fault due to null pointer dereferencing inside the "mirror" instruction when number of mirroring slots is set to 0. This was taking place when the "mirror" instruction was used without the mirror feature being properly configured, i.e. the API function rte_swx_pipeline_mirroring_config was not called at initialization.
Fixes: dac0ecd9098 ("pipeline: support packet mirroring")
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
show more ...
|