net/ena: ena release 2.11.0
cover net/ena: ena release 2.11.0
From: Shai Brandes <[email protected]>
Dear all,
Please find attached the patches for our upcoming release. We welcome and appreciate any feedback you may have. Thank you in advance.
Best regards,
Shai Brandes
Shai Brandes (3):
net/ena: upgrade driver version to 2.11.0
net/ena: support malformed Rx descriptor error
net/ena: remove outdated devarg documentation
doc/guides/nics/ena.rst | 4 ---- doc/guides/rel_notes/release_24_11.rst | 1 + drivers/net/ena/ena_ethdev.c | 31 +++++++++++++++++++------- drivers/net/ena/ena_ethdev.h | 2 ++ 4 files changed, 26 insertions(+), 12 deletions(-)
Signature · 1 line
2.17.1
PATCH 1/3 net/ena: upgrade driver version to 2.11.0
From: Shai Brandes <[email protected]>
Upgrade ENA driver version to 2.11.0.
--- drivers/net/ena/ena_ethdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ena/ena_ethdev.c +1 -1
@@ -22,7 +22,7 @@#include <ena_eth_io_defs.h> #define DRV_MODULE_VER_MAJOR 2 -#define DRV_MODULE_VER_MINOR 10 +#define DRV_MODULE_VER_MINOR 11#define DRV_MODULE_VER_SUBMINOR 0#define __MERGE_64B_H_L (h, l) (((uint64_t)h << 32) | l)
Signature · 1 line
2.17.1
PATCH 2/3 net/ena: support malformed Rx descriptor error
In reply to [email protected]From: Shai Brandes <[email protected]>
Add validation check for packet descriptor consistency and improve reset logic and stats tracking.
--- doc/guides/rel_notes/release_24_11.rst | 1 + drivers/net/ena/ena_ethdev.c | 29 +++++++++++++++++++------- drivers/net/ena/ena_ethdev.h | 2 ++ 3 files changed, 25 insertions(+), 7 deletions(-)
doc/guides/rel_notes/release_24_11.rst +1 -0
@@ -142,6 +142,7 @@ New Features * Modified the PMD API that controls the LLQ header policy. * Replaced ``enable_llq``, ``normal_llq_hdr`` and ``large_llq_hdr`` devargs with a new shared devarg ``llq_policy`` that keeps the same logic. + * Added validation check for Rx packet descriptor consistency. * **Updated Cisco enic driver.**
drivers/net/ena/ena_ethdev.c +22 -7
@@ -162,6 +162,8 @@ static const struct ena_stats ena_stats_rx_strings[] = {ENA_STAT_RX_ENTRY (mbuf_alloc_fail),ENA_STAT_RX_ENTRY (bad_desc_num),ENA_STAT_RX_ENTRY (bad_req_id), +ENA_STAT_RX_ENTRY (bad_desc), + ENA_STAT_RX_ENTRY(unknown_error), };#define ENA_STATS_ARRAY_GLOBAL ARRAY_SIZE(ena_stats_global_strings)
@@ -1262,7 +1264,9 @@ static int ena_stats_get(struct rte_eth_dev *dev, stats->q_ibytes[i] = rx_stats->bytes; stats->q_ipackets[i] = rx_stats->cnt; stats->q_errors[i] = rx_stats->bad_desc_num + - rx_stats->bad_req_id; + rx_stats->bad_req_id + + rx_stats->bad_desc + + rx_stats->unknown_error; } max_rings_stats = RTE_MIN(dev->data->nb_tx_queues,
@@ -2772,6 +2776,7 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,struct ena_ring *rx_ring = (struct ena_ring *)(rx_queue);unsigned int free_queue_entries;uint16_t next_to_clean = rx_ring->next_to_clean; +enum ena_regs_reset_reason_types reset_reason;uint16_t descs_in_use;struct rte_mbuf *mbuf;uint16_t completed;
@@ -2804,15 +2809,25 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,PMD_RX_LOG_LINE (ERR ,"Failed to get the packet from the device, rc: %d" , rc); -if (rc ==ENA_COM_NO_SPACE ) { +switch (rc) { +case ENA_COM_NO_SPACE : ++rx_ring->rx_stats.bad_desc_num; -ena_trigger_reset (rx_ring->adapter, -ENA_REGS_RESET_TOO_MANY_RX_DESCS ); - }else { + reset_reason =ENA_REGS_RESET_TOO_MANY_RX_DESCS ; +break ; +case ENA_COM_FAULT : + ++rx_ring->rx_stats.bad_desc; + reset_reason =ENA_REGS_RESET_RX_DESCRIPTOR_MALFORMED ; +break ; +case ENA_COM_EIO : ++rx_ring->rx_stats.bad_req_id; -ena_trigger_reset (rx_ring->adapter, -ENA_REGS_RESET_INV_RX_REQ_ID ); + reset_reason =ENA_REGS_RESET_INV_RX_REQ_ID ; +break ; +default : + ++rx_ring->rx_stats.unknown_error; + reset_reason =ENA_REGS_RESET_DRIVER_INVALID_STATE ; +break ; } +ena_trigger_reset (rx_ring->adapter, reset_reason);return 0 ; }
drivers/net/ena/ena_ethdev.h +2 -0
@@ -140,6 +140,8 @@ struct ena_stats_rx {u64 mbuf_alloc_fail;u64 bad_desc_num;u64 bad_req_id; +u64 bad_desc; +u64 unknown_error; };struct __rte_cache_aligned ena_ring {
Signature · 1 line
2.17.1
PATCH 3/3 net/ena: remove outdated devarg documentation
In reply to [email protected]From: Shai Brandes <[email protected]>
Removed obsolete devarg enforcing normal llq policy, as its logic is now handled by the new llq_policy devarg.
--- doc/guides/nics/ena.rst | 4 ---- 1 file changed, 4 deletions(-)
doc/guides/nics/ena.rst +0 -4
@@ -120,10 +120,6 @@ Runtime Configuration 3 - Enforce large LLQ policy. - * **normal_llq_hdr** (default 0) - - Enforce normal LLQ policy. - * **miss_txc_to** (default 5) Number of seconds after which the Tx packet will be considered missing.
Signature · 1 line
2.17.1
Re: [PATCH 3/3] net/ena: remove outdated devarg documentation
Quoted 7 lines · On 10/23/2024 10:41 AM, [email protected] wrote:
From: Shai Brandes <[email protected]>
Removed obsolete devarg enforcing normal llq policy, as its logic is now handled by the new
llq_policydevarg.Signed-off-by Shai Brandes <[email protected]>
Quoted 9 lines · On 10/23/2024 10:41 AM, [email protected] wrote:
From: Shai Brandes <[email protected]>
Dear all,
Please find attached the patches for our upcoming release. We welcome and appreciate any feedback you may have. Thank you in advance.
Best regards,
Shai Brandes
Quoted 5 lines
Shai Brandes (3):
net/ena: upgrade driver version to 2.11.0
net/ena: support malformed Rx descriptor error
net/ena: remove outdated devarg documentation
Series applied to dpdk-next-net/main, thanks.