DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH v2 0/3] example/l3fwd: relax l3fwd rx RSS/Offload if needed
@ 2023-10-13  3:27 Trevor Tao
  2023-10-13  3:27 ` [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option Trevor Tao
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Trevor Tao @ 2023-10-13  3:27 UTC (permalink / raw)
  To: dev; +Cc: Trevor Tao

This series tries to relax l3fwd rx RSS/Offload mode requirement if they
are not supported by underlying hw or virtual devices, there is an
option named relax_rx_mode added to enable this option.

Trevor Tao (3):
  examples/l3fwd: relax RSS requirement with option
  examples/l3fwd: relax the Offload requirement
  doc: add a relax rx mode requirement option

 doc/guides/rel_notes/release_23_11.rst  |  2 ++
 doc/guides/sample_app_ug/l3_forward.rst |  4 +++-
 examples/l3fwd/l3fwd.h                  | 12 ++++++++--
 examples/l3fwd/l3fwd_em.h               |  2 +-
 examples/l3fwd/l3fwd_lpm.h              |  2 +-
 examples/l3fwd/main.c                   | 30 +++++++++++++++++++++++++
 6 files changed, 47 insertions(+), 5 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCH v2 0/3] example/l3fwd: relax l3fwd rx RSS/Offload if needed
@ 2023-10-13  4:27 Trevor Tao
  2023-10-13  4:27 ` [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option Trevor Tao
  0 siblings, 1 reply; 8+ messages in thread
From: Trevor Tao @ 2023-10-13  4:27 UTC (permalink / raw)
  To: dev; +Cc: Trevor Tao

This series tries to relax l3fwd rx RSS/Offload mode requirement if they
are not supported by underlying hw or virtual devices, there is an
option named relax_rx_mode added to enable this option.

Trevor Tao (3):
  examples/l3fwd: relax RSS requirement with option
  examples/l3fwd: relax the Offload requirement
  doc: add a relax rx mode requirement option

 doc/guides/rel_notes/release_23_11.rst  | 251 +++++++++++++++++++++---
 doc/guides/sample_app_ug/l3_forward.rst |   4 +-
 examples/l3fwd/l3fwd.h                  |  12 +-
 examples/l3fwd/l3fwd_em.h               |   2 +-
 examples/l3fwd/l3fwd_lpm.h              |   2 +-
 examples/l3fwd/main.c                   |  30 +++
 6 files changed, 272 insertions(+), 29 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCH v2 0/3] example/l3fwd: relax l3fwd rx RSS/Offload if needed
@ 2023-10-13  3:08 Trevor Tao
  2023-10-13  3:08 ` [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option Trevor Tao
  0 siblings, 1 reply; 8+ messages in thread
From: Trevor Tao @ 2023-10-13  3:08 UTC (permalink / raw)
  To: dev; +Cc: Trevor Tao

This series tries to relax l3fwd rx RSS/Offload mode requirement if they
are not supported by underlying hw or virtual devices, there is an
option named relax_rx_mode added to enable this option.

Trevor Tao (3):
  examples/l3fwd: relax RSS requirement with option
  examples/l3fwd: relax the Offload requirement
  doc: add a relax rx mode requirement option

 doc/guides/rel_notes/release_23_11.rst  |  2 ++
 doc/guides/sample_app_ug/l3_forward.rst |  4 ++-
 examples/l3fwd/l3fwd.h                  | 12 +++++++--
 examples/l3fwd/l3fwd_em.h               |  2 +-
 examples/l3fwd/l3fwd_lpm.h              |  2 +-
 examples/l3fwd/main.c                   | 33 ++++++++++++++++++++++++-
 6 files changed, 49 insertions(+), 6 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option
@ 2023-10-12 16:03 Trevor Tao
  0 siblings, 0 replies; 8+ messages in thread
From: Trevor Tao @ 2023-10-12 16:03 UTC (permalink / raw)
  To: dev; +Cc: Trevor Tao

Now the port Rx mq_mode had been set to RTE_ETH_MQ_RX_RSS
by default, but some hw and/or virtual interface does not
support the RSS and offload mode presupposed, e.g., some
virtio interfaces in the cloud don't support
RSS and the error msg may like:

virtio_dev_configure(): RSS support requested but not supported by
the device
Port0 dev_configure = -95

So to enable the l3fwd running in that environment, the Rx mode requirement
can be relaxed to reflect the hardware feature reality here, and the l3fwd
can run smoothly then.

An option named "relax-rx-mode" is added to enable the relax action
here, and it's disabled by default.

Signed-off-by: Trevor Tao <taozj888@163.com>
---
 examples/l3fwd/main.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index 6063eb1399..36a2a77756 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -73,6 +73,7 @@ static enum L3FWD_LOOKUP_MODE lookup_mode;
 static int numa_on = 1; /**< NUMA is enabled by default. */
 static int parse_ptype; /**< Parse packet type using rx callback, and */
 			/**< disabled by default */
+static int relax_rx_mode; /**< Relax RX mode is disabled by default */
 static int per_port_pool; /**< Use separate buffer pools per port; disabled */
 			  /**< by default */
 
@@ -678,6 +679,7 @@ static const char short_options[] =
 #define CMD_LINE_OPT_MAX_PKT_LEN "max-pkt-len"
 #define CMD_LINE_OPT_HASH_ENTRY_NUM "hash-entry-num"
 #define CMD_LINE_OPT_PARSE_PTYPE "parse-ptype"
+#define CMD_LINE_OPT_RELAX_RX_MODE "relax-rx-mode"
 #define CMD_LINE_OPT_PER_PORT_POOL "per-port-pool"
 #define CMD_LINE_OPT_MODE "mode"
 #define CMD_LINE_OPT_EVENTQ_SYNC "eventq-sched"
@@ -705,6 +707,7 @@ enum {
 	CMD_LINE_OPT_MAX_PKT_LEN_NUM,
 	CMD_LINE_OPT_HASH_ENTRY_NUM_NUM,
 	CMD_LINE_OPT_PARSE_PTYPE_NUM,
+	CMD_LINE_OPT_RELAX_RX_MODE_NUM,
 	CMD_LINE_OPT_RULE_IPV4_NUM,
 	CMD_LINE_OPT_RULE_IPV6_NUM,
 	CMD_LINE_OPT_ALG_NUM,
@@ -728,6 +731,7 @@ static const struct option lgopts[] = {
 	{CMD_LINE_OPT_MAX_PKT_LEN, 1, 0, CMD_LINE_OPT_MAX_PKT_LEN_NUM},
 	{CMD_LINE_OPT_HASH_ENTRY_NUM, 1, 0, CMD_LINE_OPT_HASH_ENTRY_NUM_NUM},
 	{CMD_LINE_OPT_PARSE_PTYPE, 0, 0, CMD_LINE_OPT_PARSE_PTYPE_NUM},
+	{CMD_LINE_OPT_RELAX_RX_MODE, 0, 0, CMD_LINE_OPT_RELAX_RX_MODE_NUM},
 	{CMD_LINE_OPT_PER_PORT_POOL, 0, 0, CMD_LINE_OPT_PARSE_PER_PORT_POOL},
 	{CMD_LINE_OPT_MODE, 1, 0, CMD_LINE_OPT_MODE_NUM},
 	{CMD_LINE_OPT_EVENTQ_SYNC, 1, 0, CMD_LINE_OPT_EVENTQ_SYNC_NUM},
@@ -853,6 +857,11 @@ parse_args(int argc, char **argv)
 			parse_ptype = 1;
 			break;
 
+		case CMD_LINE_OPT_RELAX_RX_MODE_NUM:
+			printf("Relax rx mode is enabled\n");
+			relax_rx_mode = 1;
+			break;
+
 		case CMD_LINE_OPT_PARSE_PER_PORT_POOL:
 			printf("per port buffer pool is enabled\n");
 			per_port_pool = 1;
@@ -1257,8 +1266,16 @@ l3fwd_poll_resource_setup(void)
 		local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
 			dev_info.flow_type_rss_offloads;
 
-		if (dev_info.max_rx_queues == 1)
+		if (dev_info.max_rx_queues == 1) {
 			local_port_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE;
+		}
+
+		/* relax the rx rss requirement */
+		if (relax_rx_mode && !local_port_conf.rx_adv_conf.rss_conf.rss_hf) {
+			printf("warning: modified the rx mq_mode to RTE_ETH_MQ_RX_NONE base on"
+					" device capability\n");
+				local_port_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE;
+		}
 
 		if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
 				port_conf.rx_adv_conf.rss_conf.rss_hf) {
-- 
2.34.1


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

end of thread, other threads:[~2023-10-17 18:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-13  3:27 [PATCH v2 0/3] example/l3fwd: relax l3fwd rx RSS/Offload if needed Trevor Tao
2023-10-13  3:27 ` [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option Trevor Tao
2023-10-13  3:27 ` [PATCH v2 2/3] examples/l3fwd: relax the Offload requirement Trevor Tao
2023-10-13  3:27 ` [PATCH v2 3/3] doc: add a relax rx mode requirement option Trevor Tao
  -- strict thread matches above, loose matches on Subject: below --
2023-10-13  4:27 [PATCH v2 0/3] example/l3fwd: relax l3fwd rx RSS/Offload if needed Trevor Tao
2023-10-13  4:27 ` [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option Trevor Tao
2023-10-17 18:06   ` Konstantin Ananyev
2023-10-13  3:08 [PATCH v2 0/3] example/l3fwd: relax l3fwd rx RSS/Offload if needed Trevor Tao
2023-10-13  3:08 ` [PATCH v2 1/3] examples/l3fwd: relax RSS requirement with option Trevor Tao
2023-10-12 16:03 Trevor Tao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).