[dpdk-dev] [PATCH v3] examples/l2fwd: add cmdline option for forwarding port info

Sunil Kumar Kori skori at marvell.com
Mon Apr 27 18:49:36 CEST 2020


Sent from Workspace ONE Boxer
On 27-Apr-2020 10:08 PM, Pavan Nikhilesh Bhagavatula <pbhagavatula at marvell.com> wrote:
>
> >>diff --git a/doc/guides/sample_app_ug/l2_forward_real_virtual.rst
> >>b/doc/guides/sample_app_ug/l2_forward_real_virtual.rst
> >>index 39d6b0067..b54321b5b 100644
> >>--- a/doc/guides/sample_app_ug/l2_forward_real_virtual.rst
> >>+++ b/doc/guides/sample_app_ug/l2_forward_real_virtual.rst
> >>@@ -91,7 +91,10 @@ The application requires a number of command
> >line
> >>options:
> >>
> >> .. code-block:: console
> >>
> >>-    ./build/l2fwd [EAL options] -- -p PORTMASK [-q NQ] --[no-]mac-
> >updating
> >>+    ./build/l2fwd [EAL options] -- -p PORTMASK
> >>+                                   [-q NQ]
> >>+                                   --[no-]mac-updating
> >>+                                   --portmap="(port, port)[,(port, port)]"
> >
> >Will it be better to represent as [--portmap="(port, port)[,(port, port)]]
> >as it is a optional parameter ?
> >
>
> Will change in v4.
>
> >>
> >> where,
> >>
> >>@@ -99,7 +102,10 @@ where,
> >>
> >> *   q NQ: A number of queues (=ports) per lcore (default is 1)
> >>
> >>-*   --[no-]mac-updating: Enable or disable MAC addresses updating
> >(enabled
> >>by default).
> >>+*   --[no-]mac-updating: Enable or disable MAC addresses updating
> >(enabled
> >>by default)
> >>+
> >>+*   --portmap="(port,port)[,(port,port)]": Determines which ports are
> >>mapped to
> >>+    which ports for packet forwarding.
> >
> >May be rephrased a bit shorter as "Determines forwarding ports
> >mapping".
>
> Will change in v4.
>
> >>
> >> To run the application in linux environment with 4 lcores, 16 ports and
> >8 RX
> >>queues per lcore and MAC address  updating enabled, issue the
> >command:
> >>@@ -108,6 +114,14 @@ updating enabled, issue the command:
> >>
> >>     $ ./build/l2fwd -l 0-3 -n 4 -- -q 8 -p ffff
> >>
> >>+To run the application in linux environment with 4 lcores, 4 ports, 8
> >>+RX queues per lcore and MAC address updating enabled, to forward
> >RX
> >>+traffic of ports 0 & 1 on ports 2 & 3 respectively and vice versa, issue
> >the
> >>command:
> >
> >IMO, No need to mentioned information about MAC address update
> >enabled because it
> >is enabled by default and no param is passed in below command. So
> >information is not
> >relevant here.
> >
>
> Will change in v4.
>
> >>+
> >>+.. code-block:: console
> >>+
> >>+    $ ./build/l2fwd -l 0-3 -n 4 -- -q 8 -p f --portmap="(0,2)(1,3)"
> >It looks like comma is missed in between two port map information.
> >>+
> >> Refer to the *DPDK Getting Started Guide* for general information
> >on running
> >>applications  and the Environment Abstraction Layer (EAL) options.
> >>
> >>diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index
> >>88ddfe589..81861a22a 100644
> >>--- a/examples/l2fwd/main.c
> >>+++ b/examples/l2fwd/main.c
> >>@@ -38,6 +38,7 @@
> >> #include <rte_ethdev.h>
> >> #include <rte_mempool.h>
> >> #include <rte_mbuf.h>
> >>+#include <rte_string_fns.h>
> >>
> >> static volatile bool force_quit;
> >>
> >>@@ -67,6 +68,15 @@ static uint32_t l2fwd_enabled_port_mask = 0;
> >> /* list of enabled ports */
> >> static uint32_t l2fwd_dst_ports[RTE_MAX_ETHPORTS];
> >>
> >>+struct port_pair_params {
> >>+#define NUM_PORTS    2
> >>+     uint16_t port[NUM_PORTS];
> >>+} __rte_cache_aligned;
> >
> >Is there any specific reason to use this syntax to declare two ports
> >instead of following
> >struct port_pair_params {
> >     uint16_t port1;
> >     uint16_t port2;
> >};
> >
>
> It was done to reduce code duplication. Will leave as is.
Ack.
>
> >>+
> >>+static struct port_pair_params
> >>+port_pair_params_array[RTE_MAX_ETHPORTS];
> >Should not be RTE_MAX_ETHPORTS/2 if only 1:1 mapping is allowed  ?
> >As I understood it is used to store CLI port mapping,
>
> RTE_MAX_ETHPORTS/2 will be sufficient.
Ack.
>
> >I think it is better to
> >Use any other MACRO which define maximum number of port map
> >parameter.
> >If you consider it, then it can also be updated in documentation.
> >
> >>+static struct port_pair_params *port_pair_params; static uint16_t
> >>+nb_port_pair_params;
> >>+
> >> static unsigned int l2fwd_rx_queue_per_lcore = 1;
> >>
> >> #define MAX_RX_QUEUE_PER_LCORE 16
> >>@@ -294,11 +304,13 @@ l2fwd_usage(const char *prgname)
> >>       printf("%s [EAL options] -- -p PORTMASK [-q NQ]\n"
> >>              "  -p PORTMASK: hexadecimal bitmask of ports to
> >configure\n"
> >>              "  -q NQ: number of queue (=ports) per lcore (default is
> >1)\n"
> >>-                "  -T PERIOD: statistics will be refreshed each PERIOD
> >>seconds (0 to disable, 10 default, 86400 maximum)\n"
> >>-                "  --[no-]mac-updating: Enable or disable MAC
> >addresses
> >>updating (enabled by default)\n"
> >>-                "      When enabled:\n"
> >>-                "       - The source MAC address is replaced by the TX
> >port
> >>MAC address\n"
> >>-                "       - The destination MAC address is replaced by
> >>02:00:00:00:00:TX_PORT_ID\n",
> >>+            "  -T PERIOD: statistics will be refreshed each PERIOD
> >seconds (0 to
> >>disable, 10 default, 86400 maximum)\n"
> >>+            "  --[no-]mac-updating: Enable or disable MAC addresses
> >updating
> >>(enabled by default)\n"
> >>+            "      When enabled:\n"
> >>+            "       - The source MAC address is replaced by the TX port
> >MAC
> >>address\n"
> >>+            "       - The destination MAC address is replaced by
> >>02:00:00:00:00:TX_PORT_ID\n"
> >>+            "  --portmap: Configure forwarding port pair mapping\n"
> >>+            "       Default: alternate port pairs\n\n",
> >
> >IMO, Indentation changes for other parameters should in separate
> >patch.
>
> It's not a functionality change it just minor code formatting change and doesn’t
> deserve a separate patch.
Ack.
>
> >>              prgname);
> >> }
> >>
> >>@@ -319,6 +331,61 @@ l2fwd_parse_portmask(const char
> >*portmask)
> >>       return pm;
> >> }
> >>



More information about the dev mailing list