[dpdk-dev] [PATCH] examples/l2fwd-event: add option to configure port pairs

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Thu Mar 26 07:37:03 CET 2020



>-----Original Message-----
>From: Sunil Kumar Kori <skori at marvell.com>
>Sent: Wednesday, March 25, 2020 4:10 PM
>To: Pavan Nikhilesh Bhagavatula <pbhagavatula at marvell.com>; Jerin
>Jacob Kollanukkaran <jerinj at marvell.com>; Marko Kovacevic
><marko.kovacevic at intel.com>; Ori Kam <orika at mellanox.com>; Bruce
>Richardson <bruce.richardson at intel.com>; Radu Nicolau
><radu.nicolau at intel.com>; Akhil Goyal <akhil.goyal at nxp.com>; Tomasz
>Kantecki <tomasz.kantecki at intel.com>; Pavan Nikhilesh Bhagavatula
><pbhagavatula at marvell.com>; John McNamara
><john.mcnamara at intel.com>
>Cc: dev at dpdk.org
>Subject: RE: [dpdk-dev] [PATCH] examples/l2fwd-event: add option to
>configure port pairs
>
>Comments inline.
>
>Regards
>Sunil Kumar Kori
>
>>-----Original Message-----
>>From: pbhagavatula at marvell.com <pbhagavatula at marvell.com>
>>Sent: Tuesday, March 24, 2020 6:05 PM
>>To: Jerin Jacob Kollanukkaran <jerinj at marvell.com>; Marko Kovacevic
>><marko.kovacevic at intel.com>; Ori Kam <orika at mellanox.com>;
>Bruce
>>Richardson <bruce.richardson at intel.com>; Radu Nicolau
>><radu.nicolau at intel.com>; Akhil Goyal <akhil.goyal at nxp.com>;
>Tomasz
>>Kantecki <tomasz.kantecki at intel.com>; Sunil Kumar Kori
>><skori at marvell.com>; Pavan Nikhilesh Bhagavatula
>><pbhagavatula at marvell.com>; John McNamara
>><john.mcnamara at intel.com>
>>Cc: dev at dpdk.org
>>Subject: [dpdk-dev] [PATCH] examples/l2fwd-event: add option to
>configure
>>port pairs
>>
>>From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>>
>>Current l2fwd-event application statically configures adjacent ports as
>>destination ports for forwarding the traffic.
>>
>>Add a config option to pass the forwarding port pair mapping which
>allows
>>the user to configure forwarding port mapping.
>>
>>If no config argument is specified, destination port map is not changed
>and
>>traffic gets forwarded with existing mapping.
>>
>>To align port/queue configuration of each lcore with destination port
>map,
>>port/queue configuration of each lcore gets modified when config
>option is
>>specificed.
>>
>>Ex: ./l2fwd-event -c 0xff -- -p 0x3f -q 2 --config="(0,3)(1,4)(2,5)"
>>
>>With above config option, traffic received from portid = 0 gets
>forwarded to
>>port = 3 and vice versa, similarly traffic gets forwarded on other port
>pairs
>>(1,4) and (2,5).
>>
>Is this config required to be updated for l2fwd also ?

In pipeline.

>
>>Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
>>---
>>updating enabled, diff --git a/examples/l2fwd-
>event/l2fwd_common.h
>>b/examples/l2fwd-event/l2fwd_common.h
>>index 7e33ee749..4e8b2fe14 100644
>>--- a/examples/l2fwd-event/l2fwd_common.h
>>+++ b/examples/l2fwd-event/l2fwd_common.h
>>@@ -69,6 +69,7 @@ struct l2fwd_resources {
>> 	uint8_t sched_type;
>> 	uint8_t mac_updating;
>> 	uint8_t rx_queue_per_lcore;
>>+	uint8_t port_pairs;
>It can be changed to bool.

Will change in v2.

>
>> 	uint16_t nb_rxd;
>> 	uint16_t nb_txd;
>> 	uint32_t enabled_port_mask;
>>diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-
>event/main.c
>>index 89a6bb9a4..92890d1ae 100644
>>--- a/examples/l2fwd-event/main.c
>>+++ b/examples/l2fwd-event/main.c
>>@@ -2,6 +2,8 @@
>>  * Copyright(C) 2019 Marvell International Ltd.
>>  */
>>
>>+#include <rte_string_fns.h>
>>+
>> #include "l2fwd_event.h"
>> #include "l2fwd_poll.h"
>>
>>@@ -22,7 +24,9 @@ l2fwd_event_usage(const char *prgname)
>> 	       "          Default mode = eventdev\n"
>> 	       "  --eventq-sched: Event queue schedule type, ordered,
>atomic or
>>parallel.\n"
>> 	       "                  Default: atomic\n"
>>-	       "                  Valid only if --mode=eventdev\n\n",
>>+	       "                  Valid only if --mode=eventdev\n"
>>+	       "  --config: Configure forwarding port pair mapping\n"
>>+	       "	    Default: alternate port pairs\n\n",
>> 	       prgname);
>> }
>>
>>+l2fwd_event_parse_args(int argc, char **argv, struct
>l2fwd_resources
>>+*rsrc)
>> {
>> 	int mac_updating = 1;
>> 	struct option lgopts[] = {
>>@@ -134,12 +202,18 @@ l2fwd_event_parse_args(int argc, char
>**argv,
>>
>>	CMD_LINE_OPT_MODE_NUM},
>> 		{ CMD_LINE_OPT_EVENTQ_SCHED,
>required_argument, NULL,
>>
>>	CMD_LINE_OPT_EVENTQ_SCHED_NUM},
>>+		{ CMD_LINE_OPT_PORT_PAIR_CONF,
>required_argument,
>>NULL,
>>+
>>	CMD_LINE_OPT_PORT_PAIR_CONF_NUM},
>> 		{NULL, 0, 0, 0}
>> 	};
>> 	int opt, ret, timer_secs;
>> 	char *prgname = argv[0];
>>-	char **argvopt;
>>+	uint16_t port_id;
>> 	int option_index;
>>+	char **argvopt;
>New line is required.

Will fix in v2.
>
>>+	/* reset l2fwd_dst_ports */
>>+	for (port_id = 0; port_id < RTE_MAX_ETHPORTS; port_id++)
>>+		rsrc->dst_ports[port_id] = UINT32_MAX;
>>
>> 	argvopt = argv;


More information about the dev mailing list