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 31C0345628; Tue, 16 Jul 2024 16:11:49 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 09EB9402AD; Tue, 16 Jul 2024 16:11:49 +0200 (CEST) Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by mails.dpdk.org (Postfix) with ESMTP id 65DFD4021F for ; Tue, 16 Jul 2024 16:11:47 +0200 (CEST) Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-78512d44a17so4045807a12.3 for ; Tue, 16 Jul 2024 07:11:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1721139106; x=1721743906; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=XALbaO3go68GjwVBj0We8KfYMu5/C+ZhTCaoG+QL6KM=; b=jwy6lWTiRubiKT5nhJeQo9wYU1FmUtLPxBbQLAqZkjuA4u23gWsEFqLNjUWOTPeSjC MBPqwLzI9+5hynZudjf1+pi9YvNjHU7nI0MCXwrGqj1FqE8DxJna8PNDSi6nLXlpsGq0 /B2LVoC+QtE3N2xLRdeIXBKJVpkOftw/QHY3c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721139106; x=1721743906; h=content-transfer-encoding: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=XALbaO3go68GjwVBj0We8KfYMu5/C+ZhTCaoG+QL6KM=; b=dM9Aw8WNmhshutw1NnmK+s2/PeNqKV0KTF+n56gUC5/RYBFxbAAs8rMSbkP9r6/QS6 GSfNWGZTxtROJjA8v3kC04VW7BSf1azNUwapZWKhbCnzTAoTSeOH4n8qG3836FSL0259 PhhdQlve9T8tvsexjLAblOJU/mEruU9QvluRFaTb0fvr2+T+ULTwalhXQSjYVTqf+0pW q/Lbl/u9ncUS+veGt473tbTXJd/6ReNv7qIP+iqvQOu2rIzyVMEPGhi7ROMvVRpfAxcn YZYePmATPzZR2SR3U1jFUqhs7ZGuNYRhvPB6LGf7/CZAUpe4+tFD2hO1nyy/6imbInqH 8aDg== X-Forwarded-Encrypted: i=1; AJvYcCWI3pWtFCM06ltsx+807lKP4j8a34SJRQnwtXkGdW2yivJLtROEAmPpaQw+mY+pn2YNftKxgQkg5IPm0C8= X-Gm-Message-State: AOJu0Yw/KKu2JHaUl72091hnjR1rdUfy2Uzoq0EqglP6uVuK6aczAxGZ HsxhMkp+B/Ktjc+ZyfeLEonU+wJMWPvqEuOHxd4zZWx85m2GPbsfMitNzXASt3nFju1xsMLXNaY VYlWIGnCOSoKw/1gqUc8WQmz9lWU/td/nd55uxA== X-Google-Smtp-Source: AGHT+IFrTgKO5ndTKIrt1v0MJzYJ/9A7FSD54RZZ+uYWWx6DkK8kYPVLhJIpMmb5ZkDaCEmnM+rDq94CiUhbjIbal/k= X-Received: by 2002:a05:6a21:9997:b0:1c2:88e2:8e10 with SMTP id adf61e73a8af0-1c3f12033acmr3117479637.11.1721139106345; Tue, 16 Jul 2024 07:11:46 -0700 (PDT) MIME-Version: 1.0 References: <20240610193410.17968-2-npratte@iol.unh.edu> <20240703145749.23416-2-npratte@iol.unh.edu> In-Reply-To: <20240703145749.23416-2-npratte@iol.unh.edu> From: Jeremy Spewock Date: Tue, 16 Jul 2024 10:11:34 -0400 Message-ID: Subject: Re: [PATCH v2] dts: Testbed And Node Configuration Split To: Nicholas Pratte Cc: juraj.linkes@pantheon.tech, dmarx@iol.unh.edu, luca.vizzarro@arm.com, Honnappa.Nagarahalli@arm.com, paul.szczepanek@arm.com, probb@iol.unh.edu, yoan.picchi@foss.arm.com, dev@dpdk.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 On Wed, Jul 3, 2024 at 10:58=E2=80=AFAM Nicholas Pratte wrote: > > This implementation splits the execution and node configuration > components of the conf.yaml into two separate config files. A > new command line argument is added, allowing the user to specify > both a node configuration file and an execution configuration > file. Be default, these config files are now named node_conf.yaml and > execution_conf.yaml, respectively. > > To assert these changes, the schema calls for one of these objects, > nodes or executions, in each file, but neither config file can have > both. > > To avoid excess refactoring, both config files are merged together > early on in the load_config process. > > Bugzilla ID: 1344 > > Signed-off-by: Nicholas Pratte > --- > dts/execution_conf.yaml | 26 ++ > dts/framework/config/__init__.py | 26 +- > dts/framework/config/conf_yaml_schema.json | 340 ++++++++++----------- > dts/framework/runner.py | 4 +- > dts/framework/settings.py | 36 ++- > dts/node_conf.yaml | 56 ++++ > dts/testbed_conf.yaml | 26 ++ > 7 files changed, 325 insertions(+), 189 deletions(-) > create mode 100644 dts/execution_conf.yaml > create mode 100644 dts/node_conf.yaml > create mode 100644 dts/testbed_conf.yaml > > diff --git a/dts/execution_conf.yaml b/dts/execution_conf.yaml > new file mode 100644 > index 0000000000..af2180eac2 > --- /dev/null > +++ b/dts/execution_conf.yaml > @@ -0,0 +1,26 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright 2022-2023 The DPDK contributors > +# Copyright 2023 Arm Limited > + > +executions: We probably don't want to rename this back to executions as Juraj's patch recently got merged into main that calls these test_runs, and I think people found that more clear. With that being said, we'll probably have to rename this file too. > + # define one execution environment > + - build_targets: > + - arch: x86_64 > + os: linux > + cpu: native > + # the combination of the following two makes CC=3D"ccache gcc" > + compiler: gcc > + compiler_wrapper: ccache > + perf: false # disable performance testing > + func: true # enable functional testing > + skip_smoke_tests: false # optional > + test_suites: # the following test suites will be run in their entire= ty > + - hello_world > + - os_udp > + # The machine running the DPDK test executable > + system_under_test_node: > + node_name: "SUT 1" > + vdevs: # optional; if removed, vdevs won't be used in the executio= n > + - "crypto_openssl" > + # Traffic generator node to use for this execution environment > + traffic_generator_node: "TG 1" > \ No newline at end of file > +++ b/dts/node_conf.yaml > @@ -0,0 +1,56 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright 2022-2023 The DPDK contributors > +# Copyright 2023 Arm Limited > + > +nodes: > + # Define a system under test node, having two network ports physically > + # connected to the corresponding ports in TG 1 (the peer node) > + - name: "SUT 1" > + hostname: sut1.change.me.localhost > + user: dtsuser > + arch: x86_64 > + os: linux > + lcores: "" # use all the available logical cores > + use_first_core: false # tells DPDK to use any physical core > + memory_channels: 4 # tells DPDK to use 4 memory channels > + hugepages: # optional; if removed, will use system hugepage configu= ration > + amount: 256 > + force_first_numa: false > + ports: > + # sets up the physical link between "SUT 1"@000:00:08.0 and "TG 1"= @0000:00:08.0 > + - pci: "0000:00:08.0" > + os_driver_for_dpdk: vfio-pci # OS driver that DPDK will use > + os_driver: i40e # OS driver to bind when the tests = are not running I think the point of this comment having all the whitespace is to line up the starts of these two comments but it seems a little off in this series. I might even be more of a fan of removing it and just making it one space, but if we want to keep it the way it is on main it's probably better to give this a little more whitespace. > + peer_node: "TG 1" > + peer_pci: "0000:00:08.0" > + # sets up the physical link between "SUT 1"@000:00:08.1 and "TG 1"= @0000:00:08.1 > + - pci: "0000:00:08.1" > + os_driver_for_dpdk: vfio-pci > + os_driver: i40e > + peer_node: "TG 1" > + peer_pci: "0000:00:08.1" > + # Define a Scapy traffic generator node, having two network ports > + # physically connected to the corresponding ports in SUT 1 (the peer n= ode). > + - name: "TG 1" > + hostname: tg1.change.me.localhost > + user: dtsuser > + arch: x86_64 > + os: linux > + ports: > + # sets up the physical link between "TG 1"@000:00:08.0 and "SUT 1"= @0000:00:08.0 > + - pci: "0000:00:08.0" > + os_driver_for_dpdk: rdma > + os_driver: rdma > + peer_node: "SUT 1" > + peer_pci: "0000:00:08.0" > + # sets up the physical link between "SUT 1"@000:00:08.0 and "TG 1"= @0000:00:08.0 > + - pci: "0000:00:08.1" > + os_driver_for_dpdk: rdma > + os_driver: rdma > + peer_node: "SUT 1" > + peer_pci: "0000:00:08.1" > + hugepages: # optional; if removed, will use system hugepage configu= ration > + amount: 256 > + force_first_numa: false > + traffic_generator: > + type: SCAPY > diff --git a/dts/testbed_conf.yaml b/dts/testbed_conf.yaml I'm still not sure what keeping this file is for, it seems like it isn't used elsewhere in the framework. > new file mode 100644 > index 0000000000..af2180eac2 > --- /dev/null > +++ b/dts/testbed_conf.yaml > @@ -0,0 +1,26 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright 2022-2023 The DPDK contributors > +# Copyright 2023 Arm Limited > + > +executions: > + # define one execution environment > + - build_targets: > + - arch: x86_64 > + os: linux > + cpu: native > + # the combination of the following two makes CC=3D"ccache gcc" > + compiler: gcc > + compiler_wrapper: ccache > + perf: false # disable performance testing > + func: true # enable functional testing > + skip_smoke_tests: false # optional > + test_suites: # the following test suites will be run in their entire= ty > + - hello_world > + - os_udp > + # The machine running the DPDK test executable > + system_under_test_node: > + node_name: "SUT 1" > + vdevs: # optional; if removed, vdevs won't be used in the executio= n > + - "crypto_openssl" > + # Traffic generator node to use for this execution environment > + traffic_generator_node: "TG 1" > \ No newline at end of file > -- > 2.44.0 >