net/ena: ensure Rx buffer size is at least 1400B
Some of the ENA devices can't handle buffers which are smaller than a 1400B. Because of this limitation, size of the buffer is being checked and limited during the Rx queue setup. If it's below the allowed value, PMD won't finish it's configuration successfully.. Signed-off-by: Michal Krawczyk <mk@semihalf.com> Reviewed-by: Igor Chauskin <igorch@amazon.com> Reviewed-by: Guy Tzalik <gtzalik@amazon.com>
This commit is contained in:
parent
fd5cbded9e
commit
38364c2687
@ -1,5 +1,5 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
|
||||
* Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
@ -1282,6 +1282,7 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
|
||||
{
|
||||
struct ena_adapter *adapter = dev->data->dev_private;
|
||||
struct ena_ring *rxq = NULL;
|
||||
size_t buffer_size;
|
||||
int i;
|
||||
|
||||
rxq = &adapter->rx_ring[queue_idx];
|
||||
@ -1309,6 +1310,15 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* ENA isn't supporting buffers smaller than 1400 bytes */
|
||||
buffer_size = rte_pktmbuf_data_room_size(mp) - RTE_PKTMBUF_HEADROOM;
|
||||
if (buffer_size < ENA_RX_BUF_MIN_SIZE) {
|
||||
PMD_DRV_LOG(ERR,
|
||||
"Unsupported size of RX buffer: %zu (min size: %d)\n",
|
||||
buffer_size, ENA_RX_BUF_MIN_SIZE);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rxq->port_id = dev->data->port_id;
|
||||
rxq->next_to_clean = 0;
|
||||
rxq->next_to_use = 0;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
|
||||
* Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
#define ENA_MIN_FRAME_LEN 64
|
||||
#define ENA_NAME_MAX_LEN 20
|
||||
#define ENA_PKT_MAX_BUFS 17
|
||||
#define ENA_RX_BUF_MIN_SIZE 1400
|
||||
|
||||
#define ENA_MIN_MTU 128
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user