All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ether: fix configure() to use a default for max_rx_pkt_len
@ 2017-03-23 17:06 Andriy Berestovskyy
  2017-03-24 11:52 ` [PATCH v2] ether: use a default for max Rx frame size in configure() Andriy Berestovskyy
                   ` (3 more replies)
  0 siblings, 4 replies; 29+ messages in thread
From: Andriy Berestovskyy @ 2017-03-23 17:06 UTC (permalink / raw)
  To: dev

At the moment rte_eth_dev_configure() behaves inconsistent:
 - for normal frames: out of range max_rx_pkt_len uses a default
 - for jumbo frames: out of range max_rx_pkt_len gives an error

This patch fixes this inconsistency by using a default value
for max_rx_pkt_len both for normal and jumbo frames.

Signed-off-by: Andriy Berestovskyy <Andriy.Berestovskyy@cavium.com>
---
 lib/librte_ether/rte_ethdev.c | 20 +++++---------------
 lib/librte_ether/rte_ethdev.h |  6 +++++-
 2 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index eb0a94a..f560051 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -856,21 +856,11 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 	 * length is supported by the configured device.
 	 */
 	if (dev_conf->rxmode.jumbo_frame == 1) {
-		if (dev_conf->rxmode.max_rx_pkt_len >
-		    dev_info.max_rx_pktlen) {
-			RTE_PMD_DEBUG_TRACE("ethdev port_id=%d max_rx_pkt_len %u"
-				" > max valid value %u\n",
-				port_id,
-				(unsigned)dev_conf->rxmode.max_rx_pkt_len,
-				(unsigned)dev_info.max_rx_pktlen);
-			return -EINVAL;
-		} else if (dev_conf->rxmode.max_rx_pkt_len < ETHER_MIN_LEN) {
-			RTE_PMD_DEBUG_TRACE("ethdev port_id=%d max_rx_pkt_len %u"
-				" < min valid value %u\n",
-				port_id,
-				(unsigned)dev_conf->rxmode.max_rx_pkt_len,
-				(unsigned)ETHER_MIN_LEN);
-			return -EINVAL;
+		if (dev_conf->rxmode.max_rx_pkt_len > dev_info.max_rx_pktlen ||
+			dev_conf->rxmode.max_rx_pkt_len < ETHER_MIN_LEN) {
+			/* Use maximum frame size the NIC supports */
+			dev->data->dev_conf.rxmode.max_rx_pkt_len =
+							dev_info.max_rx_pktlen;
 		}
 	} else {
 		if (dev_conf->rxmode.max_rx_pkt_len < ETHER_MIN_LEN ||
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 4be217c..2adfd77 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -349,7 +349,11 @@ enum rte_eth_tx_mq_mode {
 struct rte_eth_rxmode {
 	/** The multi-queue packet distribution mode to be used, e.g. RSS. */
 	enum rte_eth_rx_mq_mode mq_mode;
-	uint32_t max_rx_pkt_len;  /**< Only used if jumbo_frame enabled. */
+	/**
+	 * Desired maximum RX frame size. Too short or too long size will be
+	 * substituted by a default value.
+	 */
+	uint32_t max_rx_pkt_len;
 	uint16_t split_hdr_size;  /**< hdr buf size (header_split enabled).*/
 	__extension__
 	uint16_t header_split : 1, /**< Header Split enable. */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2023-06-08 16:51 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-23 17:06 [PATCH] ether: fix configure() to use a default for max_rx_pkt_len Andriy Berestovskyy
2017-03-24 11:52 ` [PATCH v2] ether: use a default for max Rx frame size in configure() Andriy Berestovskyy
2017-03-27  6:15   ` Yang, Qiming
2017-03-27  8:38     ` Andriy Berestovskyy
2017-04-07  8:24       ` Bruce Richardson
2017-04-06 20:48   ` Thomas Monjalon
2017-04-07  8:09     ` Andriy Berestovskyy
2017-04-07  8:34       ` Thomas Monjalon
2017-04-07  8:55         ` Andriy Berestovskyy
2017-04-07 11:02 ` [PATCH v3] " Andriy Berestovskyy
2017-04-07 12:15   ` Thomas Monjalon
2017-04-07 12:29     ` Bruce Richardson
2017-04-07 14:18       ` Andriy Berestovskyy
2017-04-07 14:47         ` Thomas Monjalon
2017-04-07 15:27           ` Andriy Berestovskyy
2017-04-20 22:25             ` Thomas Monjalon
2017-04-24 14:50               ` Andriy Berestovskyy
2017-07-31 22:33                 ` Thomas Monjalon
2018-05-22 22:30                   ` Thomas Monjalon
2018-05-23  5:21                     ` Shahaf Shuler
2018-05-23  5:23                       ` Jerin Jacob
2018-05-24  9:20                       ` Andriy Berestovskyy
2019-01-23 18:36                         ` Ferruh Yigit
2019-01-25 21:15                           ` Andriy Berestovskyy
2017-04-10 14:30 ` [PATCH 1/3] examples/ip_fragmentation: limit max frame size Andriy Berestovskyy
2017-04-10 14:30   ` [PATCH 2/3] examples/ip_reassembly: " Andriy Berestovskyy
2017-04-10 14:30   ` [PATCH 3/3] examples/ipv4_multicast: " Andriy Berestovskyy
2017-04-21  0:21   ` [PATCH 1/3] examples/ip_fragmentation: " Thomas Monjalon
2023-06-08 16:51 ` [PATCH v3] ether: use a default for max Rx frame size in configure() Stephen Hemminger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.