History log of /dpdk/drivers/net/ena/ena_ethdev.c (Results 26 – 50 of 259)
Revision Date Author Comments
# 3dbde902 26-Oct-2023 Shai Brandes <shaibran@amazon.com>

net/ena: update version to 2.8.0

This release introduces:
* Upgraded ENA HAL.
* Support for connection tracking allowance utilization metric.
* Support for reporting rx overrun errors in xstats.
* S

net/ena: update version to 2.8.0

This release introduces:
* Upgraded ENA HAL.
* Support for connection tracking allowance utilization metric.
* Support for reporting rx overrun errors in xstats.
* Support for ENA-express metrics.

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

show more ...


# a73dd098 26-Oct-2023 Shai Brandes <shaibran@amazon.com>

net/ena: support ENA-express stats

ENA-express is powered by AWS scalable reliable datagram (SRD)
technology. SRD is a high performance network transport protocol
that uses dynamic routing to increa

net/ena: support ENA-express stats

ENA-express is powered by AWS scalable reliable datagram (SRD)
technology. SRD is a high performance network transport protocol
that uses dynamic routing to increase throughput and minimize
tail latency.

The driver expose the following ENA-express metrics via xstats:
* ena_srd_mode – Describes which ENA-express features are enabled
* ena_srd_eligible_tx_pkts – The number of network packets sent
within a given time period that meet SRD requirements for
eligibility
* ena_srd_tx_pkts – The number of SRD packets transmitted within
a given time period.
* ena_srd_rx_pkts – The number of SRD packets received within
a given time period.
* ena_srd_resource_utilization – The percentage of the maximum
allowed memory utilization for concurrent SRD connections
that the instance has consumed.

Probing the ENA Express metrics is performed via an admin command.
Thus, a multi-process proxy handler was added.

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

show more ...


# 77d4ed30 26-Oct-2023 Shai Brandes <shaibran@amazon.com>

net/ena: report Rx overrun errors in xstats

RX overrun error occur when a packet arrives but there are
not enough free buffers in the RX ring to receive it.
The driver publishes the extended statist

net/ena: report Rx overrun errors in xstats

RX overrun error occur when a packet arrives but there are
not enough free buffers in the RX ring to receive it.
The driver publishes the extended statistics with the RX
buffer overrun errors as reported by the device.

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

show more ...


# 92401abf 26-Oct-2023 Shai Brandes <shaibran@amazon.com>

net/ena: support connection tracking stats

The driver publishes network performance metrics that the
application can use to troubleshoot performance issues,
monitor the workload, and benchmark appli

net/ena: support connection tracking stats

The driver publishes network performance metrics that the
application can use to troubleshoot performance issues,
monitor the workload, and benchmark applications to determine
whether they maximize the performance.

This patch adds support for the connection tracking allowance
utilization metric (Conntrack_allowance_available) that allows
monitoring the available tracked connections that can be
established before the interface exceeds its allowance.

The driver uses the redesigned HAL mechanism that is backward
compatible with the old method to query the metrics.

Probing the customer metrics is performed via an admin command.
Thus, a multi-process proxy handler was added.

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

show more ...


# f73f53f7 26-Oct-2023 Shai Brandes <shaibran@amazon.com>

net/ena: upgrade HAL

ENA maintains a HAL that is shared by all supported host drivers.
Main features introduced to the HAL:
[1] Reworked the mechanism that queries the performance metrics
from t

net/ena: upgrade HAL

ENA maintains a HAL that is shared by all supported host drivers.
Main features introduced to the HAL:
[1] Reworked the mechanism that queries the performance metrics
from the device.
[2] Added support for a new metric that allows monitoring the
available tracked connections.
[3] Added support for a new statistic that counts RX drops due
to insufficient buffers provided by host.
[4] Added support for Scalable Reliable Datagram (SRD) metrics
from ENA Express.
[5] Added support for querying the LLQ entry size recommendation
from the device.
[6] Added support for PTP hardware clock (PHC) feature that
provides enhanced accuracy (Not supported by the driver).
[7] Added support for new reset reasons for a suspected CPU
starvation and for completion descriptor inconsistency.
[8] Aligned all return error code to a common notation.
[9] Removed an obsolete queue tail pointer update API.

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

show more ...


# 2fc03b23 19-Oct-2023 Thomas Monjalon <thomas@monjalon.net>

drivers: use macro for PCI address format

Some places were not using the macro PCI_PRI_FMT
as print format of a PCI address.

Note: RTE prefix is missing in the name of some PCI macros.

Signed-off-

drivers: use macro for PCI address format

Some places were not using the macro PCI_PRI_FMT
as print format of a PCI address.

Note: RTE prefix is missing in the name of some PCI macros.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John Daley <johndale@cisco.com>
Acked-by: Huisong Li <lihuisong@huawei.com>

show more ...


# 9210f0ca 08-Sep-2023 Jie Hai <haijie1@huawei.com>

net/ena: fix Rx and Tx queue state

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. User

net/ena: fix Rx and Tx queue state

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")
Cc: stable@dpdk.org

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 0d5c38ba 13-Oct-2022 Chengwen Feng <fengchengwen@huawei.com>

ethdev: add error handling mode to device info

Currently, the defined error handling modes include:

1) NONE: it means no error handling modes are supported by this port.

2) PASSIVE: passive error

ethdev: add error handling mode to device info

Currently, the defined error handling modes include:

1) NONE: it means no error handling modes are supported by this port.

2) PASSIVE: passive error handling, after the PMD detect that a reset
is required, the PMD reports RTE_ETH_EVENT_INTR_RESET event, and
application invoke rte_eth_dev_reset() to recover the port.

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

show more ...


# a0b12075 07-Jun-2022 Michal Krawczyk <mk@semihalf.com>

net/ena: update version to 2.7.0

This release contains changes listed below.

- Fast mbuf free feature support.
- Device argument to disable the LLQ.
- Simplification of the MTU verification.

net/ena: update version to 2.7.0

This release contains changes listed below.

- Fast mbuf free feature support.
- Device argument to disable the LLQ.
- Simplification of the MTU verification.

Signed-off-by: Michal Krawczyk <mk@semihalf.com>

show more ...


# 9944919e 07-Jun-2022 Michal Krawczyk <mk@semihalf.com>

net/ena: add device argument to disable LLQ

The PMD attempts to enable the LLQ (Low Latency Queue) whenever it's
possible. The LLQ requires the user to enable the Write Combining for
the supported i

net/ena: add device argument to disable LLQ

The PMD attempts to enable the LLQ (Low Latency Queue) whenever it's
possible. The LLQ requires the user to enable the Write Combining for
the supported igb_uio/vfio-pci modules.

The vfio-pci module officially doesn't support the WC. Moreover, in some
Linux distributions, it can be built into the kernel, so any
modifications to the vfio-pci module require a full rebuild of the
kernel. This can make the configuration process much harder and for some
users, that are not interested in the great network performance for
their setups, it may be redundant. These users requested to be able to
turn off LLQ to avoid the hassle of such a setup.

It's generally not recommended to disable the LLQ, as it won't result in
the performance improvement and on the 6th generation AWS instances the
lack of LLQ can have a huge negative impact on hardware performance.

The device argument which controls the LLQ is called 'enable_llq` and by
default, it's set to 1 (which means that the LLQ is enabled). Setting
it to 0 disables the LLQ.

This commit also adds the explicit initialization of the devarg for the
'use_large_llq_hdr'. The PMD_REGISTER_PARAM_STRING() call for the ENA
was updated with all the available devargs (including
ENA_DEVARG_MISS_TXC_TO, which wasn't added previously).

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# c3d31352 07-Jun-2022 Dawid Gorecki <dgr@semihalf.com>

net/ena: remove redundant MTU verification

Remove MTU verification from ena_mtu_set() and ena_start(). It is done
by rte_ethdev already, so there is no reason to repeat it inside the ENA
driver.

Si

net/ena: remove redundant MTU verification

Remove MTU verification from ena_mtu_set() and ena_start(). It is done
by rte_ethdev already, so there is no reason to repeat it inside the ENA
driver.

Signed-off-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# c339f538 07-Jun-2022 Dawid Gorecki <dgr@semihalf.com>

net/ena: support fast mbuf free

Add support for RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE offload. It can be
enabled if all the mbufs for a given queue belong to the same mempool
and their reference count i

net/ena: support fast mbuf free

Add support for RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE offload. It can be
enabled if all the mbufs for a given queue belong to the same mempool
and their reference count is equal to 1.

Signed-off-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>

show more ...


# dbbdeb8b 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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 <mk@semihalf.com>

show more ...


# b2d2f1cf 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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: stable@dpdk.org

Signed-off-by: Michal Krawczyk <mk@semihalf.com>

show more ...


# 9ae7a13f 23-Feb-2022 Dawid Gorecki <dgr@semihalf.com>

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: stable@dpdk.org

Signed-off-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 77e764c7 23-Feb-2022 Dawid Gorecki <dgr@semihalf.com>

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 <dgr@semihalf.com>
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 <dgr@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 022fb61b 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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: stable@dpdk.org

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# cc0c5d25 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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 <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 2bae75ea 23-Feb-2022 Dawid Gorecki <dgr@semihalf.com>

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: stable@dpdk.org

Signed-off-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 3cec73fa 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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 <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# a52b317e 23-Feb-2022 Dawid Gorecki <dgr@semihalf.com>

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 <dgr@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 850e1bb1 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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 <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 3aa3fa85 23-Feb-2022 Stanislaw Kardach <kda@semihalf.com>

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 <kda@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# e3595539 23-Feb-2022 Stanislaw Kardach <kda@semihalf.com>

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 <kda@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


# 67216c31 23-Feb-2022 Michal Krawczyk <mk@semihalf.com>

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 <mk@semihalf.com>
Reviewed-by: Dawid Gorecki <dgr@semihalf.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>

show more ...


1234567891011