From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8C7AF42EAC; Tue, 18 Jul 2023 23:04:30 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1689342D17; Tue, 18 Jul 2023 23:04:30 +0200 (CEST) Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by mails.dpdk.org (Postfix) with ESMTP id 90AC4410D3 for ; Tue, 18 Jul 2023 23:04:28 +0200 (CEST) Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-55ba895d457so3444222a12.0 for ; Tue, 18 Jul 2023 14:04:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1689714267; x=1692306267; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0YNcUiKSgC01cIGFIxh3Ag4YzSMybtrukRf0nSfLKHg=; b=Ga+FDzm0WDJJX/CA9oXNmxqfg2euNlAXwjTNneO0wahtxVI5sLNg6vvgQJp8YEnkaH 0ln4qYAVg5fMTDqttcC048bn02a6CRHZ1vSV2BJJvdLkWyp5Dcod83m9ojJzdiKje3EU EJy4W6QuBMFbT5LtU7G6tnBjhUqF/Ii5Rr4j4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689714267; x=1692306267; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0YNcUiKSgC01cIGFIxh3Ag4YzSMybtrukRf0nSfLKHg=; b=fInEuqfjtNI8MUWZJ5EzjmXKMnSzquN3AOHOqDF34yWkVgvZ+HzoU6hj7C8XMWIs2k Y9gyQy01hCB+o0OMvatpyoKwLuzGeY3l8ylVXiF/BxBvvbVNkqGpSm6hQTr2S4FxLW4L ONzkRVzjfNqOdno4x89nGuTF8qlyZ/nKHcZoO/WGlL8v84OGZn9rc4AbvLq1lg9y622o 9qaomLOlC+qYhtsPWRkPVwFnv+plfD3pQ19g0K48YCBBqiaX5pLDNEOkfomcct+vPQ+v gs8axRu4ROz2TtVChuu23apEBevNtBnDYL75+bMpZIxmq+t7DvbNWHB37efVhc6C4u8F 3MCA== X-Gm-Message-State: ABy/qLa+bBePS+rvxoCX9wzg6tLsHYr69qss5fsLvK0m0NIuU19wlZUM GHw8wQv2HtHuoPMjZFV9pCukHZTNIWFBtdg4+RrJjQ== X-Google-Smtp-Source: APBJJlE6/Gl7vZk6lVPU8OgMTbp30pfJfKqLaNZ375TGIOmDvx2GiLl6vYU7gv8ijNS4WTAIKuly3Sgbbei2YOOig1U= X-Received: by 2002:a17:90a:cc03:b0:263:ba18:3bcc with SMTP id b3-20020a17090acc0300b00263ba183bccmr11768337pju.46.1689714267485; Tue, 18 Jul 2023 14:04:27 -0700 (PDT) MIME-Version: 1.0 References: <20230420093109.594704-1-juraj.linkes@pantheon.tech> <20230717110709.39220-1-juraj.linkes@pantheon.tech> In-Reply-To: <20230717110709.39220-1-juraj.linkes@pantheon.tech> From: Jeremy Spewock Date: Tue, 18 Jul 2023 17:04:16 -0400 Message-ID: Subject: Re: [PATCH v2 0/6] dts: tg abstractions and scapy tg To: =?UTF-8?Q?Juraj_Linke=C5=A1?= Cc: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, lijuan.tu@intel.com, probb@iol.unh.edu, dev@dpdk.org Content-Type: multipart/alternative; boundary="000000000000af8e880600c94278" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --000000000000af8e880600c94278 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This looked good to me, just a couple of minor comments (about docstrings and their format) and one question that I left. Once this is rebased on the newer version of my patch it should be good. On Mon, Jul 17, 2023 at 7:07=E2=80=AFAM Juraj Linke=C5=A1 wrote: > Add abstractions for traffic generator split into those that can and > can't capture traffic. > > The Scapy implementation uses an XML-RPC server for remote control. This > requires an interactive session to add Scapy funcions to the server. The > interactive session code is based on another patch [0]. > > The basic test case is there to showcase the Scapy implementation - it > sends just one UDP packet and verifies it on the other end. > > [0]: > http://patches.dpdk.org/project/dpdk/patch/20230713165347.21997-3-jspewoc= k@iol.unh.edu/ > > Juraj Linke=C5=A1 (6): > dts: add scapy dependency > dts: add traffic generator config > dts: traffic generator abstractions > dts: add python remote interactive shell > dts: scapy traffic generator implementation > dts: add basic UDP test case > > doc/guides/tools/dts.rst | 31 ++ > dts/conf.yaml | 27 +- > dts/framework/config/__init__.py | 115 ++++--- > dts/framework/config/conf_yaml_schema.json | 32 +- > dts/framework/dts.py | 65 ++-- > dts/framework/remote_session/__init__.py | 3 +- > dts/framework/remote_session/linux_session.py | 96 ++++++ > dts/framework/remote_session/os_session.py | 75 +++-- > .../remote_session/remote/__init__.py | 1 + > .../remote/interactive_shell.py | 18 +- > .../remote_session/remote/python_shell.py | 24 ++ > .../remote_session/remote/testpmd_shell.py | 33 +- > dts/framework/test_suite.py | 221 ++++++++++++- > dts/framework/testbed_model/__init__.py | 1 + > .../capturing_traffic_generator.py | 135 ++++++++ > dts/framework/testbed_model/hw/port.py | 60 ++++ > dts/framework/testbed_model/node.py | 64 +++- > dts/framework/testbed_model/scapy.py | 290 ++++++++++++++++++ > dts/framework/testbed_model/sut_node.py | 52 ++-- > dts/framework/testbed_model/tg_node.py | 99 ++++++ > .../testbed_model/traffic_generator.py | 72 +++++ > dts/framework/utils.py | 13 + > dts/poetry.lock | 21 +- > dts/pyproject.toml | 1 + > dts/tests/TestSuite_os_udp.py | 45 +++ > dts/tests/TestSuite_smoke_tests.py | 6 +- > 26 files changed, 1434 insertions(+), 166 deletions(-) > create mode 100644 dts/framework/remote_session/remote/python_shell.py > create mode 100644 > dts/framework/testbed_model/capturing_traffic_generator.py > create mode 100644 dts/framework/testbed_model/hw/port.py > create mode 100644 dts/framework/testbed_model/scapy.py > create mode 100644 dts/framework/testbed_model/tg_node.py > create mode 100644 dts/framework/testbed_model/traffic_generator.py > create mode 100644 dts/tests/TestSuite_os_udp.py > > -- > 2.34.1 > > --000000000000af8e880600c94278 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This looked good to me, just a couple of minor comments (about do= cstrings and their format) and one question that I left. Once this is rebas= ed on the newer version of my patch it should be good.

On Mon, Jul 17,= 2023 at 7:07=E2=80=AFAM Juraj Linke=C5=A1 <juraj.linkes@pantheon.tech&g= t; wrote:
Add ab= stractions for traffic generator split into those that can and
can't capture traffic.

The Scapy implementation uses an XML-RPC server for remote control. This requires an interactive session to add Scapy funcions to the server. The interactive session code is based on another patch [0].

The basic test case is there to showcase the Scapy implementation - it
sends just one UDP packet and verifies it on the other end.

[0]: http://p= atches.dpdk.org/project/dpdk/patch/20230713165347.21997-3-jspewock@iol.unh.= edu/

Juraj Linke=C5=A1 (6):
=C2=A0 dts: add scapy dependency
=C2=A0 dts: add traffic generator config
=C2=A0 dts: traffic generator abstractions
=C2=A0 dts: add python remote interactive shell
=C2=A0 dts: scapy traffic generator implementation
=C2=A0 dts: add basic UDP test case

=C2=A0doc/guides/tools/dts.rst=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 31 ++
=C2=A0dts/conf.yaml=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 27 +-=
=C2=A0dts/framework/config/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 | 115 ++++---
=C2=A0dts/framework/config/conf_yaml_schema.json=C2=A0 =C2=A0 |=C2=A0 32 +-=
=C2=A0dts/framework/dts.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 65 ++--
=C2=A0dts/framework/remote_session/__init__.py=C2=A0 =C2=A0 =C2=A0 |=C2=A0 = =C2=A03 +-
=C2=A0dts/framework/remote_session/linux_session.py |=C2=A0 96 ++++++
=C2=A0dts/framework/remote_session/os_session.py=C2=A0 =C2=A0 |=C2=A0 75 ++= +--
=C2=A0.../remote_session/remote/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 =C2=A01 +
=C2=A0.../remote/interactive_shell.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0|=C2=A0 18 +-
=C2=A0.../remote_session/remote/python_shell.py=C2=A0 =C2=A0 =C2=A0|=C2=A0 = 24 ++
=C2=A0.../remote_session/remote/testpmd_shell.py=C2=A0 =C2=A0 |=C2=A0 33 +-=
=C2=A0dts/framework/test_suite.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0| 221 ++++++++++++-
=C2=A0dts/framework/testbed_model/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0|= =C2=A0 =C2=A01 +
=C2=A0.../capturing_traffic_generator.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | 135 ++++++++
=C2=A0dts/framework/testbed_model/hw/port.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 |= =C2=A0 60 ++++
=C2=A0dts/framework/testbed_model/node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0|=C2=A0 64 +++-
=C2=A0dts/framework/testbed_model/scapy.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 | 290 ++++++++++++++++++
=C2=A0dts/framework/testbed_model/sut_node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0|= =C2=A0 52 ++--
=C2=A0dts/framework/testbed_model/tg_node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 |= =C2=A0 99 ++++++
=C2=A0.../testbed_model/traffic_generator.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 |= =C2=A0 72 +++++
=C2=A0dts/framework/utils.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 13 +
=C2=A0dts/poetry.lock=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 21 +- =C2=A0dts/pyproject.toml=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A01 +
=C2=A0dts/tests/TestSuite_os_udp.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 45 +++
=C2=A0dts/tests/TestSuite_smoke_tests.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 =C2=A06 +-
=C2=A026 files changed, 1434 insertions(+), 166 deletions(-)
=C2=A0create mode 100644 dts/framework/remote_session/remote/python_shell.p= y
=C2=A0create mode 100644 dts/framework/testbed_model/capturing_traffic_gene= rator.py
=C2=A0create mode 100644 dts/framework/testbed_model/hw/port.py
=C2=A0create mode 100644 dts/framework/testbed_model/scapy.py
=C2=A0create mode 100644 dts/framework/testbed_model/tg_node.py
=C2=A0create mode 100644 dts/framework/testbed_model/traffic_generator.py =C2=A0create mode 100644 dts/tests/TestSuite_os_udp.py

--
2.34.1

--000000000000af8e880600c94278--