History log of /dpdk/drivers/net/ena/ena_ethdev.c (Results 1 – 25 of 222)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2
# dbbdeb8b 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: update version to 2.6.0

This release contains multiple bug fixes and improvements, including
- Removal of the linearization function from the xmit Tx path. The
DPDK assumes checking f

net/ena: update version to 2.6.0

This release contains multiple bug fixes and improvements, including
- Removal of the linearization function from the xmit Tx path. The
DPDK assumes checking for the mbuf segments number in the Tx prepare
function.
- Extra logs, statistics, checks...
- Cleanup of the unused variables and definitions.
- Configurable Link Status event.
- Improvements for the timer service and the reset.
- Usage of the optimized memcpy on ARM.
- MP awareness improvements - extra API support for the secondary
processes (like reading basic statistics).
- Support of the xstats API to get xstat names by ID.
- Configurable Tx completions timeout.
- Proper setting of the meta-descriptor's DF flag.

Signed-off-by: Michal Krawczyk <[email protected]>

show more ...


# b2d2f1cf 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: fix checksum flag for L4

Some HW may invalidly set checksum error bit for the valid L4 checksum.
To avoid drop of the packets in that situation, do not indicate bad
checksum for L4 Rx csum

net/ena: fix checksum flag for L4

Some HW may invalidly set checksum error bit for the valid L4 checksum.
To avoid drop of the packets in that situation, do not indicate bad
checksum for L4 Rx csum offloads. Instead, set it as unknown, so the
application will re-verify this value.

The statistics counters will still work as previously.

Fixes: 05817057faba ("net/ena: fix indication of bad L4 Rx checksums")
Cc: [email protected]

Signed-off-by: Michal Krawczyk <[email protected]>

show more ...


# 9ae7a13f 23-Feb-2022 Dawid Gorecki <[email protected]>

net/ena: check memory BAR before initializing LLQ

The ena_com_config_dev_mode() performs many calculations related to LLQ
and then performs an admin queue call to configure LLQ in the device.

All o

net/ena: check memory BAR before initializing LLQ

The ena_com_config_dev_mode() performs many calculations related to LLQ
and then performs an admin queue call to configure LLQ in the device.

All of the operations performed by ena_com_config_dev_mode() are
unnecessary if membar hasn't been found. Move the dev_mem_base check
before ena_com_config_dev_mode() call. This prevents the unnecessary
operations from being performed.

Fixes: 2fca2a98c0d1 ("net/ena: support LLQv2")
Cc: [email protected]

Signed-off-by: Dawid Gorecki <[email protected]>
Reviewed-by: Michal Krawczyk <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 77e764c7 23-Feb-2022 Dawid Gorecki <[email protected]>

net/ena: extend logs for invalid request ID resets

Add information about port id, queue id and req_id to error logs in
validate_tx_req_id.

Signed-off-by: Dawid Gorecki <[email protected]>
Reviewed-b

net/ena: extend logs for invalid request ID resets

Add information about port id, queue id and req_id to error logs in
validate_tx_req_id.

Signed-off-by: Dawid Gorecki <[email protected]>
Reviewed-by: Michal Krawczyk <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 022fb61b 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: fix meta descriptor DF flag setup

Whenever Tx checksum offload is being used, the meta descriptor content
is taken into consideration. Setting DF field properly in the meta
descriptor may h

net/ena: fix meta descriptor DF flag setup

Whenever Tx checksum offload is being used, the meta descriptor content
is taken into consideration. Setting DF field properly in the meta
descriptor may have huge impact on the performance both for the IPv4 and
IPv6 packets.

The requirements for the df field are as below:
* No offload used - value doesn't matter
* IPv4 - 0 or 1, depending on the DF flag in the IPv4 header
* IPv6 - 1

Setting DF to 0 causes the packet to enter the slow-path in the HW and
as a result can noticeable impact the performance.

Moreover, as 'true' may not always be mapped to 1 depending on it's
definition for the given platform/compiler, for safety DF field is being
set explicitly to 1.

Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Cc: [email protected]

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# cc0c5d25 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: make Tx completion timeout configurable

The default missing Tx completion timeout was set to 5 seconds.
In order to provide users with the interface to control this timeout
to adjust it wit

net/ena: make Tx completion timeout configurable

The default missing Tx completion timeout was set to 5 seconds.
In order to provide users with the interface to control this timeout
to adjust it with the application's watchdog, the device argument for
controlling this value was added.

The parameter is called 'miss_txc_to' and can be modified using the
devargs interface:

./app -a <bdf>,miss_txc_to=UINT_NUMBER

This parameter accepts values from 0 to 60 and indicates number of
seconds after which the Tx packet will be considered as missing.

HW hints for the Tx completions timeout were removed to do not overwrite
parameter from the user. Also specifying default Tx completion timeout
value was moved from the configuration to init phase in order to
simplify default value assignment.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 2bae75ea 23-Feb-2022 Dawid Gorecki <[email protected]>

net/ena: fix reset reason being overwritten

When triggering the reset, no check was performed to see if the reset
was already triggered. This could result in original reset reason being
overwritten.

net/ena: fix reset reason being overwritten

When triggering the reset, no check was performed to see if the reset
was already triggered. This could result in original reset reason being
overwritten. Add ena_trigger_reset helper function, which checks if the
reset was triggered and only sets the reset reason if the reset wasn't
triggered yet. Replace all occurrences of manually setting the reset
with ena_trigger_reset call.

Fixes: 2081d5e2e92d ("net/ena: add reset routine")
Cc: [email protected]

Signed-off-by: Dawid Gorecki <[email protected]>
Reviewed-by: Michal Krawczyk <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 3cec73fa 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: support xstat names by ID

ENA was only supporting retrieval of all the xstats name and wasn't
implementing the eth_xstats_get_names_by_id API.

As this API may be more efficient than retrie

net/ena: support xstat names by ID

ENA was only supporting retrieval of all the xstats name and wasn't
implementing the eth_xstats_get_names_by_id API.

As this API may be more efficient than retrieving all the names, it
tries to avoid excessive string copying.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# a52b317e 23-Feb-2022 Dawid Gorecki <[email protected]>

net/ena: support Tx mbuf free on demand

ENA driver did not allow applications to call tx_cleanup. Freeing Tx
mbufs was always done by the driver and it was not possible to manually
request the drive

net/ena: support Tx mbuf free on demand

ENA driver did not allow applications to call tx_cleanup. Freeing Tx
mbufs was always done by the driver and it was not possible to manually
request the driver to free mbufs.

Modify ena_tx_cleanup function to accept maximum number of packets to
free and return number of packets that was freed.

Signed-off-by: Dawid Gorecki <[email protected]>
Reviewed-by: Michal Krawczyk <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 850e1bb1 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena/base: make IO memzone unique per port

Originally, the ena_com memzone counter was shared by ports, which
caused the memzones to be harder to identify and could potentially
lead to race and b

net/ena/base: make IO memzone unique per port

Originally, the ena_com memzone counter was shared by ports, which
caused the memzones to be harder to identify and could potentially
lead to race and because of that the counter had to be atomic.

This atomic counter was global variable and it couldn't work in the
multiprocess implementation.

The memzone is now being identified by the local to port memzone counter
and the port ID - both of those information can be found in the shared
data, so it can be probed easily.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 3aa3fa85 23-Feb-2022 Stanislaw Kardach <[email protected]>

net/ena: enable stats for multi-process mode

Since statistic gathering is now proxied safely to primary process, it
can be enabled in secondary processes.

Signed-off-by: Stanislaw Kardach <kda@semi

net/ena: enable stats for multi-process mode

Since statistic gathering is now proxied safely to primary process, it
can be enabled in secondary processes.

Signed-off-by: Stanislaw Kardach <[email protected]>
Reviewed-by: Michal Krawczyk <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# e3595539 23-Feb-2022 Stanislaw Kardach <[email protected]>

net/ena: proxy AQ calls to primary process

Due to how the ena_com compatibility layer is written, all AQ commands
triggering functions use stack to save results of AQ and then copy them
to user give

net/ena: proxy AQ calls to primary process

Due to how the ena_com compatibility layer is written, all AQ commands
triggering functions use stack to save results of AQ and then copy them
to user given function.
Therefore to keep the compatibility layer common, introduce ENA_PROXY
macro. It either calls the wrapped function directly (in primary
process) or proxies it to the primary via DPDK IPC mechanism. Since all
proxied calls are taken under a lock share the result data through
shared memory (in struct ena_adapter) to work around 256B IPC parameter
size limit.

New proxy calls can be added by
1. Adding a new message type at the end of enum ena_mp_req
2. Adding new message arguments to the struct ena_mp_body if needed
3. Defining proxy request descriptor with ENA_PROXY_DESC. Its arguments
include handlers for request preparation and response processing.
Any of those may be empty (aside of marking arguments as used).
4. Adding request handling logic to ena_mp_primary_handle()
5. Replacing proxied function calls with ENA_PROXY(adapter, <func>, ...)

Signed-off-by: Stanislaw Kardach <[email protected]>
Reviewed-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 67216c31 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: perform Tx cleanup before sending packets

To increase likelihood that current burst will fit in the HW rings,
perform Tx cleanup before pushing packets to the HW. It may increase
latency a

net/ena: perform Tx cleanup before sending packets

To increase likelihood that current burst will fit in the HW rings,
perform Tx cleanup before pushing packets to the HW. It may increase
latency a bit for sparse bursts, but the Tx flow now should be more
smooth.

It's also common order in the Tx burst function for other PMDs.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# e2174a54 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: skip timer if reset is triggered

Some user applications may not support PMD reset handling. If they will
support timer service it could cause a situation, when information
about the reset t

net/ena: skip timer if reset is triggered

Some user applications may not support PMD reset handling. If they will
support timer service it could cause a situation, when information
about the reset trigger is being showed every time the timer service is
being called.

Timer service is now being skipped if the reset was already triggered.

Fixes: d9b8b106bf9d ("net/ena: add watchdog and keep alive AENQ handler")
Cc: [email protected]

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# b9b05d6f 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: make link status change interrupt configurable

ENA uses AENQ for notification about various events, like LSC, keep
alive etc. By default it was enabling all AENQ that were supported by
both

net/ena: make link status change interrupt configurable

ENA uses AENQ for notification about various events, like LSC, keep
alive etc. By default it was enabling all AENQ that were supported by
both the driver and the device. As a result the LSC was always processed
even if the application turned it off explicitly.

As the DPDK provides application with the possibility to configure the
LSC, ENA should respect that. AENQ groups are now being updated upon
configure step, thus LSC can be activated or disabled between ENA PMD
reconfigurations. Moreover, the LSC capability for the device is being
determined dynamically.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 84daba99 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: add extra Rx checksum related xstats

* Split 'bad_csum' Rx statistic into 'l3_csum_bad' and 'l4_csum_bad' to
be able to check which checksum was not calculated properly.
* Add l4_csum_goo

net/ena: add extra Rx checksum related xstats

* Split 'bad_csum' Rx statistic into 'l3_csum_bad' and 'l4_csum_bad' to
be able to check which checksum was not calculated properly.
* Add l4_csum_good statistic, which shows how many times L4 Rx checksum
was properly offloaded.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# fa119804 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: remove unused offload variables

Those variables are being set, but never read. As they seem to be
leftover from the old offloads API and don't have any purpose right
now, they are simply be

net/ena: remove unused offload variables

Those variables are being set, but never read. As they seem to be
leftover from the old offloads API and don't have any purpose right
now, they are simply being removed.

Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API")
Cc: [email protected]

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Artur Rojek <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Igor Chauskin <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 0f135d2f 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: remove unused enumeration

The enumeration seems to be leftover from porting the Linux driver to
the DPDK. It was used nowhere and refers to the ethtool which is not
present in the DPDK.

Fi

net/ena: remove unused enumeration

The enumeration seems to be leftover from porting the Linux driver to
the DPDK. It was used nowhere and refers to the ethtool which is not
present in the DPDK.

Fixes: 372c1af5ed8f ("net/ena: add dedicated memory area for extra device info")
Cc: [email protected]

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Artur Rojek <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Igor Chauskin <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 3d47e9b1 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: assert on outstanding mbuf in Tx

To make sure there is no outstanding mbuf in the reused Tx queue (due to
improper cleanup, or some invalid logic on Tx path), the assertion was
added on the

net/ena: assert on outstanding mbuf in Tx

To make sure there is no outstanding mbuf in the reused Tx queue (due to
improper cleanup, or some invalid logic on Tx path), the assertion was
added on the Tx path.

As it's being compiled out in the release version, it won't affect
the IO path performance.

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


# 96ffa8a7 23-Feb-2022 Michal Krawczyk <[email protected]>

net/ena: remove Tx mbuf linearization

The linearization of the mbuf isn't common practice for the PMD, as it
can expose it's capabilities to the upper layer using
rte_eth_dev_info_get().

Moreover,

net/ena: remove Tx mbuf linearization

The linearization of the mbuf isn't common practice for the PMD, as it
can expose it's capabilities to the upper layer using
rte_eth_dev_info_get().

Moreover, the rte_eth_tx_prepare() function should also verify if the
number of segments inside the mbuf isn't too high.

Because of those 2 circumstances, it may be safer to avoid modifying
mbuf on PMD's Tx side and remove linearization at all. Instead, add
verification of the number of segments to the eth_ena_prep_pkts().

Signed-off-by: Michal Krawczyk <[email protected]>
Reviewed-by: Artur Rojek <[email protected]>
Reviewed-by: Dawid Gorecki <[email protected]>
Reviewed-by: Igor Chauskin <[email protected]>
Reviewed-by: Shai Brandes <[email protected]>

show more ...


Revision tags: v22.03-rc1
# 06c047b6 09-Feb-2022 Stephen Hemminger <[email protected]>

remove unnecessary null checks

Functions like free, rte_free, and rte_mempool_free
already handle NULL pointer so the checks here are not necessary.

Remove redundant NULL pointer checks before free

remove unnecessary null checks

Functions like free, rte_free, and rte_mempool_free
already handle NULL pointer so the checks here are not necessary.

Remove redundant NULL pointer checks before free functions
found by nullfree.cocci

Signed-off-by: Stephen Hemminger <[email protected]>

show more ...


# 7be78d02 29-Nov-2021 Josh Soref <[email protected]>

fix spelling in comments and strings

The tool comes from https://github.com/jsoref

Signed-off-by: Josh Soref <[email protected]>
Signed-off-by: Thomas Monjalon <[email protected]>


Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1
# d61138d4 22-Oct-2021 Harman Kalra <[email protected]>

drivers: remove direct access to interrupt handle

Removing direct access to interrupt handle structure fields,
rather use respective get set APIs for the same.
Making changes to all the drivers acce

drivers: remove direct access to interrupt handle

Removing direct access to interrupt handle structure fields,
rather use respective get set APIs for the same.
Making changes to all the drivers access the interrupt handle fields.

Signed-off-by: Harman Kalra <[email protected]>
Acked-by: Hyong Youb Kim <[email protected]>
Signed-off-by: David Marchand <[email protected]>
Tested-by: Raslan Darawsheh <[email protected]>

show more ...


# daa02b5c 15-Oct-2021 Olivier Matz <[email protected]>

mbuf: add namespace to offload flags

Fix the mbuf offload flags namespace by adding an RTE_ prefix to the
name. The old flags remain usable, but a deprecation warning is issued
at compilation.

Sign

mbuf: add namespace to offload flags

Fix the mbuf offload flags namespace by adding an RTE_ prefix to the
name. The old flags remain usable, but a deprecation warning is issued
at compilation.

Signed-off-by: Olivier Matz <[email protected]>
Acked-by: Andrew Rybchenko <[email protected]>
Acked-by: Ajit Khaparde <[email protected]>
Acked-by: Somnath Kotur <[email protected]>

show more ...


# 295968d1 22-Oct-2021 Ferruh Yigit <[email protected]>

ethdev: add namespace

Add 'RTE_ETH' namespace to all enums & macros in a backward compatible
way. The macros for backward compatibility can be removed in next LTS.
Also updated some struct names to

ethdev: add namespace

Add 'RTE_ETH' namespace to all enums & macros in a backward compatible
way. The macros for backward compatibility can be removed in next LTS.
Also updated some struct names to have 'rte_eth' prefix.

All internal components switched to using new names.

Syntax fixed on lines that this patch touches.

Signed-off-by: Ferruh Yigit <[email protected]>
Acked-by: Tyler Retzlaff <[email protected]>
Acked-by: Andrew Rybchenko <[email protected]>
Acked-by: Ajit Khaparde <[email protected]>
Acked-by: Jerin Jacob <[email protected]>
Acked-by: Wisam Jaddo <[email protected]>
Acked-by: Rosen Xu <[email protected]>
Acked-by: Chenbo Xia <[email protected]>
Acked-by: Hemant Agrawal <[email protected]>
Acked-by: Somnath Kotur <[email protected]>

show more ...


123456789