History log of /dpdk/drivers/net/ena/ena_ethdev.c (Results 1 – 25 of 259)
Revision Date Author Comments
# c4f16ab0 12-Dec-2024 Shai Brandes <shaibran@amazon.com>

net/ena: fix missing default LLQ policy

The driver failed to set a default llq_header_policy,
causing LLQ to be disabled when the devarg value is
not specified by the application.

Fixes: d7918d19d2

net/ena: fix missing default LLQ policy

The driver failed to set a default llq_header_policy,
causing LLQ to be disabled when the devarg value is
not specified by the application.

Fixes: d7918d19d25e ("net/ena: restructure LLQ policy user setting")
Cc: stable@dpdk.org

Signed-off-by: Yosef Raisman <yraisman@amazon.com>
Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...


# 7a166990 23-Oct-2024 Shai Brandes <shaibran@amazon.com>

net/ena: support malformed Rx descriptor error

Add validation check for packet descriptor consistency
and improve reset logic and stats tracking.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
R

net/ena: support malformed Rx descriptor error

Add validation check for packet descriptor consistency
and improve reset logic and stats tracking.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 3a2509ab 23-Oct-2024 Shai Brandes <shaibran@amazon.com>

net/ena: upgrade driver version to 2.11.0

Upgrade ENA driver version to 2.11.0.

Signed-off-by: Shai Brandes <shaibran@amazon.com>


# d7918d19 06-Oct-2024 Shai Brandes <shaibran@amazon.com>

net/ena: restructure LLQ policy user setting

Replaced `enable_llq`, `normal_llq_hdr` and `large_llq_hdr`
devargs with a new shared devarg named `llq_policy` that
implements the same logic and accept

net/ena: restructure LLQ policy user setting

Replaced `enable_llq`, `normal_llq_hdr` and `large_llq_hdr`
devargs with a new shared devarg named `llq_policy` that
implements the same logic and accepts the following values:
0 - Disable LLQ.
Use with extreme caution as it leads to a huge performance
degradation on AWS instances built with Nitro v4 onwards.
1 - Accept device recommended LLQ policy (Default).
Device can recommend normal or large LLQ policy.
2 - Enforce normal LLQ policy.
3 - Enforce large LLQ policy.
Required for packets with header that exceed 96 bytes on
AWS instances built with Nitro v2 and earlier.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# e99981af 12-Aug-2024 David Marchand <david.marchand@redhat.com>

drivers: replace logging helpers

Prepare for the conversion to RTE_LOG_LINE.
Some drivers currently add no \n in the logging macro and
have the callers do it.

Let's invert this logic but again, thi

drivers: replace logging helpers

Prepare for the conversion to RTE_LOG_LINE.
Some drivers currently add no \n in the logging macro and
have the callers do it.

Let's invert this logic but again, thinking about backports, introduce
the change in new macros.

Signed-off-by: David Marchand <david.marchand@redhat.com>

show more ...


# 1be188e2 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: upgrade driver version to 2.10.0

upgrade driver version to 2.10.0.

Signed-off-by: Shai Brandes <shaibran@amazon.com>


# 5ac1749f 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: rework Rx checksum inspection

This restructure is a simplification of the
Rx checksum inspection logic in ena_rx_mbuf_prepare.
Its purpose is to improve readability and maintainability
by c

net/ena: rework Rx checksum inspection

This restructure is a simplification of the
Rx checksum inspection logic in ena_rx_mbuf_prepare.
Its purpose is to improve readability and maintainability
by consolidating conditions.

Signed-off-by: Shai Brandes <shaibran@amazon.com>

show more ...


# f66055c7 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: fix checksum handling

This change fixes an issue where a non tcp/udp packet can be indicated
to have an invalid csum. If the device erroneously tries to verify the
csum on a non tcp/udp pac

net/ena: fix checksum handling

This change fixes an issue where a non tcp/udp packet can be indicated
to have an invalid csum. If the device erroneously tries to verify the
csum on a non tcp/udp packet it will result in false indication that
there is a csum error. This change make the driver ignore the
indication for csum error on such packets.

Fixes: 84daba9962b5 ("net/ena: add extra Rx checksum related xstats")
Cc: stable@dpdk.org

Signed-off-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 8936b01a 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: fix return value check

Removed the sign inversion for when checking if
ena_com_set_host_attributes returns ENA_COM_UNSUPPORTED.
ENA_COM_UNSUPPORTED is defined as -EOPNOTSUPP, so the extra s

net/ena: fix return value check

Removed the sign inversion for when checking if
ena_com_set_host_attributes returns ENA_COM_UNSUPPORTED.
ENA_COM_UNSUPPORTED is defined as -EOPNOTSUPP, so the extra sign
inversion is wrong.

Fixes: 3adcba9a8987 ("net/ena: update HAL to the newer version")
Cc: stable@dpdk.org

Signed-off-by: Shai Brandes <shaibran@amazon.com>

show more ...


# fa4bb702 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: fix bad checksum handling

Removed a workaround for a false L4 bad Rx csum
indication from the device. The workaround was to set it
as unknown so the application would check it instead.
The

net/ena: fix bad checksum handling

Removed a workaround for a false L4 bad Rx csum
indication from the device. The workaround was to set it
as unknown so the application would check it instead.
The issue was fixed in the device, thus the driver bad csum
handling should be fixed in the PMD.

Fixes: b2d2f1cf89a6 ("net/ena: fix checksum flag for L4")
Cc: stable@dpdk.org

Signed-off-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 8af56083 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: rework device uninit

Rework device uninitialization flow to ensure complete resource
cleanup, and lay the groundwork for hot-unplug support. With this
change, `ena_destroy_device()` is remo

net/ena: rework device uninit

Rework device uninitialization flow to ensure complete resource
cleanup, and lay the groundwork for hot-unplug support. With this
change, `ena_destroy_device()` is removed, its functionality now
incorporated into `ena_close()`.

Signed-off-by: Shai Brandes <shaibran@amazon.com>

show more ...


# eea9fc6a 02-Jul-2024 Shai Brandes <shaibran@amazon.com>

net/ena: change logger to improve performance

Current implementation of ena_trc_dbg on every TX packet has a major
performance impact on DPDK TX flow.
Profiling revealed that these calls, which trig

net/ena: change logger to improve performance

Current implementation of ena_trc_dbg on every TX packet has a major
performance impact on DPDK TX flow.
Profiling revealed that these calls, which trigger rte_log usage,
consume a significant amount of CPU resources.

Change details:
1. Several warning prints that incorrectly used ena_trc_dbg will now be
compiled out. They have been changed to ena_trc_warn to avoid
compiler warnings, such as empty if/else body or unused parameter.
2. Removed variables which is used only inside prints and thus
may be unreferenced.
3. calls for ena_trc_dbg will be enabled only if
RTE_ETHDEV_DEBUG_TX or RTE_ETHDEV_DEBUG_RX defined

Signed-off-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 237407f0 20-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: fix mbuf double free in fast free mode

Fixed an issue of double free of mbufs which is exposed
in mbuf fast free mode when handling multi-mbuf packets.

The faulty patch mishandled free of

net/ena: fix mbuf double free in fast free mode

Fixed an issue of double free of mbufs which is exposed
in mbuf fast free mode when handling multi-mbuf packets.

The faulty patch mishandled free of non-head mbufs as it
iterated over linked mbufs and collected them into an array,
which was then passed to rte_pktmbuf_free_bulk.
However, rte_pktmbuf_free_bulk already performs an internal iteration
over mbufs that are linked together which led to double free.

Fixes: 89b081e154c5 ("net/ena: fix fast mbuf free")
Cc: stable@dpdk.org

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# fa1c189d 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: upgrade driver version to 2.9.0

Upgrade driver version to 2.9.0.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>


# ca1dfa85 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: add control path pure polling mode

This commit implements a new operation mode that enables purely
polling-based functionality, eliminating the need for interrupts in
the control path. This

net/ena: add control path pure polling mode

This commit implements a new operation mode that enables purely
polling-based functionality, eliminating the need for interrupts in
the control path. This mode is not activated by default and can be
toggled using the "control_poll_interval" devarg. When operating in
this mode, periodic alarms are used to monitor the control queues.

A non-zero value for this devarg is mandatory for control path
functionality when binding ports to uio_pci_generic kernel module which
lacks interrupt support.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# bf5fe95c 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: support max large LLQ depth from device

Selected AWS instances from later generations enable
large LLQ by default, allowing the transmission of
packets with headers exceeding 96 bytes.

Due

net/ena: support max large LLQ depth from device

Selected AWS instances from later generations enable
large LLQ by default, allowing the transmission of
packets with headers exceeding 96 bytes.

Due to the overall ENA memory BAR size limitation,
large LLQ has the side effect of halving the maximum
number of LLQ entries (from 1024 to 512).

ENA-Express, powered by AWS Scalable Reliable Datagram
(SRD) technology, requires Tx queue with 1024 entries.
Selected AWS instances from upcoming generations will
have double the size of the ENA memory BAR, enabling ENA-Express
to work with a large LLQ of 1024 entries.

The initial default large LLQ size will remain 512.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 9d3a9851 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: exhaust interrupt callbacks in device close

Change rte_intr_callback_unregister to its synchronous variant to
ensure all active interrupt callbacks are completed before proceeding
with the

net/ena: exhaust interrupt callbacks in device close

Change rte_intr_callback_unregister to its synchronous variant to
ensure all active interrupt callbacks are completed before proceeding
with the flow. Relocate the interrupt deregistration to precede the
release of stats memory, thereby preventing the interrupt handler
from accessing memory that has already been freed.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 96fc5e08 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: update device-preferred size of rings

Update the device-preferred size of the Tx ring to fall within the
valid range when a large LLQ is enabled. For consistency, align the
device-preferred

net/ena: update device-preferred size of rings

Update the device-preferred size of the Tx ring to fall within the
valid range when a large LLQ is enabled. For consistency, align the
device-preferred size of the Rx ring accordingly.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 1f11149d 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: restructure LLQ policy setting process

The driver will set the size of the LLQ header size
according to the recommendation from the device.
The user can bypass the recommendation via devarg

net/ena: restructure LLQ policy setting process

The driver will set the size of the LLQ header size
according to the recommendation from the device.
The user can bypass the recommendation via devargs:
- The existing devarg 'large_llq_hdr' (default 0)
allows user to enforce large llq header policy.
- The existing devarg 'enable_llq' (default 1)
allows user to disable llq usage.
- A new devarg 'normal_llq_hdr' (default 0)
allows user to enforce normal llq header policy.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 89b081e1 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: fix fast mbuf free

In case the application enables fast mbuf release optimization,
the driver releases 256 TX mbufs in bulk upon reaching the
TX free threshold.
The existing implementation

net/ena: fix fast mbuf free

In case the application enables fast mbuf release optimization,
the driver releases 256 TX mbufs in bulk upon reaching the
TX free threshold.
The existing implementation utilizes rte_mempool_put_bulk for bulk
freeing TXs, which exclusively supports direct mbufs.
In case the application transmits indirect bufs, the driver must
also decrement the mbuf reference count and unlink the mbuf segment.
For such case, the driver should employ rte_pktmbuf_free_bulk.

Fixes: c339f53823f3 ("net/ena: support fast mbuf free")
Cc: stable@dpdk.org

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 2c0f7536 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: support sub-optimal configuration notifications

ENA device will send asynchronous notifications to the
driver in order to notify users about sub-optimal configurations
and refer them to pub

net/ena: support sub-optimal configuration notifications

ENA device will send asynchronous notifications to the
driver in order to notify users about sub-optimal configurations
and refer them to public AWS documentation for further action.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# dae29f75 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: update imissed counter with Rx overruns

Depending on its acceleration support, the device updates
a different statistic when an ingress packet is dropped
because no buffers are available to

net/ena: update imissed counter with Rx overruns

Depending on its acceleration support, the device updates
a different statistic when an ingress packet is dropped
because no buffers are available to hold it.
- In AWS instance types from later generations
'rx_overruns' is updated.
- Otherwise, in legacy instance types,
'rx_dropped_cnt' is updated.

That is, there is no need to report rx_overruns separately
as an xstat and the driver can simply sum up the two
self-contained counters as the 'imissed' statistic.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 4ebe5efa 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: report new supported link speed capabilities

Updated the rte_eth_dev_info device supported speed
bitmap to include 200Gbps and 400Gbps capabilities.

Signed-off-by: Shai Brandes <shaibran@a

net/ena: report new supported link speed capabilities

Updated the rte_eth_dev_info device supported speed
bitmap to include 200Gbps and 400Gbps capabilities.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 980d0ba4 12-Mar-2024 Shai Brandes <shaibran@amazon.com>

net/ena: rework metrics multi-process functions

1. Changed the rte_memcpy call to use the precomputed buf_size.
2. Removed redundant address operators (ampersand symbol)
when providing memcpy sou

net/ena: rework metrics multi-process functions

1. Changed the rte_memcpy call to use the precomputed buf_size.
2. Removed redundant address operators (ampersand symbol)
when providing memcpy source address parameter.
3. Code style related change.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# 93998f3c 15-Nov-2023 Tyler Retzlaff <roretzla@linux.microsoft.com>

add extension keyword to GCC statement expressions

Add __extension__ keyword to gcc statement expression extensions.
This is necessary for MSVC support.

Signed-off-by: Tyler Retzlaff <roretzla@linu

add extension keyword to GCC statement expressions

Add __extension__ keyword to gcc statement expression extensions.
This is necessary for MSVC support.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>

show more ...


1234567891011