| #
a95d7054 |
| 05-Apr-2022 |
David Marchand <[email protected]> |
eal: factorize lcore main loop
All OS implementations provide the same main loop. Introduce helpers (shared for Linux and FreeBSD) to handle synchronisation between main and threads and factorize th
eal: factorize lcore main loop
All OS implementations provide the same main loop. Introduce helpers (shared for Linux and FreeBSD) to handle synchronisation between main and threads and factorize the rest as common code. Thread id are now logged as string in a common format across OS.
Note: - this change also fixes Windows EAL: worker threads cpu affinity was incorrectly reported in log.
- libabigail flags this change as breaking ABI in clang builds: 1 function with some indirect sub-type change:
[C] 'function int rte_eal_remote_launch(int (void*)*, void*, unsigned int)' at eal_common_launch.c:35:1 has some indirect sub-type changes: parameter 1 of type 'int (void*)*' changed: in pointed to type 'function type int (void*)' at rte_launch.h:31:1: entity changed from 'function type int (void*)' to 'typedef lcore_function_t' at rte_launch.h:31:1 type size hasn't changed
This is being investigated on libabigail side. For now, we don't have much choice but to waive reports on this symbol.
Signed-off-by: David Marchand <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Tyler Retzlaff <[email protected]>
show more ...
|
| #
381813e6 |
| 23-Mar-2022 |
David Marchand <[email protected]> |
devtools: document ABI check suppression rules
Suppression rules are being added during the life of an ABI and cleaned when bumping the major version. Sort and document those rules to avoid pruning
devtools: document ABI check suppression rules
Suppression rules are being added during the life of an ABI and cleaned when bumping the major version. Sort and document those rules to avoid pruning rules that should be kept.
Signed-off-by: David Marchand <[email protected]>
show more ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3 |
|
| #
b403498e |
| 06-Mar-2022 |
Thomas Monjalon <[email protected]> |
build: hide local symbols in shared libraries
The symbols which are not listed in the version script are exported by default. Adding a local section with a wildcard make non-listed functions and var
build: hide local symbols in shared libraries
The symbols which are not listed in the version script are exported by default. Adding a local section with a wildcard make non-listed functions and variables as hidden, as it should be in all version.map files.
These are the changes done in the shared libraries: - DF .text Base auxiliary_add_device - DF .text Base auxiliary_dev_exists - DF .text Base auxiliary_dev_iterate - DF .text Base auxiliary_insert_device - DF .text Base auxiliary_is_ignored_device - DF .text Base auxiliary_match - DF .text Base auxiliary_on_scan - DF .text Base auxiliary_scan - DO .bss Base auxiliary_bus_logtype - DO .data Base auxiliary_bus - DO .bss Base gpu_logtype
There is no impact on regexdev library.
Because these local symbols were exported as non-internal in DPDK 21.11, any change in these functions would break the ABI. Exception rules are added for these experimental libraries, so the ABI check will skip them until the next ABI version.
A check is added to avoid such miss in future.
Fixes: 1afce3086cf4 ("bus/auxiliary: introduce auxiliary bus") Fixes: 8b8036a66e3d ("gpudev: introduce GPU device class library") Cc: [email protected]
Signed-off-by: Thomas Monjalon <[email protected]>
show more ...
|
| #
89e290eb |
| 06-Mar-2022 |
Thomas Monjalon <[email protected]> |
regexdev: fix section attribute of symbols
The functions used by the drivers must be internal, while the function and variables used in inline functions must be experimental.
These are the changes
regexdev: fix section attribute of symbols
The functions used by the drivers must be internal, while the function and variables used in inline functions must be experimental.
These are the changes done in the shared library: - DF .text Base rte_regexdev_get_device_by_name + DF .text INTERNAL rte_regexdev_get_device_by_name - DF .text Base rte_regexdev_register + DF .text INTERNAL rte_regexdev_register - DF .text Base rte_regexdev_unregister + DF .text INTERNAL rte_regexdev_unregister - DF .text Base rte_regexdev_is_valid_dev + DF .text EXPERIMENTAL rte_regexdev_is_valid_dev - DO .bss Base rte_regex_devices + DO .bss EXPERIMENTAL rte_regex_devices - DO .bss Base rte_regexdev_logtype + DO .bss EXPERIMENTAL rte_regexdev_logtype
Because these symbols were exported in the default section in DPDK 21.11, any change in these functions would be seen as incompatible by the ABI compatibility check. An exception rule is added for this experimental library, so the ABI check will skip it until the next ABI version.
Fixes: bab9497ef78b ("regexdev: introduce API") Cc: [email protected]
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Ori Kam <[email protected]>
show more ...
|
| #
8fdcd513 |
| 01-Mar-2022 |
David Marchand <[email protected]> |
devtools: use libabigail rule for mlx glue drivers
Convert the existing exception in the ABI script into a libabigail suppression rule.
Note: file_name_regexp could be used to achieve the same with
devtools: use libabigail rule for mlx glue drivers
Convert the existing exception in the ABI script into a libabigail suppression rule.
Note: file_name_regexp could be used to achieve the same with versions of libabigail < 1.7 but soname_regexp has been preferred here since it is already used with a recent change on common/mlx5.
While at it, fix indent from a recent change.
Signed-off-by: David Marchand <[email protected]> Acked-by: Ray Kinsella <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc2 |
|
| #
c2e3059a |
| 24-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: consider local functions as internal
The functions which are not explicitly marked as internal were exported because the local catch-all rule was missing in the version script. After ad
common/mlx5: consider local functions as internal
The functions which are not explicitly marked as internal were exported because the local catch-all rule was missing in the version script. After adding the missing rule, all local functions are hidden. The function mlx5_get_device_guid is used in another library, so it needs to be exported (as internal).
Because the local functions were exported as non-internal in DPDK 21.11, any change in these functions would break the ABI. An ABI exception is added for this library, considering that all functions are either local or internal.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc1 |
|
| #
a678c5d3 |
| 11-Feb-2022 |
Arek Kusztal <[email protected]> |
cryptodev: add DSA random number k
This commit adds random number 'k' to DSA op param struct for asymmetric crypto ops.
This parameter is crucial in stiuations where: - PMD cannot generate random n
cryptodev: add DSA random number k
This commit adds random number 'k' to DSA op param struct for asymmetric crypto ops.
This parameter is crucial in stiuations where: - PMD cannot generate random number - User would like to provide random source
Additionally, it makes DSA consistent with ECDSA in terms of 'k' which includes this parameter.
Signed-off-by: Arek Kusztal <[email protected]> Acked-by: Akhil Goyal <[email protected]>
show more ...
|
| #
8507a169 |
| 08-Feb-2022 |
Akhil Goyal <[email protected]> |
security: add IPsec option for IP reassembly
A new option is added in IPsec to enable and attempt reassembly of inbound IP packets.
Signed-off-by: Akhil Goyal <[email protected]>
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1 |
|
| #
fdab8f2e |
| 08-Aug-2021 |
Thomas Monjalon <[email protected]> |
version: 21.11-rc0
Start a new release cycle with empty release notes.
The ABI version becomes 22.0. The map files are updated to the new ABI major number (22). The ABI exceptions are dropped and C
version: 21.11-rc0
Start a new release cycle with empty release notes.
The ABI version becomes 22.0. The map files are updated to the new ABI major number (22). The ABI exceptions are dropped and CI ABI checks are disabled because compatibility is not preserved.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Ferruh Yigit <[email protected]> Acked-by: David Marchand <[email protected]>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1 |
|
| #
02edbfab |
| 07-Jul-2021 |
Huisong Li <[email protected]> |
ethdev: add dev configured flag
Currently, if dev_configure is not called or fails to be called, users can still call dev_start successfully. So it is necessary to have a flag which indicates whethe
ethdev: add dev configured flag
Currently, if dev_configure is not called or fails to be called, users can still call dev_start successfully. So it is necessary to have a flag which indicates whether the device is configured, to control whether dev_start can be called and eliminate dependency on user invocation order.
The flag stored in "struct rte_eth_dev_data" is more reasonable than "enum rte_eth_dev_state". "enum rte_eth_dev_state" is private to the primary and secondary processes, and can be independently controlled. However, the secondary process does not make resource allocations and does not call dev_configure(). These are done by the primary process and can be obtained or used by the secondary process. So this patch adds a "dev_configured" flag in "rte_eth_dev_data", like "dev_started".
Signed-off-by: Huisong Li <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Konstantin Ananyev <[email protected]>
libabigail raised a warning on this change. This change is fine wrt ABI as far as we understand, but we can't express an exception rule (see libabigail bug #28060) to waive the changes only in this part of the rte_eth_dev_data struct. The solution for now is to globally waive any change on the rte_eth_dev_data structure.
Signed-off-by: David Marchand <[email protected]>
show more ...
|
|
Revision tags: v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
9ad9ff47 |
| 19-Apr-2021 |
Lijun Ou <[email protected]> |
ethdev: add queue state in queried queue information
Currently, upper-layer application could get queue state only through pointers such as dev->data->tx_queue_state[queue_id], this is not the recom
ethdev: add queue state in queried queue information
Currently, upper-layer application could get queue state only through pointers such as dev->data->tx_queue_state[queue_id], this is not the recommended way to access it. So this patch add get queue state when call rte_eth_rx_queue_info_get and rte_eth_tx_queue_info_get API.
Note: After add queue_state field, the 'struct rte_eth_rxq_info' size remains 128B, and the 'struct rte_eth_txq_info' size remains 64B, so it could be ABI compatible.
Signed-off-by: Chengwen Feng <[email protected]> Signed-off-by: Lijun Ou <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Thomas Monjalon <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
f96a8ebb |
| 15-Apr-2021 |
Akhil Goyal <[email protected]> |
eventdev: introduce crypto adapter enqueue API
In case an event from a previous stage is required to be forwarded to a crypto adapter and PMD supports internal event port in crypto adapter, exposed
eventdev: introduce crypto adapter enqueue API
In case an event from a previous stage is required to be forwarded to a crypto adapter and PMD supports internal event port in crypto adapter, exposed via capability RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD, we do not have a way to check in the API rte_event_enqueue_burst(), whether it is for crypto adapter or for eth tx adapter.
Hence we need a new API similar to rte_event_eth_tx_adapter_enqueue(), which can send to a crypto adapter.
Note that RTE_EVENT_TYPE_* cannot be used to make that decision, as it is meant for event source and not event destination. And event port designated for crypto adapter is designed to be used for OP_NEW mode.
Hence, in order to support an event PMD which has an internal event port in crypto adapter (RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD mode), exposed via capability RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD, application should use rte_event_crypto_adapter_enqueue() API to enqueue events.
When internal port is not available(RTE_EVENT_CRYPTO_ADAPTER_OP_NEW mode), application can use API rte_event_enqueue_burst() as it was doing earlier, i.e. retrieve event port used by crypto adapter and bind its event queues to that port and enqueue events using the API rte_event_enqueue_burst().
Signed-off-by: Akhil Goyal <[email protected]> Acked-by: Abhinandan Gujjar <[email protected]> Acked-by: Jerin Jacob <[email protected]>
show more ...
|
| #
d014dddb |
| 14-Apr-2021 |
Matan Azrad <[email protected]> |
cryptodev: support multiple cipher data-units
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks.
A block cipher consists of two pa
cryptodev: support multiple cipher data-units
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks.
A block cipher consists of two paired algorithms, one for encryption and the other for decryption. Both algorithms accept two inputs: an input block of size n bits and a key of size k bits; and both yield an n-bit output block. The decryption algorithm is defined to be the inverse function of the encryption.
For AES standard the block size is 16 bytes. For AES in XTS mode, the data to be encrypted\decrypted does not have to be multiple of 16B size, the unit of data is called data-unit. The data-unit size can be any size in range [16B, 2^24B], so, in this case, a data stream is divided into N amount of equal data-units and must be encrypted\decrypted in the same data-unit resolution.
For ABI compatibility reason, the size is limited to 64K (16-bit field). The new field dataunit_len is inserted in a struct padding hole, which is only 2 bytes long in 32-bit build. It could be moved and extended later during an ABI-breakage window.
The current cryptodev API doesn't allow the user to select a specific data-unit length supported by the devices. In addition, there is no definition how the IV is detected per data-unit when single operation includes more than one data-unit.
That causes applications to use single operation per data-unit even though all the data is continuous in memory what reduces datapath performance.
Add a new feature flag to support multiple data-unit sizes, called RTE_CRYPTODEV_FF_CIPHER_MULTIPLE_DATA_UNITS. Add a new field in cipher capability, called dataunit_set, where the devices can report the range of the supported data-unit sizes. Add a new cipher transformation field, called dataunit_len, where the user can select the data-unit length for all the operations.
All the new fields do not change the size of their structures, by filling some struct padding holes. They are added as exceptions in the ABI check file libabigail.abignore.
Using a bitmap to report the supported data-unit sizes capability allows the devices to report a range simply as same as the user to read it simply. also, thus sizes are usually common and probably will be shared among different devices.
Signed-off-by: Matan Azrad <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Akhil Goyal <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3 |
|
| #
1a3022b2 |
| 01-Feb-2021 |
David Marchand <[email protected]> |
devtools: remove ethdev ABI exception
Now that the ethernet driver dev_ops structure definition is not exported anymore, there is no need for an exception. abidiff will only consider structures defi
devtools: remove ethdev ABI exception
Now that the ethernet driver dev_ops structure definition is not exported anymore, there is no need for an exception. abidiff will only consider structures defined in the installed headers (passed with --headers-dirX options).
Fixes: df96fd0d7395 ("ethdev: make driver-only headers private")
Signed-off-by: David Marchand <[email protected]> Acked-by: Ferruh Yigit <[email protected]> Acked-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc2 |
|
| #
8d935fff |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
bus/vdev: add driver IOVA VA mode requirement
This patch adds driver flag in vdev bus driver so that vdev drivers can require VA IOVA mode to be used, which for example the case of Virtio-user PMD.
bus/vdev: add driver IOVA VA mode requirement
This patch adds driver flag in vdev bus driver so that vdev drivers can require VA IOVA mode to be used, which for example the case of Virtio-user PMD.
The patch implements the .get_iommu_class() callback, that is called before devices probing to determine the IOVA mode to be used, and adds a check right before the device is probed to ensure compatible IOVA mode has been selected.
It also adds a ABI exception rule to accommodate with an update on the driver registration API
Signed-off-by: Maxime Coquelin <[email protected]> Acked-by: David Marchand <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
| #
78d3dd3e |
| 20-Jan-2021 |
Ray Kinsella <[email protected]> |
devtools: fix cryptodev ABI suppress rule
Update the ignore entry for crytodev to use named fields instead of bit positions. It is allowing changes between the last field (attached) in ABI 21.0, and
devtools: fix cryptodev ABI suppress rule
Update the ignore entry for crytodev to use named fields instead of bit positions. It is allowing changes between the last field (attached) in ABI 21.0, and the end of the padded struct in ABI 21.
Fixes: 1c3ffb95595e ("cryptodev: add enqueue and dequeue callbacks")
Signed-off-by: Ray Kinsella <[email protected]> Acked-by: Thomas Monjalon <[email protected]>
show more ...
|
| #
f0f93a7a |
| 24-Jan-2021 |
Dmitry Kozlyuk <[email protected]> |
buildtools: use Python pmdinfogen
Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add
buildtools: use Python pmdinfogen
Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add configure-time check for elftools Python module for Unix hosts.
Add pyelftools to CI configuration and build requirements for Linux and FreeBSD. Windows targets are not currently using pmdinfogen.
Suppress ABI warnings about generated PMD information strings.
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Neil Horman <[email protected]> Tested-by: Jie Zhou <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1 |
|
| #
1c3ffb95 |
| 22-Dec-2020 |
Abhinandan Gujjar <[email protected]> |
cryptodev: add enqueue and dequeue callbacks
This patch adds APIs to add/remove callback functions on crypto enqueue/dequeue burst. The callback function will be called for each burst of crypto ops
cryptodev: add enqueue and dequeue callbacks
This patch adds APIs to add/remove callback functions on crypto enqueue/dequeue burst. The callback function will be called for each burst of crypto ops received/sent on a given crypto device queue pair.
Signed-off-by: Abhinandan Gujjar <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Akhil Goyal <[email protected]>
show more ...
|
| #
1fe3eef5 |
| 14-Jan-2021 |
Liang Ma <[email protected]> |
ethdev: add simple power management API
Add a simple API to allow getting the monitor conditions for power-optimized monitoring of the Rx queues from the PMD, as well as release notes information.
ethdev: add simple power management API
Add a simple API to allow getting the monitor conditions for power-optimized monitoring of the Rx queues from the PMD, as well as release notes information.
Signed-off-by: Liang Ma <[email protected]> Signed-off-by: Anatoly Burakov <[email protected]> Acked-by: Andrew Rybchenko <[email protected]>
show more ...
|
|
Revision tags: v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1 |
|
| #
4f86c0ba |
| 10-Aug-2020 |
Thomas Monjalon <[email protected]> |
version: 20.11-rc0
Start a new release cycle with empty release notes.
The ABI version becomes 21.0. The ABI major is back to normal, having only one number (21 vs 20.0). The map files are updated
version: 20.11-rc0
Start a new release cycle with empty release notes.
The ABI version becomes 21.0. The ABI major is back to normal, having only one number (21 vs 20.0). The map files are updated to the new ABI major number (21). The ABI exceptions are dropped. Travis ABI check is disabled because compatibility is not preserved.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Ray Kinsella <[email protected]>
show more ...
|
|
Revision tags: v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2 |
|
| #
db48bae2 |
| 17-Jul-2020 |
Phil Yang <[email protected]> |
mbuf: use C11 atomic builtins for refcnt
Use C11 atomic builtins with explicit ordering instead of rte_atomic ops which enforce unnecessary barriers on aarch64.
Suggested-by: Olivier Matz <olivier.
mbuf: use C11 atomic builtins for refcnt
Use C11 atomic builtins with explicit ordering instead of rte_atomic ops which enforce unnecessary barriers on aarch64.
Suggested-by: Olivier Matz <[email protected]> Suggested-by: Dodji Seketeli <[email protected]> Signed-off-by: Phil Yang <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Acked-by: Olivier Matz <[email protected]>
show more ...
|
|
Revision tags: v20.08-rc1 |
|
| #
e0a43946 |
| 09-Jul-2020 |
Phil Yang <[email protected]> |
eal/linux: use C11 atomics for interrupt status
The event status is defined as a volatile variable and shared between threads. Use C11 atomic built-ins with explicit ordering instead of rte_atomic o
eal/linux: use C11 atomics for interrupt status
The event status is defined as a volatile variable and shared between threads. Use C11 atomic built-ins with explicit ordering instead of rte_atomic ops which enforce unnecessary barriers on aarch64.
The event status has been cleaned up by the compare-and-swap operation when we free the event data, so there is no need to set it to invalid after that.
Signed-off-by: Phil Yang <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Harman Kalra <[email protected]>
show more ...
|
| #
7762e013 |
| 26-Jun-2020 |
David Marchand <[email protected]> |
build: remove special versioning for non stable libraries
Having a special versioning for experimental/internal libraries put a additional maintenance cost while this status is already announced in
build: remove special versioning for non stable libraries
Having a special versioning for experimental/internal libraries put a additional maintenance cost while this status is already announced in MAINTAINERS and the library headers/documentation. Following discussions and vote at 05/20 TB meeting [1], use a single versioning for all libraries in DPDK.
Note: for the ABI check, an exception [2] had been added when tweaking this special versioning [3]. Prefer explicit libabigail rules (which will be dropped in 20.11).
1: https://mails.dpdk.org/archives/dev/2020-May/168450.html 2: https://git.dpdk.org/dpdk/commit/?id=23d7ad5db41c 3: https://git.dpdk.org/dpdk/commit/?id=ec2b8cd7ed69
Signed-off-by: David Marchand <[email protected]> Acked-by: Ray Kinsella <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v20.05, v20.05-rc4, v20.05-rc3 |
|
| #
6b6ca751 |
| 15-May-2020 |
Hemant Agrawal <[email protected]> |
drivers: mark internal NXP symbols
This patch moves the internal symbols to INTERNAL sections so that any change in them is not reported as ABI breakage.
Signed-off-by: Hemant Agrawal <hemant.agraw
drivers: mark internal NXP symbols
This patch moves the internal symbols to INTERNAL sections so that any change in them is not reported as ABI breakage.
Signed-off-by: Hemant Agrawal <[email protected]> Acked-by: Ray Kinsella <[email protected]>
show more ...
|
| #
4d1f7981 |
| 15-May-2020 |
Hemant Agrawal <[email protected]> |
drivers/mempool: mark internal NXP symbols
This patch moves the internal symbols to INTERNAL sections so that any change in them is not reported as ABI breakage.
Signed-off-by: Hemant Agrawal <hema
drivers/mempool: mark internal NXP symbols
This patch moves the internal symbols to INTERNAL sections so that any change in them is not reported as ABI breakage.
Signed-off-by: Hemant Agrawal <[email protected]> Acked-by: Ray Kinsella <[email protected]>
show more ...
|