[dpdk-dev] [PATCH] examples/l2fwd-event: add option to configure port pairs
Sunil Kumar Kori
skori at marvell.com
Wed Mar 25 11:40:29 CET 2020
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 ?
>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.
> 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.
>+ /* 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